diff --git a/CHANGELOG.md b/CHANGELOG.md index 2285cbbbe..48b46d3c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,19 @@ ## 1.25.0 (Unreleased) + +FEATURES: + +* **New Data Source:** `awscc_appconfig_deployment` +* **New Data Source:** `awscc_cloudfront_anycast_ip_lists` +* **New Data Source:** `awscc_customerprofiles_event_trigger` +* **New Data Source:** `awscc_quicksight_custom_permissions` +* **New Data Source:** `awscc_quicksight_custom_permissions_plural` +* **New Data Source:** `awscc_sagemaker_partner_app` +* **New Data Source:** `awscc_sagemaker_partner_apps` +* **New Resource:** `awscc_appconfig_deployment` +* **New Resource:** `awscc_customerprofiles_event_trigger` +* **New Resource:** `awscc_quicksight_custom_permissions` +* **New Resource:** `awscc_sagemaker_partner_app` + ## 1.24.0 (December 19, 2024) FEATURES: diff --git a/docs/data-sources/appconfig_deployment.md b/docs/data-sources/appconfig_deployment.md new file mode 100644 index 000000000..3b01ffd21 --- /dev/null +++ b/docs/data-sources/appconfig_deployment.md @@ -0,0 +1,51 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_appconfig_deployment Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::AppConfig::Deployment +--- + +# awscc_appconfig_deployment (Data Source) + +Data Source schema for AWS::AppConfig::Deployment + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `application_id` (String) The application ID. +- `configuration_profile_id` (String) The configuration profile ID. +- `configuration_version` (String) The configuration version to deploy. If deploying an AWS AppConfig hosted configuration version, you can specify either the version number or version label. For all other configurations, you must specify the version number. +- `deployment_number` (String) The sequence number of the deployment. +- `deployment_strategy_id` (String) The deployment strategy ID. +- `description` (String) A description of the deployment. +- `dynamic_extension_parameters` (Attributes List) (see [below for nested schema](#nestedatt--dynamic_extension_parameters)) +- `environment_id` (String) The environment ID. +- `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. +- `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `dynamic_extension_parameters` + +Read-Only: + +- `extension_reference` (String) +- `parameter_name` (String) +- `parameter_value` (String) + + + +### Nested Schema for `tags` + +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:. +- `value` (String) The tag value can be up to 256 characters. diff --git a/docs/data-sources/bedrock_agent.md b/docs/data-sources/bedrock_agent.md index 3fae09daf..c3a00c506 100644 --- a/docs/data-sources/bedrock_agent.md +++ b/docs/data-sources/bedrock_agent.md @@ -102,6 +102,7 @@ Read-Only: - `description` (String) Description of function - `name` (String) Name for a resource. - `parameters` (Attributes Map) A map of parameter name and detail (see [below for nested schema](#nestedatt--action_groups--function_schema--functions--parameters)) +- `require_confirmation` (String) ENUM to check if action requires user confirmation ### Nested Schema for `action_groups.function_schema.functions.parameters` diff --git a/docs/data-sources/bedrock_data_source.md b/docs/data-sources/bedrock_data_source.md index 8d78611d9..7fc3067e9 100644 --- a/docs/data-sources/bedrock_data_source.md +++ b/docs/data-sources/bedrock_data_source.md @@ -394,15 +394,25 @@ Read-Only: Read-Only: +- `bedrock_data_automation_configuration` (Attributes) Settings for a Bedrock Data Automation used to parse documents for a data source. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--parsing_configuration--bedrock_data_automation_configuration)) - `bedrock_foundation_model_configuration` (Attributes) Settings for a foundation model used to parse documents for a data source. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--parsing_configuration--bedrock_foundation_model_configuration)) - `parsing_strategy` (String) The parsing strategy for the data source. + +### Nested Schema for `vector_ingestion_configuration.parsing_configuration.bedrock_data_automation_configuration` + +Read-Only: + +- `parsing_modality` (String) Determine how will parsed content be stored. + + ### Nested Schema for `vector_ingestion_configuration.parsing_configuration.bedrock_foundation_model_configuration` Read-Only: - `model_arn` (String) The model's ARN. +- `parsing_modality` (String) Determine how will parsed content be stored. - `parsing_prompt` (Attributes) Instructions for interpreting the contents of a document. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--parsing_configuration--bedrock_foundation_model_configuration--parsing_prompt)) diff --git a/docs/data-sources/bedrock_knowledge_base.md b/docs/data-sources/bedrock_knowledge_base.md index 7dc4f0029..07fcc7db7 100644 --- a/docs/data-sources/bedrock_knowledge_base.md +++ b/docs/data-sources/bedrock_knowledge_base.md @@ -39,9 +39,18 @@ Data Source schema for AWS::Bedrock::KnowledgeBase Read-Only: +- `kendra_knowledge_base_configuration` (Attributes) Configurations for a Kendra knowledge base (see [below for nested schema](#nestedatt--knowledge_base_configuration--kendra_knowledge_base_configuration)) - `type` (String) The type of a knowledge base. - `vector_knowledge_base_configuration` (Attributes) Contains details about the model used to create vector embeddings for the knowledge base. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration)) + +### Nested Schema for `knowledge_base_configuration.kendra_knowledge_base_configuration` + +Read-Only: + +- `kendra_index_arn` (String) Arn of a Kendra index + + ### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration` @@ -49,6 +58,7 @@ Read-Only: - `embedding_model_arn` (String) The ARN of the model used to create vector embeddings for the knowledge base. - `embedding_model_configuration` (Attributes) The embeddings model configuration details for the vector model used in Knowledge Base. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--embedding_model_configuration)) +- `supplemental_data_storage_configuration` (Attributes) Configurations for supplemental data storage. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--supplemental_data_storage_configuration)) ### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.embedding_model_configuration` @@ -66,6 +76,31 @@ Read-Only: + +### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.supplemental_data_storage_configuration` + +Read-Only: + +- `supplemental_data_storage_locations` (Attributes List) List of supplemental data storage locations. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--supplemental_data_storage_configuration--supplemental_data_storage_locations)) + + +### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.supplemental_data_storage_configuration.supplemental_data_storage_locations` + +Read-Only: + +- `s3_location` (Attributes) An Amazon S3 location. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--supplemental_data_storage_configuration--supplemental_data_storage_locations--s3_location)) +- `supplemental_data_storage_location_type` (String) Supplemental data storage location type. + + +### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.supplemental_data_storage_configuration.supplemental_data_storage_locations.s3_location` + +Read-Only: + +- `uri` (String) The location's URI + + + + diff --git a/docs/data-sources/bedrock_prompt.md b/docs/data-sources/bedrock_prompt.md index ece76a5c4..f6665c5be 100644 --- a/docs/data-sources/bedrock_prompt.md +++ b/docs/data-sources/bedrock_prompt.md @@ -38,12 +38,29 @@ Data Source schema for AWS::Bedrock::Prompt Read-Only: +- `gen_ai_resource` (Attributes) Target resource to invoke with Prompt (see [below for nested schema](#nestedatt--variants--gen_ai_resource)) - `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration)) - `model_id` (String) ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models. - `name` (String) Name for a variant. - `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--variants--template_configuration)) - `template_type` (String) Prompt template type + +### Nested Schema for `variants.gen_ai_resource` + +Read-Only: + +- `agent` (Attributes) Target Agent to invoke with Prompt (see [below for nested schema](#nestedatt--variants--gen_ai_resource--agent)) + + +### Nested Schema for `variants.gen_ai_resource.agent` + +Read-Only: + +- `agent_identifier` (String) Arn representation of the Agent Alias. + + + ### Nested Schema for `variants.inference_configuration` @@ -68,8 +85,106 @@ Read-Only: Read-Only: +- `chat` (Attributes) Configuration for chat prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--chat)) - `text` (Attributes) Configuration for text prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--text)) + +### Nested Schema for `variants.template_configuration.chat` + +Read-Only: + +- `input_variables` (Attributes List) List of input variables (see [below for nested schema](#nestedatt--variants--template_configuration--chat--input_variables)) +- `messages` (Attributes List) List of messages for chat prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--chat--messages)) +- `system` (Attributes List) Configuration for chat prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--chat--system)) +- `tool_configuration` (Attributes) Tool configuration (see [below for nested schema](#nestedatt--variants--template_configuration--chat--tool_configuration)) + + +### Nested Schema for `variants.template_configuration.chat.input_variables` + +Read-Only: + +- `name` (String) Name for an input variable + + + +### Nested Schema for `variants.template_configuration.chat.messages` + +Read-Only: + +- `content` (Attributes List) List of Content Blocks (see [below for nested schema](#nestedatt--variants--template_configuration--chat--messages--content)) +- `role` (String) Conversation roles for the chat prompt + + +### Nested Schema for `variants.template_configuration.chat.messages.content` + +Read-Only: + +- `text` (String) Configuration for chat prompt template + + + + +### Nested Schema for `variants.template_configuration.chat.system` + +Read-Only: + +- `text` (String) Configuration for chat prompt template + + + +### Nested Schema for `variants.template_configuration.chat.tool_configuration` + +Read-Only: + +- `tool_choice` (Attributes) Tool choice (see [below for nested schema](#nestedatt--variants--template_configuration--chat--tool_configuration--tool_choice)) +- `tools` (Attributes List) List of Tools (see [below for nested schema](#nestedatt--variants--template_configuration--chat--tool_configuration--tools)) + + +### Nested Schema for `variants.template_configuration.chat.tool_configuration.tool_choice` + +Read-Only: + +- `any` (String) Any Tool choice +- `auto` (String) Auto Tool choice +- `tool` (Attributes) Specific Tool choice (see [below for nested schema](#nestedatt--variants--template_configuration--chat--tool_configuration--tool_choice--tool)) + + +### Nested Schema for `variants.template_configuration.chat.tool_configuration.tool_choice.tool` + +Read-Only: + +- `name` (String) Tool name + + + + +### Nested Schema for `variants.template_configuration.chat.tool_configuration.tools` + +Read-Only: + +- `tool_spec` (Attributes) Tool specification (see [below for nested schema](#nestedatt--variants--template_configuration--chat--tool_configuration--tools--tool_spec)) + + +### Nested Schema for `variants.template_configuration.chat.tool_configuration.tools.tool_spec` + +Read-Only: + +- `description` (String) +- `input_schema` (Attributes) Tool input schema (see [below for nested schema](#nestedatt--variants--template_configuration--chat--tool_configuration--tools--tool_spec--input_schema)) +- `name` (String) Tool name + + +### Nested Schema for `variants.template_configuration.chat.tool_configuration.tools.tool_spec.input_schema` + +Read-Only: + +- `json` (String) + + + + + + ### Nested Schema for `variants.template_configuration.text` diff --git a/docs/data-sources/cleanrooms_collaboration.md b/docs/data-sources/cleanrooms_collaboration.md index 90fc5bc5c..c6d575c3a 100644 --- a/docs/data-sources/cleanrooms_collaboration.md +++ b/docs/data-sources/cleanrooms_collaboration.md @@ -26,6 +26,7 @@ Data Source schema for AWS::CleanRooms::Collaboration - `collaboration_identifier` (String) - `creator_display_name` (String) - `creator_member_abilities` (Set of String) +- `creator_ml_member_abilities` (Attributes) (see [below for nested schema](#nestedatt--creator_ml_member_abilities)) - `creator_payment_configuration` (Attributes) (see [below for nested schema](#nestedatt--creator_payment_configuration)) - `data_encryption_metadata` (Attributes) (see [below for nested schema](#nestedatt--data_encryption_metadata)) - `description` (String) @@ -34,13 +35,47 @@ Data Source schema for AWS::CleanRooms::Collaboration - `query_log_status` (String) - `tags` (Attributes Set) An arbitrary set of tags (key-value pairs) for this cleanrooms collaboration. (see [below for nested schema](#nestedatt--tags)) + +### Nested Schema for `creator_ml_member_abilities` + +Read-Only: + +- `custom_ml_member_abilities` (Set of String) + + ### Nested Schema for `creator_payment_configuration` Read-Only: +- `machine_learning` (Attributes) (see [below for nested schema](#nestedatt--creator_payment_configuration--machine_learning)) - `query_compute` (Attributes) (see [below for nested schema](#nestedatt--creator_payment_configuration--query_compute)) + +### Nested Schema for `creator_payment_configuration.machine_learning` + +Read-Only: + +- `model_inference` (Attributes) (see [below for nested schema](#nestedatt--creator_payment_configuration--machine_learning--model_inference)) +- `model_training` (Attributes) (see [below for nested schema](#nestedatt--creator_payment_configuration--machine_learning--model_training)) + + +### Nested Schema for `creator_payment_configuration.machine_learning.model_inference` + +Read-Only: + +- `is_responsible` (Boolean) + + + +### Nested Schema for `creator_payment_configuration.machine_learning.model_training` + +Read-Only: + +- `is_responsible` (Boolean) + + + ### Nested Schema for `creator_payment_configuration.query_compute` @@ -69,15 +104,50 @@ Read-Only: - `account_id` (String) - `display_name` (String) - `member_abilities` (Set of String) +- `ml_member_abilities` (Attributes) (see [below for nested schema](#nestedatt--members--ml_member_abilities)) - `payment_configuration` (Attributes) (see [below for nested schema](#nestedatt--members--payment_configuration)) + +### Nested Schema for `members.ml_member_abilities` + +Read-Only: + +- `custom_ml_member_abilities` (Set of String) + + ### Nested Schema for `members.payment_configuration` Read-Only: +- `machine_learning` (Attributes) (see [below for nested schema](#nestedatt--members--payment_configuration--machine_learning)) - `query_compute` (Attributes) (see [below for nested schema](#nestedatt--members--payment_configuration--query_compute)) + +### Nested Schema for `members.payment_configuration.machine_learning` + +Read-Only: + +- `model_inference` (Attributes) (see [below for nested schema](#nestedatt--members--payment_configuration--machine_learning--model_inference)) +- `model_training` (Attributes) (see [below for nested schema](#nestedatt--members--payment_configuration--machine_learning--model_training)) + + +### Nested Schema for `members.payment_configuration.machine_learning.model_inference` + +Read-Only: + +- `is_responsible` (Boolean) + + + +### Nested Schema for `members.payment_configuration.machine_learning.model_training` + +Read-Only: + +- `is_responsible` (Boolean) + + + ### Nested Schema for `members.payment_configuration.query_compute` diff --git a/docs/data-sources/cleanrooms_membership.md b/docs/data-sources/cleanrooms_membership.md index 03bb9bf41..fffa1d014 100644 --- a/docs/data-sources/cleanrooms_membership.md +++ b/docs/data-sources/cleanrooms_membership.md @@ -64,8 +64,34 @@ Read-Only: Read-Only: +- `machine_learning` (Attributes) (see [below for nested schema](#nestedatt--payment_configuration--machine_learning)) - `query_compute` (Attributes) (see [below for nested schema](#nestedatt--payment_configuration--query_compute)) + +### Nested Schema for `payment_configuration.machine_learning` + +Read-Only: + +- `model_inference` (Attributes) (see [below for nested schema](#nestedatt--payment_configuration--machine_learning--model_inference)) +- `model_training` (Attributes) (see [below for nested schema](#nestedatt--payment_configuration--machine_learning--model_training)) + + +### Nested Schema for `payment_configuration.machine_learning.model_inference` + +Read-Only: + +- `is_responsible` (Boolean) + + + +### Nested Schema for `payment_configuration.machine_learning.model_training` + +Read-Only: + +- `is_responsible` (Boolean) + + + ### Nested Schema for `payment_configuration.query_compute` diff --git a/docs/data-sources/cloudfront_anycast_ip_lists.md b/docs/data-sources/cloudfront_anycast_ip_lists.md new file mode 100644 index 000000000..30901a11b --- /dev/null +++ b/docs/data-sources/cloudfront_anycast_ip_lists.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_cloudfront_anycast_ip_lists Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::CloudFront::AnycastIpList +--- + +# awscc_cloudfront_anycast_ip_lists (Data Source) + +Plural Data Source schema for AWS::CloudFront::AnycastIpList + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/customerprofiles_event_trigger.md b/docs/data-sources/customerprofiles_event_trigger.md new file mode 100644 index 000000000..84d78cdcd --- /dev/null +++ b/docs/data-sources/customerprofiles_event_trigger.md @@ -0,0 +1,89 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_customerprofiles_event_trigger Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::CustomerProfiles::EventTrigger +--- + +# awscc_customerprofiles_event_trigger (Data Source) + +Data Source schema for AWS::CustomerProfiles::EventTrigger + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `created_at` (String) The timestamp of when the event trigger was created. +- `description` (String) The description of the event trigger. +- `domain_name` (String) The unique name of the domain. +- `event_trigger_conditions` (Attributes List) A list of conditions that determine when an event should trigger the destination. (see [below for nested schema](#nestedatt--event_trigger_conditions)) +- `event_trigger_limits` (Attributes) Defines limits controlling whether an event triggers the destination, based on ingestion latency and the number of invocations per profile over specific time periods. (see [below for nested schema](#nestedatt--event_trigger_limits)) +- `event_trigger_name` (String) The unique name of the event trigger. +- `last_updated_at` (String) The timestamp of when the event trigger was most recently updated. +- `object_type_name` (String) The unique name of the object type. +- `segment_filter` (String) The destination is triggered only for profiles that meet the criteria of a segment definition. +- `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `event_trigger_conditions` + +Read-Only: + +- `event_trigger_dimensions` (Attributes List) A list of dimensions to be evaluated for the event. (see [below for nested schema](#nestedatt--event_trigger_conditions--event_trigger_dimensions)) +- `logical_operator` (String) The operator used to combine multiple dimensions. + + +### Nested Schema for `event_trigger_conditions.event_trigger_dimensions` + +Read-Only: + +- `object_attributes` (Attributes List) A list of object attributes to be evaluated. (see [below for nested schema](#nestedatt--event_trigger_conditions--event_trigger_dimensions--object_attributes)) + + +### Nested Schema for `event_trigger_conditions.event_trigger_dimensions.object_attributes` + +Read-Only: + +- `comparison_operator` (String) The operator used to compare an attribute against a list of values. +- `field_name` (String) A field defined within an object type. +- `source` (String) An attribute contained within a source object. +- `values` (List of String) A list of attribute values used for comparison. + + + + + +### Nested Schema for `event_trigger_limits` + +Read-Only: + +- `event_expiration` (Number) Specifies that an event will only trigger the destination if it is processed within a certain latency period. +- `periods` (Attributes List) A list of time periods during which the limits apply. (see [below for nested schema](#nestedatt--event_trigger_limits--periods)) + + +### Nested Schema for `event_trigger_limits.periods` + +Read-Only: + +- `max_invocations_per_profile` (Number) The maximum allowed number of destination invocations per profile. +- `unit` (String) The unit of time. +- `unlimited` (Boolean) If set to true, there is no limit on the number of destination invocations per profile. The default is false. +- `value` (Number) The amount of time of the specified unit. + + + + +### 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/datazone_data_source.md b/docs/data-sources/datazone_data_source.md index e25ee7178..51cd1bebb 100644 --- a/docs/data-sources/datazone_data_source.md +++ b/docs/data-sources/datazone_data_source.md @@ -62,6 +62,7 @@ Read-Only: - `glue_run_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--glue_run_configuration)) - `redshift_run_configuration` (Attributes) The configuration details of the Amazon Redshift data source. (see [below for nested schema](#nestedatt--configuration--redshift_run_configuration)) +- `sage_maker_run_configuration` (Attributes) The configuration details of the Amazon SageMaker data source. (see [below for nested schema](#nestedatt--configuration--sage_maker_run_configuration)) ### Nested Schema for `configuration.glue_run_configuration` @@ -155,6 +156,14 @@ Read-Only: + +### Nested Schema for `configuration.sage_maker_run_configuration` + +Read-Only: + +- `tracking_assets` (Map of List of String) The tracking assets of the Amazon SageMaker run. + + ### Nested Schema for `recommendation` diff --git a/docs/data-sources/dms_data_provider.md b/docs/data-sources/dms_data_provider.md index a20cff6f6..2bddc8296 100644 --- a/docs/data-sources/dms_data_provider.md +++ b/docs/data-sources/dms_data_provider.md @@ -36,10 +36,37 @@ Data Source schema for AWS::DMS::DataProvider Read-Only: +- `doc_db_settings` (Attributes) DocDbSettings property identifier. (see [below for nested schema](#nestedatt--settings--doc_db_settings)) +- `maria_db_settings` (Attributes) MariaDbSettings property identifier. (see [below for nested schema](#nestedatt--settings--maria_db_settings)) - `microsoft_sql_server_settings` (Attributes) MicrosoftSqlServerSettings property identifier. (see [below for nested schema](#nestedatt--settings--microsoft_sql_server_settings)) +- `mongo_db_settings` (Attributes) MongoDbSettings property identifier. (see [below for nested schema](#nestedatt--settings--mongo_db_settings)) - `my_sql_settings` (Attributes) MySqlSettings property identifier. (see [below for nested schema](#nestedatt--settings--my_sql_settings)) - `oracle_settings` (Attributes) OracleSettings property identifier. (see [below for nested schema](#nestedatt--settings--oracle_settings)) - `postgre_sql_settings` (Attributes) PostgreSqlSettings property identifier. (see [below for nested schema](#nestedatt--settings--postgre_sql_settings)) +- `redshift_settings` (Attributes) RedshiftSettings property identifier. (see [below for nested schema](#nestedatt--settings--redshift_settings)) + + +### Nested Schema for `settings.doc_db_settings` + +Read-Only: + +- `certificate_arn` (String) +- `database_name` (String) +- `port` (Number) +- `server_name` (String) +- `ssl_mode` (String) + + + +### Nested Schema for `settings.maria_db_settings` + +Read-Only: + +- `certificate_arn` (String) +- `port` (Number) +- `server_name` (String) +- `ssl_mode` (String) + ### Nested Schema for `settings.microsoft_sql_server_settings` @@ -53,6 +80,21 @@ Read-Only: - `ssl_mode` (String) + +### Nested Schema for `settings.mongo_db_settings` + +Read-Only: + +- `auth_mechanism` (String) +- `auth_source` (String) +- `auth_type` (String) +- `certificate_arn` (String) +- `database_name` (String) +- `port` (Number) +- `server_name` (String) +- `ssl_mode` (String) + + ### Nested Schema for `settings.my_sql_settings` @@ -93,6 +135,16 @@ Read-Only: - `ssl_mode` (String) + +### Nested Schema for `settings.redshift_settings` + +Read-Only: + +- `database_name` (String) +- `port` (Number) +- `server_name` (String) + + ### Nested Schema for `tags` diff --git a/docs/data-sources/dynamodb_global_table.md b/docs/data-sources/dynamodb_global_table.md index 41662093b..e8bb4cd0b 100644 --- a/docs/data-sources/dynamodb_global_table.md +++ b/docs/data-sources/dynamodb_global_table.md @@ -27,6 +27,7 @@ Data Source schema for AWS::DynamoDB::GlobalTable - `global_secondary_indexes` (Attributes Set) (see [below for nested schema](#nestedatt--global_secondary_indexes)) - `key_schema` (Attributes List) (see [below for nested schema](#nestedatt--key_schema)) - `local_secondary_indexes` (Attributes Set) (see [below for nested schema](#nestedatt--local_secondary_indexes)) +- `point_in_time_recovery_specification` (Attributes) (see [below for nested schema](#nestedatt--point_in_time_recovery_specification)) - `replicas` (Attributes Set) (see [below for nested schema](#nestedatt--replicas)) - `sse_specification` (Attributes) (see [below for nested schema](#nestedatt--sse_specification)) - `stream_arn` (String) @@ -162,6 +163,15 @@ Read-Only: + +### Nested Schema for `point_in_time_recovery_specification` + +Read-Only: + +- `point_in_time_recovery_enabled` (Boolean) +- `recovery_period_in_days` (Number) + + ### Nested Schema for `replicas` @@ -262,6 +272,7 @@ Read-Only: Read-Only: - `point_in_time_recovery_enabled` (Boolean) +- `recovery_period_in_days` (Number) diff --git a/docs/data-sources/dynamodb_table.md b/docs/data-sources/dynamodb_table.md index df6558fcc..1faa7920b 100644 --- a/docs/data-sources/dynamodb_table.md +++ b/docs/data-sources/dynamodb_table.md @@ -279,6 +279,7 @@ Read-Only: Read-Only: - `point_in_time_recovery_enabled` (Boolean) Indicates whether point in time recovery is enabled (true) or disabled (false) on the table. +- `recovery_period_in_days` (Number) diff --git a/docs/data-sources/ec2_vpc_cidr_block.md b/docs/data-sources/ec2_vpc_cidr_block.md index 06e0b4e4f..68ccbc115 100644 --- a/docs/data-sources/ec2_vpc_cidr_block.md +++ b/docs/data-sources/ec2_vpc_cidr_block.md @@ -28,6 +28,7 @@ Data Source schema for AWS::EC2::VPCCidrBlock - `ipv_4_netmask_length` (Number) The netmask length of the IPv4 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool. - `ipv_6_address_attribute` (String) The value denoting whether an IPv6 VPC CIDR Block is public or private. - `ipv_6_cidr_block` (String) An IPv6 CIDR block from the IPv6 address pool. +- `ipv_6_cidr_block_network_border_group` (String) The name of the location from which we advertise the IPV6 CIDR block. - `ipv_6_ipam_pool_id` (String) The ID of the IPv6 IPAM pool to Associate a CIDR from to a VPC. - `ipv_6_netmask_length` (Number) The netmask length of the IPv6 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool. - `ipv_6_pool` (String) The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block. diff --git a/docs/data-sources/ec2_vpc_endpoint.md b/docs/data-sources/ec2_vpc_endpoint.md index dc64390d8..2b459ced5 100644 --- a/docs/data-sources/ec2_vpc_endpoint.md +++ b/docs/data-sources/ec2_vpc_endpoint.md @@ -39,6 +39,7 @@ Data Source schema for AWS::EC2::VPCEndpoint - `service_name` (String) The name of the endpoint service. - `service_network_arn` (String) - `subnet_ids` (Set of String) The IDs of the subnets in which to create endpoint network interfaces. You must specify this property for an interface endpoint or a Gateway Load Balancer endpoint. You can't specify this property for a gateway endpoint. For a Gateway Load Balancer endpoint, you can specify only one subnet. +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) - `vpc_endpoint_id` (String) - `vpc_endpoint_type` (String) The type of endpoint. Default: Gateway @@ -51,3 +52,12 @@ Read-Only: - `dns_record_ip_type` (String) - `private_dns_only_for_inbound_resolver_endpoint` (String) + + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/ec2_vpc_endpoint_service.md b/docs/data-sources/ec2_vpc_endpoint_service.md index 3d1924b83..ba1eb6614 100644 --- a/docs/data-sources/ec2_vpc_endpoint_service.md +++ b/docs/data-sources/ec2_vpc_endpoint_service.md @@ -27,3 +27,12 @@ Data Source schema for AWS::EC2::VPCEndpointService - `network_load_balancer_arns` (List of String) - `payer_responsibility` (String) - `service_id` (String) +- `tags` (Attributes List) The tags to add to the VPC endpoint service. (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/ecs_service.md b/docs/data-sources/ecs_service.md index 517199429..2bdf9ed5b 100644 --- a/docs/data-sources/ecs_service.md +++ b/docs/data-sources/ecs_service.md @@ -25,7 +25,7 @@ Data Source schema for AWS::ECS::Service For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide*. - `capacity_provider_strategy` (Attributes List) The capacity provider strategy to use for the service. If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. - A capacity provider strategy may contain a maximum of 6 capacity providers. (see [below for nested schema](#nestedatt--capacity_provider_strategy)) + A capacity provider strategy can contain a maximum of 20 capacity providers. (see [below for nested schema](#nestedatt--capacity_provider_strategy)) - `cluster` (String) The short name or full Amazon Resource Name (ARN) of the cluster that you run your service on. If you do not specify a cluster, the default cluster is assumed. - `deployment_configuration` (Attributes) Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks. (see [below for nested schema](#nestedatt--deployment_configuration)) - `deployment_controller` (Attributes) The deployment controller to use for the service. If no deployment controller is specified, the default value of ``ECS`` is used. (see [below for nested schema](#nestedatt--deployment_controller)) @@ -98,10 +98,12 @@ Read-Only: - `deployment_circuit_breaker` (Attributes) The deployment circuit breaker can only be used for services using the rolling update (``ECS``) deployment type. The *deployment circuit breaker* determines whether a service deployment will fail if the service can't reach a steady state. If you use the deployment circuit breaker, a service deployment will transition to a failed state and stop launching new tasks. If you use the rollback option, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. For more information, see [Rolling update](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html) in the *Amazon Elastic Container Service Developer Guide* (see [below for nested schema](#nestedatt--deployment_configuration--deployment_circuit_breaker)) - `maximum_percent` (Number) If a service is using the rolling update (``ECS``) deployment type, the ``maximumPercent`` parameter represents an upper limit on the number of your service's tasks that are allowed in the ``RUNNING`` or ``PENDING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the ``REPLICA`` service scheduler and has a ``desiredCount`` of four tasks and a ``maximumPercent`` value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default ``maximumPercent`` value for a service using the ``REPLICA`` service scheduler is 200%. + The Amazon ECS scheduler uses this parameter to replace unhealthy tasks by starting replacement tasks first and then stopping the unhealthy tasks, as long as cluster resources for starting replacement tasks are available. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html). If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and tasks in the service use the EC2 launch type, the *maximum percent* value is set to the default value. The *maximum percent* value is used to define the upper limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state. You can't specify a custom ``maximumPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type. - If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service. + If the service uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and the tasks in the service use the Fargate launch type, the maximum percent value is not used. The value is still returned when describing your service. - `minimum_healthy_percent` (Number) If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. + If any tasks are unhealthy and if ``maximumPercent`` doesn't allow the Amazon ECS scheduler to start replacement tasks, the scheduler stops the unhealthy tasks one-by-one — using the ``minimumHealthyPercent`` as a constraint — to clear up capacity to launch replacement tasks. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) . For services that *do not* use a load balancer, the following should be noted: + A service is considered healthy if all essential containers within the tasks in the service pass their health checks. + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total. @@ -240,7 +242,7 @@ Read-Only: When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker. Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``. When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``. - When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. + When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/). When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` - `secret_options` (Attributes List) The secrets to pass to the log configuration. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--service_connect_configuration--log_configuration--secret_options)) diff --git a/docs/data-sources/ecs_task_definition.md b/docs/data-sources/ecs_task_definition.md index f6ec41df1..bec93df8e 100644 --- a/docs/data-sources/ecs_task_definition.md +++ b/docs/data-sources/ecs_task_definition.md @@ -34,7 +34,7 @@ Data Source schema for AWS::ECS::TaskDefinition This option requires Linux platform ``1.4.0`` or later. + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments This option requires Linux platform ``1.4.0`` or later. -- `enable_fault_injection` (Boolean) +- `enable_fault_injection` (Boolean) Enables fault injection and allows for fault injection requests to be accepted from the task's containers. The default value is ``false``. - `ephemeral_storage` (Attributes) The ephemeral storage settings to use for tasks run with the task definition. (see [below for nested schema](#nestedatt--ephemeral_storage)) - `execution_role_arn` (String) The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf. For informationabout the required IAM roles for Amazon ECS, see [IAM roles for Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-ecs-iam-role-overview.html) in the *Amazon Elastic Container Service Developer Guide*. - `family` (String) The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. @@ -375,7 +375,7 @@ Read-Only: When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker. Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``. When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``. - When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. + When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/). When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` - `secret_options` (Attributes List) The secrets to pass to the log configuration. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--container_definitions--log_configuration--secret_options)) diff --git a/docs/data-sources/efs_file_system.md b/docs/data-sources/efs_file_system.md index e51b2196c..caf4896be 100644 --- a/docs/data-sources/efs_file_system.md +++ b/docs/data-sources/efs_file_system.md @@ -70,7 +70,7 @@ Read-Only: - `replication_overwrite_protection` (String) The status of the file system's replication overwrite protection. + ``ENABLED`` ? The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is ``ENABLED`` by default. + ``DISABLED`` ? The file system can be used as the destination file system in a replication configuration. The file system is read-only and can only be modified by EFS replication. - + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is only modified only by EFS replication. + + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is modified only by EFS replication. If the replication configuration is deleted, the file system's replication overwrite protection is re-enabled, the file system becomes writeable. @@ -113,6 +113,6 @@ Read-Only: - `kms_key_id` (String) The ID of an kms-key-long used to protect the encrypted file system. - `region` (String) The AWS-Region in which the destination file system is located. For One Zone file systems, the replication configuration must specify the AWS-Region in which the destination file system is located. -- `role_arn` (String) -- `status` (String) -- `status_message` (String) +- `role_arn` (String) The Amazon Resource Name (ARN) of the current source file system in the replication configuration. +- `status` (String) Describes the status of the replication configuration. For more information about replication status, see [Viewing replication details](https://docs.aws.amazon.com//efs/latest/ug/awsbackup.html#restoring-backup-efsmonitoring-replication-status.html) in the *Amazon EFS User Guide*. +- `status_message` (String) Message that provides details about the ``PAUSED`` or ``ERRROR`` state of the replication destination configuration. For more information about replication status messages, see [Viewing replication details](https://docs.aws.amazon.com//efs/latest/ug/awsbackup.html#restoring-backup-efsmonitoring-replication-status.html) in the *Amazon EFS User Guide*. diff --git a/docs/data-sources/gamelift_container_group_definition.md b/docs/data-sources/gamelift_container_group_definition.md index 106b1060a..ddc6288ff 100644 --- a/docs/data-sources/gamelift_container_group_definition.md +++ b/docs/data-sources/gamelift_container_group_definition.md @@ -21,37 +21,102 @@ Data Source schema for AWS::GameLift::ContainerGroupDefinition ### Read-Only -- `container_definitions` (Attributes Set) A collection of container definitions that define the containers in this group. (see [below for nested schema](#nestedatt--container_definitions)) - `container_group_definition_arn` (String) The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container group resource and uniquely identifies it across all AWS Regions. +- `container_group_type` (String) The scope of the container group - `creation_time` (String) A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057"). +- `game_server_container_definition` (Attributes) Specifies the information required to run game servers with this container group (see [below for nested schema](#nestedatt--game_server_container_definition)) - `name` (String) A descriptive label for the container group definition. - `operating_system` (String) The operating system of the container group -- `scheduling_strategy` (String) Specifies whether the container group includes replica or daemon containers. +- `source_version_number` (Number) A specific ContainerGroupDefinition version to be updated +- `status` (String) A string indicating ContainerGroupDefinition status. +- `status_reason` (String) A string indicating the reason for ContainerGroupDefinition status. +- `support_container_definitions` (Attributes Set) A collection of support container definitions that define the containers in this group. (see [below for nested schema](#nestedatt--support_container_definitions)) - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) -- `total_cpu_limit` (Number) The maximum number of CPU units reserved for this container group. The value is expressed as an integer amount of CPU units. (1 vCPU is equal to 1024 CPU units.) -- `total_memory_limit` (Number) The maximum amount of memory (in MiB) to allocate for this container group. +- `total_memory_limit_mebibytes` (Number) The total memory limit of container groups following this definition in MiB +- `total_vcpu_limit` (Number) The total amount of virtual CPUs on the container group definition +- `version_description` (String) The description of this version +- `version_number` (Number) The version of this ContainerGroupDefinition - -### Nested Schema for `container_definitions` + +### Nested Schema for `game_server_container_definition` Read-Only: -- `command` (List of String) The command that's passed to the container. - `container_name` (String) A descriptive label for the container definition. Container definition names must be unique with a container group definition. -- `cpu` (Number) The maximum number of CPU units reserved for this container. The value is expressed as an integer amount of CPU units. 1 vCPU is equal to 1024 CPU units -- `depends_on` (Attributes List) A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers. (see [below for nested schema](#nestedatt--container_definitions--depends_on)) -- `entry_point` (List of String) The entry point that's passed to the container so that it will run as an executable. If there are multiple arguments, each argument is a string in the array. -- `environment` (Attributes Set) The environment variables to pass to a container. (see [below for nested schema](#nestedatt--container_definitions--environment)) +- `depends_on` (Attributes List) A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers. (see [below for nested schema](#nestedatt--game_server_container_definition--depends_on)) +- `environment_override` (Attributes Set) The environment variables to pass to a container. (see [below for nested schema](#nestedatt--game_server_container_definition--environment_override)) +- `image_uri` (String) Specifies the image URI of this container. +- `mount_points` (Attributes Set) A list of mount point configurations to be used in a container. (see [below for nested schema](#nestedatt--game_server_container_definition--mount_points)) +- `port_configuration` (Attributes) Defines the ports on the container. (see [below for nested schema](#nestedatt--game_server_container_definition--port_configuration)) +- `resolved_image_digest` (String) The digest of the container image. +- `server_sdk_version` (String) The version of the server SDK used in this container group + + +### Nested Schema for `game_server_container_definition.depends_on` + +Read-Only: + +- `condition` (String) The type of dependency. +- `container_name` (String) A descriptive label for the container definition. The container being defined depends on this container's condition. + + + +### Nested Schema for `game_server_container_definition.environment_override` + +Read-Only: + +- `name` (String) The environment variable name. +- `value` (String) The environment variable value. + + + +### Nested Schema for `game_server_container_definition.mount_points` + +Read-Only: + +- `access_level` (String) The access permissions for the mounted path. +- `container_path` (String) The path inside the container where the mount is accessible. +- `instance_path` (String) The path on the host that will be mounted in the container. + + + +### Nested Schema for `game_server_container_definition.port_configuration` + +Read-Only: + +- `container_port_ranges` (Attributes Set) Specifies one or more ranges of ports on a container. (see [below for nested schema](#nestedatt--game_server_container_definition--port_configuration--container_port_ranges)) + + +### Nested Schema for `game_server_container_definition.port_configuration.container_port_ranges` + +Read-Only: + +- `from_port` (Number) A starting value for the range of allowed port numbers. +- `protocol` (String) Defines the protocol of these ports. +- `to_port` (Number) An ending value for the range of allowed port numbers. Port numbers are end-inclusive. This value must be equal to or greater than FromPort. + + + + + +### Nested Schema for `support_container_definitions` + +Read-Only: + +- `container_name` (String) A descriptive label for the container definition. +- `depends_on` (Attributes List) A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers. (see [below for nested schema](#nestedatt--support_container_definitions--depends_on)) +- `environment_override` (Attributes Set) The environment variables to pass to a container. (see [below for nested schema](#nestedatt--support_container_definitions--environment_override)) - `essential` (Boolean) Specifies if the container is essential. If an essential container fails a health check, then all containers in the container group will be restarted. You must specify exactly 1 essential container in a container group. -- `health_check` (Attributes) Specifies how the health of the containers will be checked. (see [below for nested schema](#nestedatt--container_definitions--health_check)) +- `health_check` (Attributes) Specifies how the health of the containers will be checked. (see [below for nested schema](#nestedatt--support_container_definitions--health_check)) - `image_uri` (String) Specifies the image URI of this container. -- `memory_limits` (Attributes) Specifies how much memory is available to the container. You must specify at least this parameter or the TotalMemoryLimit parameter of the ContainerGroupDefinition. (see [below for nested schema](#nestedatt--container_definitions--memory_limits)) -- `port_configuration` (Attributes) Defines the ports on the container. (see [below for nested schema](#nestedatt--container_definitions--port_configuration)) +- `memory_hard_limit_mebibytes` (Number) The total memory limit of container groups following this definition in MiB +- `mount_points` (Attributes Set) A list of mount point configurations to be used in a container. (see [below for nested schema](#nestedatt--support_container_definitions--mount_points)) +- `port_configuration` (Attributes) Defines the ports on the container. (see [below for nested schema](#nestedatt--support_container_definitions--port_configuration)) - `resolved_image_digest` (String) The digest of the container image. -- `working_directory` (String) The working directory to run commands inside the container in. +- `vcpu` (Number) The number of virtual CPUs to give to the support group - -### Nested Schema for `container_definitions.depends_on` + +### Nested Schema for `support_container_definitions.depends_on` Read-Only: @@ -59,8 +124,8 @@ Read-Only: - `container_name` (String) A descriptive label for the container definition. The container being defined depends on this container's condition. - -### Nested Schema for `container_definitions.environment` + +### Nested Schema for `support_container_definitions.environment_override` Read-Only: @@ -68,8 +133,8 @@ Read-Only: - `value` (String) The environment variable value. - -### Nested Schema for `container_definitions.health_check` + +### Nested Schema for `support_container_definitions.health_check` Read-Only: @@ -80,24 +145,25 @@ Read-Only: - `timeout` (Number) How many seconds the process manager allows the command to run before canceling it. - -### Nested Schema for `container_definitions.memory_limits` + +### Nested Schema for `support_container_definitions.mount_points` Read-Only: -- `hard_limit` (Number) The hard limit of memory to reserve for the container. -- `soft_limit` (Number) The amount of memory that is reserved for the container. +- `access_level` (String) The access permissions for the mounted path. +- `container_path` (String) The path inside the container where the mount is accessible. +- `instance_path` (String) The path on the host that will be mounted in the container. - -### Nested Schema for `container_definitions.port_configuration` + +### Nested Schema for `support_container_definitions.port_configuration` Read-Only: -- `container_port_ranges` (Attributes Set) Specifies one or more ranges of ports on a container. (see [below for nested schema](#nestedatt--container_definitions--port_configuration--container_port_ranges)) +- `container_port_ranges` (Attributes Set) Specifies one or more ranges of ports on a container. (see [below for nested schema](#nestedatt--support_container_definitions--port_configuration--container_port_ranges)) - -### Nested Schema for `container_definitions.port_configuration.container_port_ranges` + +### Nested Schema for `support_container_definitions.port_configuration.container_port_ranges` Read-Only: diff --git a/docs/data-sources/imagebuilder_image.md b/docs/data-sources/imagebuilder_image.md index 68128ad57..b0e47c87b 100644 --- a/docs/data-sources/imagebuilder_image.md +++ b/docs/data-sources/imagebuilder_image.md @@ -50,7 +50,7 @@ Read-Only: Read-Only: - `container_tags` (List of String) Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images. -- `repository_name` (String) The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don?t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images. +- `repository_name` (String) The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don’t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images. diff --git a/docs/data-sources/logs_metric_filter.md b/docs/data-sources/logs_metric_filter.md index 34698fdad..38705b77c 100644 --- a/docs/data-sources/logs_metric_filter.md +++ b/docs/data-sources/logs_metric_filter.md @@ -21,7 +21,8 @@ Data Source schema for AWS::Logs::MetricFilter ### Read-Only -- `apply_on_transformed_logs` (Boolean) +- `apply_on_transformed_logs` (Boolean) This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html). + If this value is ``true``, the metric filter is applied on the transformed version of the log events instead of the original ingested log events. - `filter_name` (String) The name of the metric filter. - `filter_pattern` (String) A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). - `log_group_name` (String) The name of an existing log group that you want to associate with this metric filter. diff --git a/docs/data-sources/logs_subscription_filter.md b/docs/data-sources/logs_subscription_filter.md index 6e1b8e526..7aa2e7e23 100644 --- a/docs/data-sources/logs_subscription_filter.md +++ b/docs/data-sources/logs_subscription_filter.md @@ -21,7 +21,8 @@ Data Source schema for AWS::Logs::SubscriptionFilter ### Read-Only -- `apply_on_transformed_logs` (Boolean) +- `apply_on_transformed_logs` (Boolean) This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html). + If this value is ``true``, the subscription filter is applied on the transformed version of the log events instead of the original ingested log events. - `destination_arn` (String) The Amazon Resource Name (ARN) of the destination. - `distribution` (String) The method used to distribute log data to the destination, which can be either random or grouped by log stream. - `filter_name` (String) The name of the subscription filter. diff --git a/docs/data-sources/mediaconnect_bridge.md b/docs/data-sources/mediaconnect_bridge.md index 9a72f81ed..a8a6b7cce 100644 --- a/docs/data-sources/mediaconnect_bridge.md +++ b/docs/data-sources/mediaconnect_bridge.md @@ -119,7 +119,15 @@ Read-Only: Read-Only: - `multicast_ip` (String) The network source multicast IP. +- `multicast_source_settings` (Attributes) The settings related to the multicast source. (see [below for nested schema](#nestedatt--sources--network_source--multicast_source_settings)) - `name` (String) The name of the network source. - `network_name` (String) The network source's gateway network name. - `port` (Number) The network source port. - `protocol` (String) The network source protocol. + + +### Nested Schema for `sources.network_source.multicast_source_settings` + +Read-Only: + +- `multicast_source_ip` (String) The IP address of the source for source-specific multicast (SSM). diff --git a/docs/data-sources/mediaconnect_bridge_source.md b/docs/data-sources/mediaconnect_bridge_source.md index 962fd1704..3aef0cbc2 100644 --- a/docs/data-sources/mediaconnect_bridge_source.md +++ b/docs/data-sources/mediaconnect_bridge_source.md @@ -49,6 +49,14 @@ Read-Only: Read-Only: - `multicast_ip` (String) The network source multicast IP. +- `multicast_source_settings` (Attributes) The settings related to the multicast source. (see [below for nested schema](#nestedatt--network_source--multicast_source_settings)) - `network_name` (String) The network source's gateway network name. - `port` (Number) The network source port. - `protocol` (String) The network source protocol. + + +### Nested Schema for `network_source.multicast_source_settings` + +Read-Only: + +- `multicast_source_ip` (String) The IP address of the source for source-specific multicast (SSM). diff --git a/docs/data-sources/quicksight_custom_permissions.md b/docs/data-sources/quicksight_custom_permissions.md new file mode 100644 index 000000000..5eb7dd969 --- /dev/null +++ b/docs/data-sources/quicksight_custom_permissions.md @@ -0,0 +1,60 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_quicksight_custom_permissions Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::QuickSight::CustomPermissions +--- + +# awscc_quicksight_custom_permissions (Data Source) + +Data Source schema for AWS::QuickSight::CustomPermissions + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `arn` (String) +- `aws_account_id` (String) +- `capabilities` (Attributes) (see [below for nested schema](#nestedatt--capabilities)) +- `custom_permissions_name` (String) +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `capabilities` + +Read-Only: + +- `add_or_run_anomaly_detection_for_analyses` (String) +- `create_and_update_dashboard_email_reports` (String) +- `create_and_update_data_sources` (String) +- `create_and_update_datasets` (String) +- `create_and_update_themes` (String) +- `create_and_update_threshold_alerts` (String) +- `create_shared_folders` (String) +- `create_spice_dataset` (String) +- `export_to_csv` (String) +- `export_to_excel` (String) +- `rename_shared_folders` (String) +- `share_analyses` (String) +- `share_dashboards` (String) +- `share_data_sources` (String) +- `share_datasets` (String) +- `subscribe_dashboard_email_reports` (String) +- `view_account_spice_capacity` (String) + + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String)

Tag key.

+- `value` (String)

Tag value.

diff --git a/docs/data-sources/quicksight_custom_permissions_plural.md b/docs/data-sources/quicksight_custom_permissions_plural.md new file mode 100644 index 000000000..5f958c523 --- /dev/null +++ b/docs/data-sources/quicksight_custom_permissions_plural.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_quicksight_custom_permissions_plural Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::QuickSight::CustomPermissions +--- + +# awscc_quicksight_custom_permissions_plural (Data Source) + +Plural Data Source schema for AWS::QuickSight::CustomPermissions + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/rds_db_cluster.md b/docs/data-sources/rds_db_cluster.md index ca9476fbc..1703cce33 100644 --- a/docs/data-sources/rds_db_cluster.md +++ b/docs/data-sources/rds_db_cluster.md @@ -27,7 +27,7 @@ Data Source schema for AWS::RDS::DBCluster - `associated_roles` (Attributes List) Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf. Valid for: Aurora DB clusters and Multi-AZ DB clusters (see [below for nested schema](#nestedatt--associated_roles)) - `auto_minor_version_upgrade` (Boolean) Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically. - Valid for Cluster Type: Multi-AZ DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB cluster - `availability_zones` (List of String) A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see [Choosing the Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html) in the *Amazon Aurora User Guide*. Valid for: Aurora DB clusters only - `backtrack_window` (Number) The target backtrack window, in seconds. To disable backtracking, set this value to ``0``. @@ -44,6 +44,9 @@ Data Source schema for AWS::RDS::DBCluster - `cluster_scalability_type` (String) Specifies the scalability mode of the Aurora DB cluster. When set to ``limitless``, the cluster operates as an Aurora Limitless Database, allowing you to create a DB shard group for horizontal scaling (sharding) capabilities. When set to ``standard`` (the default), the cluster uses normal DB instance creation. - `copy_tags_to_snapshot` (Boolean) A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them. Valid for: Aurora DB clusters and Multi-AZ DB clusters +- `database_insights_mode` (String) The mode of Database Insights to enable for the DB cluster. + If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465. + Valid for Cluster Type: Aurora DB clusters only - `database_name` (String) The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `db_cluster_arn` (String) @@ -96,10 +99,6 @@ Data Source schema for AWS::RDS::DBCluster Valid for Cluster Type: Aurora DB clusters only - `enable_http_endpoint` (Boolean) Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled. When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor. - RDS Data API is supported with the following DB clusters: - + Aurora PostgreSQL Serverless v2 and provisioned - + Aurora PostgreSQL and Aurora MySQL Serverless v1 - For more information, see [Using RDS Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*. Valid for Cluster Type: Aurora DB clusters only - `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. @@ -175,18 +174,19 @@ Data Source schema for AWS::RDS::DBCluster If you specify the ``SourceDBClusterIdentifier``, ``SnapshotIdentifier``, or ``GlobalClusterIdentifier`` property, don't specify this property. The value is inherited from the source DB cluster, the snapshot, or the primary DB cluster for the global database cluster, respectively. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `master_user_secret` (Attributes) The secret managed by RDS in AWS Secrets Manager for the master user password. - For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.* (see [below for nested schema](#nestedatt--master_user_secret)) + When you restore a DB cluster from a snapshot, Amazon RDS generates a new secret instead of reusing the secret specified in the ``SecretArn`` property. This ensures that the restored DB cluster is securely managed with a dedicated secret. To maintain consistent integration with your application, you might need to update resource configurations to reference the newly created secret. + For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.* (see [below for nested schema](#nestedatt--master_user_secret)) - `master_username` (String) The name of the master user for the DB cluster. If you specify the ``SourceDBClusterIdentifier``, ``SnapshotIdentifier``, or ``GlobalClusterIdentifier`` property, don't specify this property. The value is inherited from the source DB cluster, the snapshot, or the primary DB cluster for the global database cluster, respectively. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `monitoring_interval` (Number) The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify ``0``. If ``MonitoringRoleArn`` is specified, also set ``MonitoringInterval`` to a value other than ``0``. - Valid for Cluster Type: Multi-AZ DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` Default: ``0`` - `monitoring_role_arn` (String) The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting up and enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*. If ``MonitoringInterval`` is set to a value other than ``0``, supply a ``MonitoringRoleArn`` value. - Valid for Cluster Type: Multi-AZ DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters - `network_type` (String) The network type of the DB cluster. Valid values: + ``IPV4`` @@ -197,13 +197,13 @@ Data Source schema for AWS::RDS::DBCluster Valid for: Aurora DB clusters only - `performance_insights_enabled` (Boolean) Specifies whether to turn on Performance Insights for the DB cluster. For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*. - Valid for Cluster Type: Multi-AZ DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters - `performance_insights_kms_key_id` (String) The AWS KMS key identifier for encryption of Performance Insights data. The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. If you don't specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS-account. Your AWS-account has a different default KMS key for each AWS-Region. - Valid for Cluster Type: Multi-AZ DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters - `performance_insights_retention_period` (Number) The number of days to retain Performance Insights data. - Valid for Cluster Type: Multi-AZ DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters Valid Values: + ``7`` + *month* * 31, where *month* is a number of months from 1-23. Examples: ``93`` (3 months * 31), ``341`` (11 months * 31), ``589`` (19 months * 31) @@ -403,7 +403,8 @@ Read-Only: The maximum capacity must be higher than 0.5 ACUs. For more information, see [Choosing the maximum Aurora Serverless v2 capacity setting for a cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.setting-capacity.html#aurora-serverless-v2.max_capacity_considerations) in the *Amazon Aurora User Guide*. Aurora automatically sets certain parameters for Aurora Serverless V2 DB instances to values that depend on the maximum ACU value in the capacity range. When you update the maximum capacity value, the ``ParameterApplyStatus`` value for the DB instance changes to ``pending-reboot``. You can update the parameter values by rebooting the DB instance after changing the capacity range. - `min_capacity` (Number) The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. For Aurora versions that support the Aurora Serverless v2 auto-pause feature, the smallest value that you can use is 0. For versions that don't support Aurora Serverless v2 auto-pause, the smallest value that you can use is 0.5. -- `seconds_until_auto_pause` (Number) +- `seconds_until_auto_pause` (Number) Specifies the number of seconds an Aurora Serverless v2 DB instance must be idle before Aurora attempts to automatically pause it. + Specify a value between 300 seconds (five minutes) and 86,400 seconds (one day). The default is 300 seconds. diff --git a/docs/data-sources/rds_db_instance.md b/docs/data-sources/rds_db_instance.md index 49b48151e..82ced527f 100644 --- a/docs/data-sources/rds_db_instance.md +++ b/docs/data-sources/rds_db_instance.md @@ -114,6 +114,7 @@ Data Source schema for AWS::RDS::DBInstance + The instance profile name and the associated IAM role name must start with the prefix ``AWSRDSCustom``. For the list of permissions required for the IAM role, see [Configure IAM and your VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc) in the *Amazon RDS User Guide*. +- `database_insights_mode` (String) - `db_cluster_identifier` (String) The identifier of the DB cluster that this DB instance will belong to. This setting doesn't apply to RDS Custom DB instances. - `db_cluster_snapshot_identifier` (String) The identifier for the Multi-AZ DB cluster snapshot to restore from. diff --git a/docs/data-sources/resiliencehub_app.md b/docs/data-sources/resiliencehub_app.md index 7085d7c80..75b7439fc 100644 --- a/docs/data-sources/resiliencehub_app.md +++ b/docs/data-sources/resiliencehub_app.md @@ -29,6 +29,7 @@ Data Source schema for AWS::ResilienceHub::App - `event_subscriptions` (Attributes List) The list of events you would like to subscribe and get notification for. (see [below for nested schema](#nestedatt--event_subscriptions)) - `name` (String) Name of the app. - `permission_model` (Attributes) Defines the roles and credentials that AWS Resilience Hub would use while creating the application, importing its resources, and running an assessment. (see [below for nested schema](#nestedatt--permission_model)) +- `regulatory_policy_arn` (String) Amazon Resource Name (ARN) of the Regulatory Policy. - `resiliency_policy_arn` (String) Amazon Resource Name (ARN) of the Resiliency Policy. - `resource_mappings` (Attributes List) An array of ResourceMapping objects. (see [below for nested schema](#nestedatt--resource_mappings)) - `tags` (Map of String) diff --git a/docs/data-sources/sagemaker_domain.md b/docs/data-sources/sagemaker_domain.md index 739631116..203ff673a 100644 --- a/docs/data-sources/sagemaker_domain.md +++ b/docs/data-sources/sagemaker_domain.md @@ -61,6 +61,7 @@ Read-Only: Read-Only: - `efs_file_system_config` (Attributes) (see [below for nested schema](#nestedatt--default_space_settings--custom_file_system_configs--efs_file_system_config)) +- `fsx_lustre_file_system_config` (Attributes) (see [below for nested schema](#nestedatt--default_space_settings--custom_file_system_configs--fsx_lustre_file_system_config)) ### Nested Schema for `default_space_settings.custom_file_system_configs.efs_file_system_config` @@ -71,6 +72,15 @@ Read-Only: - `file_system_path` (String) + +### Nested Schema for `default_space_settings.custom_file_system_configs.fsx_lustre_file_system_config` + +Read-Only: + +- `file_system_id` (String) +- `file_system_path` (String) + + ### Nested Schema for `default_space_settings.custom_posix_user_config` @@ -288,6 +298,7 @@ Read-Only: Read-Only: - `efs_file_system_config` (Attributes) (see [below for nested schema](#nestedatt--default_user_settings--custom_file_system_configs--efs_file_system_config)) +- `fsx_lustre_file_system_config` (Attributes) (see [below for nested schema](#nestedatt--default_user_settings--custom_file_system_configs--fsx_lustre_file_system_config)) ### Nested Schema for `default_user_settings.custom_file_system_configs.efs_file_system_config` @@ -298,6 +309,15 @@ Read-Only: - `file_system_path` (String) + +### Nested Schema for `default_user_settings.custom_file_system_configs.fsx_lustre_file_system_config` + +Read-Only: + +- `file_system_id` (String) +- `file_system_path` (String) + + ### Nested Schema for `default_user_settings.custom_posix_user_config` diff --git a/docs/data-sources/sagemaker_partner_app.md b/docs/data-sources/sagemaker_partner_app.md new file mode 100644 index 000000000..95bdc8551 --- /dev/null +++ b/docs/data-sources/sagemaker_partner_app.md @@ -0,0 +1,60 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_sagemaker_partner_app Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::SageMaker::PartnerApp +--- + +# awscc_sagemaker_partner_app (Data Source) + +Data Source schema for AWS::SageMaker::PartnerApp + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `application_config` (Attributes) A collection of settings that specify the maintenance schedule for the PartnerApp. (see [below for nested schema](#nestedatt--application_config)) +- `arn` (String) The Amazon Resource Name (ARN) of the created PartnerApp. +- `auth_type` (String) The Auth type of PartnerApp. +- `base_url` (String) The AppServerUrl based on app and account-info. +- `client_token` (String) The client token for the PartnerApp. +- `enable_iam_session_based_identity` (Boolean) Enables IAM Session based Identity for PartnerApp. +- `execution_role_arn` (String) The execution role for the user. +- `maintenance_config` (Attributes) A collection of settings that specify the maintenance schedule for the PartnerApp. (see [below for nested schema](#nestedatt--maintenance_config)) +- `name` (String) A name for the PartnerApp. +- `tags` (Attributes List) A list of tags to apply to the PartnerApp. (see [below for nested schema](#nestedatt--tags)) +- `tier` (String) The tier of the PartnerApp. +- `type` (String) The type of PartnerApp. + + +### Nested Schema for `application_config` + +Read-Only: + +- `admin_users` (Set of String) A list of users with administrator privileges for the PartnerApp. +- `arguments` (Map of String) A list of arguments to pass to the PartnerApp. + + + +### Nested Schema for `maintenance_config` + +Read-Only: + +- `maintenance_window_start` (String) The maintenance window start day and time for the PartnerApp. + + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/sagemaker_partner_apps.md b/docs/data-sources/sagemaker_partner_apps.md new file mode 100644 index 000000000..be68563ca --- /dev/null +++ b/docs/data-sources/sagemaker_partner_apps.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_sagemaker_partner_apps Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::SageMaker::PartnerApp +--- + +# awscc_sagemaker_partner_apps (Data Source) + +Plural Data Source schema for AWS::SageMaker::PartnerApp + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/sagemaker_space.md b/docs/data-sources/sagemaker_space.md index b480541a2..bdb1dc626 100644 --- a/docs/data-sources/sagemaker_space.md +++ b/docs/data-sources/sagemaker_space.md @@ -94,6 +94,7 @@ Read-Only: Read-Only: - `efs_file_system` (Attributes) (see [below for nested schema](#nestedatt--space_settings--custom_file_systems--efs_file_system)) +- `fsx_lustre_file_system` (Attributes) (see [below for nested schema](#nestedatt--space_settings--custom_file_systems--fsx_lustre_file_system)) ### Nested Schema for `space_settings.custom_file_systems.efs_file_system` @@ -103,6 +104,14 @@ Read-Only: - `file_system_id` (String) + +### Nested Schema for `space_settings.custom_file_systems.fsx_lustre_file_system` + +Read-Only: + +- `file_system_id` (String) + + ### Nested Schema for `space_settings.jupyter_lab_app_settings` diff --git a/docs/data-sources/sagemaker_user_profile.md b/docs/data-sources/sagemaker_user_profile.md index d0c946458..19899f176 100644 --- a/docs/data-sources/sagemaker_user_profile.md +++ b/docs/data-sources/sagemaker_user_profile.md @@ -115,6 +115,7 @@ Read-Only: Read-Only: - `efs_file_system_config` (Attributes) (see [below for nested schema](#nestedatt--user_settings--custom_file_system_configs--efs_file_system_config)) +- `fsx_lustre_file_system_config` (Attributes) (see [below for nested schema](#nestedatt--user_settings--custom_file_system_configs--fsx_lustre_file_system_config)) ### Nested Schema for `user_settings.custom_file_system_configs.efs_file_system_config` @@ -125,6 +126,15 @@ Read-Only: - `file_system_path` (String) + +### Nested Schema for `user_settings.custom_file_system_configs.fsx_lustre_file_system_config` + +Read-Only: + +- `file_system_id` (String) +- `file_system_path` (String) + + ### Nested Schema for `user_settings.custom_posix_user_config` diff --git a/docs/data-sources/ses_configuration_set.md b/docs/data-sources/ses_configuration_set.md index 59429e039..1620d9ef7 100644 --- a/docs/data-sources/ses_configuration_set.md +++ b/docs/data-sources/ses_configuration_set.md @@ -69,6 +69,7 @@ Read-Only: Read-Only: - `custom_redirect_domain` (String) The domain to use for tracking open and click events. +- `https_policy` (String) The https policy to use for tracking open and click events. diff --git a/docs/data-sources/ses_mail_manager_rule_set.md b/docs/data-sources/ses_mail_manager_rule_set.md index b65541a0b..030f6900a 100644 --- a/docs/data-sources/ses_mail_manager_rule_set.md +++ b/docs/data-sources/ses_mail_manager_rule_set.md @@ -45,6 +45,7 @@ Read-Only: - `add_header` (Attributes) (see [below for nested schema](#nestedatt--rules--actions--add_header)) - `archive` (Attributes) (see [below for nested schema](#nestedatt--rules--actions--archive)) - `deliver_to_mailbox` (Attributes) (see [below for nested schema](#nestedatt--rules--actions--deliver_to_mailbox)) +- `deliver_to_q_business` (Attributes) (see [below for nested schema](#nestedatt--rules--actions--deliver_to_q_business)) - `drop` (String) - `relay` (Attributes) (see [below for nested schema](#nestedatt--rules--actions--relay)) - `replace_recipient` (Attributes) (see [below for nested schema](#nestedatt--rules--actions--replace_recipient)) @@ -79,6 +80,17 @@ Read-Only: - `role_arn` (String) + +### Nested Schema for `rules.actions.deliver_to_q_business` + +Read-Only: + +- `action_failure_policy` (String) +- `application_id` (String) +- `index_id` (String) +- `role_arn` (String) + + ### Nested Schema for `rules.actions.relay` diff --git a/docs/data-sources/synthetics_canary.md b/docs/data-sources/synthetics_canary.md index 7fe2dfa23..154a1cc5b 100644 --- a/docs/data-sources/synthetics_canary.md +++ b/docs/data-sources/synthetics_canary.md @@ -123,6 +123,7 @@ Read-Only: Read-Only: +- `ipv_6_allowed_for_dual_stack` (Boolean) Allow outbound IPv6 traffic on VPC canaries that are connected to dual-stack subnets if set to true - `security_group_ids` (List of String) - `subnet_ids` (List of String) - `vpc_id` (String) diff --git a/docs/data-sources/wisdom_ai_agent.md b/docs/data-sources/wisdom_ai_agent.md index a26fcacbc..b65f3276b 100644 --- a/docs/data-sources/wisdom_ai_agent.md +++ b/docs/data-sources/wisdom_ai_agent.md @@ -27,6 +27,7 @@ Data Source schema for AWS::Wisdom::AIAgent - `assistant_id` (String) - `configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration)) - `description` (String) +- `modified_time_seconds` (Number) - `name` (String) - `tags` (Map of String) - `type` (String) diff --git a/docs/data-sources/wisdom_ai_prompt.md b/docs/data-sources/wisdom_ai_prompt.md index 2150b18dd..000bc0759 100644 --- a/docs/data-sources/wisdom_ai_prompt.md +++ b/docs/data-sources/wisdom_ai_prompt.md @@ -28,6 +28,7 @@ Data Source schema for AWS::Wisdom::AIPrompt - `assistant_id` (String) - `description` (String) - `model_id` (String) +- `modified_time_seconds` (Number) - `name` (String) - `tags` (Map of String) - `template_configuration` (Attributes) (see [below for nested schema](#nestedatt--template_configuration)) diff --git a/docs/resources/appconfig_deployment.md b/docs/resources/appconfig_deployment.md new file mode 100644 index 000000000..e7f13acbe --- /dev/null +++ b/docs/resources/appconfig_deployment.md @@ -0,0 +1,62 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_appconfig_deployment Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::AppConfig::Deployment +--- + +# awscc_appconfig_deployment (Resource) + +Resource Type definition for AWS::AppConfig::Deployment + + + + +## Schema + +### Required + +- `application_id` (String) The application ID. +- `configuration_profile_id` (String) The configuration profile ID. +- `configuration_version` (String) The configuration version to deploy. If deploying an AWS AppConfig hosted configuration version, you can specify either the version number or version label. For all other configurations, you must specify the version number. +- `deployment_strategy_id` (String) The deployment strategy ID. +- `environment_id` (String) The environment ID. + +### Optional + +- `description` (String) A description of the deployment. +- `dynamic_extension_parameters` (Attributes List) (see [below for nested schema](#nestedatt--dynamic_extension_parameters)) +- `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. +- `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `deployment_number` (String) The sequence number of the deployment. +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `dynamic_extension_parameters` + +Optional: + +- `extension_reference` (String) +- `parameter_name` (String) +- `parameter_value` (String) + + + +### Nested Schema for `tags` + +Optional: + +- `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 + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_appconfig_deployment.example "application_id|environment_id|deployment_number" +``` diff --git a/docs/resources/backup_logically_air_gapped_backup_vault.md b/docs/resources/backup_logically_air_gapped_backup_vault.md index 3fd153173..6c19e5b6b 100644 --- a/docs/resources/backup_logically_air_gapped_backup_vault.md +++ b/docs/resources/backup_logically_air_gapped_backup_vault.md @@ -73,14 +73,14 @@ resource "awscc_backup_logically_air_gapped_backup_vault" "example" { - `access_policy` (String) - `backup_vault_tags` (Map of String) - `notifications` (Attributes) (see [below for nested schema](#nestedatt--notifications)) -- `vault_state` (String) -- `vault_type` (String) ### Read-Only - `backup_vault_arn` (String) - `encryption_key_arn` (String) - `id` (String) Uniquely identifies the resource. +- `vault_state` (String) +- `vault_type` (String) ### Nested Schema for `notifications` diff --git a/docs/resources/bedrock_agent.md b/docs/resources/bedrock_agent.md index aad085cd8..9a1e74f12 100644 --- a/docs/resources/bedrock_agent.md +++ b/docs/resources/bedrock_agent.md @@ -169,6 +169,7 @@ Optional: - `description` (String) Description of function - `name` (String) Name for a resource. - `parameters` (Attributes Map) A map of parameter name and detail (see [below for nested schema](#nestedatt--action_groups--function_schema--functions--parameters)) +- `require_confirmation` (String) ENUM to check if action requires user confirmation ### Nested Schema for `action_groups.function_schema.functions.parameters` diff --git a/docs/resources/bedrock_data_source.md b/docs/resources/bedrock_data_source.md index 9ea30bada..db9f6928c 100644 --- a/docs/resources/bedrock_data_source.md +++ b/docs/resources/bedrock_data_source.md @@ -428,15 +428,25 @@ Optional: Optional: +- `bedrock_data_automation_configuration` (Attributes) Settings for a Bedrock Data Automation used to parse documents for a data source. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--parsing_configuration--bedrock_data_automation_configuration)) - `bedrock_foundation_model_configuration` (Attributes) Settings for a foundation model used to parse documents for a data source. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--parsing_configuration--bedrock_foundation_model_configuration)) - `parsing_strategy` (String) The parsing strategy for the data source. + +### Nested Schema for `vector_ingestion_configuration.parsing_configuration.bedrock_data_automation_configuration` + +Optional: + +- `parsing_modality` (String) Determine how will parsed content be stored. + + ### Nested Schema for `vector_ingestion_configuration.parsing_configuration.bedrock_foundation_model_configuration` Optional: - `model_arn` (String) The model's ARN. +- `parsing_modality` (String) Determine how will parsed content be stored. - `parsing_prompt` (Attributes) Instructions for interpreting the contents of a document. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--parsing_configuration--bedrock_foundation_model_configuration--parsing_prompt)) diff --git a/docs/resources/bedrock_knowledge_base.md b/docs/resources/bedrock_knowledge_base.md index ecfc3bf2b..226964176 100644 --- a/docs/resources/bedrock_knowledge_base.md +++ b/docs/resources/bedrock_knowledge_base.md @@ -72,11 +72,11 @@ variable "kb_role_arn" { - `knowledge_base_configuration` (Attributes) Contains details about the embeddings model used for the knowledge base. (see [below for nested schema](#nestedatt--knowledge_base_configuration)) - `name` (String) The name of the knowledge base. - `role_arn` (String) The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ -- `storage_configuration` (Attributes) The vector store service in which the knowledge base is stored. (see [below for nested schema](#nestedatt--storage_configuration)) ### Optional - `description` (String) Description of the Resource. +- `storage_configuration` (Attributes) The vector store service in which the knowledge base is stored. (see [below for nested schema](#nestedatt--storage_configuration)) - `tags` (Map of String) A map of tag keys and values ### Read-Only @@ -95,18 +95,28 @@ variable "kb_role_arn" { Required: - `type` (String) The type of a knowledge base. + +Optional: + +- `kendra_knowledge_base_configuration` (Attributes) Configurations for a Kendra knowledge base (see [below for nested schema](#nestedatt--knowledge_base_configuration--kendra_knowledge_base_configuration)) - `vector_knowledge_base_configuration` (Attributes) Contains details about the model used to create vector embeddings for the knowledge base. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration)) - -### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration` + +### Nested Schema for `knowledge_base_configuration.kendra_knowledge_base_configuration` -Required: +Optional: -- `embedding_model_arn` (String) The ARN of the model used to create vector embeddings for the knowledge base. +- `kendra_index_arn` (String) Arn of a Kendra index + + + +### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration` Optional: +- `embedding_model_arn` (String) The ARN of the model used to create vector embeddings for the knowledge base. - `embedding_model_configuration` (Attributes) The embeddings model configuration details for the vector model used in Knowledge Base. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--embedding_model_configuration)) +- `supplemental_data_storage_configuration` (Attributes) Configurations for supplemental data storage. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--supplemental_data_storage_configuration)) ### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.embedding_model_configuration` @@ -124,14 +134,35 @@ Optional: + +### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.supplemental_data_storage_configuration` +Optional: - -### Nested Schema for `storage_configuration` +- `supplemental_data_storage_locations` (Attributes List) List of supplemental data storage locations. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--supplemental_data_storage_configuration--supplemental_data_storage_locations)) -Required: + +### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.supplemental_data_storage_configuration.supplemental_data_storage_locations` -- `type` (String) The storage type of a knowledge base. +Optional: + +- `s3_location` (Attributes) An Amazon S3 location. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--supplemental_data_storage_configuration--supplemental_data_storage_locations--s3_location)) +- `supplemental_data_storage_location_type` (String) Supplemental data storage location type. + + +### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.supplemental_data_storage_configuration.supplemental_data_storage_locations.s3_location` + +Optional: + +- `uri` (String) The location's URI + + + + + + + +### Nested Schema for `storage_configuration` Optional: @@ -139,6 +170,7 @@ Optional: - `opensearch_serverless_configuration` (Attributes) Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. (see [below for nested schema](#nestedatt--storage_configuration--opensearch_serverless_configuration)) - `pinecone_configuration` (Attributes) Contains the storage configuration of the knowledge base in Pinecone. (see [below for nested schema](#nestedatt--storage_configuration--pinecone_configuration)) - `rds_configuration` (Attributes) Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS. (see [below for nested schema](#nestedatt--storage_configuration--rds_configuration)) +- `type` (String) The storage type of a knowledge base. ### Nested Schema for `storage_configuration.mongo_db_atlas_configuration` diff --git a/docs/resources/bedrock_prompt.md b/docs/resources/bedrock_prompt.md index 54cd9047c..26204fb56 100644 --- a/docs/resources/bedrock_prompt.md +++ b/docs/resources/bedrock_prompt.md @@ -78,12 +78,29 @@ resource "awscc_bedrock_prompt" "example" { Optional: +- `gen_ai_resource` (Attributes) Target resource to invoke with Prompt (see [below for nested schema](#nestedatt--variants--gen_ai_resource)) - `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration)) - `model_id` (String) ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models. - `name` (String) Name for a variant. - `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--variants--template_configuration)) - `template_type` (String) Prompt template type + +### Nested Schema for `variants.gen_ai_resource` + +Optional: + +- `agent` (Attributes) Target Agent to invoke with Prompt (see [below for nested schema](#nestedatt--variants--gen_ai_resource--agent)) + + +### Nested Schema for `variants.gen_ai_resource.agent` + +Optional: + +- `agent_identifier` (String) Arn representation of the Agent Alias. + + + ### Nested Schema for `variants.inference_configuration` @@ -108,8 +125,106 @@ Optional: Optional: +- `chat` (Attributes) Configuration for chat prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--chat)) - `text` (Attributes) Configuration for text prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--text)) + +### Nested Schema for `variants.template_configuration.chat` + +Optional: + +- `input_variables` (Attributes List) List of input variables (see [below for nested schema](#nestedatt--variants--template_configuration--chat--input_variables)) +- `messages` (Attributes List) List of messages for chat prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--chat--messages)) +- `system` (Attributes List) Configuration for chat prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--chat--system)) +- `tool_configuration` (Attributes) Tool configuration (see [below for nested schema](#nestedatt--variants--template_configuration--chat--tool_configuration)) + + +### Nested Schema for `variants.template_configuration.chat.input_variables` + +Optional: + +- `name` (String) Name for an input variable + + + +### Nested Schema for `variants.template_configuration.chat.messages` + +Optional: + +- `content` (Attributes List) List of Content Blocks (see [below for nested schema](#nestedatt--variants--template_configuration--chat--messages--content)) +- `role` (String) Conversation roles for the chat prompt + + +### Nested Schema for `variants.template_configuration.chat.messages.content` + +Optional: + +- `text` (String) Configuration for chat prompt template + + + + +### Nested Schema for `variants.template_configuration.chat.system` + +Optional: + +- `text` (String) Configuration for chat prompt template + + + +### Nested Schema for `variants.template_configuration.chat.tool_configuration` + +Optional: + +- `tool_choice` (Attributes) Tool choice (see [below for nested schema](#nestedatt--variants--template_configuration--chat--tool_configuration--tool_choice)) +- `tools` (Attributes List) List of Tools (see [below for nested schema](#nestedatt--variants--template_configuration--chat--tool_configuration--tools)) + + +### Nested Schema for `variants.template_configuration.chat.tool_configuration.tool_choice` + +Optional: + +- `any` (String) Any Tool choice +- `auto` (String) Auto Tool choice +- `tool` (Attributes) Specific Tool choice (see [below for nested schema](#nestedatt--variants--template_configuration--chat--tool_configuration--tool_choice--tool)) + + +### Nested Schema for `variants.template_configuration.chat.tool_configuration.tool_choice.tool` + +Optional: + +- `name` (String) Tool name + + + + +### Nested Schema for `variants.template_configuration.chat.tool_configuration.tools` + +Optional: + +- `tool_spec` (Attributes) Tool specification (see [below for nested schema](#nestedatt--variants--template_configuration--chat--tool_configuration--tools--tool_spec)) + + +### Nested Schema for `variants.template_configuration.chat.tool_configuration.tools.tool_spec` + +Optional: + +- `description` (String) +- `input_schema` (Attributes) Tool input schema (see [below for nested schema](#nestedatt--variants--template_configuration--chat--tool_configuration--tools--tool_spec--input_schema)) +- `name` (String) Tool name + + +### Nested Schema for `variants.template_configuration.chat.tool_configuration.tools.tool_spec.input_schema` + +Optional: + +- `json` (String) + + + + + + ### Nested Schema for `variants.template_configuration.text` diff --git a/docs/resources/cleanrooms_collaboration.md b/docs/resources/cleanrooms_collaboration.md index b2cce3d73..d1c6284a8 100644 --- a/docs/resources/cleanrooms_collaboration.md +++ b/docs/resources/cleanrooms_collaboration.md @@ -59,6 +59,7 @@ resource "awscc_cleanrooms_collaboration" "example" { ### Optional - `analytics_engine` (String) +- `creator_ml_member_abilities` (Attributes) (see [below for nested schema](#nestedatt--creator_ml_member_abilities)) - `creator_payment_configuration` (Attributes) (see [below for nested schema](#nestedatt--creator_payment_configuration)) - `data_encryption_metadata` (Attributes) (see [below for nested schema](#nestedatt--data_encryption_metadata)) - `tags` (Attributes Set) An arbitrary set of tags (key-value pairs) for this cleanrooms collaboration. (see [below for nested schema](#nestedatt--tags)) @@ -80,15 +81,50 @@ Required: Optional: +- `ml_member_abilities` (Attributes) (see [below for nested schema](#nestedatt--members--ml_member_abilities)) - `payment_configuration` (Attributes) (see [below for nested schema](#nestedatt--members--payment_configuration)) + +### Nested Schema for `members.ml_member_abilities` + +Optional: + +- `custom_ml_member_abilities` (Set of String) + + ### Nested Schema for `members.payment_configuration` Optional: +- `machine_learning` (Attributes) (see [below for nested schema](#nestedatt--members--payment_configuration--machine_learning)) - `query_compute` (Attributes) (see [below for nested schema](#nestedatt--members--payment_configuration--query_compute)) + +### Nested Schema for `members.payment_configuration.machine_learning` + +Optional: + +- `model_inference` (Attributes) (see [below for nested schema](#nestedatt--members--payment_configuration--machine_learning--model_inference)) +- `model_training` (Attributes) (see [below for nested schema](#nestedatt--members--payment_configuration--machine_learning--model_training)) + + +### Nested Schema for `members.payment_configuration.machine_learning.model_inference` + +Optional: + +- `is_responsible` (Boolean) + + + +### Nested Schema for `members.payment_configuration.machine_learning.model_training` + +Optional: + +- `is_responsible` (Boolean) + + + ### Nested Schema for `members.payment_configuration.query_compute` @@ -99,13 +135,47 @@ Optional: + +### Nested Schema for `creator_ml_member_abilities` + +Optional: + +- `custom_ml_member_abilities` (Set of String) + + ### Nested Schema for `creator_payment_configuration` Optional: +- `machine_learning` (Attributes) (see [below for nested schema](#nestedatt--creator_payment_configuration--machine_learning)) - `query_compute` (Attributes) (see [below for nested schema](#nestedatt--creator_payment_configuration--query_compute)) + +### Nested Schema for `creator_payment_configuration.machine_learning` + +Optional: + +- `model_inference` (Attributes) (see [below for nested schema](#nestedatt--creator_payment_configuration--machine_learning--model_inference)) +- `model_training` (Attributes) (see [below for nested schema](#nestedatt--creator_payment_configuration--machine_learning--model_training)) + + +### Nested Schema for `creator_payment_configuration.machine_learning.model_inference` + +Optional: + +- `is_responsible` (Boolean) + + + +### Nested Schema for `creator_payment_configuration.machine_learning.model_training` + +Optional: + +- `is_responsible` (Boolean) + + + ### Nested Schema for `creator_payment_configuration.query_compute` diff --git a/docs/resources/cleanrooms_membership.md b/docs/resources/cleanrooms_membership.md index f0ea1bdbf..d99519fa2 100644 --- a/docs/resources/cleanrooms_membership.md +++ b/docs/resources/cleanrooms_membership.md @@ -178,8 +178,34 @@ Optional: Optional: +- `machine_learning` (Attributes) (see [below for nested schema](#nestedatt--payment_configuration--machine_learning)) - `query_compute` (Attributes) (see [below for nested schema](#nestedatt--payment_configuration--query_compute)) + +### Nested Schema for `payment_configuration.machine_learning` + +Optional: + +- `model_inference` (Attributes) (see [below for nested schema](#nestedatt--payment_configuration--machine_learning--model_inference)) +- `model_training` (Attributes) (see [below for nested schema](#nestedatt--payment_configuration--machine_learning--model_training)) + + +### Nested Schema for `payment_configuration.machine_learning.model_inference` + +Optional: + +- `is_responsible` (Boolean) + + + +### Nested Schema for `payment_configuration.machine_learning.model_training` + +Optional: + +- `is_responsible` (Boolean) + + + ### Nested Schema for `payment_configuration.query_compute` diff --git a/docs/resources/customerprofiles_event_trigger.md b/docs/resources/customerprofiles_event_trigger.md new file mode 100644 index 000000000..b30eb5571 --- /dev/null +++ b/docs/resources/customerprofiles_event_trigger.md @@ -0,0 +1,103 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_customerprofiles_event_trigger Resource - terraform-provider-awscc" +subcategory: "" +description: |- + An event trigger resource of Amazon Connect Customer Profiles +--- + +# awscc_customerprofiles_event_trigger (Resource) + +An event trigger resource of Amazon Connect Customer Profiles + + + + +## Schema + +### Required + +- `domain_name` (String) The unique name of the domain. +- `event_trigger_conditions` (Attributes List) A list of conditions that determine when an event should trigger the destination. (see [below for nested schema](#nestedatt--event_trigger_conditions)) +- `event_trigger_name` (String) The unique name of the event trigger. +- `object_type_name` (String) The unique name of the object type. + +### Optional + +- `description` (String) The description of the event trigger. +- `event_trigger_limits` (Attributes) Defines limits controlling whether an event triggers the destination, based on ingestion latency and the number of invocations per profile over specific time periods. (see [below for nested schema](#nestedatt--event_trigger_limits)) +- `segment_filter` (String) The destination is triggered only for profiles that meet the criteria of a segment definition. +- `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `created_at` (String) The timestamp of when the event trigger was created. +- `id` (String) Uniquely identifies the resource. +- `last_updated_at` (String) The timestamp of when the event trigger was most recently updated. + + +### Nested Schema for `event_trigger_conditions` + +Required: + +- `event_trigger_dimensions` (Attributes List) A list of dimensions to be evaluated for the event. (see [below for nested schema](#nestedatt--event_trigger_conditions--event_trigger_dimensions)) +- `logical_operator` (String) The operator used to combine multiple dimensions. + + +### Nested Schema for `event_trigger_conditions.event_trigger_dimensions` + +Required: + +- `object_attributes` (Attributes List) A list of object attributes to be evaluated. (see [below for nested schema](#nestedatt--event_trigger_conditions--event_trigger_dimensions--object_attributes)) + + +### Nested Schema for `event_trigger_conditions.event_trigger_dimensions.object_attributes` + +Required: + +- `comparison_operator` (String) The operator used to compare an attribute against a list of values. +- `values` (List of String) A list of attribute values used for comparison. + +Optional: + +- `field_name` (String) A field defined within an object type. +- `source` (String) An attribute contained within a source object. + + + + + +### Nested Schema for `event_trigger_limits` + +Optional: + +- `event_expiration` (Number) Specifies that an event will only trigger the destination if it is processed within a certain latency period. +- `periods` (Attributes List) A list of time periods during which the limits apply. (see [below for nested schema](#nestedatt--event_trigger_limits--periods)) + + +### Nested Schema for `event_trigger_limits.periods` + +Optional: + +- `max_invocations_per_profile` (Number) The maximum allowed number of destination invocations per profile. +- `unit` (String) The unit of time. +- `unlimited` (Boolean) If set to true, there is no limit on the number of destination invocations per profile. The default is false. +- `value` (Number) The amount of time of the specified unit. + + + + +### Nested Schema for `tags` + +Optional: + +- `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_customerprofiles_event_trigger.example "domain_name|event_trigger_name" +``` diff --git a/docs/resources/datazone_data_source.md b/docs/resources/datazone_data_source.md index aaa04f199..18b67722c 100644 --- a/docs/resources/datazone_data_source.md +++ b/docs/resources/datazone_data_source.md @@ -65,6 +65,7 @@ Optional: - `glue_run_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--glue_run_configuration)) - `redshift_run_configuration` (Attributes) The configuration details of the Amazon Redshift data source. (see [below for nested schema](#nestedatt--configuration--redshift_run_configuration)) +- `sage_maker_run_configuration` (Attributes) The configuration details of the Amazon SageMaker data source. (see [below for nested schema](#nestedatt--configuration--sage_maker_run_configuration)) ### Nested Schema for `configuration.glue_run_configuration` @@ -158,6 +159,14 @@ Optional: + +### Nested Schema for `configuration.sage_maker_run_configuration` + +Optional: + +- `tracking_assets` (Map of List of String) The tracking assets of the Amazon SageMaker run. + + ### Nested Schema for `recommendation` diff --git a/docs/resources/dms_data_provider.md b/docs/resources/dms_data_provider.md index 666b02761..4de9d5f5a 100644 --- a/docs/resources/dms_data_provider.md +++ b/docs/resources/dms_data_provider.md @@ -68,10 +68,37 @@ resource "awscc_dms_data_provider" "example" { Optional: +- `doc_db_settings` (Attributes) DocDbSettings property identifier. (see [below for nested schema](#nestedatt--settings--doc_db_settings)) +- `maria_db_settings` (Attributes) MariaDbSettings property identifier. (see [below for nested schema](#nestedatt--settings--maria_db_settings)) - `microsoft_sql_server_settings` (Attributes) MicrosoftSqlServerSettings property identifier. (see [below for nested schema](#nestedatt--settings--microsoft_sql_server_settings)) +- `mongo_db_settings` (Attributes) MongoDbSettings property identifier. (see [below for nested schema](#nestedatt--settings--mongo_db_settings)) - `my_sql_settings` (Attributes) MySqlSettings property identifier. (see [below for nested schema](#nestedatt--settings--my_sql_settings)) - `oracle_settings` (Attributes) OracleSettings property identifier. (see [below for nested schema](#nestedatt--settings--oracle_settings)) - `postgre_sql_settings` (Attributes) PostgreSqlSettings property identifier. (see [below for nested schema](#nestedatt--settings--postgre_sql_settings)) +- `redshift_settings` (Attributes) RedshiftSettings property identifier. (see [below for nested schema](#nestedatt--settings--redshift_settings)) + + +### Nested Schema for `settings.doc_db_settings` + +Optional: + +- `certificate_arn` (String) +- `database_name` (String) +- `port` (Number) +- `server_name` (String) +- `ssl_mode` (String) + + + +### Nested Schema for `settings.maria_db_settings` + +Optional: + +- `certificate_arn` (String) +- `port` (Number) +- `server_name` (String) +- `ssl_mode` (String) + ### Nested Schema for `settings.microsoft_sql_server_settings` @@ -85,6 +112,21 @@ Optional: - `ssl_mode` (String) + +### Nested Schema for `settings.mongo_db_settings` + +Optional: + +- `auth_mechanism` (String) +- `auth_source` (String) +- `auth_type` (String) +- `certificate_arn` (String) +- `database_name` (String) +- `port` (Number) +- `server_name` (String) +- `ssl_mode` (String) + + ### Nested Schema for `settings.my_sql_settings` @@ -125,6 +167,16 @@ Optional: - `ssl_mode` (String) + +### Nested Schema for `settings.redshift_settings` + +Optional: + +- `database_name` (String) +- `port` (Number) +- `server_name` (String) + + ### Nested Schema for `tags` diff --git a/docs/resources/dynamodb_global_table.md b/docs/resources/dynamodb_global_table.md index 95ec79abd..685a67f62 100644 --- a/docs/resources/dynamodb_global_table.md +++ b/docs/resources/dynamodb_global_table.md @@ -100,6 +100,7 @@ resource "awscc_dynamodb_global_table" "example" { - `billing_mode` (String) - `global_secondary_indexes` (Attributes Set) (see [below for nested schema](#nestedatt--global_secondary_indexes)) - `local_secondary_indexes` (Attributes Set) (see [below for nested schema](#nestedatt--local_secondary_indexes)) +- `point_in_time_recovery_specification` (Attributes) (see [below for nested schema](#nestedatt--point_in_time_recovery_specification)) - `sse_specification` (Attributes) (see [below for nested schema](#nestedatt--sse_specification)) - `stream_specification` (Attributes) (see [below for nested schema](#nestedatt--stream_specification)) - `table_name` (String) @@ -236,6 +237,7 @@ Optional: Optional: - `point_in_time_recovery_enabled` (Boolean) +- `recovery_period_in_days` (Number) @@ -425,6 +427,15 @@ Optional: + +### Nested Schema for `point_in_time_recovery_specification` + +Optional: + +- `point_in_time_recovery_enabled` (Boolean) +- `recovery_period_in_days` (Number) + + ### Nested Schema for `sse_specification` diff --git a/docs/resources/dynamodb_table.md b/docs/resources/dynamodb_table.md index b5666becd..1643842b6 100644 --- a/docs/resources/dynamodb_table.md +++ b/docs/resources/dynamodb_table.md @@ -405,6 +405,7 @@ Optional: Optional: - `point_in_time_recovery_enabled` (Boolean) Indicates whether point in time recovery is enabled (true) or disabled (false) on the table. +- `recovery_period_in_days` (Number) diff --git a/docs/resources/ec2_vpc_cidr_block.md b/docs/resources/ec2_vpc_cidr_block.md index 7c4779c74..79f507143 100644 --- a/docs/resources/ec2_vpc_cidr_block.md +++ b/docs/resources/ec2_vpc_cidr_block.md @@ -53,6 +53,7 @@ resource "awscc_ec2_vpc_cidr_block" "secondary_cidr" { - `ipv_4_ipam_pool_id` (String) The ID of the IPv4 IPAM pool to Associate a CIDR from to a VPC. - `ipv_4_netmask_length` (Number) The netmask length of the IPv4 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool. - `ipv_6_cidr_block` (String) An IPv6 CIDR block from the IPv6 address pool. +- `ipv_6_cidr_block_network_border_group` (String) The name of the location from which we advertise the IPV6 CIDR block. - `ipv_6_ipam_pool_id` (String) The ID of the IPv6 IPAM pool to Associate a CIDR from to a VPC. - `ipv_6_netmask_length` (Number) The netmask length of the IPv6 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool. - `ipv_6_pool` (String) The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block. diff --git a/docs/resources/ec2_vpc_endpoint.md b/docs/resources/ec2_vpc_endpoint.md index 01c6a8cab..1e22538c2 100644 --- a/docs/resources/ec2_vpc_endpoint.md +++ b/docs/resources/ec2_vpc_endpoint.md @@ -142,6 +142,7 @@ resource "awscc_ec2_vpc_endpoint" "example" { - `service_name` (String) The name of the endpoint service. - `service_network_arn` (String) - `subnet_ids` (Set of String) The IDs of the subnets in which to create endpoint network interfaces. You must specify this property for an interface endpoint or a Gateway Load Balancer endpoint. You can't specify this property for a gateway endpoint. For a Gateway Load Balancer endpoint, you can specify only one subnet. +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) - `vpc_endpoint_type` (String) The type of endpoint. Default: Gateway @@ -161,6 +162,15 @@ Optional: - `dns_record_ip_type` (String) - `private_dns_only_for_inbound_resolver_endpoint` (String) + + +### Nested Schema for `tags` + +Optional: + +- `key` (String) +- `value` (String) + ## Import Import is supported using the following syntax: diff --git a/docs/resources/ec2_vpc_endpoint_service.md b/docs/resources/ec2_vpc_endpoint_service.md index 86daf226f..cf5a5e9fa 100644 --- a/docs/resources/ec2_vpc_endpoint_service.md +++ b/docs/resources/ec2_vpc_endpoint_service.md @@ -72,12 +72,21 @@ resource "awscc_ec2_vpc_endpoint_service" "example" { - `gateway_load_balancer_arns` (List of String) - `network_load_balancer_arns` (List of String) - `payer_responsibility` (String) +- `tags` (Attributes List) The tags to add to the VPC endpoint service. (see [below for nested schema](#nestedatt--tags)) ### Read-Only - `id` (String) Uniquely identifies the resource. - `service_id` (String) + +### Nested Schema for `tags` + +Optional: + +- `key` (String) +- `value` (String) + ## Import Import is supported using the following syntax: diff --git a/docs/resources/ecs_service.md b/docs/resources/ecs_service.md index 7de4cb059..dc3f2a3f7 100644 --- a/docs/resources/ecs_service.md +++ b/docs/resources/ecs_service.md @@ -73,7 +73,7 @@ resource "awscc_ecs_service" "nginx" { For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide*. - `capacity_provider_strategy` (Attributes List) The capacity provider strategy to use for the service. If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. - A capacity provider strategy may contain a maximum of 6 capacity providers. (see [below for nested schema](#nestedatt--capacity_provider_strategy)) + A capacity provider strategy can contain a maximum of 20 capacity providers. (see [below for nested schema](#nestedatt--capacity_provider_strategy)) - `cluster` (String) The short name or full Amazon Resource Name (ARN) of the cluster that you run your service on. If you do not specify a cluster, the default cluster is assumed. - `deployment_configuration` (Attributes) Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks. (see [below for nested schema](#nestedatt--deployment_configuration)) - `deployment_controller` (Attributes) The deployment controller to use for the service. If no deployment controller is specified, the default value of ``ECS`` is used. (see [below for nested schema](#nestedatt--deployment_controller)) @@ -150,10 +150,12 @@ Optional: - `deployment_circuit_breaker` (Attributes) The deployment circuit breaker can only be used for services using the rolling update (``ECS``) deployment type. The *deployment circuit breaker* determines whether a service deployment will fail if the service can't reach a steady state. If you use the deployment circuit breaker, a service deployment will transition to a failed state and stop launching new tasks. If you use the rollback option, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. For more information, see [Rolling update](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html) in the *Amazon Elastic Container Service Developer Guide* (see [below for nested schema](#nestedatt--deployment_configuration--deployment_circuit_breaker)) - `maximum_percent` (Number) If a service is using the rolling update (``ECS``) deployment type, the ``maximumPercent`` parameter represents an upper limit on the number of your service's tasks that are allowed in the ``RUNNING`` or ``PENDING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the ``REPLICA`` service scheduler and has a ``desiredCount`` of four tasks and a ``maximumPercent`` value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default ``maximumPercent`` value for a service using the ``REPLICA`` service scheduler is 200%. + The Amazon ECS scheduler uses this parameter to replace unhealthy tasks by starting replacement tasks first and then stopping the unhealthy tasks, as long as cluster resources for starting replacement tasks are available. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html). If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and tasks in the service use the EC2 launch type, the *maximum percent* value is set to the default value. The *maximum percent* value is used to define the upper limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state. You can't specify a custom ``maximumPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type. - If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service. + If the service uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and the tasks in the service use the Fargate launch type, the maximum percent value is not used. The value is still returned when describing your service. - `minimum_healthy_percent` (Number) If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. + If any tasks are unhealthy and if ``maximumPercent`` doesn't allow the Amazon ECS scheduler to start replacement tasks, the scheduler stops the unhealthy tasks one-by-one — using the ``minimumHealthyPercent`` as a constraint — to clear up capacity to launch replacement tasks. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) . For services that *do not* use a load balancer, the following should be noted: + A service is considered healthy if all essential containers within the tasks in the service pass their health checks. + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total. @@ -292,7 +294,7 @@ Optional: When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker. Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``. When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``. - When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. + When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/). When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` - `secret_options` (Attributes List) The secrets to pass to the log configuration. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--service_connect_configuration--log_configuration--secret_options)) diff --git a/docs/resources/ecs_task_definition.md b/docs/resources/ecs_task_definition.md index 58d1c9314..09b767ea9 100644 --- a/docs/resources/ecs_task_definition.md +++ b/docs/resources/ecs_task_definition.md @@ -154,7 +154,7 @@ resource "awscc_ecs_task_definition" "example" { This option requires Linux platform ``1.4.0`` or later. + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments This option requires Linux platform ``1.4.0`` or later. -- `enable_fault_injection` (Boolean) +- `enable_fault_injection` (Boolean) Enables fault injection and allows for fault injection requests to be accepted from the task's containers. The default value is ``false``. - `ephemeral_storage` (Attributes) The ephemeral storage settings to use for tasks run with the task definition. (see [below for nested schema](#nestedatt--ephemeral_storage)) - `execution_role_arn` (String) The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf. For informationabout the required IAM roles for Amazon ECS, see [IAM roles for Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-ecs-iam-role-overview.html) in the *Amazon Elastic Container Service Developer Guide*. - `family` (String) The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. @@ -499,7 +499,7 @@ Optional: When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker. Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``. When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``. - When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. + When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/). When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` - `secret_options` (Attributes List) The secrets to pass to the log configuration. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--container_definitions--log_configuration--secret_options)) diff --git a/docs/resources/efs_file_system.md b/docs/resources/efs_file_system.md index 5c26ac50d..fce99b6e3 100644 --- a/docs/resources/efs_file_system.md +++ b/docs/resources/efs_file_system.md @@ -127,7 +127,7 @@ Optional: - `replication_overwrite_protection` (String) The status of the file system's replication overwrite protection. + ``ENABLED`` ? The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is ``ENABLED`` by default. + ``DISABLED`` ? The file system can be used as the destination file system in a replication configuration. The file system is read-only and can only be modified by EFS replication. - + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is only modified only by EFS replication. + + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is modified only by EFS replication. If the replication configuration is deleted, the file system's replication overwrite protection is re-enabled, the file system becomes writeable. @@ -170,9 +170,9 @@ Optional: - `kms_key_id` (String) The ID of an kms-key-long used to protect the encrypted file system. - `region` (String) The AWS-Region in which the destination file system is located. For One Zone file systems, the replication configuration must specify the AWS-Region in which the destination file system is located. -- `role_arn` (String) -- `status` (String) -- `status_message` (String) +- `role_arn` (String) The Amazon Resource Name (ARN) of the current source file system in the replication configuration. +- `status` (String) Describes the status of the replication configuration. For more information about replication status, see [Viewing replication details](https://docs.aws.amazon.com//efs/latest/ug/awsbackup.html#restoring-backup-efsmonitoring-replication-status.html) in the *Amazon EFS User Guide*. +- `status_message` (String) Message that provides details about the ``PAUSED`` or ``ERRROR`` state of the replication destination configuration. For more information about replication status messages, see [Viewing replication details](https://docs.aws.amazon.com//efs/latest/ug/awsbackup.html#restoring-backup-efsmonitoring-replication-status.html) in the *Amazon EFS User Guide*. ## Import diff --git a/docs/resources/gamelift_container_group_definition.md b/docs/resources/gamelift_container_group_definition.md index 260dd8712..0763d4a9d 100644 --- a/docs/resources/gamelift_container_group_definition.md +++ b/docs/resources/gamelift_container_group_definition.md @@ -17,47 +17,109 @@ The AWS::GameLift::ContainerGroupDefinition resource creates an Amazon GameLift ### Required -- `container_definitions` (Attributes Set) A collection of container definitions that define the containers in this group. (see [below for nested schema](#nestedatt--container_definitions)) - `name` (String) A descriptive label for the container group definition. - `operating_system` (String) The operating system of the container group -- `total_cpu_limit` (Number) The maximum number of CPU units reserved for this container group. The value is expressed as an integer amount of CPU units. (1 vCPU is equal to 1024 CPU units.) -- `total_memory_limit` (Number) The maximum amount of memory (in MiB) to allocate for this container group. +- `total_memory_limit_mebibytes` (Number) The total memory limit of container groups following this definition in MiB +- `total_vcpu_limit` (Number) The total amount of virtual CPUs on the container group definition ### Optional -- `scheduling_strategy` (String) Specifies whether the container group includes replica or daemon containers. +- `container_group_type` (String) The scope of the container group +- `game_server_container_definition` (Attributes) Specifies the information required to run game servers with this container group (see [below for nested schema](#nestedatt--game_server_container_definition)) +- `source_version_number` (Number) A specific ContainerGroupDefinition version to be updated +- `support_container_definitions` (Attributes Set) A collection of support container definitions that define the containers in this group. (see [below for nested schema](#nestedatt--support_container_definitions)) - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `version_description` (String) The description of this version ### Read-Only - `container_group_definition_arn` (String) The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container group resource and uniquely identifies it across all AWS Regions. - `creation_time` (String) A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057"). - `id` (String) Uniquely identifies the resource. +- `status` (String) A string indicating ContainerGroupDefinition status. +- `status_reason` (String) A string indicating the reason for ContainerGroupDefinition status. +- `version_number` (Number) The version of this ContainerGroupDefinition - -### Nested Schema for `container_definitions` + +### Nested Schema for `game_server_container_definition` -Required: +Optional: - `container_name` (String) A descriptive label for the container definition. Container definition names must be unique with a container group definition. +- `depends_on` (Attributes List) A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers. (see [below for nested schema](#nestedatt--game_server_container_definition--depends_on)) +- `environment_override` (Attributes Set) The environment variables to pass to a container. (see [below for nested schema](#nestedatt--game_server_container_definition--environment_override)) - `image_uri` (String) Specifies the image URI of this container. +- `mount_points` (Attributes Set) A list of mount point configurations to be used in a container. (see [below for nested schema](#nestedatt--game_server_container_definition--mount_points)) +- `port_configuration` (Attributes) Defines the ports on the container. (see [below for nested schema](#nestedatt--game_server_container_definition--port_configuration)) +- `resolved_image_digest` (String) The digest of the container image. +- `server_sdk_version` (String) The version of the server SDK used in this container group + + +### Nested Schema for `game_server_container_definition.depends_on` + +Optional: + +- `condition` (String) The type of dependency. +- `container_name` (String) A descriptive label for the container definition. The container being defined depends on this container's condition. + + + +### Nested Schema for `game_server_container_definition.environment_override` Optional: -- `command` (List of String) The command that's passed to the container. -- `cpu` (Number) The maximum number of CPU units reserved for this container. The value is expressed as an integer amount of CPU units. 1 vCPU is equal to 1024 CPU units -- `depends_on` (Attributes List) A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers. (see [below for nested schema](#nestedatt--container_definitions--depends_on)) -- `entry_point` (List of String) The entry point that's passed to the container so that it will run as an executable. If there are multiple arguments, each argument is a string in the array. -- `environment` (Attributes Set) The environment variables to pass to a container. (see [below for nested schema](#nestedatt--container_definitions--environment)) +- `name` (String) The environment variable name. +- `value` (String) The environment variable value. + + + +### Nested Schema for `game_server_container_definition.mount_points` + +Optional: + +- `access_level` (String) The access permissions for the mounted path. +- `container_path` (String) The path inside the container where the mount is accessible. +- `instance_path` (String) The path on the host that will be mounted in the container. + + + +### Nested Schema for `game_server_container_definition.port_configuration` + +Optional: + +- `container_port_ranges` (Attributes Set) Specifies one or more ranges of ports on a container. (see [below for nested schema](#nestedatt--game_server_container_definition--port_configuration--container_port_ranges)) + + +### Nested Schema for `game_server_container_definition.port_configuration.container_port_ranges` + +Optional: + +- `from_port` (Number) A starting value for the range of allowed port numbers. +- `protocol` (String) Defines the protocol of these ports. +- `to_port` (Number) An ending value for the range of allowed port numbers. Port numbers are end-inclusive. This value must be equal to or greater than FromPort. + + + + + +### Nested Schema for `support_container_definitions` + +Optional: + +- `container_name` (String) A descriptive label for the container definition. +- `depends_on` (Attributes List) A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers. (see [below for nested schema](#nestedatt--support_container_definitions--depends_on)) +- `environment_override` (Attributes Set) The environment variables to pass to a container. (see [below for nested schema](#nestedatt--support_container_definitions--environment_override)) - `essential` (Boolean) Specifies if the container is essential. If an essential container fails a health check, then all containers in the container group will be restarted. You must specify exactly 1 essential container in a container group. -- `health_check` (Attributes) Specifies how the health of the containers will be checked. (see [below for nested schema](#nestedatt--container_definitions--health_check)) -- `memory_limits` (Attributes) Specifies how much memory is available to the container. You must specify at least this parameter or the TotalMemoryLimit parameter of the ContainerGroupDefinition. (see [below for nested schema](#nestedatt--container_definitions--memory_limits)) -- `port_configuration` (Attributes) Defines the ports on the container. (see [below for nested schema](#nestedatt--container_definitions--port_configuration)) +- `health_check` (Attributes) Specifies how the health of the containers will be checked. (see [below for nested schema](#nestedatt--support_container_definitions--health_check)) +- `image_uri` (String) Specifies the image URI of this container. +- `memory_hard_limit_mebibytes` (Number) The total memory limit of container groups following this definition in MiB +- `mount_points` (Attributes Set) A list of mount point configurations to be used in a container. (see [below for nested schema](#nestedatt--support_container_definitions--mount_points)) +- `port_configuration` (Attributes) Defines the ports on the container. (see [below for nested schema](#nestedatt--support_container_definitions--port_configuration)) - `resolved_image_digest` (String) The digest of the container image. -- `working_directory` (String) The working directory to run commands inside the container in. +- `vcpu` (Number) The number of virtual CPUs to give to the support group - -### Nested Schema for `container_definitions.depends_on` + +### Nested Schema for `support_container_definitions.depends_on` Optional: @@ -65,8 +127,8 @@ Optional: - `container_name` (String) A descriptive label for the container definition. The container being defined depends on this container's condition. - -### Nested Schema for `container_definitions.environment` + +### Nested Schema for `support_container_definitions.environment_override` Optional: @@ -74,8 +136,8 @@ Optional: - `value` (String) The environment variable value. - -### Nested Schema for `container_definitions.health_check` + +### Nested Schema for `support_container_definitions.health_check` Optional: @@ -86,24 +148,25 @@ Optional: - `timeout` (Number) How many seconds the process manager allows the command to run before canceling it. - -### Nested Schema for `container_definitions.memory_limits` + +### Nested Schema for `support_container_definitions.mount_points` Optional: -- `hard_limit` (Number) The hard limit of memory to reserve for the container. -- `soft_limit` (Number) The amount of memory that is reserved for the container. +- `access_level` (String) The access permissions for the mounted path. +- `container_path` (String) The path inside the container where the mount is accessible. +- `instance_path` (String) The path on the host that will be mounted in the container. - -### Nested Schema for `container_definitions.port_configuration` + +### Nested Schema for `support_container_definitions.port_configuration` Optional: -- `container_port_ranges` (Attributes Set) Specifies one or more ranges of ports on a container. (see [below for nested schema](#nestedatt--container_definitions--port_configuration--container_port_ranges)) +- `container_port_ranges` (Attributes Set) Specifies one or more ranges of ports on a container. (see [below for nested schema](#nestedatt--support_container_definitions--port_configuration--container_port_ranges)) - -### Nested Schema for `container_definitions.port_configuration.container_port_ranges` + +### Nested Schema for `support_container_definitions.port_configuration.container_port_ranges` Optional: diff --git a/docs/resources/imagebuilder_image.md b/docs/resources/imagebuilder_image.md index d9d3b66fb..8e3f0948c 100644 --- a/docs/resources/imagebuilder_image.md +++ b/docs/resources/imagebuilder_image.md @@ -50,7 +50,7 @@ Optional: Optional: - `container_tags` (List of String) Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images. -- `repository_name` (String) The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don?t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images. +- `repository_name` (String) The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don’t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images. diff --git a/docs/resources/logs_metric_filter.md b/docs/resources/logs_metric_filter.md index be8ebcdbf..d26ca96ec 100644 --- a/docs/resources/logs_metric_filter.md +++ b/docs/resources/logs_metric_filter.md @@ -58,7 +58,8 @@ resource "awscc_logs_log_group" "this" { ### Optional -- `apply_on_transformed_logs` (Boolean) +- `apply_on_transformed_logs` (Boolean) This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html). + If this value is ``true``, the metric filter is applied on the transformed version of the log events instead of the original ingested log events. - `filter_name` (String) The name of the metric filter. ### Read-Only diff --git a/docs/resources/logs_subscription_filter.md b/docs/resources/logs_subscription_filter.md index b9eb8125d..91515fdb2 100644 --- a/docs/resources/logs_subscription_filter.md +++ b/docs/resources/logs_subscription_filter.md @@ -31,7 +31,8 @@ The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter a ### Optional -- `apply_on_transformed_logs` (Boolean) +- `apply_on_transformed_logs` (Boolean) This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html). + If this value is ``true``, the subscription filter is applied on the transformed version of the log events instead of the original ingested log events. - `distribution` (String) The method used to distribute log data to the destination, which can be either random or grouped by log stream. - `filter_name` (String) The name of the subscription filter. - `role_arn` (String) The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. diff --git a/docs/resources/mediaconnect_bridge.md b/docs/resources/mediaconnect_bridge.md index 29ae8ec90..da976bc79 100644 --- a/docs/resources/mediaconnect_bridge.md +++ b/docs/resources/mediaconnect_bridge.md @@ -66,11 +66,20 @@ Optional: Optional: - `multicast_ip` (String) The network source multicast IP. +- `multicast_source_settings` (Attributes) The settings related to the multicast source. (see [below for nested schema](#nestedatt--sources--network_source--multicast_source_settings)) - `name` (String) The name of the network source. - `network_name` (String) The network source's gateway network name. - `port` (Number) The network source port. - `protocol` (String) The network source protocol. + +### Nested Schema for `sources.network_source.multicast_source_settings` + +Optional: + +- `multicast_source_ip` (String) The IP address of the source for source-specific multicast (SSM). + + diff --git a/docs/resources/mediaconnect_bridge_source.md b/docs/resources/mediaconnect_bridge_source.md index 29c695bcc..fb7cac412 100644 --- a/docs/resources/mediaconnect_bridge_source.md +++ b/docs/resources/mediaconnect_bridge_source.md @@ -79,10 +79,18 @@ Optional: Optional: - `multicast_ip` (String) The network source multicast IP. +- `multicast_source_settings` (Attributes) The settings related to the multicast source. (see [below for nested schema](#nestedatt--network_source--multicast_source_settings)) - `network_name` (String) The network source's gateway network name. - `port` (Number) The network source port. - `protocol` (String) The network source protocol. + +### Nested Schema for `network_source.multicast_source_settings` + +Optional: + +- `multicast_source_ip` (String) The IP address of the source for source-specific multicast (SSM). + ## Import Import is supported using the following syntax: diff --git a/docs/resources/quicksight_custom_permissions.md b/docs/resources/quicksight_custom_permissions.md new file mode 100644 index 000000000..57b2ce7b2 --- /dev/null +++ b/docs/resources/quicksight_custom_permissions.md @@ -0,0 +1,71 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_quicksight_custom_permissions Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of the AWS::QuickSight::CustomPermissions Resource Type. +--- + +# awscc_quicksight_custom_permissions (Resource) + +Definition of the AWS::QuickSight::CustomPermissions Resource Type. + + + + +## Schema + +### Required + +- `aws_account_id` (String) +- `custom_permissions_name` (String) + +### Optional + +- `capabilities` (Attributes) (see [below for nested schema](#nestedatt--capabilities)) +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `arn` (String) +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `capabilities` + +Optional: + +- `add_or_run_anomaly_detection_for_analyses` (String) +- `create_and_update_dashboard_email_reports` (String) +- `create_and_update_data_sources` (String) +- `create_and_update_datasets` (String) +- `create_and_update_themes` (String) +- `create_and_update_threshold_alerts` (String) +- `create_shared_folders` (String) +- `create_spice_dataset` (String) +- `export_to_csv` (String) +- `export_to_excel` (String) +- `rename_shared_folders` (String) +- `share_analyses` (String) +- `share_dashboards` (String) +- `share_data_sources` (String) +- `share_datasets` (String) +- `subscribe_dashboard_email_reports` (String) +- `view_account_spice_capacity` (String) + + + +### Nested Schema for `tags` + +Optional: + +- `key` (String)

Tag key.

+- `value` (String)

Tag value.

+ +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_quicksight_custom_permissions.example "aws_account_id|custom_permissions_name" +``` diff --git a/docs/resources/rds_db_cluster.md b/docs/resources/rds_db_cluster.md index 7920b3b77..881543c2d 100644 --- a/docs/resources/rds_db_cluster.md +++ b/docs/resources/rds_db_cluster.md @@ -62,7 +62,7 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { - `associated_roles` (Attributes List) Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf. Valid for: Aurora DB clusters and Multi-AZ DB clusters (see [below for nested schema](#nestedatt--associated_roles)) - `auto_minor_version_upgrade` (Boolean) Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically. - Valid for Cluster Type: Multi-AZ DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB cluster - `availability_zones` (List of String) A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see [Choosing the Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html) in the *Amazon Aurora User Guide*. Valid for: Aurora DB clusters only - `backtrack_window` (Number) The target backtrack window, in seconds. To disable backtracking, set this value to ``0``. @@ -79,6 +79,9 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { - `cluster_scalability_type` (String) Specifies the scalability mode of the Aurora DB cluster. When set to ``limitless``, the cluster operates as an Aurora Limitless Database, allowing you to create a DB shard group for horizontal scaling (sharding) capabilities. When set to ``standard`` (the default), the cluster uses normal DB instance creation. - `copy_tags_to_snapshot` (Boolean) A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them. Valid for: Aurora DB clusters and Multi-AZ DB clusters +- `database_insights_mode` (String) The mode of Database Insights to enable for the DB cluster. + If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465. + Valid for Cluster Type: Aurora DB clusters only - `database_name` (String) The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `db_cluster_identifier` (String) The DB cluster identifier. This parameter is stored as a lowercase string. @@ -129,10 +132,6 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { Valid for Cluster Type: Aurora DB clusters only - `enable_http_endpoint` (Boolean) Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled. When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor. - RDS Data API is supported with the following DB clusters: - + Aurora PostgreSQL Serverless v2 and provisioned - + Aurora PostgreSQL and Aurora MySQL Serverless v1 - For more information, see [Using RDS Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*. Valid for Cluster Type: Aurora DB clusters only - `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. @@ -207,18 +206,19 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { If you specify the ``SourceDBClusterIdentifier``, ``SnapshotIdentifier``, or ``GlobalClusterIdentifier`` property, don't specify this property. The value is inherited from the source DB cluster, the snapshot, or the primary DB cluster for the global database cluster, respectively. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `master_user_secret` (Attributes) The secret managed by RDS in AWS Secrets Manager for the master user password. - For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.* (see [below for nested schema](#nestedatt--master_user_secret)) + When you restore a DB cluster from a snapshot, Amazon RDS generates a new secret instead of reusing the secret specified in the ``SecretArn`` property. This ensures that the restored DB cluster is securely managed with a dedicated secret. To maintain consistent integration with your application, you might need to update resource configurations to reference the newly created secret. + For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.* (see [below for nested schema](#nestedatt--master_user_secret)) - `master_username` (String) The name of the master user for the DB cluster. If you specify the ``SourceDBClusterIdentifier``, ``SnapshotIdentifier``, or ``GlobalClusterIdentifier`` property, don't specify this property. The value is inherited from the source DB cluster, the snapshot, or the primary DB cluster for the global database cluster, respectively. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `monitoring_interval` (Number) The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify ``0``. If ``MonitoringRoleArn`` is specified, also set ``MonitoringInterval`` to a value other than ``0``. - Valid for Cluster Type: Multi-AZ DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` Default: ``0`` - `monitoring_role_arn` (String) The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting up and enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*. If ``MonitoringInterval`` is set to a value other than ``0``, supply a ``MonitoringRoleArn`` value. - Valid for Cluster Type: Multi-AZ DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters - `network_type` (String) The network type of the DB cluster. Valid values: + ``IPV4`` @@ -229,13 +229,13 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { Valid for: Aurora DB clusters only - `performance_insights_enabled` (Boolean) Specifies whether to turn on Performance Insights for the DB cluster. For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*. - Valid for Cluster Type: Multi-AZ DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters - `performance_insights_kms_key_id` (String) The AWS KMS key identifier for encryption of Performance Insights data. The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. If you don't specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS-account. Your AWS-account has a different default KMS key for each AWS-Region. - Valid for Cluster Type: Multi-AZ DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters - `performance_insights_retention_period` (Number) The number of days to retain Performance Insights data. - Valid for Cluster Type: Multi-AZ DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters Valid Values: + ``7`` + *month* * 31, where *month* is a number of months from 1-23. Examples: ``93`` (3 months * 31), ``341`` (11 months * 31), ``589`` (19 months * 31) @@ -436,7 +436,8 @@ Optional: The maximum capacity must be higher than 0.5 ACUs. For more information, see [Choosing the maximum Aurora Serverless v2 capacity setting for a cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.setting-capacity.html#aurora-serverless-v2.max_capacity_considerations) in the *Amazon Aurora User Guide*. Aurora automatically sets certain parameters for Aurora Serverless V2 DB instances to values that depend on the maximum ACU value in the capacity range. When you update the maximum capacity value, the ``ParameterApplyStatus`` value for the DB instance changes to ``pending-reboot``. You can update the parameter values by rebooting the DB instance after changing the capacity range. - `min_capacity` (Number) The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. For Aurora versions that support the Aurora Serverless v2 auto-pause feature, the smallest value that you can use is 0. For versions that don't support Aurora Serverless v2 auto-pause, the smallest value that you can use is 0.5. -- `seconds_until_auto_pause` (Number) +- `seconds_until_auto_pause` (Number) Specifies the number of seconds an Aurora Serverless v2 DB instance must be idle before Aurora attempts to automatically pause it. + Specify a value between 300 seconds (five minutes) and 86,400 seconds (one day). The default is 300 seconds. diff --git a/docs/resources/rds_db_instance.md b/docs/resources/rds_db_instance.md index 5293898ca..e0194bcfa 100644 --- a/docs/resources/rds_db_instance.md +++ b/docs/resources/rds_db_instance.md @@ -674,6 +674,7 @@ resource "awscc_rds_db_instance" "this" { ### Read-Only +- `database_insights_mode` (String) - `db_instance_arn` (String) - `dbi_resource_id` (String) - `id` (String) Uniquely identifies the resource. diff --git a/docs/resources/resiliencehub_app.md b/docs/resources/resiliencehub_app.md index a0f181e41..fb16cf58e 100644 --- a/docs/resources/resiliencehub_app.md +++ b/docs/resources/resiliencehub_app.md @@ -27,6 +27,7 @@ Resource Type Definition for AWS::ResilienceHub::App. - `description` (String) App description. - `event_subscriptions` (Attributes List) The list of events you would like to subscribe and get notification for. (see [below for nested schema](#nestedatt--event_subscriptions)) - `permission_model` (Attributes) Defines the roles and credentials that AWS Resilience Hub would use while creating the application, importing its resources, and running an assessment. (see [below for nested schema](#nestedatt--permission_model)) +- `regulatory_policy_arn` (String) Amazon Resource Name (ARN) of the Regulatory Policy. - `resiliency_policy_arn` (String) Amazon Resource Name (ARN) of the Resiliency Policy. - `tags` (Map of String) diff --git a/docs/resources/sagemaker_domain.md b/docs/resources/sagemaker_domain.md index b45472dd2..3d1232b43 100644 --- a/docs/resources/sagemaker_domain.md +++ b/docs/resources/sagemaker_domain.md @@ -235,6 +235,7 @@ Optional: Optional: - `efs_file_system_config` (Attributes) (see [below for nested schema](#nestedatt--default_user_settings--custom_file_system_configs--efs_file_system_config)) +- `fsx_lustre_file_system_config` (Attributes) (see [below for nested schema](#nestedatt--default_user_settings--custom_file_system_configs--fsx_lustre_file_system_config)) ### Nested Schema for `default_user_settings.custom_file_system_configs.efs_file_system_config` @@ -245,6 +246,15 @@ Optional: - `file_system_path` (String) + +### Nested Schema for `default_user_settings.custom_file_system_configs.fsx_lustre_file_system_config` + +Optional: + +- `file_system_id` (String) +- `file_system_path` (String) + + ### Nested Schema for `default_user_settings.custom_posix_user_config` @@ -462,6 +472,7 @@ Optional: Optional: - `efs_file_system_config` (Attributes) (see [below for nested schema](#nestedatt--default_space_settings--custom_file_system_configs--efs_file_system_config)) +- `fsx_lustre_file_system_config` (Attributes) (see [below for nested schema](#nestedatt--default_space_settings--custom_file_system_configs--fsx_lustre_file_system_config)) ### Nested Schema for `default_space_settings.custom_file_system_configs.efs_file_system_config` @@ -472,6 +483,15 @@ Optional: - `file_system_path` (String) + +### Nested Schema for `default_space_settings.custom_file_system_configs.fsx_lustre_file_system_config` + +Optional: + +- `file_system_id` (String) +- `file_system_path` (String) + + ### Nested Schema for `default_space_settings.custom_posix_user_config` diff --git a/docs/resources/sagemaker_partner_app.md b/docs/resources/sagemaker_partner_app.md new file mode 100644 index 000000000..4c0049a7c --- /dev/null +++ b/docs/resources/sagemaker_partner_app.md @@ -0,0 +1,71 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_sagemaker_partner_app Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::SageMaker::PartnerApp +--- + +# awscc_sagemaker_partner_app (Resource) + +Resource Type definition for AWS::SageMaker::PartnerApp + + + + +## Schema + +### Required + +- `auth_type` (String) The Auth type of PartnerApp. +- `execution_role_arn` (String) The execution role for the user. +- `name` (String) A name for the PartnerApp. +- `tier` (String) The tier of the PartnerApp. +- `type` (String) The type of PartnerApp. + +### Optional + +- `application_config` (Attributes) A collection of settings that specify the maintenance schedule for the PartnerApp. (see [below for nested schema](#nestedatt--application_config)) +- `client_token` (String) The client token for the PartnerApp. +- `enable_iam_session_based_identity` (Boolean) Enables IAM Session based Identity for PartnerApp. +- `maintenance_config` (Attributes) A collection of settings that specify the maintenance schedule for the PartnerApp. (see [below for nested schema](#nestedatt--maintenance_config)) +- `tags` (Attributes List) A list of tags to apply to the PartnerApp. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `arn` (String) The Amazon Resource Name (ARN) of the created PartnerApp. +- `base_url` (String) The AppServerUrl based on app and account-info. +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `application_config` + +Optional: + +- `admin_users` (Set of String) A list of users with administrator privileges for the PartnerApp. +- `arguments` (Map of String) A list of arguments to pass to the PartnerApp. + + + +### Nested Schema for `maintenance_config` + +Optional: + +- `maintenance_window_start` (String) The maintenance window start day and time for the PartnerApp. + + + +### Nested Schema for `tags` + +Optional: + +- `key` (String) +- `value` (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_sagemaker_partner_app.example "arn" +``` diff --git a/docs/resources/sagemaker_space.md b/docs/resources/sagemaker_space.md index 352766f74..bedd3012b 100644 --- a/docs/resources/sagemaker_space.md +++ b/docs/resources/sagemaker_space.md @@ -177,6 +177,7 @@ Optional: Optional: - `efs_file_system` (Attributes) (see [below for nested schema](#nestedatt--space_settings--custom_file_systems--efs_file_system)) +- `fsx_lustre_file_system` (Attributes) (see [below for nested schema](#nestedatt--space_settings--custom_file_systems--fsx_lustre_file_system)) ### Nested Schema for `space_settings.custom_file_systems.efs_file_system` @@ -186,6 +187,14 @@ Optional: - `file_system_id` (String) + +### Nested Schema for `space_settings.custom_file_systems.fsx_lustre_file_system` + +Optional: + +- `file_system_id` (String) + + ### Nested Schema for `space_settings.jupyter_lab_app_settings` diff --git a/docs/resources/sagemaker_user_profile.md b/docs/resources/sagemaker_user_profile.md index 8cc604d1b..d873e752e 100644 --- a/docs/resources/sagemaker_user_profile.md +++ b/docs/resources/sagemaker_user_profile.md @@ -129,6 +129,7 @@ Optional: Optional: - `efs_file_system_config` (Attributes) (see [below for nested schema](#nestedatt--user_settings--custom_file_system_configs--efs_file_system_config)) +- `fsx_lustre_file_system_config` (Attributes) (see [below for nested schema](#nestedatt--user_settings--custom_file_system_configs--fsx_lustre_file_system_config)) ### Nested Schema for `user_settings.custom_file_system_configs.efs_file_system_config` @@ -139,6 +140,15 @@ Optional: - `file_system_path` (String) + +### Nested Schema for `user_settings.custom_file_system_configs.fsx_lustre_file_system_config` + +Optional: + +- `file_system_id` (String) +- `file_system_path` (String) + + ### Nested Schema for `user_settings.custom_posix_user_config` diff --git a/docs/resources/ses_configuration_set.md b/docs/resources/ses_configuration_set.md index 9cc8c45eb..df97dd1a2 100644 --- a/docs/resources/ses_configuration_set.md +++ b/docs/resources/ses_configuration_set.md @@ -112,6 +112,7 @@ Optional: Optional: - `custom_redirect_domain` (String) The domain to use for tracking open and click events. +- `https_policy` (String) The https policy to use for tracking open and click events. diff --git a/docs/resources/ses_mail_manager_rule_set.md b/docs/resources/ses_mail_manager_rule_set.md index b13f52359..195182415 100644 --- a/docs/resources/ses_mail_manager_rule_set.md +++ b/docs/resources/ses_mail_manager_rule_set.md @@ -146,6 +146,7 @@ Optional: - `add_header` (Attributes) (see [below for nested schema](#nestedatt--rules--actions--add_header)) - `archive` (Attributes) (see [below for nested schema](#nestedatt--rules--actions--archive)) - `deliver_to_mailbox` (Attributes) (see [below for nested schema](#nestedatt--rules--actions--deliver_to_mailbox)) +- `deliver_to_q_business` (Attributes) (see [below for nested schema](#nestedatt--rules--actions--deliver_to_q_business)) - `drop` (String) - `relay` (Attributes) (see [below for nested schema](#nestedatt--rules--actions--relay)) - `replace_recipient` (Attributes) (see [below for nested schema](#nestedatt--rules--actions--replace_recipient)) @@ -180,6 +181,17 @@ Optional: - `role_arn` (String) + +### Nested Schema for `rules.actions.deliver_to_q_business` + +Optional: + +- `action_failure_policy` (String) +- `application_id` (String) +- `index_id` (String) +- `role_arn` (String) + + ### Nested Schema for `rules.actions.relay` diff --git a/docs/resources/synthetics_canary.md b/docs/resources/synthetics_canary.md index 157fd9ce6..65fbf92a3 100644 --- a/docs/resources/synthetics_canary.md +++ b/docs/resources/synthetics_canary.md @@ -135,6 +135,7 @@ Optional: Optional: +- `ipv_6_allowed_for_dual_stack` (Boolean) Allow outbound IPv6 traffic on VPC canaries that are connected to dual-stack subnets if set to true - `security_group_ids` (List of String) - `subnet_ids` (List of String) - `vpc_id` (String) diff --git a/docs/resources/wisdom_ai_agent.md b/docs/resources/wisdom_ai_agent.md index b2d7b0201..87df39a8e 100644 --- a/docs/resources/wisdom_ai_agent.md +++ b/docs/resources/wisdom_ai_agent.md @@ -33,6 +33,7 @@ Definition of AWS::Wisdom::AIAgent Resource Type - `ai_agent_id` (String) - `assistant_arn` (String) - `id` (String) Uniquely identifies the resource. +- `modified_time_seconds` (Number) ### Nested Schema for `configuration` diff --git a/docs/resources/wisdom_ai_prompt.md b/docs/resources/wisdom_ai_prompt.md index 32196927d..1a2418161 100644 --- a/docs/resources/wisdom_ai_prompt.md +++ b/docs/resources/wisdom_ai_prompt.md @@ -77,6 +77,7 @@ resource "awscc_wisdom_ai_prompt" "example" { - `ai_prompt_id` (String) - `assistant_arn` (String) - `id` (String) Uniquely identifies the resource. +- `modified_time_seconds` (Number) ### Nested Schema for `template_configuration` diff --git a/examples/resources/awscc_appconfig_deployment/import.sh b/examples/resources/awscc_appconfig_deployment/import.sh new file mode 100644 index 000000000..bb9366176 --- /dev/null +++ b/examples/resources/awscc_appconfig_deployment/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_appconfig_deployment.example "application_id|environment_id|deployment_number" \ No newline at end of file diff --git a/examples/resources/awscc_cloudfront_anycast_ip_list/import.sh b/examples/resources/awscc_cloudfront_anycast_ip_list/import.sh new file mode 100644 index 000000000..111765572 --- /dev/null +++ b/examples/resources/awscc_cloudfront_anycast_ip_list/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_cloudfront_anycast_ip_list.example "id" \ No newline at end of file diff --git a/examples/resources/awscc_customerprofiles_event_trigger/import.sh b/examples/resources/awscc_customerprofiles_event_trigger/import.sh new file mode 100644 index 000000000..84b569b53 --- /dev/null +++ b/examples/resources/awscc_customerprofiles_event_trigger/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_customerprofiles_event_trigger.example "domain_name|event_trigger_name" \ No newline at end of file diff --git a/examples/resources/awscc_quicksight_custom_permissions/import.sh b/examples/resources/awscc_quicksight_custom_permissions/import.sh new file mode 100644 index 000000000..5586ecc55 --- /dev/null +++ b/examples/resources/awscc_quicksight_custom_permissions/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_quicksight_custom_permissions.example "aws_account_id|custom_permissions_name" \ No newline at end of file diff --git a/examples/resources/awscc_sagemaker_partner_app/import.sh b/examples/resources/awscc_sagemaker_partner_app/import.sh new file mode 100644 index 000000000..ae62ceeaf --- /dev/null +++ b/examples/resources/awscc_sagemaker_partner_app/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_sagemaker_partner_app.example "arn" \ No newline at end of file diff --git a/internal/aws/appconfig/deployment_resource_gen.go b/internal/aws/appconfig/deployment_resource_gen.go new file mode 100644 index 000000000..720c77912 --- /dev/null +++ b/internal/aws/appconfig/deployment_resource_gen.go @@ -0,0 +1,319 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package appconfig + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_appconfig_deployment", deploymentResource) +} + +// deploymentResource returns the Terraform awscc_appconfig_deployment resource. +// This Terraform resource corresponds to the CloudFormation AWS::AppConfig::Deployment resource. +func deploymentResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplicationId + // CloudFormation resource type schema: + // + // { + // "description": "The application ID.", + // "type": "string" + // } + "application_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The application ID.", + Required: true, + 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.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ConfigurationVersion + // CloudFormation resource type schema: + // + // { + // "description": "The configuration version to deploy. If deploying an AWS AppConfig hosted configuration version, you can specify either the version number or version label. For all other configurations, you must specify the version number.", + // "type": "string" + // } + "configuration_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The configuration version to deploy. If deploying an AWS AppConfig hosted configuration version, you can specify either the version number or version label. For all other configurations, you must specify the version number.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DeploymentNumber + // CloudFormation resource type schema: + // + // { + // "description": "The sequence number of the deployment.", + // "type": "string" + // } + "deployment_number": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The sequence number of the deployment.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DeploymentStrategyId + // CloudFormation resource type schema: + // + // { + // "description": "The deployment strategy ID.", + // "type": "string" + // } + "deployment_strategy_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The deployment strategy ID.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "A description of the deployment.", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A description of the deployment.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DynamicExtensionParameters + // CloudFormation resource type schema: + // + // { + // "items": { + // "additionalProperties": false, + // "properties": { + // "ExtensionReference": { + // "type": "string" + // }, + // "ParameterName": { + // "type": "string" + // }, + // "ParameterValue": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + "dynamic_extension_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ExtensionReference + "extension_reference": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ParameterName + "parameter_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ParameterValue + "parameter_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, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + listplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + // DynamicExtensionParameters is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: EnvironmentId + // CloudFormation resource type schema: + // + // { + // "description": "The environment ID.", + // "type": "string" + // } + "environment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The environment ID.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*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(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "An array of key-value pairs to apply to this resource.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Metadata to assign to the deployment. 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:.", + // "type": "string" + // }, + // "Value": { + // "description": "The tag value can be up to 256 characters.", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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:.", + Optional: true, + Computed: true, + 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, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "An array of key-value pairs to apply to this resource.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + setplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Resource Type definition for AWS::AppConfig::Deployment", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::AppConfig::Deployment").WithTerraformTypeName("awscc_appconfig_deployment") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "application_id": "ApplicationId", + "configuration_profile_id": "ConfigurationProfileId", + "configuration_version": "ConfigurationVersion", + "deployment_number": "DeploymentNumber", + "deployment_strategy_id": "DeploymentStrategyId", + "description": "Description", + "dynamic_extension_parameters": "DynamicExtensionParameters", + "environment_id": "EnvironmentId", + "extension_reference": "ExtensionReference", + "key": "Key", + "kms_key_identifier": "KmsKeyIdentifier", + "parameter_name": "ParameterName", + "parameter_value": "ParameterValue", + "tags": "Tags", + "value": "Value", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/DynamicExtensionParameters", + }) + opts = opts.WithCreateTimeoutInMinutes(1445).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/deployment_resource_gen_test.go b/internal/aws/appconfig/deployment_resource_gen_test.go new file mode 100644 index 000000000..98f9d4071 --- /dev/null +++ b/internal/aws/appconfig/deployment_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 TestAccAWSAppConfigDeployment_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::AppConfig::Deployment", "awscc_appconfig_deployment", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/appconfig/deployment_singular_data_source_gen.go b/internal/aws/appconfig/deployment_singular_data_source_gen.go new file mode 100644 index 000000000..03f1a07ff --- /dev/null +++ b/internal/aws/appconfig/deployment_singular_data_source_gen.go @@ -0,0 +1,238 @@ +// 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_deployment", deploymentDataSource) +} + +// deploymentDataSource returns the Terraform awscc_appconfig_deployment data source. +// This Terraform data source corresponds to the CloudFormation AWS::AppConfig::Deployment resource. +func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplicationId + // CloudFormation resource type schema: + // + // { + // "description": "The application ID.", + // "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: ConfigurationVersion + // CloudFormation resource type schema: + // + // { + // "description": "The configuration version to deploy. If deploying an AWS AppConfig hosted configuration version, you can specify either the version number or version label. For all other configurations, you must specify the version number.", + // "type": "string" + // } + "configuration_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The configuration version to deploy. If deploying an AWS AppConfig hosted configuration version, you can specify either the version number or version label. For all other configurations, you must specify the version number.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DeploymentNumber + // CloudFormation resource type schema: + // + // { + // "description": "The sequence number of the deployment.", + // "type": "string" + // } + "deployment_number": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The sequence number of the deployment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DeploymentStrategyId + // CloudFormation resource type schema: + // + // { + // "description": "The deployment strategy ID.", + // "type": "string" + // } + "deployment_strategy_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The deployment strategy ID.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "A description of the deployment.", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A description of the deployment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DynamicExtensionParameters + // CloudFormation resource type schema: + // + // { + // "items": { + // "additionalProperties": false, + // "properties": { + // "ExtensionReference": { + // "type": "string" + // }, + // "ParameterName": { + // "type": "string" + // }, + // "ParameterValue": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + "dynamic_extension_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ExtensionReference + "extension_reference": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ParameterName + "parameter_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ParameterValue + "parameter_value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnvironmentId + // CloudFormation resource type schema: + // + // { + // "description": "The environment ID.", + // "type": "string" + // } + "environment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The environment ID.", + 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: Tags + // CloudFormation resource type schema: + // + // { + // "description": "An array of key-value pairs to apply to this resource.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Metadata to assign to the deployment. 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:.", + // "type": "string" + // }, + // "Value": { + // "description": "The tag value can be up to 256 characters.", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 + "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: "An array of key-value pairs to apply to this resource.", + 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::Deployment", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::AppConfig::Deployment").WithTerraformTypeName("awscc_appconfig_deployment") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "application_id": "ApplicationId", + "configuration_profile_id": "ConfigurationProfileId", + "configuration_version": "ConfigurationVersion", + "deployment_number": "DeploymentNumber", + "deployment_strategy_id": "DeploymentStrategyId", + "description": "Description", + "dynamic_extension_parameters": "DynamicExtensionParameters", + "environment_id": "EnvironmentId", + "extension_reference": "ExtensionReference", + "key": "Key", + "kms_key_identifier": "KmsKeyIdentifier", + "parameter_name": "ParameterName", + "parameter_value": "ParameterValue", + "tags": "Tags", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/appconfig/deployment_singular_data_source_gen_test.go b/internal/aws/appconfig/deployment_singular_data_source_gen_test.go new file mode 100644 index 000000000..596166ccd --- /dev/null +++ b/internal/aws/appconfig/deployment_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 TestAccAWSAppConfigDeploymentDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::AppConfig::Deployment", "awscc_appconfig_deployment", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSAppConfigDeploymentDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::AppConfig::Deployment", "awscc_appconfig_deployment", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/backup/logically_air_gapped_backup_vault_resource_gen.go b/internal/aws/backup/logically_air_gapped_backup_vault_resource_gen.go index 0481c998f..02cc4093e 100644 --- a/internal/aws/backup/logically_air_gapped_backup_vault_resource_gen.go +++ b/internal/aws/backup/logically_air_gapped_backup_vault_resource_gen.go @@ -195,7 +195,6 @@ func logicallyAirGappedBackupVaultResource(ctx context.Context) (resource.Resour // "type": "string" // } "vault_state": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -208,7 +207,6 @@ func logicallyAirGappedBackupVaultResource(ctx context.Context) (resource.Resour // "type": "string" // } "vault_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/bedrock/agent_resource_gen.go b/internal/aws/bedrock/agent_resource_gen.go index 50276b294..fcae8e263 100644 --- a/internal/aws/bedrock/agent_resource_gen.go +++ b/internal/aws/bedrock/agent_resource_gen.go @@ -176,6 +176,14 @@ func agentResource(ctx context.Context) (resource.Resource, error) { // } // }, // "type": "object" + // }, + // "RequireConfirmation": { + // "description": "ENUM to check if action requires user confirmation", + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" // } // }, // "required": [ @@ -435,6 +443,21 @@ func agentResource(ctx context.Context) (resource.Resource, error) { mapplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: RequireConfirmation + "require_confirmation": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ENUM to check if action requires user confirmation", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ENABLED", + "DISABLED", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Description: "List of Function definitions", @@ -1400,6 +1423,7 @@ func agentResource(ctx context.Context) (resource.Resource, error) { "prompt_state": "PromptState", "prompt_type": "PromptType", "recommended_actions": "RecommendedActions", + "require_confirmation": "RequireConfirmation", "required": "Required", "s3": "S3", "s3_bucket_name": "S3BucketName", diff --git a/internal/aws/bedrock/agent_singular_data_source_gen.go b/internal/aws/bedrock/agent_singular_data_source_gen.go index 025840a82..ddfc14bb3 100644 --- a/internal/aws/bedrock/agent_singular_data_source_gen.go +++ b/internal/aws/bedrock/agent_singular_data_source_gen.go @@ -162,6 +162,14 @@ func agentDataSource(ctx context.Context) (datasource.DataSource, error) { // } // }, // "type": "object" + // }, + // "RequireConfirmation": { + // "description": "ENUM to check if action requires user confirmation", + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" // } // }, // "required": [ @@ -304,6 +312,11 @@ func agentDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "A map of parameter name and detail", Computed: true, }, /*END ATTRIBUTE*/ + // Property: RequireConfirmation + "require_confirmation": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ENUM to check if action requires user confirmation", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Description: "List of Function definitions", @@ -976,6 +989,7 @@ func agentDataSource(ctx context.Context) (datasource.DataSource, error) { "prompt_state": "PromptState", "prompt_type": "PromptType", "recommended_actions": "RecommendedActions", + "require_confirmation": "RequireConfirmation", "required": "Required", "s3": "S3", "s3_bucket_name": "S3BucketName", diff --git a/internal/aws/bedrock/data_source_resource_gen.go b/internal/aws/bedrock/data_source_resource_gen.go index e7e456aba..c52fef1ff 100644 --- a/internal/aws/bedrock/data_source_resource_gen.go +++ b/internal/aws/bedrock/data_source_resource_gen.go @@ -79,33 +79,6 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // { // "additionalProperties": false, // "description": "Specifies a raw data source location to ingest.", - // "oneOf": [ - // { - // "required": [ - // "S3Configuration" - // ] - // }, - // { - // "required": [ - // "ConfluenceConfiguration" - // ] - // }, - // { - // "required": [ - // "SalesforceConfiguration" - // ] - // }, - // { - // "required": [ - // "SharePointConfiguration" - // ] - // }, - // { - // "required": [ - // "WebConfiguration" - // ] - // } - // ], // "properties": { // "ConfluenceConfiguration": { // "additionalProperties": false, @@ -548,7 +521,8 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // "CONFLUENCE", // "SALESFORCE", // "SHAREPOINT", - // "WEB" + // "WEB", + // "CUSTOM" // ], // "type": "string" // }, @@ -1327,6 +1301,7 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { "SALESFORCE", "SHAREPOINT", "WEB", + "CUSTOM", ), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -1865,6 +1840,20 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // "additionalProperties": false, // "description": "Settings for parsing document contents", // "properties": { + // "BedrockDataAutomationConfiguration": { + // "additionalProperties": false, + // "description": "Settings for a Bedrock Data Automation used to parse documents for a data source.", + // "properties": { + // "ParsingModality": { + // "description": "Determine how will parsed content be stored.", + // "enum": [ + // "MULTIMODAL" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, // "BedrockFoundationModelConfiguration": { // "additionalProperties": false, // "description": "Settings for a foundation model used to parse documents for a data source.", @@ -1876,6 +1865,13 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)$", // "type": "string" // }, + // "ParsingModality": { + // "description": "Determine how will parsed content be stored.", + // "enum": [ + // "MULTIMODAL" + // ], + // "type": "string" + // }, // "ParsingPrompt": { // "additionalProperties": false, // "description": "Instructions for interpreting the contents of a document.", @@ -1901,7 +1897,8 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // "ParsingStrategy": { // "description": "The parsing strategy for the data source.", // "enum": [ - // "BEDROCK_FOUNDATION_MODEL" + // "BEDROCK_FOUNDATION_MODEL", + // "BEDROCK_DATA_AUTOMATION" // ], // "type": "string" // } @@ -2219,6 +2216,31 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // Property: ParsingConfiguration "parsing_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BedrockDataAutomationConfiguration + "bedrock_data_automation_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ParsingModality + "parsing_modality": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Determine how will parsed content be stored.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "MULTIMODAL", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Settings for a Bedrock Data Automation used to parse documents for a data source.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: BedrockFoundationModelConfiguration "bedrock_foundation_model_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -2236,6 +2258,20 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ParsingModality + "parsing_modality": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Determine how will parsed content be stored.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "MULTIMODAL", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ParsingPrompt "parsing_prompt": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -2276,6 +2312,7 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( "BEDROCK_FOUNDATION_MODEL", + "BEDROCK_DATA_AUTOMATION", ), fwvalidators.NotNullString(), }, /*END VALIDATORS*/ @@ -2323,6 +2360,7 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "auth_type": "AuthType", + "bedrock_data_automation_configuration": "BedrockDataAutomationConfiguration", "bedrock_foundation_model_configuration": "BedrockFoundationModelConfiguration", "breakpoint_percentile_threshold": "BreakpointPercentileThreshold", "bucket_arn": "BucketArn", @@ -2364,6 +2402,7 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { "overlap_percentage": "OverlapPercentage", "overlap_tokens": "OverlapTokens", "parsing_configuration": "ParsingConfiguration", + "parsing_modality": "ParsingModality", "parsing_prompt": "ParsingPrompt", "parsing_prompt_text": "ParsingPromptText", "parsing_strategy": "ParsingStrategy", diff --git a/internal/aws/bedrock/data_source_singular_data_source_gen.go b/internal/aws/bedrock/data_source_singular_data_source_gen.go index 5f4cd7aec..12670acb3 100644 --- a/internal/aws/bedrock/data_source_singular_data_source_gen.go +++ b/internal/aws/bedrock/data_source_singular_data_source_gen.go @@ -55,33 +55,6 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // { // "additionalProperties": false, // "description": "Specifies a raw data source location to ingest.", - // "oneOf": [ - // { - // "required": [ - // "S3Configuration" - // ] - // }, - // { - // "required": [ - // "ConfluenceConfiguration" - // ] - // }, - // { - // "required": [ - // "SalesforceConfiguration" - // ] - // }, - // { - // "required": [ - // "SharePointConfiguration" - // ] - // }, - // { - // "required": [ - // "WebConfiguration" - // ] - // } - // ], // "properties": { // "ConfluenceConfiguration": { // "additionalProperties": false, @@ -524,7 +497,8 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // "CONFLUENCE", // "SALESFORCE", // "SHAREPOINT", - // "WEB" + // "WEB", + // "CUSTOM" // ], // "type": "string" // }, @@ -1341,6 +1315,20 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // "additionalProperties": false, // "description": "Settings for parsing document contents", // "properties": { + // "BedrockDataAutomationConfiguration": { + // "additionalProperties": false, + // "description": "Settings for a Bedrock Data Automation used to parse documents for a data source.", + // "properties": { + // "ParsingModality": { + // "description": "Determine how will parsed content be stored.", + // "enum": [ + // "MULTIMODAL" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, // "BedrockFoundationModelConfiguration": { // "additionalProperties": false, // "description": "Settings for a foundation model used to parse documents for a data source.", @@ -1352,6 +1340,13 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)$", // "type": "string" // }, + // "ParsingModality": { + // "description": "Determine how will parsed content be stored.", + // "enum": [ + // "MULTIMODAL" + // ], + // "type": "string" + // }, // "ParsingPrompt": { // "additionalProperties": false, // "description": "Instructions for interpreting the contents of a document.", @@ -1377,7 +1372,8 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // "ParsingStrategy": { // "description": "The parsing strategy for the data source.", // "enum": [ - // "BEDROCK_FOUNDATION_MODEL" + // "BEDROCK_FOUNDATION_MODEL", + // "BEDROCK_DATA_AUTOMATION" // ], // "type": "string" // } @@ -1531,6 +1527,18 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // Property: ParsingConfiguration "parsing_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BedrockDataAutomationConfiguration + "bedrock_data_automation_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ParsingModality + "parsing_modality": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Determine how will parsed content be stored.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Settings for a Bedrock Data Automation used to parse documents for a data source.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: BedrockFoundationModelConfiguration "bedrock_foundation_model_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -1539,6 +1547,11 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The model's ARN.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ParsingModality + "parsing_modality": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Determine how will parsed content be stored.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ParsingPrompt "parsing_prompt": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -1586,6 +1599,7 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "auth_type": "AuthType", + "bedrock_data_automation_configuration": "BedrockDataAutomationConfiguration", "bedrock_foundation_model_configuration": "BedrockFoundationModelConfiguration", "breakpoint_percentile_threshold": "BreakpointPercentileThreshold", "bucket_arn": "BucketArn", @@ -1627,6 +1641,7 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { "overlap_percentage": "OverlapPercentage", "overlap_tokens": "OverlapTokens", "parsing_configuration": "ParsingConfiguration", + "parsing_modality": "ParsingModality", "parsing_prompt": "ParsingPrompt", "parsing_prompt_text": "ParsingPromptText", "parsing_strategy": "ParsingStrategy", diff --git a/internal/aws/bedrock/knowledge_base_resource_gen.go b/internal/aws/bedrock/knowledge_base_resource_gen.go index 737eca718..27e2f597f 100644 --- a/internal/aws/bedrock/knowledge_base_resource_gen.go +++ b/internal/aws/bedrock/knowledge_base_resource_gen.go @@ -10,6 +10,7 @@ import ( "regexp" "github.com/hashicorp/terraform-plugin-framework-validators/int64validator" + "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" @@ -115,10 +116,26 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { // "additionalProperties": false, // "description": "Contains details about the embeddings model used for the knowledge base.", // "properties": { + // "KendraKnowledgeBaseConfiguration": { + // "additionalProperties": false, + // "description": "Configurations for a Kendra knowledge base", + // "properties": { + // "KendraIndexArn": { + // "description": "Arn of a Kendra index", + // "pattern": "^arn:aws(|-cn|-us-gov):kendra:[a-z0-9-]{1,20}:([0-9]{12}|):index/([a-zA-Z0-9][a-zA-Z0-9-]{35}|[a-zA-Z0-9][a-zA-Z0-9-]{35}-[a-zA-Z0-9][a-zA-Z0-9-]{35})$", + // "type": "string" + // } + // }, + // "required": [ + // "KendraIndexArn" + // ], + // "type": "object" + // }, // "Type": { // "description": "The type of a knowledge base.", // "enum": [ - // "VECTOR" + // "VECTOR", + // "KENDRA" // ], // "type": "string" // }, @@ -152,6 +169,57 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { // } // }, // "type": "object" + // }, + // "SupplementalDataStorageConfiguration": { + // "additionalProperties": false, + // "description": "Configurations for supplemental data storage.", + // "properties": { + // "SupplementalDataStorageLocations": { + // "description": "List of supplemental data storage locations.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Supplemental data storage location.", + // "properties": { + // "S3Location": { + // "additionalProperties": false, + // "description": "An Amazon S3 location.", + // "properties": { + // "URI": { + // "description": "The location's URI", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^s3://.{1,128}$", + // "type": "string" + // } + // }, + // "required": [ + // "URI" + // ], + // "type": "object" + // }, + // "SupplementalDataStorageLocationType": { + // "description": "Supplemental data storage location type.", + // "enum": [ + // "S3" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "SupplementalDataStorageLocationType" + // ], + // "type": "object" + // }, + // "maxItems": 1, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "SupplementalDataStorageLocations" + // ], + // "type": "object" // } // }, // "required": [ @@ -161,13 +229,36 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { // } // }, // "required": [ - // "Type", - // "VectorKnowledgeBaseConfiguration" + // "Type" // ], // "type": "object" // } "knowledge_base_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KendraKnowledgeBaseConfiguration + "kendra_knowledge_base_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KendraIndexArn + "kendra_index_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn of a Kendra index", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(|-cn|-us-gov):kendra:[a-z0-9-]{1,20}:([0-9]{12}|):index/([a-zA-Z0-9][a-zA-Z0-9-]{35}|[a-zA-Z0-9][a-zA-Z0-9-]{35}-[a-zA-Z0-9][a-zA-Z0-9-]{35})$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configurations for a Kendra knowledge base", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The type of a knowledge base.", @@ -175,6 +266,7 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( "VECTOR", + "KENDRA", ), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ @@ -184,11 +276,16 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { // Property: EmbeddingModelArn "embedding_model_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the model used to create vector embeddings for the knowledge base.", - Required: true, + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(20, 2048), stringvalidator.RegexMatches(regexp.MustCompile("^(arn:aws(-[^:]+)?:[a-z0-9-]+:[a-z0-9-]{1,20}:[0-9]{0,12}:[a-zA-Z0-9-:/._+]+)$"), ""), + fwvalidators.NotNullString(), }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: EmbeddingModelConfiguration "embedding_model_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ @@ -224,9 +321,82 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: SupplementalDataStorageConfiguration + "supplemental_data_storage_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SupplementalDataStorageLocations + "supplemental_data_storage_locations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3Location + "s3_location": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: URI + "uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The location's URI", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^s3://.{1,128}$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "An Amazon S3 location.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SupplementalDataStorageLocationType + "supplemental_data_storage_location_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Supplemental data storage location type.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "S3", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of supplemental data storage locations.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 1), + fwvalidators.NotNullList(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configurations for supplemental data storage.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Contains details about the model used to create vector embeddings for the knowledge base.", - Required: true, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Contains details about the embeddings model used for the knowledge base.", @@ -420,7 +590,7 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { // "CollectionArn": { // "description": "The ARN of the OpenSearch Service vector store.", // "maxLength": 2048, - // "pattern": "^arn:aws:aoss:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:collection/[a-z0-9-]{3,32}$", + // "pattern": "^arn:aws(|-cn|-us-gov|-iso):aoss:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:collection/[a-z0-9-]{3,32}$", // "type": "string" // }, // "FieldMapping": { @@ -769,7 +939,7 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthAtMost(2048), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws:aoss:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:collection/[a-z0-9-]{3,32}$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(|-cn|-us-gov|-iso):aoss:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:collection/[a-z0-9-]{3,32}$"), ""), fwvalidators.NotNullString(), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -1085,7 +1255,8 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The storage type of a knowledge base.", - Required: true, + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( "OPENSEARCH_SERVERLESS", @@ -1093,13 +1264,19 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { "RDS", "MONGO_DB_ATLAS", ), + fwvalidators.NotNullString(), }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The vector store service in which the knowledge base is stored.", - Required: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ - objectplanmodifier.RequiresReplace(), + objectplanmodifier.UseStateForUnknown(), + objectplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Tags @@ -1165,44 +1342,51 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::Bedrock::KnowledgeBase").WithTerraformTypeName("awscc_bedrock_knowledge_base") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "bedrock_embedding_model_configuration": "BedrockEmbeddingModelConfiguration", - "collection_arn": "CollectionArn", - "collection_name": "CollectionName", - "connection_string": "ConnectionString", - "created_at": "CreatedAt", - "credentials_secret_arn": "CredentialsSecretArn", - "database_name": "DatabaseName", - "description": "Description", - "dimensions": "Dimensions", - "embedding_model_arn": "EmbeddingModelArn", - "embedding_model_configuration": "EmbeddingModelConfiguration", - "endpoint": "Endpoint", - "endpoint_service_name": "EndpointServiceName", - "failure_reasons": "FailureReasons", - "field_mapping": "FieldMapping", - "knowledge_base_arn": "KnowledgeBaseArn", - "knowledge_base_configuration": "KnowledgeBaseConfiguration", - "knowledge_base_id": "KnowledgeBaseId", - "metadata_field": "MetadataField", - "mongo_db_atlas_configuration": "MongoDbAtlasConfiguration", - "name": "Name", - "namespace": "Namespace", - "opensearch_serverless_configuration": "OpensearchServerlessConfiguration", - "pinecone_configuration": "PineconeConfiguration", - "primary_key_field": "PrimaryKeyField", - "rds_configuration": "RdsConfiguration", - "resource_arn": "ResourceArn", - "role_arn": "RoleArn", - "status": "Status", - "storage_configuration": "StorageConfiguration", - "table_name": "TableName", - "tags": "Tags", - "text_field": "TextField", - "type": "Type", - "updated_at": "UpdatedAt", - "vector_field": "VectorField", - "vector_index_name": "VectorIndexName", - "vector_knowledge_base_configuration": "VectorKnowledgeBaseConfiguration", + "bedrock_embedding_model_configuration": "BedrockEmbeddingModelConfiguration", + "collection_arn": "CollectionArn", + "collection_name": "CollectionName", + "connection_string": "ConnectionString", + "created_at": "CreatedAt", + "credentials_secret_arn": "CredentialsSecretArn", + "database_name": "DatabaseName", + "description": "Description", + "dimensions": "Dimensions", + "embedding_model_arn": "EmbeddingModelArn", + "embedding_model_configuration": "EmbeddingModelConfiguration", + "endpoint": "Endpoint", + "endpoint_service_name": "EndpointServiceName", + "failure_reasons": "FailureReasons", + "field_mapping": "FieldMapping", + "kendra_index_arn": "KendraIndexArn", + "kendra_knowledge_base_configuration": "KendraKnowledgeBaseConfiguration", + "knowledge_base_arn": "KnowledgeBaseArn", + "knowledge_base_configuration": "KnowledgeBaseConfiguration", + "knowledge_base_id": "KnowledgeBaseId", + "metadata_field": "MetadataField", + "mongo_db_atlas_configuration": "MongoDbAtlasConfiguration", + "name": "Name", + "namespace": "Namespace", + "opensearch_serverless_configuration": "OpensearchServerlessConfiguration", + "pinecone_configuration": "PineconeConfiguration", + "primary_key_field": "PrimaryKeyField", + "rds_configuration": "RdsConfiguration", + "resource_arn": "ResourceArn", + "role_arn": "RoleArn", + "s3_location": "S3Location", + "status": "Status", + "storage_configuration": "StorageConfiguration", + "supplemental_data_storage_configuration": "SupplementalDataStorageConfiguration", + "supplemental_data_storage_location_type": "SupplementalDataStorageLocationType", + "supplemental_data_storage_locations": "SupplementalDataStorageLocations", + "table_name": "TableName", + "tags": "Tags", + "text_field": "TextField", + "type": "Type", + "updated_at": "UpdatedAt", + "uri": "URI", + "vector_field": "VectorField", + "vector_index_name": "VectorIndexName", + "vector_knowledge_base_configuration": "VectorKnowledgeBaseConfiguration", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/bedrock/knowledge_base_singular_data_source_gen.go b/internal/aws/bedrock/knowledge_base_singular_data_source_gen.go index 5be3ba3bb..31d8605a9 100644 --- a/internal/aws/bedrock/knowledge_base_singular_data_source_gen.go +++ b/internal/aws/bedrock/knowledge_base_singular_data_source_gen.go @@ -87,10 +87,26 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) // "additionalProperties": false, // "description": "Contains details about the embeddings model used for the knowledge base.", // "properties": { + // "KendraKnowledgeBaseConfiguration": { + // "additionalProperties": false, + // "description": "Configurations for a Kendra knowledge base", + // "properties": { + // "KendraIndexArn": { + // "description": "Arn of a Kendra index", + // "pattern": "^arn:aws(|-cn|-us-gov):kendra:[a-z0-9-]{1,20}:([0-9]{12}|):index/([a-zA-Z0-9][a-zA-Z0-9-]{35}|[a-zA-Z0-9][a-zA-Z0-9-]{35}-[a-zA-Z0-9][a-zA-Z0-9-]{35})$", + // "type": "string" + // } + // }, + // "required": [ + // "KendraIndexArn" + // ], + // "type": "object" + // }, // "Type": { // "description": "The type of a knowledge base.", // "enum": [ - // "VECTOR" + // "VECTOR", + // "KENDRA" // ], // "type": "string" // }, @@ -124,6 +140,57 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) // } // }, // "type": "object" + // }, + // "SupplementalDataStorageConfiguration": { + // "additionalProperties": false, + // "description": "Configurations for supplemental data storage.", + // "properties": { + // "SupplementalDataStorageLocations": { + // "description": "List of supplemental data storage locations.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Supplemental data storage location.", + // "properties": { + // "S3Location": { + // "additionalProperties": false, + // "description": "An Amazon S3 location.", + // "properties": { + // "URI": { + // "description": "The location's URI", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^s3://.{1,128}$", + // "type": "string" + // } + // }, + // "required": [ + // "URI" + // ], + // "type": "object" + // }, + // "SupplementalDataStorageLocationType": { + // "description": "Supplemental data storage location type.", + // "enum": [ + // "S3" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "SupplementalDataStorageLocationType" + // ], + // "type": "object" + // }, + // "maxItems": 1, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "SupplementalDataStorageLocations" + // ], + // "type": "object" // } // }, // "required": [ @@ -133,13 +200,24 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) // } // }, // "required": [ - // "Type", - // "VectorKnowledgeBaseConfiguration" + // "Type" // ], // "type": "object" // } "knowledge_base_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KendraKnowledgeBaseConfiguration + "kendra_knowledge_base_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KendraIndexArn + "kendra_index_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn of a Kendra index", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configurations for a Kendra knowledge base", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The type of a knowledge base.", @@ -172,6 +250,39 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) Description: "The embeddings model configuration details for the vector model used in Knowledge Base.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: SupplementalDataStorageConfiguration + "supplemental_data_storage_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SupplementalDataStorageLocations + "supplemental_data_storage_locations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3Location + "s3_location": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: URI + "uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The location's URI", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "An Amazon S3 location.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SupplementalDataStorageLocationType + "supplemental_data_storage_location_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Supplemental data storage location type.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of supplemental data storage locations.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configurations for supplemental data storage.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Contains details about the model used to create vector embeddings for the knowledge base.", Computed: true, @@ -352,7 +463,7 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) // "CollectionArn": { // "description": "The ARN of the OpenSearch Service vector store.", // "maxLength": 2048, - // "pattern": "^arn:aws:aoss:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:collection/[a-z0-9-]{3,32}$", + // "pattern": "^arn:aws(|-cn|-us-gov|-iso):aoss:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:collection/[a-z0-9-]{3,32}$", // "type": "string" // }, // "FieldMapping": { @@ -793,44 +904,51 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) opts = opts.WithCloudFormationTypeName("AWS::Bedrock::KnowledgeBase").WithTerraformTypeName("awscc_bedrock_knowledge_base") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "bedrock_embedding_model_configuration": "BedrockEmbeddingModelConfiguration", - "collection_arn": "CollectionArn", - "collection_name": "CollectionName", - "connection_string": "ConnectionString", - "created_at": "CreatedAt", - "credentials_secret_arn": "CredentialsSecretArn", - "database_name": "DatabaseName", - "description": "Description", - "dimensions": "Dimensions", - "embedding_model_arn": "EmbeddingModelArn", - "embedding_model_configuration": "EmbeddingModelConfiguration", - "endpoint": "Endpoint", - "endpoint_service_name": "EndpointServiceName", - "failure_reasons": "FailureReasons", - "field_mapping": "FieldMapping", - "knowledge_base_arn": "KnowledgeBaseArn", - "knowledge_base_configuration": "KnowledgeBaseConfiguration", - "knowledge_base_id": "KnowledgeBaseId", - "metadata_field": "MetadataField", - "mongo_db_atlas_configuration": "MongoDbAtlasConfiguration", - "name": "Name", - "namespace": "Namespace", - "opensearch_serverless_configuration": "OpensearchServerlessConfiguration", - "pinecone_configuration": "PineconeConfiguration", - "primary_key_field": "PrimaryKeyField", - "rds_configuration": "RdsConfiguration", - "resource_arn": "ResourceArn", - "role_arn": "RoleArn", - "status": "Status", - "storage_configuration": "StorageConfiguration", - "table_name": "TableName", - "tags": "Tags", - "text_field": "TextField", - "type": "Type", - "updated_at": "UpdatedAt", - "vector_field": "VectorField", - "vector_index_name": "VectorIndexName", - "vector_knowledge_base_configuration": "VectorKnowledgeBaseConfiguration", + "bedrock_embedding_model_configuration": "BedrockEmbeddingModelConfiguration", + "collection_arn": "CollectionArn", + "collection_name": "CollectionName", + "connection_string": "ConnectionString", + "created_at": "CreatedAt", + "credentials_secret_arn": "CredentialsSecretArn", + "database_name": "DatabaseName", + "description": "Description", + "dimensions": "Dimensions", + "embedding_model_arn": "EmbeddingModelArn", + "embedding_model_configuration": "EmbeddingModelConfiguration", + "endpoint": "Endpoint", + "endpoint_service_name": "EndpointServiceName", + "failure_reasons": "FailureReasons", + "field_mapping": "FieldMapping", + "kendra_index_arn": "KendraIndexArn", + "kendra_knowledge_base_configuration": "KendraKnowledgeBaseConfiguration", + "knowledge_base_arn": "KnowledgeBaseArn", + "knowledge_base_configuration": "KnowledgeBaseConfiguration", + "knowledge_base_id": "KnowledgeBaseId", + "metadata_field": "MetadataField", + "mongo_db_atlas_configuration": "MongoDbAtlasConfiguration", + "name": "Name", + "namespace": "Namespace", + "opensearch_serverless_configuration": "OpensearchServerlessConfiguration", + "pinecone_configuration": "PineconeConfiguration", + "primary_key_field": "PrimaryKeyField", + "rds_configuration": "RdsConfiguration", + "resource_arn": "ResourceArn", + "role_arn": "RoleArn", + "s3_location": "S3Location", + "status": "Status", + "storage_configuration": "StorageConfiguration", + "supplemental_data_storage_configuration": "SupplementalDataStorageConfiguration", + "supplemental_data_storage_location_type": "SupplementalDataStorageLocationType", + "supplemental_data_storage_locations": "SupplementalDataStorageLocations", + "table_name": "TableName", + "tags": "Tags", + "text_field": "TextField", + "type": "Type", + "updated_at": "UpdatedAt", + "uri": "URI", + "vector_field": "VectorField", + "vector_index_name": "VectorIndexName", + "vector_knowledge_base_configuration": "VectorKnowledgeBaseConfiguration", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/bedrock/prompt_resource_gen.go b/internal/aws/bedrock/prompt_resource_gen.go index 6afb88c46..bffa2224f 100644 --- a/internal/aws/bedrock/prompt_resource_gen.go +++ b/internal/aws/bedrock/prompt_resource_gen.go @@ -9,6 +9,7 @@ import ( "context" "regexp" + "github.com/hashicorp/terraform-plugin-framework-jsontypes/jsontypes" "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" "github.com/hashicorp/terraform-plugin-framework-validators/float64validator" "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" @@ -213,6 +214,28 @@ func promptResource(ctx context.Context) (resource.Resource, error) { // "additionalProperties": false, // "description": "Prompt variant", // "properties": { + // "GenAiResource": { + // "description": "Target resource to invoke with Prompt", + // "properties": { + // "Agent": { + // "additionalProperties": false, + // "description": "Target Agent to invoke with Prompt", + // "properties": { + // "AgentIdentifier": { + // "description": "Arn representation of the Agent Alias.", + // "maxLength": 2048, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$", + // "type": "string" + // } + // }, + // "required": [ + // "AgentIdentifier" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, // "InferenceConfiguration": { // "description": "Model inference configuration", // "properties": { @@ -269,6 +292,180 @@ func promptResource(ctx context.Context) (resource.Resource, error) { // "TemplateConfiguration": { // "description": "Prompt template configuration", // "properties": { + // "Chat": { + // "additionalProperties": false, + // "description": "Configuration for chat prompt template", + // "properties": { + // "InputVariables": { + // "description": "List of input variables", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input variable", + // "properties": { + // "Name": { + // "description": "Name for an input variable", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 0, + // "type": "array" + // }, + // "Messages": { + // "description": "List of messages for chat prompt template", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Chat prompt Message", + // "properties": { + // "Content": { + // "description": "List of Content Blocks", + // "insertionOrder": true, + // "items": { + // "description": "Configuration for chat prompt template", + // "properties": { + // "Text": { + // "description": "Configuration for chat prompt template", + // "minLength": 1, + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // }, + // "Role": { + // "description": "Conversation roles for the chat prompt", + // "enum": [ + // "user", + // "assistant" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Role", + // "Content" + // ], + // "type": "object" + // }, + // "minItems": 0, + // "type": "array" + // }, + // "System": { + // "description": "Configuration for chat prompt template", + // "insertionOrder": true, + // "items": { + // "description": "Configuration for chat prompt template", + // "properties": { + // "Text": { + // "description": "Configuration for chat prompt template", + // "minLength": 1, + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "minItems": 0, + // "type": "array" + // }, + // "ToolConfiguration": { + // "additionalProperties": false, + // "description": "Tool configuration", + // "properties": { + // "ToolChoice": { + // "description": "Tool choice", + // "properties": { + // "Any": { + // "additionalProperties": false, + // "description": "Any Tool choice", + // "type": "object" + // }, + // "Auto": { + // "additionalProperties": false, + // "description": "Auto Tool choice", + // "type": "object" + // }, + // "Tool": { + // "additionalProperties": false, + // "description": "Specific Tool choice", + // "properties": { + // "Name": { + // "description": "Tool name", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Tools": { + // "description": "List of Tools", + // "insertionOrder": true, + // "items": { + // "description": "Tool details", + // "properties": { + // "ToolSpec": { + // "additionalProperties": false, + // "description": "Tool specification", + // "properties": { + // "Description": { + // "minLength": 1, + // "type": "string" + // }, + // "InputSchema": { + // "description": "Tool input schema", + // "properties": { + // "Json": { + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "description": "Tool name", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$", + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "InputSchema" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Tools" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "Messages" + // ], + // "type": "object" + // }, // "Text": { // "additionalProperties": false, // "description": "Configuration for text prompt template", @@ -337,7 +534,8 @@ func promptResource(ctx context.Context) (resource.Resource, error) { // "TemplateType": { // "description": "Prompt template type", // "enum": [ - // "TEXT" + // "TEXT", + // "CHAT" // ], // "type": "string" // } @@ -356,6 +554,42 @@ func promptResource(ctx context.Context) (resource.Resource, error) { "variants": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: GenAiResource + "gen_ai_resource": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Agent + "agent": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AgentIdentifier + "agent_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn representation of the Agent Alias.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Target Agent to invoke with Prompt", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Target resource to invoke with Prompt", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: InferenceConfiguration "inference_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -456,6 +690,278 @@ func promptResource(ctx context.Context) (resource.Resource, error) { // Property: TemplateConfiguration "template_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Chat + "chat": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputVariables + "input_variables": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for an input variable", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^([0-9a-zA-Z][_-]?){1,100}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of input variables", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 5), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Messages + "messages": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Content + "content": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Configuration for chat prompt template", + 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*/ + }, /*END NESTED OBJECT*/ + Description: "List of Content Blocks", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(1), + fwvalidators.NotNullList(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Role + "role": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Conversation roles for the chat prompt", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "user", + "assistant", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of messages for chat prompt template", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(0), + fwvalidators.NotNullList(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: System + "system": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Configuration for chat prompt template", + 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*/ + }, /*END NESTED OBJECT*/ + Description: "Configuration for chat prompt template", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(0), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ToolConfiguration + "tool_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ToolChoice + "tool_choice": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Any + "any": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Any Tool choice", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Auto + "auto": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Auto Tool choice", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tool + "tool": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Tool name", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z][a-zA-Z0-9_]*$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specific Tool choice", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Tool choice", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tools + "tools": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ToolSpec + "tool_spec": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Description + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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*/ + // Property: InputSchema + "input_schema": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Json + "json": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Tool input schema", + Optional: true, + Computed: true, + Validators: []validator.Object{ /*START VALIDATORS*/ + fwvalidators.NotNullObject(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Tool name", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z][a-zA-Z0-9_]*$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Tool specification", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of Tools", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(1), + fwvalidators.NotNullList(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Tool configuration", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for chat prompt template", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Text "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -576,6 +1082,7 @@ func promptResource(ctx context.Context) (resource.Resource, error) { Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( "TEXT", + "CHAT", ), fwvalidators.NotNullString(), }, /*END VALIDATORS*/ @@ -634,26 +1141,43 @@ func promptResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::Bedrock::Prompt").WithTerraformTypeName("awscc_bedrock_prompt") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "agent": "Agent", + "agent_identifier": "AgentIdentifier", + "any": "Any", "arn": "Arn", + "auto": "Auto", "bucket": "Bucket", + "chat": "Chat", + "content": "Content", "created_at": "CreatedAt", "customer_encryption_key_arn": "CustomerEncryptionKeyArn", "default_variant": "DefaultVariant", "description": "Description", + "gen_ai_resource": "GenAiResource", "inference_configuration": "InferenceConfiguration", + "input_schema": "InputSchema", "input_variables": "InputVariables", + "json": "Json", "key": "Key", "max_tokens": "MaxTokens", + "messages": "Messages", "model_id": "ModelId", "name": "Name", "prompt_id": "Id", + "role": "Role", "stop_sequences": "StopSequences", + "system": "System", "tags": "Tags", "temperature": "Temperature", "template_configuration": "TemplateConfiguration", "template_type": "TemplateType", "text": "Text", "text_s3_location": "TextS3Location", + "tool": "Tool", + "tool_choice": "ToolChoice", + "tool_configuration": "ToolConfiguration", + "tool_spec": "ToolSpec", + "tools": "Tools", "top_p": "TopP", "updated_at": "UpdatedAt", "variants": "Variants", diff --git a/internal/aws/bedrock/prompt_singular_data_source_gen.go b/internal/aws/bedrock/prompt_singular_data_source_gen.go index a4245392e..936b4bf27 100644 --- a/internal/aws/bedrock/prompt_singular_data_source_gen.go +++ b/internal/aws/bedrock/prompt_singular_data_source_gen.go @@ -8,6 +8,7 @@ package bedrock import ( "context" + "github.com/hashicorp/terraform-plugin-framework-jsontypes/jsontypes" "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" "github.com/hashicorp/terraform-plugin-framework/datasource" "github.com/hashicorp/terraform-plugin-framework/datasource/schema" @@ -160,6 +161,28 @@ func promptDataSource(ctx context.Context) (datasource.DataSource, error) { // "additionalProperties": false, // "description": "Prompt variant", // "properties": { + // "GenAiResource": { + // "description": "Target resource to invoke with Prompt", + // "properties": { + // "Agent": { + // "additionalProperties": false, + // "description": "Target Agent to invoke with Prompt", + // "properties": { + // "AgentIdentifier": { + // "description": "Arn representation of the Agent Alias.", + // "maxLength": 2048, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$", + // "type": "string" + // } + // }, + // "required": [ + // "AgentIdentifier" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, // "InferenceConfiguration": { // "description": "Model inference configuration", // "properties": { @@ -216,6 +239,180 @@ func promptDataSource(ctx context.Context) (datasource.DataSource, error) { // "TemplateConfiguration": { // "description": "Prompt template configuration", // "properties": { + // "Chat": { + // "additionalProperties": false, + // "description": "Configuration for chat prompt template", + // "properties": { + // "InputVariables": { + // "description": "List of input variables", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input variable", + // "properties": { + // "Name": { + // "description": "Name for an input variable", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 0, + // "type": "array" + // }, + // "Messages": { + // "description": "List of messages for chat prompt template", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Chat prompt Message", + // "properties": { + // "Content": { + // "description": "List of Content Blocks", + // "insertionOrder": true, + // "items": { + // "description": "Configuration for chat prompt template", + // "properties": { + // "Text": { + // "description": "Configuration for chat prompt template", + // "minLength": 1, + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // }, + // "Role": { + // "description": "Conversation roles for the chat prompt", + // "enum": [ + // "user", + // "assistant" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Role", + // "Content" + // ], + // "type": "object" + // }, + // "minItems": 0, + // "type": "array" + // }, + // "System": { + // "description": "Configuration for chat prompt template", + // "insertionOrder": true, + // "items": { + // "description": "Configuration for chat prompt template", + // "properties": { + // "Text": { + // "description": "Configuration for chat prompt template", + // "minLength": 1, + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "minItems": 0, + // "type": "array" + // }, + // "ToolConfiguration": { + // "additionalProperties": false, + // "description": "Tool configuration", + // "properties": { + // "ToolChoice": { + // "description": "Tool choice", + // "properties": { + // "Any": { + // "additionalProperties": false, + // "description": "Any Tool choice", + // "type": "object" + // }, + // "Auto": { + // "additionalProperties": false, + // "description": "Auto Tool choice", + // "type": "object" + // }, + // "Tool": { + // "additionalProperties": false, + // "description": "Specific Tool choice", + // "properties": { + // "Name": { + // "description": "Tool name", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Tools": { + // "description": "List of Tools", + // "insertionOrder": true, + // "items": { + // "description": "Tool details", + // "properties": { + // "ToolSpec": { + // "additionalProperties": false, + // "description": "Tool specification", + // "properties": { + // "Description": { + // "minLength": 1, + // "type": "string" + // }, + // "InputSchema": { + // "description": "Tool input schema", + // "properties": { + // "Json": { + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "description": "Tool name", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$", + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "InputSchema" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Tools" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "Messages" + // ], + // "type": "object" + // }, // "Text": { // "additionalProperties": false, // "description": "Configuration for text prompt template", @@ -284,7 +481,8 @@ func promptDataSource(ctx context.Context) (datasource.DataSource, error) { // "TemplateType": { // "description": "Prompt template type", // "enum": [ - // "TEXT" + // "TEXT", + // "CHAT" // ], // "type": "string" // } @@ -303,6 +501,25 @@ func promptDataSource(ctx context.Context) (datasource.DataSource, error) { "variants": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: GenAiResource + "gen_ai_resource": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Agent + "agent": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AgentIdentifier + "agent_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn representation of the Agent Alias.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Target Agent to invoke with Prompt", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Target resource to invoke with Prompt", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: InferenceConfiguration "inference_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -351,6 +568,144 @@ func promptDataSource(ctx context.Context) (datasource.DataSource, error) { // Property: TemplateConfiguration "template_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Chat + "chat": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputVariables + "input_variables": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for an input variable", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of input variables", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Messages + "messages": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Content + "content": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Configuration for chat prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of Content Blocks", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Role + "role": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Conversation roles for the chat prompt", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of messages for chat prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: System + "system": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Configuration for chat prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Configuration for chat prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ToolConfiguration + "tool_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ToolChoice + "tool_choice": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Any + "any": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Any Tool choice", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Auto + "auto": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Auto Tool choice", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tool + "tool": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Tool name", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specific Tool choice", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Tool choice", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tools + "tools": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ToolSpec + "tool_spec": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Description + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InputSchema + "input_schema": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Json + "json": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Tool input schema", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Tool name", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Tool specification", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of Tools", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Tool configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for chat prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Text "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -444,26 +799,43 @@ func promptDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithCloudFormationTypeName("AWS::Bedrock::Prompt").WithTerraformTypeName("awscc_bedrock_prompt") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "agent": "Agent", + "agent_identifier": "AgentIdentifier", + "any": "Any", "arn": "Arn", + "auto": "Auto", "bucket": "Bucket", + "chat": "Chat", + "content": "Content", "created_at": "CreatedAt", "customer_encryption_key_arn": "CustomerEncryptionKeyArn", "default_variant": "DefaultVariant", "description": "Description", + "gen_ai_resource": "GenAiResource", "inference_configuration": "InferenceConfiguration", + "input_schema": "InputSchema", "input_variables": "InputVariables", + "json": "Json", "key": "Key", "max_tokens": "MaxTokens", + "messages": "Messages", "model_id": "ModelId", "name": "Name", "prompt_id": "Id", + "role": "Role", "stop_sequences": "StopSequences", + "system": "System", "tags": "Tags", "temperature": "Temperature", "template_configuration": "TemplateConfiguration", "template_type": "TemplateType", "text": "Text", "text_s3_location": "TextS3Location", + "tool": "Tool", + "tool_choice": "ToolChoice", + "tool_configuration": "ToolConfiguration", + "tool_spec": "ToolSpec", + "tools": "Tools", "top_p": "TopP", "updated_at": "UpdatedAt", "variants": "Variants", diff --git a/internal/aws/cleanrooms/collaboration_resource_gen.go b/internal/aws/cleanrooms/collaboration_resource_gen.go index e8f115955..3c2fbda2c 100644 --- a/internal/aws/cleanrooms/collaboration_resource_gen.go +++ b/internal/aws/cleanrooms/collaboration_resource_gen.go @@ -105,6 +105,58 @@ func collaborationResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: CreatorMLMemberAbilities + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "CustomMLMemberAbilities": { + // "insertionOrder": false, + // "items": { + // "enum": [ + // "CAN_RECEIVE_MODEL_OUTPUT", + // "CAN_RECEIVE_INFERENCE_OUTPUT" + // ], + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "CustomMLMemberAbilities" + // ], + // "type": "object" + // } + "creator_ml_member_abilities": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CustomMLMemberAbilities + "custom_ml_member_abilities": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.Set{ /*START VALIDATORS*/ + setvalidator.ValueStringsAre( + stringvalidator.OneOf( + "CAN_RECEIVE_MODEL_OUTPUT", + "CAN_RECEIVE_INFERENCE_OUTPUT", + ), + ), + fwvalidators.NotNullSet(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + objectplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: CreatorMemberAbilities // CloudFormation resource type schema: // @@ -141,6 +193,36 @@ func collaborationResource(ctx context.Context) (resource.Resource, error) { // { // "additionalProperties": false, // "properties": { + // "MachineLearning": { + // "additionalProperties": false, + // "properties": { + // "ModelInference": { + // "additionalProperties": false, + // "properties": { + // "IsResponsible": { + // "type": "boolean" + // } + // }, + // "required": [ + // "IsResponsible" + // ], + // "type": "object" + // }, + // "ModelTraining": { + // "additionalProperties": false, + // "properties": { + // "IsResponsible": { + // "type": "boolean" + // } + // }, + // "required": [ + // "IsResponsible" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, // "QueryCompute": { // "additionalProperties": false, // "properties": { @@ -161,6 +243,58 @@ func collaborationResource(ctx context.Context) (resource.Resource, error) { // } "creator_payment_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MachineLearning + "machine_learning": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ModelInference + "model_inference": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsResponsible + "is_responsible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Bool{ /*START VALIDATORS*/ + fwvalidators.NotNullBool(), + }, /*END VALIDATORS*/ + 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: ModelTraining + "model_training": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsResponsible + "is_responsible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Bool{ /*START VALIDATORS*/ + fwvalidators.NotNullBool(), + }, /*END VALIDATORS*/ + 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*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: QueryCompute "query_compute": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -309,6 +443,27 @@ func collaborationResource(ctx context.Context) (resource.Resource, error) { // "pattern": "", // "type": "string" // }, + // "MLMemberAbilities": { + // "additionalProperties": false, + // "properties": { + // "CustomMLMemberAbilities": { + // "insertionOrder": false, + // "items": { + // "enum": [ + // "CAN_RECEIVE_MODEL_OUTPUT", + // "CAN_RECEIVE_INFERENCE_OUTPUT" + // ], + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "CustomMLMemberAbilities" + // ], + // "type": "object" + // }, // "MemberAbilities": { // "insertionOrder": false, // "items": { @@ -324,6 +479,36 @@ func collaborationResource(ctx context.Context) (resource.Resource, error) { // "PaymentConfiguration": { // "additionalProperties": false, // "properties": { + // "MachineLearning": { + // "additionalProperties": false, + // "properties": { + // "ModelInference": { + // "additionalProperties": false, + // "properties": { + // "IsResponsible": { + // "type": "boolean" + // } + // }, + // "required": [ + // "IsResponsible" + // ], + // "type": "object" + // }, + // "ModelTraining": { + // "additionalProperties": false, + // "properties": { + // "IsResponsible": { + // "type": "boolean" + // } + // }, + // "required": [ + // "IsResponsible" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, // "QueryCompute": { // "additionalProperties": false, // "properties": { @@ -372,6 +557,34 @@ func collaborationResource(ctx context.Context) (resource.Resource, error) { stringvalidator.LengthBetween(1, 100), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ + // Property: MLMemberAbilities + "ml_member_abilities": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CustomMLMemberAbilities + "custom_ml_member_abilities": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.Set{ /*START VALIDATORS*/ + setvalidator.ValueStringsAre( + stringvalidator.OneOf( + "CAN_RECEIVE_MODEL_OUTPUT", + "CAN_RECEIVE_INFERENCE_OUTPUT", + ), + ), + fwvalidators.NotNullSet(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.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: MemberAbilities "member_abilities": schema.SetAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, @@ -388,6 +601,58 @@ func collaborationResource(ctx context.Context) (resource.Resource, error) { // Property: PaymentConfiguration "payment_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MachineLearning + "machine_learning": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ModelInference + "model_inference": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsResponsible + "is_responsible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Bool{ /*START VALIDATORS*/ + fwvalidators.NotNullBool(), + }, /*END VALIDATORS*/ + 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: ModelTraining + "model_training": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsResponsible + "is_responsible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Bool{ /*START VALIDATORS*/ + fwvalidators.NotNullBool(), + }, /*END VALIDATORS*/ + 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*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: QueryCompute "query_compute": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -563,14 +828,20 @@ func collaborationResource(ctx context.Context) (resource.Resource, error) { "collaboration_identifier": "CollaborationIdentifier", "creator_display_name": "CreatorDisplayName", "creator_member_abilities": "CreatorMemberAbilities", + "creator_ml_member_abilities": "CreatorMLMemberAbilities", "creator_payment_configuration": "CreatorPaymentConfiguration", + "custom_ml_member_abilities": "CustomMLMemberAbilities", "data_encryption_metadata": "DataEncryptionMetadata", "description": "Description", "display_name": "DisplayName", "is_responsible": "IsResponsible", "key": "Key", + "machine_learning": "MachineLearning", "member_abilities": "MemberAbilities", "members": "Members", + "ml_member_abilities": "MLMemberAbilities", + "model_inference": "ModelInference", + "model_training": "ModelTraining", "name": "Name", "payment_configuration": "PaymentConfiguration", "preserve_nulls": "PreserveNulls", diff --git a/internal/aws/cleanrooms/collaboration_singular_data_source_gen.go b/internal/aws/cleanrooms/collaboration_singular_data_source_gen.go index 0b550bf0b..cc328722a 100644 --- a/internal/aws/cleanrooms/collaboration_singular_data_source_gen.go +++ b/internal/aws/cleanrooms/collaboration_singular_data_source_gen.go @@ -70,6 +70,40 @@ func collaborationDataSource(ctx context.Context) (datasource.DataSource, error) "creator_display_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: CreatorMLMemberAbilities + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "CustomMLMemberAbilities": { + // "insertionOrder": false, + // "items": { + // "enum": [ + // "CAN_RECEIVE_MODEL_OUTPUT", + // "CAN_RECEIVE_INFERENCE_OUTPUT" + // ], + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "CustomMLMemberAbilities" + // ], + // "type": "object" + // } + "creator_ml_member_abilities": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CustomMLMemberAbilities + "custom_ml_member_abilities": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: CreatorMemberAbilities // CloudFormation resource type schema: // @@ -95,6 +129,36 @@ func collaborationDataSource(ctx context.Context) (datasource.DataSource, error) // { // "additionalProperties": false, // "properties": { + // "MachineLearning": { + // "additionalProperties": false, + // "properties": { + // "ModelInference": { + // "additionalProperties": false, + // "properties": { + // "IsResponsible": { + // "type": "boolean" + // } + // }, + // "required": [ + // "IsResponsible" + // ], + // "type": "object" + // }, + // "ModelTraining": { + // "additionalProperties": false, + // "properties": { + // "IsResponsible": { + // "type": "boolean" + // } + // }, + // "required": [ + // "IsResponsible" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, // "QueryCompute": { // "additionalProperties": false, // "properties": { @@ -115,6 +179,32 @@ func collaborationDataSource(ctx context.Context) (datasource.DataSource, error) // } "creator_payment_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MachineLearning + "machine_learning": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ModelInference + "model_inference": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsResponsible + "is_responsible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelTraining + "model_training": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsResponsible + "is_responsible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: QueryCompute "query_compute": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -208,6 +298,27 @@ func collaborationDataSource(ctx context.Context) (datasource.DataSource, error) // "pattern": "", // "type": "string" // }, + // "MLMemberAbilities": { + // "additionalProperties": false, + // "properties": { + // "CustomMLMemberAbilities": { + // "insertionOrder": false, + // "items": { + // "enum": [ + // "CAN_RECEIVE_MODEL_OUTPUT", + // "CAN_RECEIVE_INFERENCE_OUTPUT" + // ], + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "CustomMLMemberAbilities" + // ], + // "type": "object" + // }, // "MemberAbilities": { // "insertionOrder": false, // "items": { @@ -223,6 +334,36 @@ func collaborationDataSource(ctx context.Context) (datasource.DataSource, error) // "PaymentConfiguration": { // "additionalProperties": false, // "properties": { + // "MachineLearning": { + // "additionalProperties": false, + // "properties": { + // "ModelInference": { + // "additionalProperties": false, + // "properties": { + // "IsResponsible": { + // "type": "boolean" + // } + // }, + // "required": [ + // "IsResponsible" + // ], + // "type": "object" + // }, + // "ModelTraining": { + // "additionalProperties": false, + // "properties": { + // "IsResponsible": { + // "type": "boolean" + // } + // }, + // "required": [ + // "IsResponsible" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, // "QueryCompute": { // "additionalProperties": false, // "properties": { @@ -264,6 +405,17 @@ func collaborationDataSource(ctx context.Context) (datasource.DataSource, error) "display_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: MLMemberAbilities + "ml_member_abilities": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CustomMLMemberAbilities + "custom_ml_member_abilities": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: MemberAbilities "member_abilities": schema.SetAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, @@ -272,6 +424,32 @@ func collaborationDataSource(ctx context.Context) (datasource.DataSource, error) // Property: PaymentConfiguration "payment_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MachineLearning + "machine_learning": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ModelInference + "model_inference": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsResponsible + "is_responsible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelTraining + "model_training": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsResponsible + "is_responsible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: QueryCompute "query_compute": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -385,14 +563,20 @@ func collaborationDataSource(ctx context.Context) (datasource.DataSource, error) "collaboration_identifier": "CollaborationIdentifier", "creator_display_name": "CreatorDisplayName", "creator_member_abilities": "CreatorMemberAbilities", + "creator_ml_member_abilities": "CreatorMLMemberAbilities", "creator_payment_configuration": "CreatorPaymentConfiguration", + "custom_ml_member_abilities": "CustomMLMemberAbilities", "data_encryption_metadata": "DataEncryptionMetadata", "description": "Description", "display_name": "DisplayName", "is_responsible": "IsResponsible", "key": "Key", + "machine_learning": "MachineLearning", "member_abilities": "MemberAbilities", "members": "Members", + "ml_member_abilities": "MLMemberAbilities", + "model_inference": "ModelInference", + "model_training": "ModelTraining", "name": "Name", "payment_configuration": "PaymentConfiguration", "preserve_nulls": "PreserveNulls", diff --git a/internal/aws/cleanrooms/membership_resource_gen.go b/internal/aws/cleanrooms/membership_resource_gen.go index d0df4abea..963ba705a 100644 --- a/internal/aws/cleanrooms/membership_resource_gen.go +++ b/internal/aws/cleanrooms/membership_resource_gen.go @@ -255,6 +255,36 @@ func membershipResource(ctx context.Context) (resource.Resource, error) { // { // "additionalProperties": false, // "properties": { + // "MachineLearning": { + // "additionalProperties": false, + // "properties": { + // "ModelInference": { + // "additionalProperties": false, + // "properties": { + // "IsResponsible": { + // "type": "boolean" + // } + // }, + // "required": [ + // "IsResponsible" + // ], + // "type": "object" + // }, + // "ModelTraining": { + // "additionalProperties": false, + // "properties": { + // "IsResponsible": { + // "type": "boolean" + // } + // }, + // "required": [ + // "IsResponsible" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, // "QueryCompute": { // "additionalProperties": false, // "properties": { @@ -275,6 +305,58 @@ func membershipResource(ctx context.Context) (resource.Resource, error) { // } "payment_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MachineLearning + "machine_learning": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ModelInference + "model_inference": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsResponsible + "is_responsible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Bool{ /*START VALIDATORS*/ + fwvalidators.NotNullBool(), + }, /*END VALIDATORS*/ + 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: ModelTraining + "model_training": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsResponsible + "is_responsible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Bool{ /*START VALIDATORS*/ + fwvalidators.NotNullBool(), + }, /*END VALIDATORS*/ + 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*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: QueryCompute "query_compute": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -421,7 +503,10 @@ func membershipResource(ctx context.Context) (resource.Resource, error) { "is_responsible": "IsResponsible", "key": "Key", "key_prefix": "KeyPrefix", + "machine_learning": "MachineLearning", "membership_identifier": "MembershipIdentifier", + "model_inference": "ModelInference", + "model_training": "ModelTraining", "output_configuration": "OutputConfiguration", "payment_configuration": "PaymentConfiguration", "query_compute": "QueryCompute", diff --git a/internal/aws/cleanrooms/membership_singular_data_source_gen.go b/internal/aws/cleanrooms/membership_singular_data_source_gen.go index 425a3e44e..6d1411386 100644 --- a/internal/aws/cleanrooms/membership_singular_data_source_gen.go +++ b/internal/aws/cleanrooms/membership_singular_data_source_gen.go @@ -175,6 +175,36 @@ func membershipDataSource(ctx context.Context) (datasource.DataSource, error) { // { // "additionalProperties": false, // "properties": { + // "MachineLearning": { + // "additionalProperties": false, + // "properties": { + // "ModelInference": { + // "additionalProperties": false, + // "properties": { + // "IsResponsible": { + // "type": "boolean" + // } + // }, + // "required": [ + // "IsResponsible" + // ], + // "type": "object" + // }, + // "ModelTraining": { + // "additionalProperties": false, + // "properties": { + // "IsResponsible": { + // "type": "boolean" + // } + // }, + // "required": [ + // "IsResponsible" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, // "QueryCompute": { // "additionalProperties": false, // "properties": { @@ -195,6 +225,32 @@ func membershipDataSource(ctx context.Context) (datasource.DataSource, error) { // } "payment_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MachineLearning + "machine_learning": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ModelInference + "model_inference": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsResponsible + "is_responsible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelTraining + "model_training": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsResponsible + "is_responsible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: QueryCompute "query_compute": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -292,7 +348,10 @@ func membershipDataSource(ctx context.Context) (datasource.DataSource, error) { "is_responsible": "IsResponsible", "key": "Key", "key_prefix": "KeyPrefix", + "machine_learning": "MachineLearning", "membership_identifier": "MembershipIdentifier", + "model_inference": "ModelInference", + "model_training": "ModelTraining", "output_configuration": "OutputConfiguration", "payment_configuration": "PaymentConfiguration", "query_compute": "QueryCompute", diff --git a/internal/aws/cloudfront/anycast_ip_list_plural_data_source_gen.go b/internal/aws/cloudfront/anycast_ip_list_plural_data_source_gen.go new file mode 100644 index 000000000..4a8f874e7 --- /dev/null +++ b/internal/aws/cloudfront/anycast_ip_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 cloudfront + +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_cloudfront_anycast_ip_lists", anycastIpListsDataSource) +} + +// anycastIpListsDataSource returns the Terraform awscc_cloudfront_anycast_ip_lists data source. +// This Terraform data source corresponds to the CloudFormation AWS::CloudFront::AnycastIpList resource. +func anycastIpListsDataSource(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::CloudFront::AnycastIpList", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::CloudFront::AnycastIpList").WithTerraformTypeName("awscc_cloudfront_anycast_ip_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/cloudfront/anycast_ip_list_plural_data_source_gen_test.go b/internal/aws/cloudfront/anycast_ip_list_plural_data_source_gen_test.go new file mode 100644 index 000000000..47dcbdc0a --- /dev/null +++ b/internal/aws/cloudfront/anycast_ip_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 cloudfront_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCloudFrontAnycastIpListsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CloudFront::AnycastIpList", "awscc_cloudfront_anycast_ip_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/cloudfront/anycast_ip_list_resource_gen.go b/internal/aws/cloudfront/anycast_ip_list_resource_gen.go new file mode 100644 index 000000000..754820188 --- /dev/null +++ b/internal/aws/cloudfront/anycast_ip_list_resource_gen.go @@ -0,0 +1,304 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package cloudfront + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/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" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_cloudfront_anycast_ip_list", anycastIpListResource) +} + +// anycastIpListResource returns the Terraform awscc_cloudfront_anycast_ip_list resource. +// This Terraform resource corresponds to the CloudFormation AWS::CloudFront::AnycastIpList resource. +func anycastIpListResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnycastIpList + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "AnycastIps": { + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Arn": { + // "type": "string" + // }, + // "Id": { + // "type": "string" + // }, + // "IpCount": { + // "type": "integer" + // }, + // "LastModifiedTime": { + // "format": "date-time", + // "type": "string" + // }, + // "Name": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-_]{1,64}$", + // "type": "string" + // }, + // "Status": { + // "type": "string" + // } + // }, + // "required": [ + // "AnycastIps", + // "Arn", + // "Id", + // "IpCount", + // "LastModifiedTime", + // "Name", + // "Status" + // ], + // "type": "object" + // } + "anycast_ip_list": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnycastIps + "anycast_ips": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Arn + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + "id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IpCount + "ip_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LastModifiedTime + "last_modified_time": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ETag + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "e_tag": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "anycast_ip_list_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: IpCount + // CloudFormation resource type schema: + // + // { + // "type": "integer" + // } + "ip_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Required: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-_]{1,64}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9-_]{1,64}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "Items": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + "tags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Items + "items": 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, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + stringvalidator.RegexMatches(regexp.MustCompile("^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 256), + stringvalidator.RegexMatches(regexp.MustCompile("^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + objectplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::CloudFront::AnycastIpList Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::CloudFront::AnycastIpList").WithTerraformTypeName("awscc_cloudfront_anycast_ip_list") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "anycast_ip_list": "AnycastIpList", + "anycast_ip_list_id": "Id", + "anycast_ips": "AnycastIps", + "arn": "Arn", + "e_tag": "ETag", + "id": "Id", + "ip_count": "IpCount", + "items": "Items", + "key": "Key", + "last_modified_time": "LastModifiedTime", + "name": "Name", + "status": "Status", + "tags": "Tags", + "value": "Value", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/cloudfront/anycast_ip_list_resource_gen_test.go b/internal/aws/cloudfront/anycast_ip_list_resource_gen_test.go new file mode 100644 index 000000000..3142e85da --- /dev/null +++ b/internal/aws/cloudfront/anycast_ip_list_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 cloudfront_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCloudFrontAnycastIpList_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CloudFront::AnycastIpList", "awscc_cloudfront_anycast_ip_list", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/cloudfront/anycast_ip_list_singular_data_source_gen.go b/internal/aws/cloudfront/anycast_ip_list_singular_data_source_gen.go new file mode 100644 index 000000000..29e603def --- /dev/null +++ b/internal/aws/cloudfront/anycast_ip_list_singular_data_source_gen.go @@ -0,0 +1,241 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package cloudfront + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_cloudfront_anycast_ip_list", anycastIpListDataSource) +} + +// anycastIpListDataSource returns the Terraform awscc_cloudfront_anycast_ip_list data source. +// This Terraform data source corresponds to the CloudFormation AWS::CloudFront::AnycastIpList resource. +func anycastIpListDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnycastIpList + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "AnycastIps": { + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Arn": { + // "type": "string" + // }, + // "Id": { + // "type": "string" + // }, + // "IpCount": { + // "type": "integer" + // }, + // "LastModifiedTime": { + // "format": "date-time", + // "type": "string" + // }, + // "Name": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-_]{1,64}$", + // "type": "string" + // }, + // "Status": { + // "type": "string" + // } + // }, + // "required": [ + // "AnycastIps", + // "Arn", + // "Id", + // "IpCount", + // "LastModifiedTime", + // "Name", + // "Status" + // ], + // "type": "object" + // } + "anycast_ip_list": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnycastIps + "anycast_ips": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Arn + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + "id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IpCount + "ip_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LastModifiedTime + "last_modified_time": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ETag + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "e_tag": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "anycast_ip_list_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IpCount + // CloudFormation resource type schema: + // + // { + // "type": "integer" + // } + "ip_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-_]{1,64}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "Items": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + "tags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Items + "items": 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*/ + }, /*END SCHEMA*/ + 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::CloudFront::AnycastIpList", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::CloudFront::AnycastIpList").WithTerraformTypeName("awscc_cloudfront_anycast_ip_list") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "anycast_ip_list": "AnycastIpList", + "anycast_ip_list_id": "Id", + "anycast_ips": "AnycastIps", + "arn": "Arn", + "e_tag": "ETag", + "id": "Id", + "ip_count": "IpCount", + "items": "Items", + "key": "Key", + "last_modified_time": "LastModifiedTime", + "name": "Name", + "status": "Status", + "tags": "Tags", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/cloudfront/anycast_ip_list_singular_data_source_gen_test.go b/internal/aws/cloudfront/anycast_ip_list_singular_data_source_gen_test.go new file mode 100644 index 000000000..d0709bc5c --- /dev/null +++ b/internal/aws/cloudfront/anycast_ip_list_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 cloudfront_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCloudFrontAnycastIpListDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CloudFront::AnycastIpList", "awscc_cloudfront_anycast_ip_list", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSCloudFrontAnycastIpListDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CloudFront::AnycastIpList", "awscc_cloudfront_anycast_ip_list", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/cloudfront/distribution_resource_gen.go b/internal/aws/cloudfront/distribution_resource_gen.go index 3ac5a2e2b..845de4925 100644 --- a/internal/aws/cloudfront/distribution_resource_gen.go +++ b/internal/aws/cloudfront/distribution_resource_gen.go @@ -53,6 +53,10 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { // "type": "array", // "uniqueItems": false // }, + // "AnycastIpListId": { + // "description": "", + // "type": "string" + // }, // "CNAMEs": { // "description": "An alias for the CF distribution's domain name.\n This property is legacy. We recommend that you use [Aliases](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-aliases) instead.", // "items": { @@ -187,9 +191,10 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { // }, // "GrpcConfig": { // "additionalProperties": false, - // "description": "", + // "description": "The gRPC configuration for your cache behavior.", // "properties": { // "Enabled": { + // "description": "Enables your CloudFront distribution to receive gRPC requests and to proxy them directly to your origins.", // "type": "boolean" // } // }, @@ -492,9 +497,10 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { // }, // "GrpcConfig": { // "additionalProperties": false, - // "description": "", + // "description": "The gRPC configuration for your cache behavior.", // "properties": { // "Enabled": { + // "description": "Enables your CloudFront distribution to receive gRPC requests and to proxy them directly to your origins.", // "type": "boolean" // } // }, @@ -590,7 +596,7 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { // }, // "DefaultRootObject": { // "default": "", - // "description": "The object that you want CloudFront to request from your origin (for example, ``index.html``) when a viewer requests the root URL for your distribution (``https://www.example.com``) instead of an object in your distribution (``https://www.example.com/product-description.html``). Specifying a default root object avoids exposing the contents of your distribution.\n Specify only the object name, for example, ``index.html``. Don't add a ``/`` before the object name.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*.", + // "description": "When a viewer requests the root URL for your distribution, the default root object is the object that you want CloudFront to request from your origin. For example, if your root URL is ``https://www.example.com``, you can specify CloudFront to return the ``index.html`` file as the default root object. You can specify a default root object so that viewers see a specific file or object, instead of another object in your distribution (for example, ``https://www.example.com/product-description.html``). A default root object avoids exposing the contents of your distribution.\n You can specify the object name or a path to the object name (for example, ``index.html`` or ``exampleFolderName/index.html``). Your string can't begin with a forward slash (``/``). Only specify the object name or the path to the object.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Specify a default root object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*.", // "type": "string" // }, // "Enabled": { @@ -611,7 +617,7 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { // "description": "A complex type that controls whether access logs are written for the distribution.\n For more information about logging, see [Access Logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) in the *Amazon CloudFront Developer Guide*.", // "properties": { // "Bucket": { - // "description": "The Amazon S3 bucket to store the access logs in, for example, ``myawslogbucket.s3.amazonaws.com``.", + // "description": "The Amazon S3 bucket to store the access logs in, for example, ``amzn-s3-demo-bucket.s3.amazonaws.com``.", // "type": "string" // }, // "IncludeCookies": { @@ -635,7 +641,7 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { // "description": "The items (origin groups) in a distribution.", // "items": { // "additionalProperties": false, - // "description": "An origin group includes two origins (a primary origin and a second origin to failover to) and a failover criteria that you specify. You create an origin group to support origin failover in CloudFront. When you create or update a distribution, you can specify the origin group instead of a single origin, and CloudFront will failover from the primary origin to the second origin under the failover conditions that you've chosen.", + // "description": "An origin group includes two origins (a primary origin and a secondary origin to failover to) and a failover criteria that you specify. You create an origin group to support origin failover in CloudFront. When you create or update a distribution, you can specify the origin group instead of a single origin, and CloudFront will failover from the primary origin to the secondary origin under the failover conditions that you've chosen.\n Optionally, you can choose selection criteria for your origin group to specify how your origins are selected when your distribution routes viewer requests.", // "properties": { // "FailoverCriteria": { // "additionalProperties": false, @@ -709,6 +715,7 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "SelectionCriteria": { + // "description": "The selection criteria for the origin group. For more information, see [Create an origin group](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html#concept_origin_groups.creating) in the *Amazon CloudFront Developer Guide*.", // "enum": [ // "default", // "media-quality-based" @@ -767,7 +774,7 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { // }, // "OriginKeepaliveTimeout": { // "default": 5, - // "description": "Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds.\n For more information, see [Origin Keep-alive Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout) in the *Amazon CloudFront Developer Guide*.", + // "description": "Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds.\n For more information, see [Keep-alive timeout (custom origins only)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout) in the *Amazon CloudFront Developer Guide*.", // "type": "integer" // }, // "OriginProtocolPolicy": { @@ -776,7 +783,7 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { // }, // "OriginReadTimeout": { // "default": 30, - // "description": "Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds.\n For more information, see [Origin Response Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*.", + // "description": "Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds.\n For more information, see [Response timeout (custom origins only)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*.", // "type": "integer" // }, // "OriginSSLProtocols": { @@ -994,6 +1001,15 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { listplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: AnycastIpListId + "anycast_ip_list_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: CNAMEs "cnames": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, @@ -1190,8 +1206,9 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Enabled "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "Enables your CloudFront distribution to receive gRPC requests and to proxy them directly to your origins.", + Optional: true, + Computed: true, Validators: []validator.Bool{ /*START VALIDATORS*/ fwvalidators.NotNullBool(), }, /*END VALIDATORS*/ @@ -1200,7 +1217,7 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The gRPC configuration for your cache behavior.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -1695,8 +1712,9 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Enabled "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "Enables your CloudFront distribution to receive gRPC requests and to proxy them directly to your origins.", + Optional: true, + Computed: true, Validators: []validator.Bool{ /*START VALIDATORS*/ fwvalidators.NotNullBool(), }, /*END VALIDATORS*/ @@ -1705,7 +1723,7 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The gRPC configuration for your cache behavior.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -1848,7 +1866,7 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: DefaultRootObject "default_root_object": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The object that you want CloudFront to request from your origin (for example, ``index.html``) when a viewer requests the root URL for your distribution (``https://www.example.com``) instead of an object in your distribution (``https://www.example.com/product-description.html``). Specifying a default root object avoids exposing the contents of your distribution.\n Specify only the object name, for example, ``index.html``. Don't add a ``/`` before the object name.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*.", + Description: "When a viewer requests the root URL for your distribution, the default root object is the object that you want CloudFront to request from your origin. For example, if your root URL is ``https://www.example.com``, you can specify CloudFront to return the ``index.html`` file as the default root object. You can specify a default root object so that viewers see a specific file or object, instead of another object in your distribution (for example, ``https://www.example.com/product-description.html``). A default root object avoids exposing the contents of your distribution.\n You can specify the object name or a path to the object name (for example, ``index.html`` or ``exampleFolderName/index.html``). Your string can't begin with a forward slash (``/``). Only specify the object name or the path to the object.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Specify a default root object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*.", Optional: true, Computed: true, Default: stringdefault.StaticString(""), @@ -1885,7 +1903,7 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Bucket "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon S3 bucket to store the access logs in, for example, ``myawslogbucket.s3.amazonaws.com``.", + Description: "The Amazon S3 bucket to store the access logs in, for example, ``amzn-s3-demo-bucket.s3.amazonaws.com``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -2048,8 +2066,9 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: SelectionCriteria "selection_criteria": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "The selection criteria for the origin group. For more information, see [Create an origin group](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html#concept_origin_groups.creating) in the *Amazon CloudFront Developer Guide*.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( "default", @@ -2136,7 +2155,7 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: OriginKeepaliveTimeout "origin_keepalive_timeout": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds.\n For more information, see [Origin Keep-alive Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout) in the *Amazon CloudFront Developer Guide*.", + Description: "Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds.\n For more information, see [Keep-alive timeout (custom origins only)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout) in the *Amazon CloudFront Developer Guide*.", Optional: true, Computed: true, Default: int64default.StaticInt64(5), @@ -2158,7 +2177,7 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: OriginReadTimeout "origin_read_timeout": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds.\n For more information, see [Origin Response Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*.", + Description: "Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds.\n For more information, see [Response timeout (custom origins only)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*.", Optional: true, Computed: true, Default: int64default.StaticInt64(30), @@ -2621,6 +2640,7 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { "acm_certificate_arn": "AcmCertificateArn", "aliases": "Aliases", "allowed_methods": "AllowedMethods", + "anycast_ip_list_id": "AnycastIpListId", "bucket": "Bucket", "cache_behaviors": "CacheBehaviors", "cache_policy_id": "CachePolicyId", diff --git a/internal/aws/cloudfront/distribution_singular_data_source_gen.go b/internal/aws/cloudfront/distribution_singular_data_source_gen.go index d33ed6989..8e5c88bdf 100644 --- a/internal/aws/cloudfront/distribution_singular_data_source_gen.go +++ b/internal/aws/cloudfront/distribution_singular_data_source_gen.go @@ -38,6 +38,10 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) // "type": "array", // "uniqueItems": false // }, + // "AnycastIpListId": { + // "description": "", + // "type": "string" + // }, // "CNAMEs": { // "description": "An alias for the CF distribution's domain name.\n This property is legacy. We recommend that you use [Aliases](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-aliases) instead.", // "items": { @@ -172,9 +176,10 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) // }, // "GrpcConfig": { // "additionalProperties": false, - // "description": "", + // "description": "The gRPC configuration for your cache behavior.", // "properties": { // "Enabled": { + // "description": "Enables your CloudFront distribution to receive gRPC requests and to proxy them directly to your origins.", // "type": "boolean" // } // }, @@ -477,9 +482,10 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) // }, // "GrpcConfig": { // "additionalProperties": false, - // "description": "", + // "description": "The gRPC configuration for your cache behavior.", // "properties": { // "Enabled": { + // "description": "Enables your CloudFront distribution to receive gRPC requests and to proxy them directly to your origins.", // "type": "boolean" // } // }, @@ -575,7 +581,7 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) // }, // "DefaultRootObject": { // "default": "", - // "description": "The object that you want CloudFront to request from your origin (for example, ``index.html``) when a viewer requests the root URL for your distribution (``https://www.example.com``) instead of an object in your distribution (``https://www.example.com/product-description.html``). Specifying a default root object avoids exposing the contents of your distribution.\n Specify only the object name, for example, ``index.html``. Don't add a ``/`` before the object name.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*.", + // "description": "When a viewer requests the root URL for your distribution, the default root object is the object that you want CloudFront to request from your origin. For example, if your root URL is ``https://www.example.com``, you can specify CloudFront to return the ``index.html`` file as the default root object. You can specify a default root object so that viewers see a specific file or object, instead of another object in your distribution (for example, ``https://www.example.com/product-description.html``). A default root object avoids exposing the contents of your distribution.\n You can specify the object name or a path to the object name (for example, ``index.html`` or ``exampleFolderName/index.html``). Your string can't begin with a forward slash (``/``). Only specify the object name or the path to the object.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Specify a default root object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*.", // "type": "string" // }, // "Enabled": { @@ -596,7 +602,7 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) // "description": "A complex type that controls whether access logs are written for the distribution.\n For more information about logging, see [Access Logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) in the *Amazon CloudFront Developer Guide*.", // "properties": { // "Bucket": { - // "description": "The Amazon S3 bucket to store the access logs in, for example, ``myawslogbucket.s3.amazonaws.com``.", + // "description": "The Amazon S3 bucket to store the access logs in, for example, ``amzn-s3-demo-bucket.s3.amazonaws.com``.", // "type": "string" // }, // "IncludeCookies": { @@ -620,7 +626,7 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) // "description": "The items (origin groups) in a distribution.", // "items": { // "additionalProperties": false, - // "description": "An origin group includes two origins (a primary origin and a second origin to failover to) and a failover criteria that you specify. You create an origin group to support origin failover in CloudFront. When you create or update a distribution, you can specify the origin group instead of a single origin, and CloudFront will failover from the primary origin to the second origin under the failover conditions that you've chosen.", + // "description": "An origin group includes two origins (a primary origin and a secondary origin to failover to) and a failover criteria that you specify. You create an origin group to support origin failover in CloudFront. When you create or update a distribution, you can specify the origin group instead of a single origin, and CloudFront will failover from the primary origin to the secondary origin under the failover conditions that you've chosen.\n Optionally, you can choose selection criteria for your origin group to specify how your origins are selected when your distribution routes viewer requests.", // "properties": { // "FailoverCriteria": { // "additionalProperties": false, @@ -694,6 +700,7 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) // "type": "object" // }, // "SelectionCriteria": { + // "description": "The selection criteria for the origin group. For more information, see [Create an origin group](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html#concept_origin_groups.creating) in the *Amazon CloudFront Developer Guide*.", // "enum": [ // "default", // "media-quality-based" @@ -752,7 +759,7 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) // }, // "OriginKeepaliveTimeout": { // "default": 5, - // "description": "Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds.\n For more information, see [Origin Keep-alive Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout) in the *Amazon CloudFront Developer Guide*.", + // "description": "Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds.\n For more information, see [Keep-alive timeout (custom origins only)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout) in the *Amazon CloudFront Developer Guide*.", // "type": "integer" // }, // "OriginProtocolPolicy": { @@ -761,7 +768,7 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) // }, // "OriginReadTimeout": { // "default": 30, - // "description": "Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds.\n For more information, see [Origin Response Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*.", + // "description": "Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds.\n For more information, see [Response timeout (custom origins only)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*.", // "type": "integer" // }, // "OriginSSLProtocols": { @@ -975,6 +982,11 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) Description: "A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: AnycastIpListId + "anycast_ip_list_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: CNAMEs "cnames": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, @@ -1083,10 +1095,11 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Enabled "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "Enables your CloudFront distribution to receive gRPC requests and to proxy them directly to your origins.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The gRPC configuration for your cache behavior.", Computed: true, }, /*END ATTRIBUTE*/ // Property: LambdaFunctionAssociations @@ -1348,10 +1361,11 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Enabled "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "Enables your CloudFront distribution to receive gRPC requests and to proxy them directly to your origins.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The gRPC configuration for your cache behavior.", Computed: true, }, /*END ATTRIBUTE*/ // Property: LambdaFunctionAssociations @@ -1436,7 +1450,7 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ // Property: DefaultRootObject "default_root_object": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The object that you want CloudFront to request from your origin (for example, ``index.html``) when a viewer requests the root URL for your distribution (``https://www.example.com``) instead of an object in your distribution (``https://www.example.com/product-description.html``). Specifying a default root object avoids exposing the contents of your distribution.\n Specify only the object name, for example, ``index.html``. Don't add a ``/`` before the object name.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*.", + Description: "When a viewer requests the root URL for your distribution, the default root object is the object that you want CloudFront to request from your origin. For example, if your root URL is ``https://www.example.com``, you can specify CloudFront to return the ``index.html`` file as the default root object. You can specify a default root object so that viewers see a specific file or object, instead of another object in your distribution (for example, ``https://www.example.com/product-description.html``). A default root object avoids exposing the contents of your distribution.\n You can specify the object name or a path to the object name (for example, ``index.html`` or ``exampleFolderName/index.html``). Your string can't begin with a forward slash (``/``). Only specify the object name or the path to the object.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Specify a default root object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Enabled @@ -1459,7 +1473,7 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Bucket "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon S3 bucket to store the access logs in, for example, ``myawslogbucket.s3.amazonaws.com``.", + Description: "The Amazon S3 bucket to store the access logs in, for example, ``amzn-s3-demo-bucket.s3.amazonaws.com``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: IncludeCookies @@ -1541,7 +1555,8 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ // Property: SelectionCriteria "selection_criteria": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The selection criteria for the origin group. For more information, see [Create an origin group](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html#concept_origin_groups.creating) in the *Amazon CloudFront Developer Guide*.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ @@ -1586,7 +1601,7 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ // Property: OriginKeepaliveTimeout "origin_keepalive_timeout": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds.\n For more information, see [Origin Keep-alive Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout) in the *Amazon CloudFront Developer Guide*.", + Description: "Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds.\n For more information, see [Keep-alive timeout (custom origins only)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout) in the *Amazon CloudFront Developer Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: OriginProtocolPolicy @@ -1596,7 +1611,7 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ // Property: OriginReadTimeout "origin_read_timeout": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds.\n For more information, see [Origin Response Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*.", + Description: "Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds.\n For more information, see [Response timeout (custom origins only)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: OriginSSLProtocols @@ -1862,6 +1877,7 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) "acm_certificate_arn": "AcmCertificateArn", "aliases": "Aliases", "allowed_methods": "AllowedMethods", + "anycast_ip_list_id": "AnycastIpListId", "bucket": "Bucket", "cache_behaviors": "CacheBehaviors", "cache_policy_id": "CachePolicyId", diff --git a/internal/aws/connect/queue_resource_gen.go b/internal/aws/connect/queue_resource_gen.go index 419f4c034..16aac0fb8 100644 --- a/internal/aws/connect/queue_resource_gen.go +++ b/internal/aws/connect/queue_resource_gen.go @@ -259,7 +259,6 @@ func queueResource(ctx context.Context) (resource.Resource, error) { // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/transfer-destination/[-a-zA-Z0-9]*$", // "type": "string" // }, - // "maxItems": 50, // "minItems": 1, // "type": "array" // } @@ -269,7 +268,7 @@ func queueResource(ctx context.Context) (resource.Resource, error) { Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ - listvalidator.SizeBetween(1, 50), + listvalidator.SizeAtLeast(1), listvalidator.ValueStringsAre( stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/transfer-destination/[-a-zA-Z0-9]*$"), ""), ), diff --git a/internal/aws/connect/queue_singular_data_source_gen.go b/internal/aws/connect/queue_singular_data_source_gen.go index 0b6fa477d..ff7346757 100644 --- a/internal/aws/connect/queue_singular_data_source_gen.go +++ b/internal/aws/connect/queue_singular_data_source_gen.go @@ -183,7 +183,6 @@ func queueDataSource(ctx context.Context) (datasource.DataSource, error) { // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/transfer-destination/[-a-zA-Z0-9]*$", // "type": "string" // }, - // "maxItems": 50, // "minItems": 1, // "type": "array" // } diff --git a/internal/aws/customerprofiles/event_trigger_resource_gen.go b/internal/aws/customerprofiles/event_trigger_resource_gen.go new file mode 100644 index 000000000..1b7c44985 --- /dev/null +++ b/internal/aws/customerprofiles/event_trigger_resource_gen.go @@ -0,0 +1,682 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package customerprofiles + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-validators/int64validator" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/setvalidator" + "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/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" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_customerprofiles_event_trigger", eventTriggerResource) +} + +// eventTriggerResource returns the Terraform awscc_customerprofiles_event_trigger resource. +// This Terraform resource corresponds to the CloudFormation AWS::CustomerProfiles::EventTrigger resource. +func eventTriggerResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The timestamp of when the event trigger was created.", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The timestamp of when the event trigger was created.", + 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 event trigger.", + // "maxLength": 1000, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the event trigger.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DomainName + // CloudFormation resource type schema: + // + // { + // "description": "The unique name of the domain.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_-]+$", + // "type": "string" + // } + "domain_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unique name of the domain.", + Required: 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.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EventTriggerConditions + // CloudFormation resource type schema: + // + // { + // "description": "A list of conditions that determine when an event should trigger the destination.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Specifies the circumstances under which the event should trigger the destination.", + // "properties": { + // "EventTriggerDimensions": { + // "description": "A list of dimensions to be evaluated for the event.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A specific event dimension to be assessed.", + // "properties": { + // "ObjectAttributes": { + // "description": "A list of object attributes to be evaluated.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "The criteria that a specific object attribute must meet to trigger the destination.", + // "properties": { + // "ComparisonOperator": { + // "description": "The operator used to compare an attribute against a list of values.", + // "enum": [ + // "INCLUSIVE", + // "EXCLUSIVE", + // "CONTAINS", + // "BEGINS_WITH", + // "ENDS_WITH", + // "GREATER_THAN", + // "LESS_THAN", + // "GREATER_THAN_OR_EQUAL", + // "LESS_THAN_OR_EQUAL", + // "EQUAL", + // "BEFORE", + // "AFTER", + // "ON", + // "BETWEEN", + // "NOT_BETWEEN" + // ], + // "type": "string" + // }, + // "FieldName": { + // "description": "A field defined within an object type.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_.-]+$", + // "type": "string" + // }, + // "Source": { + // "description": "An attribute contained within a source object.", + // "maxLength": 1000, + // "minLength": 1, + // "type": "string" + // }, + // "Values": { + // "description": "A list of attribute values used for comparison.", + // "insertionOrder": false, + // "items": { + // "maxLength": 255, + // "minLength": 1, + // "type": "string" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "ComparisonOperator", + // "Values" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "ObjectAttributes" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "LogicalOperator": { + // "description": "The operator used to combine multiple dimensions.", + // "enum": [ + // "ANY", + // "ALL", + // "NONE" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "EventTriggerDimensions", + // "LogicalOperator" + // ], + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // } + "event_trigger_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EventTriggerDimensions + "event_trigger_dimensions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ObjectAttributes + "object_attributes": 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: "The operator used to compare an attribute against a list of values.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "INCLUSIVE", + "EXCLUSIVE", + "CONTAINS", + "BEGINS_WITH", + "ENDS_WITH", + "GREATER_THAN", + "LESS_THAN", + "GREATER_THAN_OR_EQUAL", + "LESS_THAN_OR_EQUAL", + "EQUAL", + "BEFORE", + "AFTER", + "ON", + "BETWEEN", + "NOT_BETWEEN", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: FieldName + "field_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A field defined within an object type.", + 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: Source + "source": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "An attribute contained within a source object.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Values + "values": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of attribute values used for comparison.", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 10), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 255), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of object attributes to be evaluated.", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 10), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of dimensions to be evaluated for the event.", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 10), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LogicalOperator + "logical_operator": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The operator used to combine multiple dimensions.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ANY", + "ALL", + "NONE", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of conditions that determine when an event should trigger the destination.", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 5), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EventTriggerLimits + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Defines limits controlling whether an event triggers the destination, based on ingestion latency and the number of invocations per profile over specific time periods.", + // "properties": { + // "EventExpiration": { + // "description": "Specifies that an event will only trigger the destination if it is processed within a certain latency period.", + // "format": "int64", + // "type": "integer" + // }, + // "Periods": { + // "description": "A list of time periods during which the limits apply.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Defines a limit and the time period during which it is enforced.", + // "properties": { + // "MaxInvocationsPerProfile": { + // "description": "The maximum allowed number of destination invocations per profile.", + // "maximum": 1000, + // "minimum": 1, + // "type": "integer" + // }, + // "Unit": { + // "description": "The unit of time.", + // "enum": [ + // "HOURS", + // "DAYS", + // "WEEKS", + // "MONTHS" + // ], + // "type": "string" + // }, + // "Unlimited": { + // "description": "If set to true, there is no limit on the number of destination invocations per profile. The default is false.", + // "type": "boolean" + // }, + // "Value": { + // "description": "The amount of time of the specified unit.", + // "maximum": 24, + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "Unit", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 4, + // "minItems": 1, + // "type": "array" + // } + // }, + // "type": "object" + // } + "event_trigger_limits": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EventExpiration + "event_expiration": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Specifies that an event will only trigger the destination if it is processed within a certain latency period.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Periods + "periods": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxInvocationsPerProfile + "max_invocations_per_profile": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The maximum allowed number of destination invocations per profile.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(1, 1000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Unit + "unit": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unit of time.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "HOURS", + "DAYS", + "WEEKS", + "MONTHS", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Unlimited + "unlimited": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "If set to true, there is no limit on the number of destination invocations per profile. The default is false.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The amount of time of the specified unit.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(1, 24), + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of time periods during which the limits apply.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 4), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Defines limits controlling whether an event triggers the destination, based on ingestion latency and the number of invocations per profile over specific time periods.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EventTriggerName + // CloudFormation resource type schema: + // + // { + // "description": "The unique name of the event trigger.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_-]+$", + // "type": "string" + // } + "event_trigger_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unique name of the event trigger.", + Required: 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.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LastUpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The timestamp of when the event trigger was most recently updated.", + // "type": "string" + // } + "last_updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The timestamp of when the event trigger was most recently updated.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ObjectTypeName + // CloudFormation resource type schema: + // + // { + // "description": "The unique name of the object type.", + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^[a-zA-Z_][a-zA-Z_0-9-]*$", + // "type": "string" + // } + "object_type_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unique name of the object type.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 255), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z_][a-zA-Z_0-9-]*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: SegmentFilter + // CloudFormation resource type schema: + // + // { + // "description": "The destination is triggered only for profiles that meet the criteria of a segment definition.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_-]+$", + // "type": "string" + // } + "segment_filter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The destination is triggered only for profiles that meet the criteria of a segment definition.", + 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: Tags + // CloudFormation resource type schema: + // + // { + // "description": "An array of key-value pairs to apply to this resource.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 0, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 256), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "An array of key-value pairs to apply to this resource.", + Optional: true, + Computed: true, + Validators: []validator.Set{ /*START VALIDATORS*/ + setvalidator.SizeBetween(0, 50), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "An event trigger resource of Amazon Connect Customer Profiles", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::CustomerProfiles::EventTrigger").WithTerraformTypeName("awscc_customerprofiles_event_trigger") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "comparison_operator": "ComparisonOperator", + "created_at": "CreatedAt", + "description": "Description", + "domain_name": "DomainName", + "event_expiration": "EventExpiration", + "event_trigger_conditions": "EventTriggerConditions", + "event_trigger_dimensions": "EventTriggerDimensions", + "event_trigger_limits": "EventTriggerLimits", + "event_trigger_name": "EventTriggerName", + "field_name": "FieldName", + "key": "Key", + "last_updated_at": "LastUpdatedAt", + "logical_operator": "LogicalOperator", + "max_invocations_per_profile": "MaxInvocationsPerProfile", + "object_attributes": "ObjectAttributes", + "object_type_name": "ObjectTypeName", + "periods": "Periods", + "segment_filter": "SegmentFilter", + "source": "Source", + "tags": "Tags", + "unit": "Unit", + "unlimited": "Unlimited", + "value": "Value", + "values": "Values", + }) + + 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/customerprofiles/event_trigger_resource_gen_test.go b/internal/aws/customerprofiles/event_trigger_resource_gen_test.go new file mode 100644 index 000000000..2c3cfe259 --- /dev/null +++ b/internal/aws/customerprofiles/event_trigger_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package customerprofiles_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCustomerProfilesEventTrigger_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CustomerProfiles::EventTrigger", "awscc_customerprofiles_event_trigger", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/customerprofiles/event_trigger_singular_data_source_gen.go b/internal/aws/customerprofiles/event_trigger_singular_data_source_gen.go new file mode 100644 index 000000000..51c584e54 --- /dev/null +++ b/internal/aws/customerprofiles/event_trigger_singular_data_source_gen.go @@ -0,0 +1,481 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package customerprofiles + +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_customerprofiles_event_trigger", eventTriggerDataSource) +} + +// eventTriggerDataSource returns the Terraform awscc_customerprofiles_event_trigger data source. +// This Terraform data source corresponds to the CloudFormation AWS::CustomerProfiles::EventTrigger resource. +func eventTriggerDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The timestamp of when the event trigger was created.", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The timestamp of when the event trigger was created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "The description of the event trigger.", + // "maxLength": 1000, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the event trigger.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DomainName + // CloudFormation resource type schema: + // + // { + // "description": "The unique name of the domain.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_-]+$", + // "type": "string" + // } + "domain_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unique name of the domain.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EventTriggerConditions + // CloudFormation resource type schema: + // + // { + // "description": "A list of conditions that determine when an event should trigger the destination.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Specifies the circumstances under which the event should trigger the destination.", + // "properties": { + // "EventTriggerDimensions": { + // "description": "A list of dimensions to be evaluated for the event.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A specific event dimension to be assessed.", + // "properties": { + // "ObjectAttributes": { + // "description": "A list of object attributes to be evaluated.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "The criteria that a specific object attribute must meet to trigger the destination.", + // "properties": { + // "ComparisonOperator": { + // "description": "The operator used to compare an attribute against a list of values.", + // "enum": [ + // "INCLUSIVE", + // "EXCLUSIVE", + // "CONTAINS", + // "BEGINS_WITH", + // "ENDS_WITH", + // "GREATER_THAN", + // "LESS_THAN", + // "GREATER_THAN_OR_EQUAL", + // "LESS_THAN_OR_EQUAL", + // "EQUAL", + // "BEFORE", + // "AFTER", + // "ON", + // "BETWEEN", + // "NOT_BETWEEN" + // ], + // "type": "string" + // }, + // "FieldName": { + // "description": "A field defined within an object type.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_.-]+$", + // "type": "string" + // }, + // "Source": { + // "description": "An attribute contained within a source object.", + // "maxLength": 1000, + // "minLength": 1, + // "type": "string" + // }, + // "Values": { + // "description": "A list of attribute values used for comparison.", + // "insertionOrder": false, + // "items": { + // "maxLength": 255, + // "minLength": 1, + // "type": "string" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "ComparisonOperator", + // "Values" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "ObjectAttributes" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "LogicalOperator": { + // "description": "The operator used to combine multiple dimensions.", + // "enum": [ + // "ANY", + // "ALL", + // "NONE" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "EventTriggerDimensions", + // "LogicalOperator" + // ], + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // } + "event_trigger_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EventTriggerDimensions + "event_trigger_dimensions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ObjectAttributes + "object_attributes": 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: "The operator used to compare an attribute against a list of values.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FieldName + "field_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A field defined within an object type.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Source + "source": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "An attribute contained within a source object.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Values + "values": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of attribute values used for comparison.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of object attributes to be evaluated.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of dimensions to be evaluated for the event.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LogicalOperator + "logical_operator": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The operator used to combine multiple dimensions.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of conditions that determine when an event should trigger the destination.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EventTriggerLimits + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Defines limits controlling whether an event triggers the destination, based on ingestion latency and the number of invocations per profile over specific time periods.", + // "properties": { + // "EventExpiration": { + // "description": "Specifies that an event will only trigger the destination if it is processed within a certain latency period.", + // "format": "int64", + // "type": "integer" + // }, + // "Periods": { + // "description": "A list of time periods during which the limits apply.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Defines a limit and the time period during which it is enforced.", + // "properties": { + // "MaxInvocationsPerProfile": { + // "description": "The maximum allowed number of destination invocations per profile.", + // "maximum": 1000, + // "minimum": 1, + // "type": "integer" + // }, + // "Unit": { + // "description": "The unit of time.", + // "enum": [ + // "HOURS", + // "DAYS", + // "WEEKS", + // "MONTHS" + // ], + // "type": "string" + // }, + // "Unlimited": { + // "description": "If set to true, there is no limit on the number of destination invocations per profile. The default is false.", + // "type": "boolean" + // }, + // "Value": { + // "description": "The amount of time of the specified unit.", + // "maximum": 24, + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "Unit", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 4, + // "minItems": 1, + // "type": "array" + // } + // }, + // "type": "object" + // } + "event_trigger_limits": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EventExpiration + "event_expiration": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Specifies that an event will only trigger the destination if it is processed within a certain latency period.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Periods + "periods": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxInvocationsPerProfile + "max_invocations_per_profile": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The maximum allowed number of destination invocations per profile.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Unit + "unit": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unit of time.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Unlimited + "unlimited": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "If set to true, there is no limit on the number of destination invocations per profile. The default is false.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The amount of time of the specified unit.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of time periods during which the limits apply.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Defines limits controlling whether an event triggers the destination, based on ingestion latency and the number of invocations per profile over specific time periods.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EventTriggerName + // CloudFormation resource type schema: + // + // { + // "description": "The unique name of the event trigger.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_-]+$", + // "type": "string" + // } + "event_trigger_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unique name of the event trigger.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LastUpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The timestamp of when the event trigger was most recently updated.", + // "type": "string" + // } + "last_updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The timestamp of when the event trigger was most recently updated.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ObjectTypeName + // CloudFormation resource type schema: + // + // { + // "description": "The unique name of the object type.", + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^[a-zA-Z_][a-zA-Z_0-9-]*$", + // "type": "string" + // } + "object_type_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unique name of the object type.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SegmentFilter + // CloudFormation resource type schema: + // + // { + // "description": "The destination is triggered only for profiles that meet the criteria of a segment definition.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_-]+$", + // "type": "string" + // } + "segment_filter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The destination is triggered only for profiles that meet the criteria of a segment definition.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "An array of key-value pairs to apply to this resource.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 0, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "An array of key-value pairs to apply to this resource.", + 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::CustomerProfiles::EventTrigger", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::CustomerProfiles::EventTrigger").WithTerraformTypeName("awscc_customerprofiles_event_trigger") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "comparison_operator": "ComparisonOperator", + "created_at": "CreatedAt", + "description": "Description", + "domain_name": "DomainName", + "event_expiration": "EventExpiration", + "event_trigger_conditions": "EventTriggerConditions", + "event_trigger_dimensions": "EventTriggerDimensions", + "event_trigger_limits": "EventTriggerLimits", + "event_trigger_name": "EventTriggerName", + "field_name": "FieldName", + "key": "Key", + "last_updated_at": "LastUpdatedAt", + "logical_operator": "LogicalOperator", + "max_invocations_per_profile": "MaxInvocationsPerProfile", + "object_attributes": "ObjectAttributes", + "object_type_name": "ObjectTypeName", + "periods": "Periods", + "segment_filter": "SegmentFilter", + "source": "Source", + "tags": "Tags", + "unit": "Unit", + "unlimited": "Unlimited", + "value": "Value", + "values": "Values", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/customerprofiles/event_trigger_singular_data_source_gen_test.go b/internal/aws/customerprofiles/event_trigger_singular_data_source_gen_test.go new file mode 100644 index 000000000..f39384d0e --- /dev/null +++ b/internal/aws/customerprofiles/event_trigger_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package customerprofiles_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCustomerProfilesEventTriggerDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CustomerProfiles::EventTrigger", "awscc_customerprofiles_event_trigger", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSCustomerProfilesEventTriggerDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CustomerProfiles::EventTrigger", "awscc_customerprofiles_event_trigger", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/datazone/data_source_resource_gen.go b/internal/aws/datazone/data_source_resource_gen.go index 01ade4972..e19336170 100644 --- a/internal/aws/datazone/data_source_resource_gen.go +++ b/internal/aws/datazone/data_source_resource_gen.go @@ -17,10 +17,12 @@ import ( "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" @@ -353,6 +355,32 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // "RelationalFilterConfigurations" // ], // "type": "object" + // }, + // "SageMakerRunConfiguration": { + // "additionalProperties": false, + // "description": "The configuration details of the Amazon SageMaker data source.", + // "properties": { + // "TrackingAssets": { + // "additionalProperties": false, + // "description": "The tracking assets of the Amazon SageMaker run.", + // "patternProperties": { + // "": { + // "items": { + // "pattern": "^arn:aws[^:]*:sagemaker:[a-z]{2}-?(iso|gov)?-{1}[a-z]*-{1}[0-9]:\\d{12}:[\\w+=,.@-]{1,128}/[\\w+=,.@-]{1,256}$", + // "type": "string" + // }, + // "maxItems": 500, + // "minItems": 0, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "TrackingAssets" + // ], + // "type": "object" // } // }, // "type": "object" @@ -673,6 +701,31 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: SageMakerRunConfiguration + "sage_maker_run_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TrackingAssets + "tracking_assets": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.ListType{ElemType: types.StringType}, + Description: "The tracking assets of the Amazon SageMaker run.", + Optional: true, + Computed: true, + Validators: []validator.Map{ /*START VALIDATORS*/ + fwvalidators.NotNullMap(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration details of the Amazon SageMaker data source.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Configuration of the data source. It can be set to either glueRunConfiguration or redshiftRunConfiguration.", Optional: true, @@ -1125,11 +1178,13 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { "redshift_serverless_source": "RedshiftServerlessSource", "redshift_storage": "RedshiftStorage", "relational_filter_configurations": "RelationalFilterConfigurations", + "sage_maker_run_configuration": "SageMakerRunConfiguration", "schedule": "Schedule", "schema_name": "SchemaName", "secret_manager_arn": "SecretManagerArn", "status": "Status", "timezone": "Timezone", + "tracking_assets": "TrackingAssets", "type": "Type", "type_identifier": "TypeIdentifier", "type_revision": "TypeRevision", diff --git a/internal/aws/datazone/data_source_singular_data_source_gen.go b/internal/aws/datazone/data_source_singular_data_source_gen.go index be5bbd134..bd1a9a7ba 100644 --- a/internal/aws/datazone/data_source_singular_data_source_gen.go +++ b/internal/aws/datazone/data_source_singular_data_source_gen.go @@ -11,6 +11,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" "github.com/hashicorp/terraform-plugin-framework/datasource" "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" ) @@ -304,6 +305,32 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // "RelationalFilterConfigurations" // ], // "type": "object" + // }, + // "SageMakerRunConfiguration": { + // "additionalProperties": false, + // "description": "The configuration details of the Amazon SageMaker data source.", + // "properties": { + // "TrackingAssets": { + // "additionalProperties": false, + // "description": "The tracking assets of the Amazon SageMaker run.", + // "patternProperties": { + // "": { + // "items": { + // "pattern": "^arn:aws[^:]*:sagemaker:[a-z]{2}-?(iso|gov)?-{1}[a-z]*-{1}[0-9]:\\d{12}:[\\w+=,.@-]{1,128}/[\\w+=,.@-]{1,256}$", + // "type": "string" + // }, + // "maxItems": 500, + // "minItems": 0, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "TrackingAssets" + // ], + // "type": "object" // } // }, // "type": "object" @@ -455,6 +482,20 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The configuration details of the Amazon Redshift data source.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: SageMakerRunConfiguration + "sage_maker_run_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TrackingAssets + "tracking_assets": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.ListType{ElemType: types.StringType}, + Description: "The tracking assets of the Amazon SageMaker run.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration details of the Amazon SageMaker data source.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Configuration of the data source. It can be set to either glueRunConfiguration or redshiftRunConfiguration.", Computed: true, @@ -798,11 +839,13 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { "redshift_serverless_source": "RedshiftServerlessSource", "redshift_storage": "RedshiftStorage", "relational_filter_configurations": "RelationalFilterConfigurations", + "sage_maker_run_configuration": "SageMakerRunConfiguration", "schedule": "Schedule", "schema_name": "SchemaName", "secret_manager_arn": "SecretManagerArn", "status": "Status", "timezone": "Timezone", + "tracking_assets": "TrackingAssets", "type": "Type", "type_identifier": "TypeIdentifier", "type_revision": "TypeRevision", diff --git a/internal/aws/dms/data_provider_resource_gen.go b/internal/aws/dms/data_provider_resource_gen.go index 2b48c4aea..c155d74ea 100644 --- a/internal/aws/dms/data_provider_resource_gen.go +++ b/internal/aws/dms/data_provider_resource_gen.go @@ -131,12 +131,16 @@ func dataProviderResource(ctx context.Context) (resource.Resource, error) { // { // "description": "The property describes a data engine for the data provider.", // "enum": [ - // "postgres", + // "aurora", + // "aurora_postgresql", // "mysql", // "oracle", + // "postgres", // "sqlserver", - // "aurora", - // "aurora_postgresql" + // "redshift", + // "mariadb", + // "mongodb", + // "docdb" // ], // "type": "string" // } @@ -145,12 +149,16 @@ func dataProviderResource(ctx context.Context) (resource.Resource, error) { Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( - "postgres", + "aurora", + "aurora_postgresql", "mysql", "oracle", + "postgres", "sqlserver", - "aurora", - "aurora_postgresql", + "redshift", + "mariadb", + "mongodb", + "docdb", ), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ @@ -197,10 +205,92 @@ func dataProviderResource(ctx context.Context) (resource.Resource, error) { // "required": [ // "MicrosoftSqlServerSettings" // ] + // }, + // { + // "required": [ + // "RedshiftSettings" + // ] + // }, + // { + // "required": [ + // "DocDbSettings" + // ] + // }, + // { + // "required": [ + // "MariaDbSettings" + // ] + // }, + // { + // "required": [ + // "MongoDbSettings" + // ] // } // ], // "description": "The property identifies the exact type of settings for the data provider.", // "properties": { + // "DocDbSettings": { + // "additionalProperties": false, + // "description": "DocDbSettings property identifier.", + // "properties": { + // "CertificateArn": { + // "type": "string" + // }, + // "DatabaseName": { + // "type": "string" + // }, + // "Port": { + // "type": "integer" + // }, + // "ServerName": { + // "type": "string" + // }, + // "SslMode": { + // "enum": [ + // "none", + // "require", + // "verify-full" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ServerName", + // "Port", + // "DatabaseName" + // ], + // "type": "object" + // }, + // "MariaDbSettings": { + // "additionalProperties": false, + // "description": "MariaDbSettings property identifier.", + // "properties": { + // "CertificateArn": { + // "type": "string" + // }, + // "Port": { + // "type": "integer" + // }, + // "ServerName": { + // "type": "string" + // }, + // "SslMode": { + // "enum": [ + // "none", + // "require", + // "verify-ca", + // "verify-full" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ServerName", + // "Port", + // "SslMode" + // ], + // "type": "object" + // }, // "MicrosoftSqlServerSettings": { // "additionalProperties": false, // "description": "MicrosoftSqlServerSettings property identifier.", @@ -235,6 +325,55 @@ func dataProviderResource(ctx context.Context) (resource.Resource, error) { // ], // "type": "object" // }, + // "MongoDbSettings": { + // "additionalProperties": false, + // "description": "MongoDbSettings property identifier.", + // "properties": { + // "AuthMechanism": { + // "enum": [ + // "default", + // "mongodb_cr", + // "scram_sha_1" + // ], + // "type": "string" + // }, + // "AuthSource": { + // "type": "string" + // }, + // "AuthType": { + // "enum": [ + // "no", + // "password" + // ], + // "type": "string" + // }, + // "CertificateArn": { + // "type": "string" + // }, + // "DatabaseName": { + // "type": "string" + // }, + // "Port": { + // "type": "integer" + // }, + // "ServerName": { + // "type": "string" + // }, + // "SslMode": { + // "enum": [ + // "none", + // "require", + // "verify-full" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ServerName", + // "Port" + // ], + // "type": "object" + // }, // "MySqlSettings": { // "additionalProperties": false, // "description": "MySqlSettings property identifier.", @@ -347,12 +486,158 @@ func dataProviderResource(ctx context.Context) (resource.Resource, error) { // "DatabaseName" // ], // "type": "object" + // }, + // "RedshiftSettings": { + // "additionalProperties": false, + // "description": "RedshiftSettings property identifier.", + // "properties": { + // "DatabaseName": { + // "type": "string" + // }, + // "Port": { + // "type": "integer" + // }, + // "ServerName": { + // "type": "string" + // } + // }, + // "required": [ + // "ServerName", + // "Port", + // "DatabaseName" + // ], + // "type": "object" // } // }, // "type": "object" // } "settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DocDbSettings + "doc_db_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CertificateArn + "certificate_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DatabaseName + "database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ServerName + "server_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SslMode + "ssl_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "none", + "require", + "verify-full", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "DocDbSettings property identifier.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MariaDbSettings + "maria_db_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CertificateArn + "certificate_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ServerName + "server_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SslMode + "ssl_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "none", + "require", + "verify-ca", + "verify-full", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "MariaDbSettings property identifier.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: MicrosoftSqlServerSettings "microsoft_sql_server_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -422,6 +707,107 @@ func dataProviderResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: MongoDbSettings + "mongo_db_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthMechanism + "auth_mechanism": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "default", + "mongodb_cr", + "scram_sha_1", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AuthSource + "auth_source": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AuthType + "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "no", + "password", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CertificateArn + "certificate_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DatabaseName + "database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ServerName + "server_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SslMode + "ssl_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "none", + "require", + "verify-full", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "MongoDbSettings property identifier.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: MySqlSettings "my_sql_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -658,6 +1044,50 @@ func dataProviderResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: RedshiftSettings + "redshift_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DatabaseName + "database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ServerName + "server_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "RedshiftSettings property identifier.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The property identifies the exact type of settings for the data provider.", Optional: true, @@ -759,6 +1189,9 @@ func dataProviderResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "asm_server": "AsmServer", + "auth_mechanism": "AuthMechanism", + "auth_source": "AuthSource", + "auth_type": "AuthType", "certificate_arn": "CertificateArn", "data_provider_arn": "DataProviderArn", "data_provider_creation_time": "DataProviderCreationTime", @@ -766,14 +1199,18 @@ func dataProviderResource(ctx context.Context) (resource.Resource, error) { "data_provider_name": "DataProviderName", "database_name": "DatabaseName", "description": "Description", + "doc_db_settings": "DocDbSettings", "engine": "Engine", "exact_settings": "ExactSettings", "key": "Key", + "maria_db_settings": "MariaDbSettings", "microsoft_sql_server_settings": "MicrosoftSqlServerSettings", + "mongo_db_settings": "MongoDbSettings", "my_sql_settings": "MySqlSettings", "oracle_settings": "OracleSettings", "port": "Port", "postgre_sql_settings": "PostgreSqlSettings", + "redshift_settings": "RedshiftSettings", "secrets_manager_oracle_asm_access_role_arn": "SecretsManagerOracleAsmAccessRoleArn", "secrets_manager_oracle_asm_secret_id": "SecretsManagerOracleAsmSecretId", "secrets_manager_security_db_encryption_access_role_arn": "SecretsManagerSecurityDbEncryptionAccessRoleArn", diff --git a/internal/aws/dms/data_provider_singular_data_source_gen.go b/internal/aws/dms/data_provider_singular_data_source_gen.go index 2a700b354..3232969e2 100644 --- a/internal/aws/dms/data_provider_singular_data_source_gen.go +++ b/internal/aws/dms/data_provider_singular_data_source_gen.go @@ -93,12 +93,16 @@ func dataProviderDataSource(ctx context.Context) (datasource.DataSource, error) // { // "description": "The property describes a data engine for the data provider.", // "enum": [ - // "postgres", + // "aurora", + // "aurora_postgresql", // "mysql", // "oracle", + // "postgres", // "sqlserver", - // "aurora", - // "aurora_postgresql" + // "redshift", + // "mariadb", + // "mongodb", + // "docdb" // ], // "type": "string" // } @@ -143,10 +147,92 @@ func dataProviderDataSource(ctx context.Context) (datasource.DataSource, error) // "required": [ // "MicrosoftSqlServerSettings" // ] + // }, + // { + // "required": [ + // "RedshiftSettings" + // ] + // }, + // { + // "required": [ + // "DocDbSettings" + // ] + // }, + // { + // "required": [ + // "MariaDbSettings" + // ] + // }, + // { + // "required": [ + // "MongoDbSettings" + // ] // } // ], // "description": "The property identifies the exact type of settings for the data provider.", // "properties": { + // "DocDbSettings": { + // "additionalProperties": false, + // "description": "DocDbSettings property identifier.", + // "properties": { + // "CertificateArn": { + // "type": "string" + // }, + // "DatabaseName": { + // "type": "string" + // }, + // "Port": { + // "type": "integer" + // }, + // "ServerName": { + // "type": "string" + // }, + // "SslMode": { + // "enum": [ + // "none", + // "require", + // "verify-full" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ServerName", + // "Port", + // "DatabaseName" + // ], + // "type": "object" + // }, + // "MariaDbSettings": { + // "additionalProperties": false, + // "description": "MariaDbSettings property identifier.", + // "properties": { + // "CertificateArn": { + // "type": "string" + // }, + // "Port": { + // "type": "integer" + // }, + // "ServerName": { + // "type": "string" + // }, + // "SslMode": { + // "enum": [ + // "none", + // "require", + // "verify-ca", + // "verify-full" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ServerName", + // "Port", + // "SslMode" + // ], + // "type": "object" + // }, // "MicrosoftSqlServerSettings": { // "additionalProperties": false, // "description": "MicrosoftSqlServerSettings property identifier.", @@ -181,6 +267,55 @@ func dataProviderDataSource(ctx context.Context) (datasource.DataSource, error) // ], // "type": "object" // }, + // "MongoDbSettings": { + // "additionalProperties": false, + // "description": "MongoDbSettings property identifier.", + // "properties": { + // "AuthMechanism": { + // "enum": [ + // "default", + // "mongodb_cr", + // "scram_sha_1" + // ], + // "type": "string" + // }, + // "AuthSource": { + // "type": "string" + // }, + // "AuthType": { + // "enum": [ + // "no", + // "password" + // ], + // "type": "string" + // }, + // "CertificateArn": { + // "type": "string" + // }, + // "DatabaseName": { + // "type": "string" + // }, + // "Port": { + // "type": "integer" + // }, + // "ServerName": { + // "type": "string" + // }, + // "SslMode": { + // "enum": [ + // "none", + // "require", + // "verify-full" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ServerName", + // "Port" + // ], + // "type": "object" + // }, // "MySqlSettings": { // "additionalProperties": false, // "description": "MySqlSettings property identifier.", @@ -293,12 +428,83 @@ func dataProviderDataSource(ctx context.Context) (datasource.DataSource, error) // "DatabaseName" // ], // "type": "object" + // }, + // "RedshiftSettings": { + // "additionalProperties": false, + // "description": "RedshiftSettings property identifier.", + // "properties": { + // "DatabaseName": { + // "type": "string" + // }, + // "Port": { + // "type": "integer" + // }, + // "ServerName": { + // "type": "string" + // } + // }, + // "required": [ + // "ServerName", + // "Port", + // "DatabaseName" + // ], + // "type": "object" // } // }, // "type": "object" // } "settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DocDbSettings + "doc_db_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CertificateArn + "certificate_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DatabaseName + "database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ServerName + "server_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SslMode + "ssl_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "DocDbSettings property identifier.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MariaDbSettings + "maria_db_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CertificateArn + "certificate_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ServerName + "server_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SslMode + "ssl_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "MariaDbSettings property identifier.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: MicrosoftSqlServerSettings "microsoft_sql_server_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -326,6 +532,45 @@ func dataProviderDataSource(ctx context.Context) (datasource.DataSource, error) Description: "MicrosoftSqlServerSettings property identifier.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: MongoDbSettings + "mongo_db_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthMechanism + "auth_mechanism": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AuthSource + "auth_source": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AuthType + "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CertificateArn + "certificate_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DatabaseName + "database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ServerName + "server_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SslMode + "ssl_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "MongoDbSettings property identifier.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: MySqlSettings "my_sql_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -423,6 +668,25 @@ func dataProviderDataSource(ctx context.Context) (datasource.DataSource, error) Description: "PostgreSqlSettings property identifier.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: RedshiftSettings + "redshift_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DatabaseName + "database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ServerName + "server_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "RedshiftSettings property identifier.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The property identifies the exact type of settings for the data provider.", Computed: true, @@ -495,6 +759,9 @@ func dataProviderDataSource(ctx context.Context) (datasource.DataSource, error) opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "asm_server": "AsmServer", + "auth_mechanism": "AuthMechanism", + "auth_source": "AuthSource", + "auth_type": "AuthType", "certificate_arn": "CertificateArn", "data_provider_arn": "DataProviderArn", "data_provider_creation_time": "DataProviderCreationTime", @@ -502,14 +769,18 @@ func dataProviderDataSource(ctx context.Context) (datasource.DataSource, error) "data_provider_name": "DataProviderName", "database_name": "DatabaseName", "description": "Description", + "doc_db_settings": "DocDbSettings", "engine": "Engine", "exact_settings": "ExactSettings", "key": "Key", + "maria_db_settings": "MariaDbSettings", "microsoft_sql_server_settings": "MicrosoftSqlServerSettings", + "mongo_db_settings": "MongoDbSettings", "my_sql_settings": "MySqlSettings", "oracle_settings": "OracleSettings", "port": "Port", "postgre_sql_settings": "PostgreSqlSettings", + "redshift_settings": "RedshiftSettings", "secrets_manager_oracle_asm_access_role_arn": "SecretsManagerOracleAsmAccessRoleArn", "secrets_manager_oracle_asm_secret_id": "SecretsManagerOracleAsmSecretId", "secrets_manager_security_db_encryption_access_role_arn": "SecretsManagerSecurityDbEncryptionAccessRoleArn", diff --git a/internal/aws/dynamodb/global_table_resource_gen.go b/internal/aws/dynamodb/global_table_resource_gen.go index e046fc749..6b2cb85f3 100644 --- a/internal/aws/dynamodb/global_table_resource_gen.go +++ b/internal/aws/dynamodb/global_table_resource_gen.go @@ -738,6 +738,51 @@ func globalTableResource(ctx context.Context) (resource.Resource, error) { setplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: PointInTimeRecoverySpecification + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "PointInTimeRecoveryEnabled": { + // "type": "boolean" + // }, + // "RecoveryPeriodInDays": { + // "maximum": 35, + // "minimum": 1, + // "type": "integer" + // } + // }, + // "type": "object" + // } + "point_in_time_recovery_specification": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PointInTimeRecoveryEnabled + "point_in_time_recovery_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RecoveryPeriodInDays + "recovery_period_in_days": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(1, 35), + }, /*END VALIDATORS*/ + 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: Replicas // CloudFormation resource type schema: // @@ -887,6 +932,11 @@ func globalTableResource(ctx context.Context) (resource.Resource, error) { // "properties": { // "PointInTimeRecoveryEnabled": { // "type": "boolean" + // }, + // "RecoveryPeriodInDays": { + // "maximum": 35, + // "minimum": 1, + // "type": "integer" // } // }, // "type": "object" @@ -1309,6 +1359,17 @@ func globalTableResource(ctx context.Context) (resource.Resource, error) { boolplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: RecoveryPeriodInDays + "recovery_period_in_days": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(1, 35), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Optional: true, Computed: true, @@ -2066,6 +2127,7 @@ func globalTableResource(ctx context.Context) (resource.Resource, error) { "read_on_demand_throughput_settings": "ReadOnDemandThroughputSettings", "read_provisioned_throughput_settings": "ReadProvisionedThroughputSettings", "read_units_per_second": "ReadUnitsPerSecond", + "recovery_period_in_days": "RecoveryPeriodInDays", "region": "Region", "replica_stream_specification": "ReplicaStreamSpecification", "replicas": "Replicas", diff --git a/internal/aws/dynamodb/global_table_singular_data_source_gen.go b/internal/aws/dynamodb/global_table_singular_data_source_gen.go index dec667b12..a20286057 100644 --- a/internal/aws/dynamodb/global_table_singular_data_source_gen.go +++ b/internal/aws/dynamodb/global_table_singular_data_source_gen.go @@ -500,6 +500,36 @@ func globalTableDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END NESTED OBJECT*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: PointInTimeRecoverySpecification + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "PointInTimeRecoveryEnabled": { + // "type": "boolean" + // }, + // "RecoveryPeriodInDays": { + // "maximum": 35, + // "minimum": 1, + // "type": "integer" + // } + // }, + // "type": "object" + // } + "point_in_time_recovery_specification": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PointInTimeRecoveryEnabled + "point_in_time_recovery_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RecoveryPeriodInDays + "recovery_period_in_days": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Replicas // CloudFormation resource type schema: // @@ -649,6 +679,11 @@ func globalTableDataSource(ctx context.Context) (datasource.DataSource, error) { // "properties": { // "PointInTimeRecoveryEnabled": { // "type": "boolean" + // }, + // "RecoveryPeriodInDays": { + // "maximum": 35, + // "minimum": 1, + // "type": "integer" // } // }, // "type": "object" @@ -927,6 +962,10 @@ func globalTableDataSource(ctx context.Context) (datasource.DataSource, error) { "point_in_time_recovery_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: RecoveryPeriodInDays + "recovery_period_in_days": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ @@ -1384,6 +1423,7 @@ func globalTableDataSource(ctx context.Context) (datasource.DataSource, error) { "read_on_demand_throughput_settings": "ReadOnDemandThroughputSettings", "read_provisioned_throughput_settings": "ReadProvisionedThroughputSettings", "read_units_per_second": "ReadUnitsPerSecond", + "recovery_period_in_days": "RecoveryPeriodInDays", "region": "Region", "replica_stream_specification": "ReplicaStreamSpecification", "replicas": "Replicas", diff --git a/internal/aws/dynamodb/table_resource_gen.go b/internal/aws/dynamodb/table_resource_gen.go index b948bb3dd..cc5f19f09 100644 --- a/internal/aws/dynamodb/table_resource_gen.go +++ b/internal/aws/dynamodb/table_resource_gen.go @@ -1058,6 +1058,12 @@ func tableResource(ctx context.Context) (resource.Resource, error) { // "PointInTimeRecoveryEnabled": { // "description": "Indicates whether point in time recovery is enabled (true) or disabled (false) on the table.", // "type": "boolean" + // }, + // "RecoveryPeriodInDays": { + // "description": "", + // "maximum": 35, + // "minimum": 1, + // "type": "integer" // } // }, // "type": "object" @@ -1073,6 +1079,18 @@ func tableResource(ctx context.Context) (resource.Resource, error) { boolplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: RecoveryPeriodInDays + "recovery_period_in_days": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(1, 35), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The settings used to enable point in time recovery.", Optional: true, @@ -1608,6 +1626,7 @@ func tableResource(ctx context.Context) (resource.Resource, error) { "provisioned_throughput": "ProvisionedThroughput", "read_capacity_units": "ReadCapacityUnits", "read_units_per_second": "ReadUnitsPerSecond", + "recovery_period_in_days": "RecoveryPeriodInDays", "resource_policy": "ResourcePolicy", "s3_bucket": "S3Bucket", "s3_bucket_owner": "S3BucketOwner", diff --git a/internal/aws/dynamodb/table_singular_data_source_gen.go b/internal/aws/dynamodb/table_singular_data_source_gen.go index d9706d230..32d820882 100644 --- a/internal/aws/dynamodb/table_singular_data_source_gen.go +++ b/internal/aws/dynamodb/table_singular_data_source_gen.go @@ -746,6 +746,12 @@ func tableDataSource(ctx context.Context) (datasource.DataSource, error) { // "PointInTimeRecoveryEnabled": { // "description": "Indicates whether point in time recovery is enabled (true) or disabled (false) on the table.", // "type": "boolean" + // }, + // "RecoveryPeriodInDays": { + // "description": "", + // "maximum": 35, + // "minimum": 1, + // "type": "integer" // } // }, // "type": "object" @@ -757,6 +763,11 @@ func tableDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "Indicates whether point in time recovery is enabled (true) or disabled (false) on the table.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: RecoveryPeriodInDays + "recovery_period_in_days": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The settings used to enable point in time recovery.", Computed: true, @@ -1150,6 +1161,7 @@ func tableDataSource(ctx context.Context) (datasource.DataSource, error) { "provisioned_throughput": "ProvisionedThroughput", "read_capacity_units": "ReadCapacityUnits", "read_units_per_second": "ReadUnitsPerSecond", + "recovery_period_in_days": "RecoveryPeriodInDays", "resource_policy": "ResourcePolicy", "s3_bucket": "S3Bucket", "s3_bucket_owner": "S3BucketOwner", diff --git a/internal/aws/ec2/vpc_cidr_block_resource_gen.go b/internal/aws/ec2/vpc_cidr_block_resource_gen.go index ed8d19da5..d77a6cd9a 100644 --- a/internal/aws/ec2/vpc_cidr_block_resource_gen.go +++ b/internal/aws/ec2/vpc_cidr_block_resource_gen.go @@ -150,6 +150,22 @@ func vPCCidrBlockResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Ipv6CidrBlockNetworkBorderGroup + // CloudFormation resource type schema: + // + // { + // "description": "The name of the location from which we advertise the IPV6 CIDR block.", + // "type": "string" + // } + "ipv_6_cidr_block_network_border_group": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the location from which we advertise the IPV6 CIDR block.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Ipv6IpamPoolId // CloudFormation resource type schema: // @@ -236,18 +252,19 @@ func vPCCidrBlockResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::EC2::VPCCidrBlock").WithTerraformTypeName("awscc_ec2_vpc_cidr_block") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "amazon_provided_ipv_6_cidr_block": "AmazonProvidedIpv6CidrBlock", - "cidr_block": "CidrBlock", - "ip_source": "IpSource", - "ipv_4_ipam_pool_id": "Ipv4IpamPoolId", - "ipv_4_netmask_length": "Ipv4NetmaskLength", - "ipv_6_address_attribute": "Ipv6AddressAttribute", - "ipv_6_cidr_block": "Ipv6CidrBlock", - "ipv_6_ipam_pool_id": "Ipv6IpamPoolId", - "ipv_6_netmask_length": "Ipv6NetmaskLength", - "ipv_6_pool": "Ipv6Pool", - "vpc_cidr_block_id": "Id", - "vpc_id": "VpcId", + "amazon_provided_ipv_6_cidr_block": "AmazonProvidedIpv6CidrBlock", + "cidr_block": "CidrBlock", + "ip_source": "IpSource", + "ipv_4_ipam_pool_id": "Ipv4IpamPoolId", + "ipv_4_netmask_length": "Ipv4NetmaskLength", + "ipv_6_address_attribute": "Ipv6AddressAttribute", + "ipv_6_cidr_block": "Ipv6CidrBlock", + "ipv_6_cidr_block_network_border_group": "Ipv6CidrBlockNetworkBorderGroup", + "ipv_6_ipam_pool_id": "Ipv6IpamPoolId", + "ipv_6_netmask_length": "Ipv6NetmaskLength", + "ipv_6_pool": "Ipv6Pool", + "vpc_cidr_block_id": "Id", + "vpc_id": "VpcId", }) opts = opts.IsImmutableType(true) diff --git a/internal/aws/ec2/vpc_cidr_block_singular_data_source_gen.go b/internal/aws/ec2/vpc_cidr_block_singular_data_source_gen.go index a8739dc4d..0c06793de 100644 --- a/internal/aws/ec2/vpc_cidr_block_singular_data_source_gen.go +++ b/internal/aws/ec2/vpc_cidr_block_singular_data_source_gen.go @@ -110,6 +110,17 @@ func vPCCidrBlockDataSource(ctx context.Context) (datasource.DataSource, error) Description: "An IPv6 CIDR block from the IPv6 address pool.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: Ipv6CidrBlockNetworkBorderGroup + // CloudFormation resource type schema: + // + // { + // "description": "The name of the location from which we advertise the IPV6 CIDR block.", + // "type": "string" + // } + "ipv_6_cidr_block_network_border_group": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the location from which we advertise the IPV6 CIDR block.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Ipv6IpamPoolId // CloudFormation resource type schema: // @@ -171,18 +182,19 @@ func vPCCidrBlockDataSource(ctx context.Context) (datasource.DataSource, error) opts = opts.WithCloudFormationTypeName("AWS::EC2::VPCCidrBlock").WithTerraformTypeName("awscc_ec2_vpc_cidr_block") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "amazon_provided_ipv_6_cidr_block": "AmazonProvidedIpv6CidrBlock", - "cidr_block": "CidrBlock", - "ip_source": "IpSource", - "ipv_4_ipam_pool_id": "Ipv4IpamPoolId", - "ipv_4_netmask_length": "Ipv4NetmaskLength", - "ipv_6_address_attribute": "Ipv6AddressAttribute", - "ipv_6_cidr_block": "Ipv6CidrBlock", - "ipv_6_ipam_pool_id": "Ipv6IpamPoolId", - "ipv_6_netmask_length": "Ipv6NetmaskLength", - "ipv_6_pool": "Ipv6Pool", - "vpc_cidr_block_id": "Id", - "vpc_id": "VpcId", + "amazon_provided_ipv_6_cidr_block": "AmazonProvidedIpv6CidrBlock", + "cidr_block": "CidrBlock", + "ip_source": "IpSource", + "ipv_4_ipam_pool_id": "Ipv4IpamPoolId", + "ipv_4_netmask_length": "Ipv4NetmaskLength", + "ipv_6_address_attribute": "Ipv6AddressAttribute", + "ipv_6_cidr_block": "Ipv6CidrBlock", + "ipv_6_cidr_block_network_border_group": "Ipv6CidrBlockNetworkBorderGroup", + "ipv_6_ipam_pool_id": "Ipv6IpamPoolId", + "ipv_6_netmask_length": "Ipv6NetmaskLength", + "ipv_6_pool": "Ipv6Pool", + "vpc_cidr_block_id": "Id", + "vpc_id": "VpcId", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/ec2/vpc_endpoint_resource_gen.go b/internal/aws/ec2/vpc_endpoint_resource_gen.go index dc7e41bee..d0660d432 100644 --- a/internal/aws/ec2/vpc_endpoint_resource_gen.go +++ b/internal/aws/ec2/vpc_endpoint_resource_gen.go @@ -21,6 +21,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" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" ) func init() { @@ -354,6 +355,67 @@ func vPCEndpointResource(ctx context.Context) (resource.Resource, error) { setplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "", + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Value", + // "Key" + // ], + // "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*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: VpcEndpointType // CloudFormation resource type schema: // @@ -427,6 +489,7 @@ func vPCEndpointResource(ctx context.Context) (resource.Resource, error) { "dns_options": "DnsOptions", "dns_record_ip_type": "DnsRecordIpType", "ip_address_type": "IpAddressType", + "key": "Key", "network_interface_ids": "NetworkInterfaceIds", "policy_document": "PolicyDocument", "private_dns_enabled": "PrivateDnsEnabled", @@ -437,6 +500,8 @@ func vPCEndpointResource(ctx context.Context) (resource.Resource, error) { "service_name": "ServiceName", "service_network_arn": "ServiceNetworkArn", "subnet_ids": "SubnetIds", + "tags": "Tags", + "value": "Value", "vpc_endpoint_id": "Id", "vpc_endpoint_type": "VpcEndpointType", "vpc_id": "VpcId", diff --git a/internal/aws/ec2/vpc_endpoint_service_resource_gen.go b/internal/aws/ec2/vpc_endpoint_service_resource_gen.go index 1794ce3ee..dba31d98e 100644 --- a/internal/aws/ec2/vpc_endpoint_service_resource_gen.go +++ b/internal/aws/ec2/vpc_endpoint_service_resource_gen.go @@ -14,9 +14,11 @@ import ( "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" ) func init() { @@ -119,6 +121,66 @@ func vPCEndpointServiceResource(ctx context.Context) (resource.Resource, error) stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "The tags to add to the VPC endpoint service.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Value", + // "Key" + // ], + // "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*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The tags to add to the VPC endpoint service.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ // Corresponds to CloudFormation primaryIdentifier. @@ -144,9 +206,12 @@ func vPCEndpointServiceResource(ctx context.Context) (resource.Resource, error) "acceptance_required": "AcceptanceRequired", "contributor_insights_enabled": "ContributorInsightsEnabled", "gateway_load_balancer_arns": "GatewayLoadBalancerArns", + "key": "Key", "network_load_balancer_arns": "NetworkLoadBalancerArns", "payer_responsibility": "PayerResponsibility", "service_id": "ServiceId", + "tags": "Tags", + "value": "Value", }) opts = opts.WithWriteOnlyPropertyPaths([]string{ diff --git a/internal/aws/ec2/vpc_endpoint_service_singular_data_source_gen.go b/internal/aws/ec2/vpc_endpoint_service_singular_data_source_gen.go index 0ffb02b30..8fb09c898 100644 --- a/internal/aws/ec2/vpc_endpoint_service_singular_data_source_gen.go +++ b/internal/aws/ec2/vpc_endpoint_service_singular_data_source_gen.go @@ -91,6 +91,47 @@ func vPCEndpointServiceDataSource(ctx context.Context) (datasource.DataSource, e "service_id": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "The tags to add to the VPC endpoint service.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Value", + // "Key" + // ], + // "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*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The tags to add to the VPC endpoint service.", + Computed: true, + }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ attributes["id"] = schema.StringAttribute{ @@ -111,9 +152,12 @@ func vPCEndpointServiceDataSource(ctx context.Context) (datasource.DataSource, e "acceptance_required": "AcceptanceRequired", "contributor_insights_enabled": "ContributorInsightsEnabled", "gateway_load_balancer_arns": "GatewayLoadBalancerArns", + "key": "Key", "network_load_balancer_arns": "NetworkLoadBalancerArns", "payer_responsibility": "PayerResponsibility", "service_id": "ServiceId", + "tags": "Tags", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/ec2/vpc_endpoint_singular_data_source_gen.go b/internal/aws/ec2/vpc_endpoint_singular_data_source_gen.go index a46b2af64..70c59a242 100644 --- a/internal/aws/ec2/vpc_endpoint_singular_data_source_gen.go +++ b/internal/aws/ec2/vpc_endpoint_singular_data_source_gen.go @@ -257,6 +257,48 @@ func vPCEndpointDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The IDs of the subnets in which to create endpoint network interfaces. You must specify this property for an interface endpoint or a Gateway Load Balancer endpoint. You can't specify this property for a gateway endpoint. For a Gateway Load Balancer endpoint, you can specify only one subnet.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "", + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Value", + // "Key" + // ], + // "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*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: VpcEndpointType // CloudFormation resource type schema: // @@ -308,6 +350,7 @@ func vPCEndpointDataSource(ctx context.Context) (datasource.DataSource, error) { "dns_options": "DnsOptions", "dns_record_ip_type": "DnsRecordIpType", "ip_address_type": "IpAddressType", + "key": "Key", "network_interface_ids": "NetworkInterfaceIds", "policy_document": "PolicyDocument", "private_dns_enabled": "PrivateDnsEnabled", @@ -318,6 +361,8 @@ func vPCEndpointDataSource(ctx context.Context) (datasource.DataSource, error) { "service_name": "ServiceName", "service_network_arn": "ServiceNetworkArn", "subnet_ids": "SubnetIds", + "tags": "Tags", + "value": "Value", "vpc_endpoint_id": "Id", "vpc_endpoint_type": "VpcEndpointType", "vpc_id": "VpcId", diff --git a/internal/aws/ecs/service_resource_gen.go b/internal/aws/ecs/service_resource_gen.go index c688f6ff8..9ee16e37e 100644 --- a/internal/aws/ecs/service_resource_gen.go +++ b/internal/aws/ecs/service_resource_gen.go @@ -65,7 +65,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy may contain a maximum of 6 capacity providers.", + // "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.", // "items": { // "additionalProperties": false, // "description": "The details of a capacity provider strategy. A capacity provider strategy can be set when using the ``RunTask`` or ``CreateService`` APIs or as the default capacity provider strategy for a cluster with the ``CreateCluster`` API.\n Only capacity providers that are already associated with a cluster and have an ``ACTIVE`` or ``UPDATING`` status can be used in a capacity provider strategy. The ``PutClusterCapacityProviders`` API is used to associate a capacity provider with a cluster.\n If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the ``CreateCapacityProvider`` API operation.\n To use an FARGATElong capacity provider, specify either the ``FARGATE`` or ``FARGATE_SPOT`` capacity providers. The FARGATElong capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.", @@ -119,7 +119,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy may contain a maximum of 6 capacity providers.", + Description: "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -196,11 +196,11 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "MaximumPercent": { - // "description": "If a service is using the rolling update (``ECS``) deployment type, the ``maximumPercent`` parameter represents an upper limit on the number of your service's tasks that are allowed in the ``RUNNING`` or ``PENDING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the ``REPLICA`` service scheduler and has a ``desiredCount`` of four tasks and a ``maximumPercent`` value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default ``maximumPercent`` value for a service using the ``REPLICA`` service scheduler is 200%.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and tasks in the service use the EC2 launch type, the *maximum percent* value is set to the default value. The *maximum percent* value is used to define the upper limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``maximumPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service.", + // "description": "If a service is using the rolling update (``ECS``) deployment type, the ``maximumPercent`` parameter represents an upper limit on the number of your service's tasks that are allowed in the ``RUNNING`` or ``PENDING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the ``REPLICA`` service scheduler and has a ``desiredCount`` of four tasks and a ``maximumPercent`` value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default ``maximumPercent`` value for a service using the ``REPLICA`` service scheduler is 200%.\n The Amazon ECS scheduler uses this parameter to replace unhealthy tasks by starting replacement tasks first and then stopping the unhealthy tasks, as long as cluster resources for starting replacement tasks are available. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and tasks in the service use the EC2 launch type, the *maximum percent* value is set to the default value. The *maximum percent* value is used to define the upper limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``maximumPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If the service uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and the tasks in the service use the Fargate launch type, the maximum percent value is not used. The value is still returned when describing your service.", // "type": "integer" // }, // "MinimumHealthyPercent": { - // "description": "If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. \n For services that *do not* use a load balancer, the following should be noted:\n + A service is considered healthy if all essential containers within the tasks in the service pass their health checks.\n + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total.\n + If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings. \n \n For services that *do* use a load balancer, the following should be noted:\n + If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n + If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n \n The default value for a replica service for ``minimumHealthyPercent`` is 100%. The default ``minimumHealthyPercent`` value for a service using the ``DAEMON`` service schedule is 0% for the CLI, the AWS SDKs, and the APIs and 50% for the AWS Management Console.\n The minimum number of healthy tasks during a deployment is the ``desiredCount`` multiplied by the ``minimumHealthyPercent``/100, rounded up to the nearest integer value.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value is set to the default value. The *minimum healthy percent* value is used to define the lower limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``minimumHealthyPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.", + // "description": "If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. \n If any tasks are unhealthy and if ``maximumPercent`` doesn't allow the Amazon ECS scheduler to start replacement tasks, the scheduler stops the unhealthy tasks one-by-one — using the ``minimumHealthyPercent`` as a constraint — to clear up capacity to launch replacement tasks. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) . \n For services that *do not* use a load balancer, the following should be noted:\n + A service is considered healthy if all essential containers within the tasks in the service pass their health checks.\n + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total.\n + If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings. \n \n For services that *do* use a load balancer, the following should be noted:\n + If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n + If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n \n The default value for a replica service for ``minimumHealthyPercent`` is 100%. The default ``minimumHealthyPercent`` value for a service using the ``DAEMON`` service schedule is 0% for the CLI, the AWS SDKs, and the APIs and 50% for the AWS Management Console.\n The minimum number of healthy tasks during a deployment is the ``desiredCount`` multiplied by the ``minimumHealthyPercent``/100, rounded up to the nearest integer value.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value is set to the default value. The *minimum healthy percent* value is used to define the lower limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``minimumHealthyPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.", // "type": "integer" // } // }, @@ -293,7 +293,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: MaximumPercent "maximum_percent": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "If a service is using the rolling update (``ECS``) deployment type, the ``maximumPercent`` parameter represents an upper limit on the number of your service's tasks that are allowed in the ``RUNNING`` or ``PENDING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the ``REPLICA`` service scheduler and has a ``desiredCount`` of four tasks and a ``maximumPercent`` value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default ``maximumPercent`` value for a service using the ``REPLICA`` service scheduler is 200%.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and tasks in the service use the EC2 launch type, the *maximum percent* value is set to the default value. The *maximum percent* value is used to define the upper limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``maximumPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service.", + Description: "If a service is using the rolling update (``ECS``) deployment type, the ``maximumPercent`` parameter represents an upper limit on the number of your service's tasks that are allowed in the ``RUNNING`` or ``PENDING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the ``REPLICA`` service scheduler and has a ``desiredCount`` of four tasks and a ``maximumPercent`` value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default ``maximumPercent`` value for a service using the ``REPLICA`` service scheduler is 200%.\n The Amazon ECS scheduler uses this parameter to replace unhealthy tasks by starting replacement tasks first and then stopping the unhealthy tasks, as long as cluster resources for starting replacement tasks are available. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and tasks in the service use the EC2 launch type, the *maximum percent* value is set to the default value. The *maximum percent* value is used to define the upper limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``maximumPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If the service uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and the tasks in the service use the Fargate launch type, the maximum percent value is not used. The value is still returned when describing your service.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -302,7 +302,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: MinimumHealthyPercent "minimum_healthy_percent": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. \n For services that *do not* use a load balancer, the following should be noted:\n + A service is considered healthy if all essential containers within the tasks in the service pass their health checks.\n + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total.\n + If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings. \n \n For services that *do* use a load balancer, the following should be noted:\n + If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n + If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n \n The default value for a replica service for ``minimumHealthyPercent`` is 100%. The default ``minimumHealthyPercent`` value for a service using the ``DAEMON`` service schedule is 0% for the CLI, the AWS SDKs, and the APIs and 50% for the AWS Management Console.\n The minimum number of healthy tasks during a deployment is the ``desiredCount`` multiplied by the ``minimumHealthyPercent``/100, rounded up to the nearest integer value.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value is set to the default value. The *minimum healthy percent* value is used to define the lower limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``minimumHealthyPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.", + Description: "If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. \n If any tasks are unhealthy and if ``maximumPercent`` doesn't allow the Amazon ECS scheduler to start replacement tasks, the scheduler stops the unhealthy tasks one-by-one — using the ``minimumHealthyPercent`` as a constraint — to clear up capacity to launch replacement tasks. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) . \n For services that *do not* use a load balancer, the following should be noted:\n + A service is considered healthy if all essential containers within the tasks in the service pass their health checks.\n + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total.\n + If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings. \n \n For services that *do* use a load balancer, the following should be noted:\n + If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n + If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n \n The default value for a replica service for ``minimumHealthyPercent`` is 100%. The default ``minimumHealthyPercent`` value for a service using the ``DAEMON`` service schedule is 0% for the CLI, the AWS SDKs, and the APIs and 50% for the AWS Management Console.\n The minimum number of healthy tasks during a deployment is the ``desiredCount`` multiplied by the ``minimumHealthyPercent``/100, rounded up to the nearest integer value.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value is set to the default value. The *minimum healthy percent* value is used to define the lower limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``minimumHealthyPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -891,7 +891,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // }, // "Options": { // "additionalProperties": false, - // "description": "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``.\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", + // "description": "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/).\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", // "patternProperties": { // "": { // "type": "string" @@ -1058,7 +1058,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { "options": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``.\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", + Description: "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/).\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/ecs/service_singular_data_source_gen.go b/internal/aws/ecs/service_singular_data_source_gen.go index d012fba90..12e2cc0d6 100644 --- a/internal/aws/ecs/service_singular_data_source_gen.go +++ b/internal/aws/ecs/service_singular_data_source_gen.go @@ -43,7 +43,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy may contain a maximum of 6 capacity providers.", + // "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.", // "items": { // "additionalProperties": false, // "description": "The details of a capacity provider strategy. A capacity provider strategy can be set when using the ``RunTask`` or ``CreateService`` APIs or as the default capacity provider strategy for a cluster with the ``CreateCluster`` API.\n Only capacity providers that are already associated with a cluster and have an ``ACTIVE`` or ``UPDATING`` status can be used in a capacity provider strategy. The ``PutClusterCapacityProviders`` API is used to associate a capacity provider with a cluster.\n If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the ``CreateCapacityProvider`` API operation.\n To use an FARGATElong capacity provider, specify either the ``FARGATE`` or ``FARGATE_SPOT`` capacity providers. The FARGATElong capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.", @@ -85,7 +85,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy may contain a maximum of 6 capacity providers.", + Description: "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Cluster @@ -153,11 +153,11 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "object" // }, // "MaximumPercent": { - // "description": "If a service is using the rolling update (``ECS``) deployment type, the ``maximumPercent`` parameter represents an upper limit on the number of your service's tasks that are allowed in the ``RUNNING`` or ``PENDING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the ``REPLICA`` service scheduler and has a ``desiredCount`` of four tasks and a ``maximumPercent`` value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default ``maximumPercent`` value for a service using the ``REPLICA`` service scheduler is 200%.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and tasks in the service use the EC2 launch type, the *maximum percent* value is set to the default value. The *maximum percent* value is used to define the upper limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``maximumPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service.", + // "description": "If a service is using the rolling update (``ECS``) deployment type, the ``maximumPercent`` parameter represents an upper limit on the number of your service's tasks that are allowed in the ``RUNNING`` or ``PENDING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the ``REPLICA`` service scheduler and has a ``desiredCount`` of four tasks and a ``maximumPercent`` value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default ``maximumPercent`` value for a service using the ``REPLICA`` service scheduler is 200%.\n The Amazon ECS scheduler uses this parameter to replace unhealthy tasks by starting replacement tasks first and then stopping the unhealthy tasks, as long as cluster resources for starting replacement tasks are available. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and tasks in the service use the EC2 launch type, the *maximum percent* value is set to the default value. The *maximum percent* value is used to define the upper limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``maximumPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If the service uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and the tasks in the service use the Fargate launch type, the maximum percent value is not used. The value is still returned when describing your service.", // "type": "integer" // }, // "MinimumHealthyPercent": { - // "description": "If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. \n For services that *do not* use a load balancer, the following should be noted:\n + A service is considered healthy if all essential containers within the tasks in the service pass their health checks.\n + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total.\n + If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings. \n \n For services that *do* use a load balancer, the following should be noted:\n + If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n + If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n \n The default value for a replica service for ``minimumHealthyPercent`` is 100%. The default ``minimumHealthyPercent`` value for a service using the ``DAEMON`` service schedule is 0% for the CLI, the AWS SDKs, and the APIs and 50% for the AWS Management Console.\n The minimum number of healthy tasks during a deployment is the ``desiredCount`` multiplied by the ``minimumHealthyPercent``/100, rounded up to the nearest integer value.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value is set to the default value. The *minimum healthy percent* value is used to define the lower limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``minimumHealthyPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.", + // "description": "If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. \n If any tasks are unhealthy and if ``maximumPercent`` doesn't allow the Amazon ECS scheduler to start replacement tasks, the scheduler stops the unhealthy tasks one-by-one — using the ``minimumHealthyPercent`` as a constraint — to clear up capacity to launch replacement tasks. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) . \n For services that *do not* use a load balancer, the following should be noted:\n + A service is considered healthy if all essential containers within the tasks in the service pass their health checks.\n + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total.\n + If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings. \n \n For services that *do* use a load balancer, the following should be noted:\n + If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n + If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n \n The default value for a replica service for ``minimumHealthyPercent`` is 100%. The default ``minimumHealthyPercent`` value for a service using the ``DAEMON`` service schedule is 0% for the CLI, the AWS SDKs, and the APIs and 50% for the AWS Management Console.\n The minimum number of healthy tasks during a deployment is the ``desiredCount`` multiplied by the ``minimumHealthyPercent``/100, rounded up to the nearest integer value.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value is set to the default value. The *minimum healthy percent* value is used to define the lower limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``minimumHealthyPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.", // "type": "integer" // } // }, @@ -207,12 +207,12 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: MaximumPercent "maximum_percent": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "If a service is using the rolling update (``ECS``) deployment type, the ``maximumPercent`` parameter represents an upper limit on the number of your service's tasks that are allowed in the ``RUNNING`` or ``PENDING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the ``REPLICA`` service scheduler and has a ``desiredCount`` of four tasks and a ``maximumPercent`` value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default ``maximumPercent`` value for a service using the ``REPLICA`` service scheduler is 200%.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and tasks in the service use the EC2 launch type, the *maximum percent* value is set to the default value. The *maximum percent* value is used to define the upper limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``maximumPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service.", + Description: "If a service is using the rolling update (``ECS``) deployment type, the ``maximumPercent`` parameter represents an upper limit on the number of your service's tasks that are allowed in the ``RUNNING`` or ``PENDING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the ``REPLICA`` service scheduler and has a ``desiredCount`` of four tasks and a ``maximumPercent`` value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default ``maximumPercent`` value for a service using the ``REPLICA`` service scheduler is 200%.\n The Amazon ECS scheduler uses this parameter to replace unhealthy tasks by starting replacement tasks first and then stopping the unhealthy tasks, as long as cluster resources for starting replacement tasks are available. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and tasks in the service use the EC2 launch type, the *maximum percent* value is set to the default value. The *maximum percent* value is used to define the upper limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``maximumPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If the service uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and the tasks in the service use the Fargate launch type, the maximum percent value is not used. The value is still returned when describing your service.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MinimumHealthyPercent "minimum_healthy_percent": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. \n For services that *do not* use a load balancer, the following should be noted:\n + A service is considered healthy if all essential containers within the tasks in the service pass their health checks.\n + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total.\n + If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings. \n \n For services that *do* use a load balancer, the following should be noted:\n + If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n + If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n \n The default value for a replica service for ``minimumHealthyPercent`` is 100%. The default ``minimumHealthyPercent`` value for a service using the ``DAEMON`` service schedule is 0% for the CLI, the AWS SDKs, and the APIs and 50% for the AWS Management Console.\n The minimum number of healthy tasks during a deployment is the ``desiredCount`` multiplied by the ``minimumHealthyPercent``/100, rounded up to the nearest integer value.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value is set to the default value. The *minimum healthy percent* value is used to define the lower limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``minimumHealthyPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.", + Description: "If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. \n If any tasks are unhealthy and if ``maximumPercent`` doesn't allow the Amazon ECS scheduler to start replacement tasks, the scheduler stops the unhealthy tasks one-by-one — using the ``minimumHealthyPercent`` as a constraint — to clear up capacity to launch replacement tasks. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) . \n For services that *do not* use a load balancer, the following should be noted:\n + A service is considered healthy if all essential containers within the tasks in the service pass their health checks.\n + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total.\n + If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings. \n \n For services that *do* use a load balancer, the following should be noted:\n + If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n + If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n \n The default value for a replica service for ``minimumHealthyPercent`` is 100%. The default ``minimumHealthyPercent`` value for a service using the ``DAEMON`` service schedule is 0% for the CLI, the AWS SDKs, and the APIs and 50% for the AWS Management Console.\n The minimum number of healthy tasks during a deployment is the ``desiredCount`` multiplied by the ``minimumHealthyPercent``/100, rounded up to the nearest integer value.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value is set to the default value. The *minimum healthy percent* value is used to define the lower limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``minimumHealthyPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -627,7 +627,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // }, // "Options": { // "additionalProperties": false, - // "description": "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``.\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", + // "description": "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/).\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", // "patternProperties": { // "": { // "type": "string" @@ -783,7 +783,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { "options": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``.\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", + Description: "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/).\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", Computed: true, }, /*END ATTRIBUTE*/ // Property: SecretOptions diff --git a/internal/aws/ecs/task_definition_resource_gen.go b/internal/aws/ecs/task_definition_resource_gen.go index c80cb5f5d..4bf6ef795 100644 --- a/internal/aws/ecs/task_definition_resource_gen.go +++ b/internal/aws/ecs/task_definition_resource_gen.go @@ -386,7 +386,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { // }, // "Options": { // "additionalProperties": false, - // "description": "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``.\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", + // "description": "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/).\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", // "patternProperties": { // "": { // "type": "string" @@ -1248,7 +1248,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { "options": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``.\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", + Description: "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/).\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -1806,11 +1806,11 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "", + // "description": "Enables fault injection and allows for fault injection requests to be accepted from the task's containers. The default value is ``false``.", // "type": "boolean" // } "enable_fault_injection": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Enables fault injection and allows for fault injection requests to be accepted from the task's containers. The default value is ``false``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/ecs/task_definition_singular_data_source_gen.go b/internal/aws/ecs/task_definition_singular_data_source_gen.go index e56ea2c41..134e836a2 100644 --- a/internal/aws/ecs/task_definition_singular_data_source_gen.go +++ b/internal/aws/ecs/task_definition_singular_data_source_gen.go @@ -373,7 +373,7 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error // }, // "Options": { // "additionalProperties": false, - // "description": "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``.\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", + // "description": "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/).\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", // "patternProperties": { // "": { // "type": "string" @@ -1007,7 +1007,7 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error "options": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``.\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", + Description: "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/).\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", Computed: true, }, /*END ATTRIBUTE*/ // Property: SecretOptions @@ -1306,11 +1306,11 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error // CloudFormation resource type schema: // // { - // "description": "", + // "description": "Enables fault injection and allows for fault injection requests to be accepted from the task's containers. The default value is ``false``.", // "type": "boolean" // } "enable_fault_injection": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Enables fault injection and allows for fault injection requests to be accepted from the task's containers. The default value is ``false``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: EphemeralStorage diff --git a/internal/aws/efs/file_system_resource_gen.go b/internal/aws/efs/file_system_resource_gen.go index 7d4377473..5b5770044 100644 --- a/internal/aws/efs/file_system_resource_gen.go +++ b/internal/aws/efs/file_system_resource_gen.go @@ -179,7 +179,7 @@ func fileSystemResource(ctx context.Context) (resource.Resource, error) { // "description": "Describes the protection on the file system.", // "properties": { // "ReplicationOverwriteProtection": { - // "description": "The status of the file system's replication overwrite protection.\n + ``ENABLED`` ? The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is ``ENABLED`` by default. \n + ``DISABLED`` ? The file system can be used as the destination file system in a replication configuration. The file system is read-only and can only be modified by EFS replication.\n + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is only modified only by EFS replication.\n \n If the replication configuration is deleted, the file system's replication overwrite protection is re-enabled, the file system becomes writeable.", + // "description": "The status of the file system's replication overwrite protection.\n + ``ENABLED`` ? The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is ``ENABLED`` by default. \n + ``DISABLED`` ? The file system can be used as the destination file system in a replication configuration. The file system is read-only and can only be modified by EFS replication.\n + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is modified only by EFS replication.\n \n If the replication configuration is deleted, the file system's replication overwrite protection is re-enabled, the file system becomes writeable.", // "enum": [ // "DISABLED", // "ENABLED" @@ -193,7 +193,7 @@ func fileSystemResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ReplicationOverwriteProtection "replication_overwrite_protection": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The status of the file system's replication overwrite protection.\n + ``ENABLED`` ? The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is ``ENABLED`` by default. \n + ``DISABLED`` ? The file system can be used as the destination file system in a replication configuration. The file system is read-only and can only be modified by EFS replication.\n + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is only modified only by EFS replication.\n \n If the replication configuration is deleted, the file system's replication overwrite protection is re-enabled, the file system becomes writeable.", + Description: "The status of the file system's replication overwrite protection.\n + ``ENABLED`` ? The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is ``ENABLED`` by default. \n + ``DISABLED`` ? The file system can be used as the destination file system in a replication configuration. The file system is read-only and can only be modified by EFS replication.\n + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is modified only by EFS replication.\n \n If the replication configuration is deleted, the file system's replication overwrite protection is re-enabled, the file system becomes writeable.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -427,15 +427,15 @@ func fileSystemResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "RoleArn": { - // "description": "", + // "description": "The Amazon Resource Name (ARN) of the current source file system in the replication configuration.", // "type": "string" // }, // "Status": { - // "description": "", + // "description": "Describes the status of the replication configuration. For more information about replication status, see [Viewing replication details](https://docs.aws.amazon.com//efs/latest/ug/awsbackup.html#restoring-backup-efsmonitoring-replication-status.html) in the *Amazon EFS User Guide*.", // "type": "string" // }, // "StatusMessage": { - // "description": "", + // "description": "Message that provides details about the ``PAUSED`` or ``ERRROR`` state of the replication destination configuration. For more information about replication status messages, see [Viewing replication details](https://docs.aws.amazon.com//efs/latest/ug/awsbackup.html#restoring-backup-efsmonitoring-replication-status.html) in the *Amazon EFS User Guide*.", // "type": "string" // } // }, @@ -496,7 +496,7 @@ func fileSystemResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: RoleArn "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The Amazon Resource Name (ARN) of the current source file system in the replication configuration.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -505,7 +505,7 @@ func fileSystemResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Status "status": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Describes the status of the replication configuration. For more information about replication status, see [Viewing replication details](https://docs.aws.amazon.com//efs/latest/ug/awsbackup.html#restoring-backup-efsmonitoring-replication-status.html) in the *Amazon EFS User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -514,7 +514,7 @@ func fileSystemResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: StatusMessage "status_message": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Message that provides details about the ``PAUSED`` or ``ERRROR`` state of the replication destination configuration. For more information about replication status messages, see [Viewing replication details](https://docs.aws.amazon.com//efs/latest/ug/awsbackup.html#restoring-backup-efsmonitoring-replication-status.html) in the *Amazon EFS User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/efs/file_system_singular_data_source_gen.go b/internal/aws/efs/file_system_singular_data_source_gen.go index 5b4d20f96..0d497ae78 100644 --- a/internal/aws/efs/file_system_singular_data_source_gen.go +++ b/internal/aws/efs/file_system_singular_data_source_gen.go @@ -128,7 +128,7 @@ func fileSystemDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "Describes the protection on the file system.", // "properties": { // "ReplicationOverwriteProtection": { - // "description": "The status of the file system's replication overwrite protection.\n + ``ENABLED`` ? The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is ``ENABLED`` by default. \n + ``DISABLED`` ? The file system can be used as the destination file system in a replication configuration. The file system is read-only and can only be modified by EFS replication.\n + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is only modified only by EFS replication.\n \n If the replication configuration is deleted, the file system's replication overwrite protection is re-enabled, the file system becomes writeable.", + // "description": "The status of the file system's replication overwrite protection.\n + ``ENABLED`` ? The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is ``ENABLED`` by default. \n + ``DISABLED`` ? The file system can be used as the destination file system in a replication configuration. The file system is read-only and can only be modified by EFS replication.\n + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is modified only by EFS replication.\n \n If the replication configuration is deleted, the file system's replication overwrite protection is re-enabled, the file system becomes writeable.", // "enum": [ // "DISABLED", // "ENABLED" @@ -142,7 +142,7 @@ func fileSystemDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ReplicationOverwriteProtection "replication_overwrite_protection": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The status of the file system's replication overwrite protection.\n + ``ENABLED`` ? The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is ``ENABLED`` by default. \n + ``DISABLED`` ? The file system can be used as the destination file system in a replication configuration. The file system is read-only and can only be modified by EFS replication.\n + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is only modified only by EFS replication.\n \n If the replication configuration is deleted, the file system's replication overwrite protection is re-enabled, the file system becomes writeable.", + Description: "The status of the file system's replication overwrite protection.\n + ``ENABLED`` ? The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is ``ENABLED`` by default. \n + ``DISABLED`` ? The file system can be used as the destination file system in a replication configuration. The file system is read-only and can only be modified by EFS replication.\n + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is modified only by EFS replication.\n \n If the replication configuration is deleted, the file system's replication overwrite protection is re-enabled, the file system becomes writeable.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -308,15 +308,15 @@ func fileSystemDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // }, // "RoleArn": { - // "description": "", + // "description": "The Amazon Resource Name (ARN) of the current source file system in the replication configuration.", // "type": "string" // }, // "Status": { - // "description": "", + // "description": "Describes the status of the replication configuration. For more information about replication status, see [Viewing replication details](https://docs.aws.amazon.com//efs/latest/ug/awsbackup.html#restoring-backup-efsmonitoring-replication-status.html) in the *Amazon EFS User Guide*.", // "type": "string" // }, // "StatusMessage": { - // "description": "", + // "description": "Message that provides details about the ``PAUSED`` or ``ERRROR`` state of the replication destination configuration. For more information about replication status messages, see [Viewing replication details](https://docs.aws.amazon.com//efs/latest/ug/awsbackup.html#restoring-backup-efsmonitoring-replication-status.html) in the *Amazon EFS User Guide*.", // "type": "string" // } // }, @@ -358,17 +358,17 @@ func fileSystemDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: RoleArn "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The Amazon Resource Name (ARN) of the current source file system in the replication configuration.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Status "status": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Describes the status of the replication configuration. For more information about replication status, see [Viewing replication details](https://docs.aws.amazon.com//efs/latest/ug/awsbackup.html#restoring-backup-efsmonitoring-replication-status.html) in the *Amazon EFS User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: StatusMessage "status_message": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Message that provides details about the ``PAUSED`` or ``ERRROR`` state of the replication destination configuration. For more information about replication status messages, see [Viewing replication details](https://docs.aws.amazon.com//efs/latest/ug/awsbackup.html#restoring-backup-efsmonitoring-replication-status.html) in the *Amazon EFS User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ diff --git a/internal/aws/gamelift/container_group_definition_resource_gen.go b/internal/aws/gamelift/container_group_definition_resource_gen.go index d008264f5..d26794689 100644 --- a/internal/aws/gamelift/container_group_definition_resource_gen.go +++ b/internal/aws/gamelift/container_group_definition_resource_gen.go @@ -9,6 +9,7 @@ import ( "context" "regexp" + "github.com/hashicorp/terraform-plugin-framework-validators/float64validator" "github.com/hashicorp/terraform-plugin-framework-validators/int64validator" "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" "github.com/hashicorp/terraform-plugin-framework-validators/setvalidator" @@ -16,6 +17,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/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" @@ -37,43 +39,656 @@ func init() { // This Terraform resource corresponds to the CloudFormation AWS::GameLift::ContainerGroupDefinition resource. func containerGroupDefinitionResource(ctx context.Context) (resource.Resource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ - // Property: ContainerDefinitions + // Property: ContainerGroupDefinitionArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container group resource and uniquely identifies it across all AWS Regions.", + // "maxLength": 512, + // "minLength": 1, + // "pattern": "^arn:.*:containergroupdefinition\\/[a-zA-Z0-9\\-]+(:[0-9]+)?$", + // "type": "string" + // } + "container_group_definition_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container group resource and uniquely identifies it across all AWS Regions.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ContainerGroupType + // CloudFormation resource type schema: + // + // { + // "description": "The scope of the container group", + // "enum": [ + // "GAME_SERVER", + // "PER_INSTANCE" + // ], + // "type": "string" + // } + "container_group_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The scope of the container group", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "GAME_SERVER", + "PER_INSTANCE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreationTime + // CloudFormation resource type schema: + // + // { + // "description": "A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").", + // "type": "string" + // } + "creation_time": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: GameServerContainerDefinition + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Specifies the information required to run game servers with this container group", + // "properties": { + // "ContainerName": { + // "description": "A descriptive label for the container definition. Container definition names must be unique with a container group definition.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-]+$", + // "type": "string" + // }, + // "DependsOn": { + // "description": "A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers.", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "A dependency that impacts a container's startup and shutdown.", + // "properties": { + // "Condition": { + // "description": "The type of dependency.", + // "enum": [ + // "START", + // "COMPLETE", + // "SUCCESS", + // "HEALTHY" + // ], + // "type": "string" + // }, + // "ContainerName": { + // "description": "A descriptive label for the container definition. The container being defined depends on this container's condition.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-]+$", + // "type": "string" + // } + // }, + // "required": [ + // "ContainerName", + // "Condition" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // }, + // "EnvironmentOverride": { + // "description": "The environment variables to pass to a container.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "An environment variable to set inside a container, in the form of a key-value pair.", + // "properties": { + // "Name": { + // "description": "The environment variable name.", + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^.*$", + // "type": "string" + // }, + // "Value": { + // "description": "The environment variable value.", + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^.*$", + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 20, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // }, + // "ImageUri": { + // "description": "Specifies the image URI of this container.", + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-_\\.@\\/:]+$", + // "type": "string" + // }, + // "MountPoints": { + // "description": "A list of mount point configurations to be used in a container.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Defines the mount point configuration within a container.", + // "properties": { + // "AccessLevel": { + // "description": "The access permissions for the mounted path.", + // "enum": [ + // "READ_ONLY", + // "READ_AND_WRITE" + // ], + // "type": "string" + // }, + // "ContainerPath": { + // "description": "The path inside the container where the mount is accessible.", + // "maxLength": 1024, + // "minLength": 1, + // "pattern": "^(\\/+[^\\/]+\\/*)+$", + // "type": "string" + // }, + // "InstancePath": { + // "description": "The path on the host that will be mounted in the container.", + // "maxLength": 1024, + // "minLength": 1, + // "pattern": "^\\/[\\s\\S]*$", + // "type": "string" + // } + // }, + // "required": [ + // "InstancePath" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // }, + // "PortConfiguration": { + // "additionalProperties": false, + // "description": "Defines the ports on the container.", + // "properties": { + // "ContainerPortRanges": { + // "description": "Specifies one or more ranges of ports on a container.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A set of one or more port numbers that can be opened on the container.", + // "properties": { + // "FromPort": { + // "description": "A starting value for the range of allowed port numbers.", + // "maximum": 60000, + // "minimum": 1, + // "type": "integer" + // }, + // "Protocol": { + // "description": "Defines the protocol of these ports.", + // "enum": [ + // "TCP", + // "UDP" + // ], + // "type": "string" + // }, + // "ToPort": { + // "description": "An ending value for the range of allowed port numbers. Port numbers are end-inclusive. This value must be equal to or greater than FromPort.", + // "maximum": 60000, + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "FromPort", + // "Protocol", + // "ToPort" + // ], + // "type": "object" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "ContainerPortRanges" + // ], + // "type": "object" + // }, + // "ResolvedImageDigest": { + // "description": "The digest of the container image.", + // "pattern": "^sha256:[a-fA-F0-9]{64}$", + // "type": "string" + // }, + // "ServerSdkVersion": { + // "description": "The version of the server SDK used in this container group", + // "maxLength": 128, + // "pattern": "^\\d+\\.\\d+\\.\\d+$", + // "type": "string" + // } + // }, + // "required": [ + // "ContainerName", + // "ImageUri", + // "ServerSdkVersion" + // ], + // "type": "object" + // } + "game_server_container_definition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerName + "container_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A descriptive label for the container definition. Container definition names must be unique with a container group definition.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9-]+$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DependsOn + "depends_on": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Condition + "condition": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of dependency.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "START", + "COMPLETE", + "SUCCESS", + "HEALTHY", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ContainerName + "container_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A descriptive label for the container definition. The container being defined depends on this container's condition.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9-]+$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 10), + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EnvironmentOverride + "environment_override": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The environment variable name.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 255), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The environment variable value.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 255), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The environment variables to pass to a container.", + Optional: true, + Computed: true, + Validators: []validator.Set{ /*START VALIDATORS*/ + setvalidator.SizeBetween(1, 20), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ImageUri + "image_uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the image URI of this container.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 255), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9-_\\.@\\/:]+$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MountPoints + "mount_points": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccessLevel + "access_level": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The access permissions for the mounted path.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "READ_ONLY", + "READ_AND_WRITE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The path inside the container where the mount is accessible.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1024), + stringvalidator.RegexMatches(regexp.MustCompile("^(\\/+[^\\/]+\\/*)+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InstancePath + "instance_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The path on the host that will be mounted in the container.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1024), + stringvalidator.RegexMatches(regexp.MustCompile("^\\/[\\s\\S]*$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of mount point configurations to be used in a container.", + Optional: true, + Computed: true, + Validators: []validator.Set{ /*START VALIDATORS*/ + setvalidator.SizeBetween(1, 10), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PortConfiguration + "port_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPortRanges + "container_port_ranges": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FromPort + "from_port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "A starting value for the range of allowed port numbers.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(1, 60000), + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Protocol + "protocol": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Defines the protocol of these ports.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "TCP", + "UDP", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ToPort + "to_port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "An ending value for the range of allowed port numbers. Port numbers are end-inclusive. This value must be equal to or greater than FromPort.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(1, 60000), + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Specifies one or more ranges of ports on a container.", + Optional: true, + Computed: true, + Validators: []validator.Set{ /*START VALIDATORS*/ + setvalidator.SizeBetween(1, 100), + fwvalidators.NotNullSet(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Defines the ports on the container.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ResolvedImageDigest + "resolved_image_digest": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The digest of the container image.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^sha256:[a-fA-F0-9]{64}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ServerSdkVersion + "server_sdk_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The version of the server SDK used in this container group", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(128), + stringvalidator.RegexMatches(regexp.MustCompile("^\\d+\\.\\d+\\.\\d+$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the information required to run game servers with this container group", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "A descriptive label for the container group definition.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-]+$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A descriptive label for the container group definition.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9-]+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OperatingSystem // CloudFormation resource type schema: // // { - // "description": "A collection of container definitions that define the containers in this group.", + // "description": "The operating system of the container group", + // "enum": [ + // "AMAZON_LINUX_2023" + // ], + // "type": "string" + // } + "operating_system": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The operating system of the container group", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "AMAZON_LINUX_2023", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: SourceVersionNumber + // CloudFormation resource type schema: + // + // { + // "description": "A specific ContainerGroupDefinition version to be updated", + // "minimum": 0, + // "type": "integer" + // } + "source_version_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "A specific ContainerGroupDefinition version to be updated", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.AtLeast(0), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "A string indicating ContainerGroupDefinition status.", + // "enum": [ + // "READY", + // "COPYING", + // "FAILED" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string indicating ContainerGroupDefinition status.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: StatusReason + // CloudFormation resource type schema: + // + // { + // "description": "A string indicating the reason for ContainerGroupDefinition status.", + // "type": "string" + // } + "status_reason": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string indicating the reason for ContainerGroupDefinition status.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SupportContainerDefinitions + // CloudFormation resource type schema: + // + // { + // "description": "A collection of support container definitions that define the containers in this group.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Details about a container that is used in a container fleet", + // "description": "Supports the function of the main container group", // "properties": { - // "Command": { - // "description": "The command that's passed to the container.", - // "insertionOrder": true, - // "items": { - // "maxLength": 255, - // "minLength": 1, - // "pattern": "^.*$", - // "type": "string" - // }, - // "maxItems": 20, - // "minItems": 1, - // "type": "array", - // "uniqueItems": false - // }, // "ContainerName": { - // "description": "A descriptive label for the container definition. Container definition names must be unique with a container group definition.", + // "description": "A descriptive label for the container definition.", // "maxLength": 128, // "minLength": 1, // "pattern": "^[a-zA-Z0-9-]+$", // "type": "string" // }, - // "Cpu": { - // "description": "The maximum number of CPU units reserved for this container. The value is expressed as an integer amount of CPU units. 1 vCPU is equal to 1024 CPU units", - // "maximum": 10240, - // "minimum": 1, - // "type": "integer" - // }, // "DependsOn": { // "description": "A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers.", // "insertionOrder": true, @@ -110,20 +725,7 @@ func containerGroupDefinitionResource(ctx context.Context) (resource.Resource, e // "type": "array", // "uniqueItems": true // }, - // "EntryPoint": { - // "description": "The entry point that's passed to the container so that it will run as an executable. If there are multiple arguments, each argument is a string in the array.", - // "insertionOrder": true, - // "items": { - // "maxLength": 1024, - // "minLength": 1, - // "type": "string" - // }, - // "maxItems": 20, - // "minItems": 1, - // "type": "array", - // "uniqueItems": false - // }, - // "Environment": { + // "EnvironmentOverride": { // "description": "The environment variables to pass to a container.", // "insertionOrder": false, // "items": { @@ -215,24 +817,51 @@ func containerGroupDefinitionResource(ctx context.Context) (resource.Resource, e // "pattern": "^[a-zA-Z0-9-_\\.@\\/:]+$", // "type": "string" // }, - // "MemoryLimits": { - // "additionalProperties": false, - // "description": "Specifies how much memory is available to the container. You must specify at least this parameter or the TotalMemoryLimit parameter of the ContainerGroupDefinition.", - // "properties": { - // "HardLimit": { - // "description": "The hard limit of memory to reserve for the container.", - // "maximum": 1024000, - // "minimum": 4, - // "type": "integer" + // "MemoryHardLimitMebibytes": { + // "description": "The total memory limit of container groups following this definition in MiB", + // "maximum": 1024000, + // "minimum": 4, + // "type": "integer" + // }, + // "MountPoints": { + // "description": "A list of mount point configurations to be used in a container.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Defines the mount point configuration within a container.", + // "properties": { + // "AccessLevel": { + // "description": "The access permissions for the mounted path.", + // "enum": [ + // "READ_ONLY", + // "READ_AND_WRITE" + // ], + // "type": "string" + // }, + // "ContainerPath": { + // "description": "The path inside the container where the mount is accessible.", + // "maxLength": 1024, + // "minLength": 1, + // "pattern": "^(\\/+[^\\/]+\\/*)+$", + // "type": "string" + // }, + // "InstancePath": { + // "description": "The path on the host that will be mounted in the container.", + // "maxLength": 1024, + // "minLength": 1, + // "pattern": "^\\/[\\s\\S]*$", + // "type": "string" + // } // }, - // "SoftLimit": { - // "description": "The amount of memory that is reserved for the container.", - // "maximum": 1024000, - // "minimum": 4, - // "type": "integer" - // } + // "required": [ + // "InstancePath" + // ], + // "type": "object" // }, - // "type": "object" + // "maxItems": 10, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true // }, // "PortConfiguration": { // "additionalProperties": false, @@ -289,12 +918,11 @@ func containerGroupDefinitionResource(ctx context.Context) (resource.Resource, e // "pattern": "^sha256:[a-fA-F0-9]{64}$", // "type": "string" // }, - // "WorkingDirectory": { - // "description": "The working directory to run commands inside the container in.", - // "maxLength": 255, - // "minLength": 1, - // "pattern": "^.*$", - // "type": "string" + // "Vcpu": { + // "description": "The number of virtual CPUs to give to the support group", + // "maximum": 10, + // "minimum": 0.125, + // "type": "number" // } // }, // "required": [ @@ -308,45 +936,21 @@ func containerGroupDefinitionResource(ctx context.Context) (resource.Resource, e // "type": "array", // "uniqueItems": true // } - "container_definitions": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + "support_container_definitions": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ - // Property: Command - "command": schema.ListAttribute{ /*START ATTRIBUTE*/ - ElementType: types.StringType, - Description: "The command that's passed to the container.", - Optional: true, - Computed: true, - Validators: []validator.List{ /*START VALIDATORS*/ - listvalidator.SizeBetween(1, 20), - listvalidator.ValueStringsAre( - stringvalidator.LengthBetween(1, 255), - stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), - ), - }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ - listplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ // Property: ContainerName "container_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A descriptive label for the container definition. Container definition names must be unique with a container group definition.", - Required: true, + Description: "A descriptive label for the container definition.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 128), stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9-]+$"), ""), + fwvalidators.NotNullString(), }, /*END VALIDATORS*/ - }, /*END ATTRIBUTE*/ - // Property: Cpu - "cpu": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The maximum number of CPU units reserved for this container. The value is expressed as an integer amount of CPU units. 1 vCPU is equal to 1024 CPU units", - Optional: true, - Computed: true, - Validators: []validator.Int64{ /*START VALIDATORS*/ - int64validator.Between(1, 10240), - }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ - int64planmodifier.UseStateForUnknown(), + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: DependsOn @@ -398,24 +1002,8 @@ func containerGroupDefinitionResource(ctx context.Context) (resource.Resource, e listplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ - // Property: EntryPoint - "entry_point": schema.ListAttribute{ /*START ATTRIBUTE*/ - ElementType: types.StringType, - Description: "The entry point that's passed to the container so that it will run as an executable. If there are multiple arguments, each argument is a string in the array.", - Optional: true, - Computed: true, - Validators: []validator.List{ /*START VALIDATORS*/ - listvalidator.SizeBetween(1, 20), - listvalidator.ValueStringsAre( - stringvalidator.LengthBetween(1, 1024), - ), - }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ - listplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ - // Property: Environment - "environment": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + // Property: EnvironmentOverride + "environment_override": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Name @@ -547,45 +1135,85 @@ func containerGroupDefinitionResource(ctx context.Context) (resource.Resource, e // Property: ImageUri "image_uri": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "Specifies the image URI of this container.", - Required: true, + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 255), stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9-_\\.@\\/:]+$"), ""), + fwvalidators.NotNullString(), }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ - // Property: MemoryLimits - "memory_limits": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ - Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ - // Property: HardLimit - "hard_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The hard limit of memory to reserve for the container.", - Optional: true, - Computed: true, - Validators: []validator.Int64{ /*START VALIDATORS*/ - int64validator.Between(4, 1024000), - }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ - int64planmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ - // Property: SoftLimit - "soft_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount of memory that is reserved for the container.", - Optional: true, - Computed: true, - Validators: []validator.Int64{ /*START VALIDATORS*/ - int64validator.Between(4, 1024000), - }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ - int64planmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ - }, /*END SCHEMA*/ - Description: "Specifies how much memory is available to the container. You must specify at least this parameter or the TotalMemoryLimit parameter of the ContainerGroupDefinition.", + // Property: MemoryHardLimitMebibytes + "memory_hard_limit_mebibytes": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The total memory limit of container groups following this definition in MiB", Optional: true, Computed: true, - PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ - objectplanmodifier.UseStateForUnknown(), + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(4, 1024000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MountPoints + "mount_points": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccessLevel + "access_level": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The access permissions for the mounted path.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "READ_ONLY", + "READ_AND_WRITE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The path inside the container where the mount is accessible.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1024), + stringvalidator.RegexMatches(regexp.MustCompile("^(\\/+[^\\/]+\\/*)+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InstancePath + "instance_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The path on the host that will be mounted in the container.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1024), + stringvalidator.RegexMatches(regexp.MustCompile("^\\/[\\s\\S]*$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of mount point configurations to be used in a container.", + Optional: true, + Computed: true, + Validators: []validator.Set{ /*START VALIDATORS*/ + setvalidator.SizeBetween(1, 10), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: PortConfiguration @@ -670,128 +1298,28 @@ func containerGroupDefinitionResource(ctx context.Context) (resource.Resource, e stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ - // Property: WorkingDirectory - "working_directory": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The working directory to run commands inside the container in.", + // Property: Vcpu + "vcpu": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of virtual CPUs to give to the support group", Optional: true, Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 255), - stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(0.125000, 10.000000), }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A collection of container definitions that define the containers in this group.", - Required: true, + Description: "A collection of support container definitions that define the containers in this group.", + Optional: true, + Computed: true, Validators: []validator.Set{ /*START VALIDATORS*/ setvalidator.SizeBetween(1, 10), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ - setplanmodifier.RequiresReplace(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ - // Property: ContainerGroupDefinitionArn - // CloudFormation resource type schema: - // - // { - // "description": "The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container group resource and uniquely identifies it across all AWS Regions.", - // "maxLength": 512, - // "minLength": 1, - // "pattern": "^arn:.*:containergroupdefinition/containergroupdefinition-[a-zA-Z0-9-]+$|^arn:.*:containergroupdefinition/[a-zA-Z0-9-\\:]+$", - // "type": "string" - // } - "container_group_definition_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container group resource and uniquely identifies it across all AWS Regions.", - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ - // Property: CreationTime - // CloudFormation resource type schema: - // - // { - // "description": "A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").", - // "type": "string" - // } - "creation_time": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").", - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ - // Property: Name - // CloudFormation resource type schema: - // - // { - // "description": "A descriptive label for the container group definition.", - // "maxLength": 128, - // "minLength": 1, - // "pattern": "^[a-zA-Z0-9-]+$", - // "type": "string" - // } - "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A descriptive label for the container group definition.", - Required: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 128), - stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9-]+$"), ""), - }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.RequiresReplace(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ - // Property: OperatingSystem - // CloudFormation resource type schema: - // - // { - // "description": "The operating system of the container group", - // "enum": [ - // "AMAZON_LINUX_2023" - // ], - // "type": "string" - // } - "operating_system": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The operating system of the container group", - Required: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.OneOf( - "AMAZON_LINUX_2023", - ), - }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.RequiresReplace(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ - // Property: SchedulingStrategy - // CloudFormation resource type schema: - // - // { - // "description": "Specifies whether the container group includes replica or daemon containers.", - // "enum": [ - // "REPLICA", - // "DAEMON" - // ], - // "type": "string" - // } - "scheduling_strategy": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the container group includes replica or daemon containers.", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.OneOf( - "REPLICA", - "DAEMON", - ), - }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - stringplanmodifier.RequiresReplaceIfConfigured(), + setplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Tags @@ -873,42 +1401,71 @@ func containerGroupDefinitionResource(ctx context.Context) (resource.Resource, e setplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ - // Property: TotalCpuLimit + // Property: TotalMemoryLimitMebibytes // CloudFormation resource type schema: // // { - // "description": "The maximum number of CPU units reserved for this container group. The value is expressed as an integer amount of CPU units. (1 vCPU is equal to 1024 CPU units.)", - // "maximum": 10240, - // "minimum": 128, + // "description": "The total memory limit of container groups following this definition in MiB", + // "maximum": 1024000, + // "minimum": 4, // "type": "integer" // } - "total_cpu_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The maximum number of CPU units reserved for this container group. The value is expressed as an integer amount of CPU units. (1 vCPU is equal to 1024 CPU units.)", + "total_memory_limit_mebibytes": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The total memory limit of container groups following this definition in MiB", Required: true, Validators: []validator.Int64{ /*START VALIDATORS*/ - int64validator.Between(128, 10240), + int64validator.Between(4, 1024000), }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ - int64planmodifier.RequiresReplace(), - }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ - // Property: TotalMemoryLimit + // Property: TotalVcpuLimit // CloudFormation resource type schema: // // { - // "description": "The maximum amount of memory (in MiB) to allocate for this container group.", - // "maximum": 1024000, - // "minimum": 4, - // "type": "integer" + // "description": "The total amount of virtual CPUs on the container group definition", + // "maximum": 10, + // "minimum": 0.125, + // "type": "number" // } - "total_memory_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The maximum amount of memory (in MiB) to allocate for this container group.", + "total_vcpu_limit": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "The total amount of virtual CPUs on the container group definition", Required: true, - Validators: []validator.Int64{ /*START VALIDATORS*/ - int64validator.Between(4, 1024000), + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(0.125000, 10.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: VersionDescription + // CloudFormation resource type schema: + // + // { + // "description": "The description of this version", + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + "version_description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of this version", + 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: VersionNumber + // CloudFormation resource type schema: + // + // { + // "description": "The version of this ContainerGroupDefinition", + // "minimum": 0, + // "type": "integer" + // } + "version_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The version of this ContainerGroupDefinition", + Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ - int64planmodifier.RequiresReplace(), + int64planmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ @@ -933,41 +1490,48 @@ func containerGroupDefinitionResource(ctx context.Context) (resource.Resource, e opts = opts.WithCloudFormationTypeName("AWS::GameLift::ContainerGroupDefinition").WithTerraformTypeName("awscc_gamelift_container_group_definition") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "command": "Command", - "condition": "Condition", - "container_definitions": "ContainerDefinitions", - "container_group_definition_arn": "ContainerGroupDefinitionArn", - "container_name": "ContainerName", - "container_port_ranges": "ContainerPortRanges", - "cpu": "Cpu", - "creation_time": "CreationTime", - "depends_on": "DependsOn", - "entry_point": "EntryPoint", - "environment": "Environment", - "essential": "Essential", - "from_port": "FromPort", - "hard_limit": "HardLimit", - "health_check": "HealthCheck", - "image_uri": "ImageUri", - "interval": "Interval", - "key": "Key", - "memory_limits": "MemoryLimits", - "name": "Name", - "operating_system": "OperatingSystem", - "port_configuration": "PortConfiguration", - "protocol": "Protocol", - "resolved_image_digest": "ResolvedImageDigest", - "retries": "Retries", - "scheduling_strategy": "SchedulingStrategy", - "soft_limit": "SoftLimit", - "start_period": "StartPeriod", - "tags": "Tags", - "timeout": "Timeout", - "to_port": "ToPort", - "total_cpu_limit": "TotalCpuLimit", - "total_memory_limit": "TotalMemoryLimit", - "value": "Value", - "working_directory": "WorkingDirectory", + "access_level": "AccessLevel", + "command": "Command", + "condition": "Condition", + "container_group_definition_arn": "ContainerGroupDefinitionArn", + "container_group_type": "ContainerGroupType", + "container_name": "ContainerName", + "container_path": "ContainerPath", + "container_port_ranges": "ContainerPortRanges", + "creation_time": "CreationTime", + "depends_on": "DependsOn", + "environment_override": "EnvironmentOverride", + "essential": "Essential", + "from_port": "FromPort", + "game_server_container_definition": "GameServerContainerDefinition", + "health_check": "HealthCheck", + "image_uri": "ImageUri", + "instance_path": "InstancePath", + "interval": "Interval", + "key": "Key", + "memory_hard_limit_mebibytes": "MemoryHardLimitMebibytes", + "mount_points": "MountPoints", + "name": "Name", + "operating_system": "OperatingSystem", + "port_configuration": "PortConfiguration", + "protocol": "Protocol", + "resolved_image_digest": "ResolvedImageDigest", + "retries": "Retries", + "server_sdk_version": "ServerSdkVersion", + "source_version_number": "SourceVersionNumber", + "start_period": "StartPeriod", + "status": "Status", + "status_reason": "StatusReason", + "support_container_definitions": "SupportContainerDefinitions", + "tags": "Tags", + "timeout": "Timeout", + "to_port": "ToPort", + "total_memory_limit_mebibytes": "TotalMemoryLimitMebibytes", + "total_vcpu_limit": "TotalVcpuLimit", + "value": "Value", + "vcpu": "Vcpu", + "version_description": "VersionDescription", + "version_number": "VersionNumber", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/gamelift/container_group_definition_singular_data_source_gen.go b/internal/aws/gamelift/container_group_definition_singular_data_source_gen.go index 6f6e70725..13589976e 100644 --- a/internal/aws/gamelift/container_group_definition_singular_data_source_gen.go +++ b/internal/aws/gamelift/container_group_definition_singular_data_source_gen.go @@ -23,43 +23,448 @@ func init() { // This Terraform data source corresponds to the CloudFormation AWS::GameLift::ContainerGroupDefinition resource. func containerGroupDefinitionDataSource(ctx context.Context) (datasource.DataSource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ - // Property: ContainerDefinitions + // Property: ContainerGroupDefinitionArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container group resource and uniquely identifies it across all AWS Regions.", + // "maxLength": 512, + // "minLength": 1, + // "pattern": "^arn:.*:containergroupdefinition\\/[a-zA-Z0-9\\-]+(:[0-9]+)?$", + // "type": "string" + // } + "container_group_definition_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container group resource and uniquely identifies it across all AWS Regions.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ContainerGroupType + // CloudFormation resource type schema: + // + // { + // "description": "The scope of the container group", + // "enum": [ + // "GAME_SERVER", + // "PER_INSTANCE" + // ], + // "type": "string" + // } + "container_group_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The scope of the container group", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreationTime + // CloudFormation resource type schema: + // + // { + // "description": "A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").", + // "type": "string" + // } + "creation_time": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: GameServerContainerDefinition + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Specifies the information required to run game servers with this container group", + // "properties": { + // "ContainerName": { + // "description": "A descriptive label for the container definition. Container definition names must be unique with a container group definition.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-]+$", + // "type": "string" + // }, + // "DependsOn": { + // "description": "A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers.", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "A dependency that impacts a container's startup and shutdown.", + // "properties": { + // "Condition": { + // "description": "The type of dependency.", + // "enum": [ + // "START", + // "COMPLETE", + // "SUCCESS", + // "HEALTHY" + // ], + // "type": "string" + // }, + // "ContainerName": { + // "description": "A descriptive label for the container definition. The container being defined depends on this container's condition.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-]+$", + // "type": "string" + // } + // }, + // "required": [ + // "ContainerName", + // "Condition" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // }, + // "EnvironmentOverride": { + // "description": "The environment variables to pass to a container.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "An environment variable to set inside a container, in the form of a key-value pair.", + // "properties": { + // "Name": { + // "description": "The environment variable name.", + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^.*$", + // "type": "string" + // }, + // "Value": { + // "description": "The environment variable value.", + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^.*$", + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 20, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // }, + // "ImageUri": { + // "description": "Specifies the image URI of this container.", + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-_\\.@\\/:]+$", + // "type": "string" + // }, + // "MountPoints": { + // "description": "A list of mount point configurations to be used in a container.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Defines the mount point configuration within a container.", + // "properties": { + // "AccessLevel": { + // "description": "The access permissions for the mounted path.", + // "enum": [ + // "READ_ONLY", + // "READ_AND_WRITE" + // ], + // "type": "string" + // }, + // "ContainerPath": { + // "description": "The path inside the container where the mount is accessible.", + // "maxLength": 1024, + // "minLength": 1, + // "pattern": "^(\\/+[^\\/]+\\/*)+$", + // "type": "string" + // }, + // "InstancePath": { + // "description": "The path on the host that will be mounted in the container.", + // "maxLength": 1024, + // "minLength": 1, + // "pattern": "^\\/[\\s\\S]*$", + // "type": "string" + // } + // }, + // "required": [ + // "InstancePath" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // }, + // "PortConfiguration": { + // "additionalProperties": false, + // "description": "Defines the ports on the container.", + // "properties": { + // "ContainerPortRanges": { + // "description": "Specifies one or more ranges of ports on a container.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A set of one or more port numbers that can be opened on the container.", + // "properties": { + // "FromPort": { + // "description": "A starting value for the range of allowed port numbers.", + // "maximum": 60000, + // "minimum": 1, + // "type": "integer" + // }, + // "Protocol": { + // "description": "Defines the protocol of these ports.", + // "enum": [ + // "TCP", + // "UDP" + // ], + // "type": "string" + // }, + // "ToPort": { + // "description": "An ending value for the range of allowed port numbers. Port numbers are end-inclusive. This value must be equal to or greater than FromPort.", + // "maximum": 60000, + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "FromPort", + // "Protocol", + // "ToPort" + // ], + // "type": "object" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "ContainerPortRanges" + // ], + // "type": "object" + // }, + // "ResolvedImageDigest": { + // "description": "The digest of the container image.", + // "pattern": "^sha256:[a-fA-F0-9]{64}$", + // "type": "string" + // }, + // "ServerSdkVersion": { + // "description": "The version of the server SDK used in this container group", + // "maxLength": 128, + // "pattern": "^\\d+\\.\\d+\\.\\d+$", + // "type": "string" + // } + // }, + // "required": [ + // "ContainerName", + // "ImageUri", + // "ServerSdkVersion" + // ], + // "type": "object" + // } + "game_server_container_definition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerName + "container_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A descriptive label for the container definition. Container definition names must be unique with a container group definition.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DependsOn + "depends_on": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Condition + "condition": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of dependency.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ContainerName + "container_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A descriptive label for the container definition. The container being defined depends on this container's condition.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnvironmentOverride + "environment_override": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The environment variable name.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The environment variable value.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The environment variables to pass to a container.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ImageUri + "image_uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the image URI of this container.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MountPoints + "mount_points": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccessLevel + "access_level": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The access permissions for the mounted path.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The path inside the container where the mount is accessible.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InstancePath + "instance_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The path on the host that will be mounted in the container.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of mount point configurations to be used in a container.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PortConfiguration + "port_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPortRanges + "container_port_ranges": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FromPort + "from_port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "A starting value for the range of allowed port numbers.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Protocol + "protocol": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Defines the protocol of these ports.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ToPort + "to_port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "An ending value for the range of allowed port numbers. Port numbers are end-inclusive. This value must be equal to or greater than FromPort.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Specifies one or more ranges of ports on a container.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Defines the ports on the container.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResolvedImageDigest + "resolved_image_digest": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The digest of the container image.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ServerSdkVersion + "server_sdk_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The version of the server SDK used in this container group", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the information required to run game servers with this container group", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "A descriptive label for the container group definition.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-]+$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A descriptive label for the container group definition.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OperatingSystem + // CloudFormation resource type schema: + // + // { + // "description": "The operating system of the container group", + // "enum": [ + // "AMAZON_LINUX_2023" + // ], + // "type": "string" + // } + "operating_system": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The operating system of the container group", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SourceVersionNumber + // CloudFormation resource type schema: + // + // { + // "description": "A specific ContainerGroupDefinition version to be updated", + // "minimum": 0, + // "type": "integer" + // } + "source_version_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "A specific ContainerGroupDefinition version to be updated", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "A string indicating ContainerGroupDefinition status.", + // "enum": [ + // "READY", + // "COPYING", + // "FAILED" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string indicating ContainerGroupDefinition status.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StatusReason + // CloudFormation resource type schema: + // + // { + // "description": "A string indicating the reason for ContainerGroupDefinition status.", + // "type": "string" + // } + "status_reason": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string indicating the reason for ContainerGroupDefinition status.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SupportContainerDefinitions // CloudFormation resource type schema: // // { - // "description": "A collection of container definitions that define the containers in this group.", + // "description": "A collection of support container definitions that define the containers in this group.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Details about a container that is used in a container fleet", + // "description": "Supports the function of the main container group", // "properties": { - // "Command": { - // "description": "The command that's passed to the container.", - // "insertionOrder": true, - // "items": { - // "maxLength": 255, - // "minLength": 1, - // "pattern": "^.*$", - // "type": "string" - // }, - // "maxItems": 20, - // "minItems": 1, - // "type": "array", - // "uniqueItems": false - // }, // "ContainerName": { - // "description": "A descriptive label for the container definition. Container definition names must be unique with a container group definition.", + // "description": "A descriptive label for the container definition.", // "maxLength": 128, // "minLength": 1, // "pattern": "^[a-zA-Z0-9-]+$", // "type": "string" // }, - // "Cpu": { - // "description": "The maximum number of CPU units reserved for this container. The value is expressed as an integer amount of CPU units. 1 vCPU is equal to 1024 CPU units", - // "maximum": 10240, - // "minimum": 1, - // "type": "integer" - // }, // "DependsOn": { // "description": "A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers.", // "insertionOrder": true, @@ -96,20 +501,7 @@ func containerGroupDefinitionDataSource(ctx context.Context) (datasource.DataSou // "type": "array", // "uniqueItems": true // }, - // "EntryPoint": { - // "description": "The entry point that's passed to the container so that it will run as an executable. If there are multiple arguments, each argument is a string in the array.", - // "insertionOrder": true, - // "items": { - // "maxLength": 1024, - // "minLength": 1, - // "type": "string" - // }, - // "maxItems": 20, - // "minItems": 1, - // "type": "array", - // "uniqueItems": false - // }, - // "Environment": { + // "EnvironmentOverride": { // "description": "The environment variables to pass to a container.", // "insertionOrder": false, // "items": { @@ -201,24 +593,51 @@ func containerGroupDefinitionDataSource(ctx context.Context) (datasource.DataSou // "pattern": "^[a-zA-Z0-9-_\\.@\\/:]+$", // "type": "string" // }, - // "MemoryLimits": { - // "additionalProperties": false, - // "description": "Specifies how much memory is available to the container. You must specify at least this parameter or the TotalMemoryLimit parameter of the ContainerGroupDefinition.", - // "properties": { - // "HardLimit": { - // "description": "The hard limit of memory to reserve for the container.", - // "maximum": 1024000, - // "minimum": 4, - // "type": "integer" + // "MemoryHardLimitMebibytes": { + // "description": "The total memory limit of container groups following this definition in MiB", + // "maximum": 1024000, + // "minimum": 4, + // "type": "integer" + // }, + // "MountPoints": { + // "description": "A list of mount point configurations to be used in a container.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Defines the mount point configuration within a container.", + // "properties": { + // "AccessLevel": { + // "description": "The access permissions for the mounted path.", + // "enum": [ + // "READ_ONLY", + // "READ_AND_WRITE" + // ], + // "type": "string" + // }, + // "ContainerPath": { + // "description": "The path inside the container where the mount is accessible.", + // "maxLength": 1024, + // "minLength": 1, + // "pattern": "^(\\/+[^\\/]+\\/*)+$", + // "type": "string" + // }, + // "InstancePath": { + // "description": "The path on the host that will be mounted in the container.", + // "maxLength": 1024, + // "minLength": 1, + // "pattern": "^\\/[\\s\\S]*$", + // "type": "string" + // } // }, - // "SoftLimit": { - // "description": "The amount of memory that is reserved for the container.", - // "maximum": 1024000, - // "minimum": 4, - // "type": "integer" - // } + // "required": [ + // "InstancePath" + // ], + // "type": "object" // }, - // "type": "object" + // "maxItems": 10, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true // }, // "PortConfiguration": { // "additionalProperties": false, @@ -275,12 +694,11 @@ func containerGroupDefinitionDataSource(ctx context.Context) (datasource.DataSou // "pattern": "^sha256:[a-fA-F0-9]{64}$", // "type": "string" // }, - // "WorkingDirectory": { - // "description": "The working directory to run commands inside the container in.", - // "maxLength": 255, - // "minLength": 1, - // "pattern": "^.*$", - // "type": "string" + // "Vcpu": { + // "description": "The number of virtual CPUs to give to the support group", + // "maximum": 10, + // "minimum": 0.125, + // "type": "number" // } // }, // "required": [ @@ -294,23 +712,12 @@ func containerGroupDefinitionDataSource(ctx context.Context) (datasource.DataSou // "type": "array", // "uniqueItems": true // } - "container_definitions": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + "support_container_definitions": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ - // Property: Command - "command": schema.ListAttribute{ /*START ATTRIBUTE*/ - ElementType: types.StringType, - Description: "The command that's passed to the container.", - Computed: true, - }, /*END ATTRIBUTE*/ // Property: ContainerName "container_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A descriptive label for the container definition. Container definition names must be unique with a container group definition.", - Computed: true, - }, /*END ATTRIBUTE*/ - // Property: Cpu - "cpu": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The maximum number of CPU units reserved for this container. The value is expressed as an integer amount of CPU units. 1 vCPU is equal to 1024 CPU units", + Description: "A descriptive label for the container definition.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DependsOn @@ -332,14 +739,8 @@ func containerGroupDefinitionDataSource(ctx context.Context) (datasource.DataSou Description: "A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers.", Computed: true, }, /*END ATTRIBUTE*/ - // Property: EntryPoint - "entry_point": schema.ListAttribute{ /*START ATTRIBUTE*/ - ElementType: types.StringType, - Description: "The entry point that's passed to the container so that it will run as an executable. If there are multiple arguments, each argument is a string in the array.", - Computed: true, - }, /*END ATTRIBUTE*/ - // Property: Environment - "environment": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + // Property: EnvironmentOverride + "environment_override": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Name @@ -400,21 +801,33 @@ func containerGroupDefinitionDataSource(ctx context.Context) (datasource.DataSou Description: "Specifies the image URI of this container.", Computed: true, }, /*END ATTRIBUTE*/ - // Property: MemoryLimits - "memory_limits": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ - Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ - // Property: HardLimit - "hard_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The hard limit of memory to reserve for the container.", - Computed: true, - }, /*END ATTRIBUTE*/ - // Property: SoftLimit - "soft_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount of memory that is reserved for the container.", - Computed: true, - }, /*END ATTRIBUTE*/ - }, /*END SCHEMA*/ - Description: "Specifies how much memory is available to the container. You must specify at least this parameter or the TotalMemoryLimit parameter of the ContainerGroupDefinition.", + // Property: MemoryHardLimitMebibytes + "memory_hard_limit_mebibytes": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The total memory limit of container groups following this definition in MiB", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MountPoints + "mount_points": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccessLevel + "access_level": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The access permissions for the mounted path.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The path inside the container where the mount is accessible.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InstancePath + "instance_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The path on the host that will be mounted in the container.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of mount point configurations to be used in a container.", Computed: true, }, /*END ATTRIBUTE*/ // Property: PortConfiguration @@ -453,82 +866,14 @@ func containerGroupDefinitionDataSource(ctx context.Context) (datasource.DataSou Description: "The digest of the container image.", Computed: true, }, /*END ATTRIBUTE*/ - // Property: WorkingDirectory - "working_directory": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The working directory to run commands inside the container in.", + // Property: Vcpu + "vcpu": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of virtual CPUs to give to the support group", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A collection of container definitions that define the containers in this group.", - Computed: true, - }, /*END ATTRIBUTE*/ - // Property: ContainerGroupDefinitionArn - // CloudFormation resource type schema: - // - // { - // "description": "The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container group resource and uniquely identifies it across all AWS Regions.", - // "maxLength": 512, - // "minLength": 1, - // "pattern": "^arn:.*:containergroupdefinition/containergroupdefinition-[a-zA-Z0-9-]+$|^arn:.*:containergroupdefinition/[a-zA-Z0-9-\\:]+$", - // "type": "string" - // } - "container_group_definition_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container group resource and uniquely identifies it across all AWS Regions.", - Computed: true, - }, /*END ATTRIBUTE*/ - // Property: CreationTime - // CloudFormation resource type schema: - // - // { - // "description": "A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").", - // "type": "string" - // } - "creation_time": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").", - Computed: true, - }, /*END ATTRIBUTE*/ - // Property: Name - // CloudFormation resource type schema: - // - // { - // "description": "A descriptive label for the container group definition.", - // "maxLength": 128, - // "minLength": 1, - // "pattern": "^[a-zA-Z0-9-]+$", - // "type": "string" - // } - "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A descriptive label for the container group definition.", - Computed: true, - }, /*END ATTRIBUTE*/ - // Property: OperatingSystem - // CloudFormation resource type schema: - // - // { - // "description": "The operating system of the container group", - // "enum": [ - // "AMAZON_LINUX_2023" - // ], - // "type": "string" - // } - "operating_system": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The operating system of the container group", - Computed: true, - }, /*END ATTRIBUTE*/ - // Property: SchedulingStrategy - // CloudFormation resource type schema: - // - // { - // "description": "Specifies whether the container group includes replica or daemon containers.", - // "enum": [ - // "REPLICA", - // "DAEMON" - // ], - // "type": "string" - // } - "scheduling_strategy": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the container group includes replica or daemon containers.", + Description: "A collection of support container definitions that define the containers in this group.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags @@ -585,30 +930,55 @@ func containerGroupDefinitionDataSource(ctx context.Context) (datasource.DataSou Description: "An array of key-value pairs to apply to this resource.", Computed: true, }, /*END ATTRIBUTE*/ - // Property: TotalCpuLimit + // Property: TotalMemoryLimitMebibytes // CloudFormation resource type schema: // // { - // "description": "The maximum number of CPU units reserved for this container group. The value is expressed as an integer amount of CPU units. (1 vCPU is equal to 1024 CPU units.)", - // "maximum": 10240, - // "minimum": 128, + // "description": "The total memory limit of container groups following this definition in MiB", + // "maximum": 1024000, + // "minimum": 4, // "type": "integer" // } - "total_cpu_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The maximum number of CPU units reserved for this container group. The value is expressed as an integer amount of CPU units. (1 vCPU is equal to 1024 CPU units.)", + "total_memory_limit_mebibytes": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The total memory limit of container groups following this definition in MiB", Computed: true, }, /*END ATTRIBUTE*/ - // Property: TotalMemoryLimit + // Property: TotalVcpuLimit // CloudFormation resource type schema: // // { - // "description": "The maximum amount of memory (in MiB) to allocate for this container group.", - // "maximum": 1024000, - // "minimum": 4, + // "description": "The total amount of virtual CPUs on the container group definition", + // "maximum": 10, + // "minimum": 0.125, + // "type": "number" + // } + "total_vcpu_limit": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "The total amount of virtual CPUs on the container group definition", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VersionDescription + // CloudFormation resource type schema: + // + // { + // "description": "The description of this version", + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + "version_description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of this version", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VersionNumber + // CloudFormation resource type schema: + // + // { + // "description": "The version of this ContainerGroupDefinition", + // "minimum": 0, // "type": "integer" // } - "total_memory_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The maximum amount of memory (in MiB) to allocate for this container group.", + "version_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The version of this ContainerGroupDefinition", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ @@ -628,41 +998,48 @@ func containerGroupDefinitionDataSource(ctx context.Context) (datasource.DataSou opts = opts.WithCloudFormationTypeName("AWS::GameLift::ContainerGroupDefinition").WithTerraformTypeName("awscc_gamelift_container_group_definition") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "command": "Command", - "condition": "Condition", - "container_definitions": "ContainerDefinitions", - "container_group_definition_arn": "ContainerGroupDefinitionArn", - "container_name": "ContainerName", - "container_port_ranges": "ContainerPortRanges", - "cpu": "Cpu", - "creation_time": "CreationTime", - "depends_on": "DependsOn", - "entry_point": "EntryPoint", - "environment": "Environment", - "essential": "Essential", - "from_port": "FromPort", - "hard_limit": "HardLimit", - "health_check": "HealthCheck", - "image_uri": "ImageUri", - "interval": "Interval", - "key": "Key", - "memory_limits": "MemoryLimits", - "name": "Name", - "operating_system": "OperatingSystem", - "port_configuration": "PortConfiguration", - "protocol": "Protocol", - "resolved_image_digest": "ResolvedImageDigest", - "retries": "Retries", - "scheduling_strategy": "SchedulingStrategy", - "soft_limit": "SoftLimit", - "start_period": "StartPeriod", - "tags": "Tags", - "timeout": "Timeout", - "to_port": "ToPort", - "total_cpu_limit": "TotalCpuLimit", - "total_memory_limit": "TotalMemoryLimit", - "value": "Value", - "working_directory": "WorkingDirectory", + "access_level": "AccessLevel", + "command": "Command", + "condition": "Condition", + "container_group_definition_arn": "ContainerGroupDefinitionArn", + "container_group_type": "ContainerGroupType", + "container_name": "ContainerName", + "container_path": "ContainerPath", + "container_port_ranges": "ContainerPortRanges", + "creation_time": "CreationTime", + "depends_on": "DependsOn", + "environment_override": "EnvironmentOverride", + "essential": "Essential", + "from_port": "FromPort", + "game_server_container_definition": "GameServerContainerDefinition", + "health_check": "HealthCheck", + "image_uri": "ImageUri", + "instance_path": "InstancePath", + "interval": "Interval", + "key": "Key", + "memory_hard_limit_mebibytes": "MemoryHardLimitMebibytes", + "mount_points": "MountPoints", + "name": "Name", + "operating_system": "OperatingSystem", + "port_configuration": "PortConfiguration", + "protocol": "Protocol", + "resolved_image_digest": "ResolvedImageDigest", + "retries": "Retries", + "server_sdk_version": "ServerSdkVersion", + "source_version_number": "SourceVersionNumber", + "start_period": "StartPeriod", + "status": "Status", + "status_reason": "StatusReason", + "support_container_definitions": "SupportContainerDefinitions", + "tags": "Tags", + "timeout": "Timeout", + "to_port": "ToPort", + "total_memory_limit_mebibytes": "TotalMemoryLimitMebibytes", + "total_vcpu_limit": "TotalVcpuLimit", + "value": "Value", + "vcpu": "Vcpu", + "version_description": "VersionDescription", + "version_number": "VersionNumber", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/imagebuilder/image_resource_gen.go b/internal/aws/imagebuilder/image_resource_gen.go index fee7f547c..a3c2ff0f4 100644 --- a/internal/aws/imagebuilder/image_resource_gen.go +++ b/internal/aws/imagebuilder/image_resource_gen.go @@ -160,7 +160,7 @@ func imageResource(ctx context.Context) (resource.Resource, error) { // "type": "array" // }, // "RepositoryName": { - // "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don?t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + // "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don’t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", // "type": "string" // } // }, @@ -190,7 +190,7 @@ func imageResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: RepositoryName "repository_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don?t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + Description: "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don’t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/imagebuilder/image_singular_data_source_gen.go b/internal/aws/imagebuilder/image_singular_data_source_gen.go index e96a530ed..24a854acd 100644 --- a/internal/aws/imagebuilder/image_singular_data_source_gen.go +++ b/internal/aws/imagebuilder/image_singular_data_source_gen.go @@ -120,7 +120,7 @@ func imageDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "array" // }, // "RepositoryName": { - // "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don?t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + // "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don’t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", // "type": "string" // } // }, @@ -146,7 +146,7 @@ func imageDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: RepositoryName "repository_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don?t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + Description: "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don’t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ diff --git a/internal/aws/logs/metric_filter_resource_gen.go b/internal/aws/logs/metric_filter_resource_gen.go index 4d24714dd..dcad31660 100644 --- a/internal/aws/logs/metric_filter_resource_gen.go +++ b/internal/aws/logs/metric_filter_resource_gen.go @@ -37,11 +37,11 @@ func metricFilterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "", + // "description": "This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html).\n If this value is ``true``, the metric filter is applied on the transformed version of the log events instead of the original ingested log events.", // "type": "boolean" // } "apply_on_transformed_logs": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html).\n If this value is ``true``, the metric filter is applied on the transformed version of the log events instead of the original ingested log events.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/logs/metric_filter_singular_data_source_gen.go b/internal/aws/logs/metric_filter_singular_data_source_gen.go index c9e2fa5bc..a49aa1635 100644 --- a/internal/aws/logs/metric_filter_singular_data_source_gen.go +++ b/internal/aws/logs/metric_filter_singular_data_source_gen.go @@ -26,11 +26,11 @@ func metricFilterDataSource(ctx context.Context) (datasource.DataSource, error) // CloudFormation resource type schema: // // { - // "description": "", + // "description": "This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html).\n If this value is ``true``, the metric filter is applied on the transformed version of the log events instead of the original ingested log events.", // "type": "boolean" // } "apply_on_transformed_logs": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html).\n If this value is ``true``, the metric filter is applied on the transformed version of the log events instead of the original ingested log events.", Computed: true, }, /*END ATTRIBUTE*/ // Property: FilterName diff --git a/internal/aws/logs/subscription_filter_resource_gen.go b/internal/aws/logs/subscription_filter_resource_gen.go index 2d4e11dce..29ead3b1d 100644 --- a/internal/aws/logs/subscription_filter_resource_gen.go +++ b/internal/aws/logs/subscription_filter_resource_gen.go @@ -31,11 +31,11 @@ func subscriptionFilterResource(ctx context.Context) (resource.Resource, error) // CloudFormation resource type schema: // // { - // "description": "", + // "description": "This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html).\n If this value is ``true``, the subscription filter is applied on the transformed version of the log events instead of the original ingested log events.", // "type": "boolean" // } "apply_on_transformed_logs": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html).\n If this value is ``true``, the subscription filter is applied on the transformed version of the log events instead of the original ingested log events.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/logs/subscription_filter_singular_data_source_gen.go b/internal/aws/logs/subscription_filter_singular_data_source_gen.go index 5f6092b54..6d6dae1d2 100644 --- a/internal/aws/logs/subscription_filter_singular_data_source_gen.go +++ b/internal/aws/logs/subscription_filter_singular_data_source_gen.go @@ -26,11 +26,11 @@ func subscriptionFilterDataSource(ctx context.Context) (datasource.DataSource, e // CloudFormation resource type schema: // // { - // "description": "", + // "description": "This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html).\n If this value is ``true``, the subscription filter is applied on the transformed version of the log events instead of the original ingested log events.", // "type": "boolean" // } "apply_on_transformed_logs": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html).\n If this value is ``true``, the subscription filter is applied on the transformed version of the log events instead of the original ingested log events.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DestinationArn diff --git a/internal/aws/mediaconnect/bridge_resource_gen.go b/internal/aws/mediaconnect/bridge_resource_gen.go index 4ae7b158c..b0b8a0c33 100644 --- a/internal/aws/mediaconnect/bridge_resource_gen.go +++ b/internal/aws/mediaconnect/bridge_resource_gen.go @@ -492,6 +492,17 @@ func bridgeResource(ctx context.Context) (resource.Resource, error) { // "description": "The network source multicast IP.", // "type": "string" // }, + // "MulticastSourceSettings": { + // "additionalProperties": false, + // "description": "The settings related to the multicast source.", + // "properties": { + // "MulticastSourceIp": { + // "description": "The IP address of the source for source-specific multicast (SSM).", + // "type": "string" + // } + // }, + // "type": "object" + // }, // "Name": { // "description": "The name of the network source.", // "type": "string" @@ -603,6 +614,26 @@ func bridgeResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: MulticastSourceSettings + "multicast_source_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MulticastSourceIp + "multicast_source_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The IP address of the source for source-specific multicast (SSM).", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The settings related to the multicast source.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Name "name": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The name of the network source.", @@ -706,6 +737,8 @@ func bridgeResource(ctx context.Context) (resource.Resource, error) { "max_bitrate": "MaxBitrate", "max_outputs": "MaxOutputs", "multicast_ip": "MulticastIp", + "multicast_source_ip": "MulticastSourceIp", + "multicast_source_settings": "MulticastSourceSettings", "name": "Name", "network_name": "NetworkName", "network_output": "NetworkOutput", diff --git a/internal/aws/mediaconnect/bridge_singular_data_source_gen.go b/internal/aws/mediaconnect/bridge_singular_data_source_gen.go index 0acf9cbe4..1e0c83fd9 100644 --- a/internal/aws/mediaconnect/bridge_singular_data_source_gen.go +++ b/internal/aws/mediaconnect/bridge_singular_data_source_gen.go @@ -358,6 +358,17 @@ func bridgeDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "The network source multicast IP.", // "type": "string" // }, + // "MulticastSourceSettings": { + // "additionalProperties": false, + // "description": "The settings related to the multicast source.", + // "properties": { + // "MulticastSourceIp": { + // "description": "The IP address of the source for source-specific multicast (SSM).", + // "type": "string" + // } + // }, + // "type": "object" + // }, // "Name": { // "description": "The name of the network source.", // "type": "string" @@ -436,6 +447,18 @@ func bridgeDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The network source multicast IP.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: MulticastSourceSettings + "multicast_source_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MulticastSourceIp + "multicast_source_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The IP address of the source for source-specific multicast (SSM).", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The settings related to the multicast source.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Name "name": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The name of the network source.", @@ -494,6 +517,8 @@ func bridgeDataSource(ctx context.Context) (datasource.DataSource, error) { "max_bitrate": "MaxBitrate", "max_outputs": "MaxOutputs", "multicast_ip": "MulticastIp", + "multicast_source_ip": "MulticastSourceIp", + "multicast_source_settings": "MulticastSourceSettings", "name": "Name", "network_name": "NetworkName", "network_output": "NetworkOutput", diff --git a/internal/aws/mediaconnect/bridge_source_resource_gen.go b/internal/aws/mediaconnect/bridge_source_resource_gen.go index a359f8394..e4dbce55a 100644 --- a/internal/aws/mediaconnect/bridge_source_resource_gen.go +++ b/internal/aws/mediaconnect/bridge_source_resource_gen.go @@ -138,6 +138,17 @@ func bridgeSourceResource(ctx context.Context) (resource.Resource, error) { // "description": "The network source multicast IP.", // "type": "string" // }, + // "MulticastSourceSettings": { + // "additionalProperties": false, + // "description": "The settings related to the multicast source.", + // "properties": { + // "MulticastSourceIp": { + // "description": "The IP address of the source for source-specific multicast (SSM).", + // "type": "string" + // } + // }, + // "type": "object" + // }, // "NetworkName": { // "description": "The network source's gateway network name.", // "type": "string" @@ -178,6 +189,26 @@ func bridgeSourceResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: MulticastSourceSettings + "multicast_source_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MulticastSourceIp + "multicast_source_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The IP address of the source for source-specific multicast (SSM).", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The settings related to the multicast source.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: NetworkName "network_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The network source's gateway network name.", @@ -254,6 +285,8 @@ func bridgeSourceResource(ctx context.Context) (resource.Resource, error) { "flow_source": "FlowSource", "flow_vpc_interface_attachment": "FlowVpcInterfaceAttachment", "multicast_ip": "MulticastIp", + "multicast_source_ip": "MulticastSourceIp", + "multicast_source_settings": "MulticastSourceSettings", "name": "Name", "network_name": "NetworkName", "network_source": "NetworkSource", diff --git a/internal/aws/mediaconnect/bridge_source_singular_data_source_gen.go b/internal/aws/mediaconnect/bridge_source_singular_data_source_gen.go index 404c2cf24..8529472e8 100644 --- a/internal/aws/mediaconnect/bridge_source_singular_data_source_gen.go +++ b/internal/aws/mediaconnect/bridge_source_singular_data_source_gen.go @@ -106,6 +106,17 @@ func bridgeSourceDataSource(ctx context.Context) (datasource.DataSource, error) // "description": "The network source multicast IP.", // "type": "string" // }, + // "MulticastSourceSettings": { + // "additionalProperties": false, + // "description": "The settings related to the multicast source.", + // "properties": { + // "MulticastSourceIp": { + // "description": "The IP address of the source for source-specific multicast (SSM).", + // "type": "string" + // } + // }, + // "type": "object" + // }, // "NetworkName": { // "description": "The network source's gateway network name.", // "type": "string" @@ -139,6 +150,18 @@ func bridgeSourceDataSource(ctx context.Context) (datasource.DataSource, error) Description: "The network source multicast IP.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: MulticastSourceSettings + "multicast_source_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MulticastSourceIp + "multicast_source_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The IP address of the source for source-specific multicast (SSM).", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The settings related to the multicast source.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: NetworkName "network_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The network source's gateway network name.", @@ -180,6 +203,8 @@ func bridgeSourceDataSource(ctx context.Context) (datasource.DataSource, error) "flow_source": "FlowSource", "flow_vpc_interface_attachment": "FlowVpcInterfaceAttachment", "multicast_ip": "MulticastIp", + "multicast_source_ip": "MulticastSourceIp", + "multicast_source_settings": "MulticastSourceSettings", "name": "Name", "network_name": "NetworkName", "network_source": "NetworkSource", diff --git a/internal/aws/pcs/cluster_resource_gen.go b/internal/aws/pcs/cluster_resource_gen.go index 715767aa2..5baf208ee 100644 --- a/internal/aws/pcs/cluster_resource_gen.go +++ b/internal/aws/pcs/cluster_resource_gen.go @@ -580,7 +580,7 @@ func clusterResource(ctx context.Context) (resource.Resource, error) { "version": "Version", }) - opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + opts = opts.WithCreateTimeoutInMinutes(60).WithDeleteTimeoutInMinutes(60) opts = opts.WithUpdateTimeoutInMinutes(60) diff --git a/internal/aws/pcs/queue_resource_gen.go b/internal/aws/pcs/queue_resource_gen.go index 6046a35d9..fbf04fd95 100644 --- a/internal/aws/pcs/queue_resource_gen.go +++ b/internal/aws/pcs/queue_resource_gen.go @@ -254,7 +254,7 @@ func queueResource(ctx context.Context) (resource.Resource, error) { "tags": "Tags", }) - opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + opts = opts.WithCreateTimeoutInMinutes(60).WithDeleteTimeoutInMinutes(60) opts = opts.WithUpdateTimeoutInMinutes(60) diff --git a/internal/aws/pipes/pipe_resource_gen.go b/internal/aws/pipes/pipe_resource_gen.go index db6671efd..536cbf9b7 100644 --- a/internal/aws/pipes/pipe_resource_gen.go +++ b/internal/aws/pipes/pipe_resource_gen.go @@ -146,7 +146,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // { // "maxLength": 1600, // "minLength": 0, - // "pattern": "^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", + // "pattern": "^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", // "type": "string" // } "enrichment": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -154,7 +154,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(0, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -314,7 +314,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // "LogGroupArn": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:logs:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):log-group:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:logs:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):log-group:.+)$", // "type": "string" // } // }, @@ -326,7 +326,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // "DeliveryStreamArn": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:firehose:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):deliverystream/.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:firehose:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):deliverystream/.+)$", // "type": "string" // } // }, @@ -388,7 +388,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:logs:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):log-group:.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:logs:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):log-group:.+)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -410,7 +410,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:firehose:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):deliverystream/.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:firehose:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):deliverystream/.+)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -555,14 +555,14 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^smk://(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", + // "pattern": "^smk://(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", // "type": "string" // } "source": schema.StringAttribute{ /*START ATTRIBUTE*/ Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^smk://(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^smk://(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -588,7 +588,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // } // }, @@ -626,7 +626,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // "Arn": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", + // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", // "type": "string" // } // }, @@ -707,7 +707,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // "Arn": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", + // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", // "type": "string" // } // }, @@ -777,14 +777,14 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // }, // "SaslScram512Auth": { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // } // }, @@ -828,7 +828,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // } // }, @@ -889,28 +889,28 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // }, // "ClientCertificateTlsAuth": { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // }, // "SaslScram256Auth": { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // }, // "SaslScram512Auth": { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // } // }, @@ -925,7 +925,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // }, // "StartingPosition": { @@ -1022,7 +1022,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -1093,7 +1093,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -1245,7 +1245,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -1386,7 +1386,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -1399,7 +1399,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -1483,7 +1483,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -1598,7 +1598,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -1611,7 +1611,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -1624,7 +1624,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -1637,7 +1637,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -1668,7 +1668,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -1838,14 +1838,14 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", + // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", // "type": "string" // } "target": schema.StringAttribute{ /*START ATTRIBUTE*/ Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$"), ""), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ // Property: TargetParameters @@ -2203,7 +2203,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // "ExecutionRoleArn": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", // "type": "string" // }, // "InferenceAcceleratorOverrides": { @@ -2227,7 +2227,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // "TaskRoleArn": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", // "type": "string" // } // }, @@ -2324,7 +2324,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // "TaskDefinitionArn": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", // "type": "string" // } // }, @@ -2351,7 +2351,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // "items": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", // "type": "string" // }, // "maxItems": 10, @@ -2461,7 +2461,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", // "type": "string" // }, // "Sqls": { @@ -3332,7 +3332,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -3380,7 +3380,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -3559,7 +3559,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$"), ""), fwvalidators.NotNullString(), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -3608,7 +3608,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { listvalidator.SizeBetween(0, 10), listvalidator.ValueStringsAre( stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$"), ""), ), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -3776,7 +3776,7 @@ func pipeResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1600), - stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/pipes/pipe_singular_data_source_gen.go b/internal/aws/pipes/pipe_singular_data_source_gen.go index 7519b54c2..dfdda69b9 100644 --- a/internal/aws/pipes/pipe_singular_data_source_gen.go +++ b/internal/aws/pipes/pipe_singular_data_source_gen.go @@ -104,7 +104,7 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // { // "maxLength": 1600, // "minLength": 0, - // "pattern": "^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", + // "pattern": "^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", // "type": "string" // } "enrichment": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -227,7 +227,7 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // "LogGroupArn": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:logs:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):log-group:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:logs:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):log-group:.+)$", // "type": "string" // } // }, @@ -239,7 +239,7 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // "DeliveryStreamArn": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:firehose:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):deliverystream/.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:firehose:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):deliverystream/.+)$", // "type": "string" // } // }, @@ -376,7 +376,7 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^smk://(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", + // "pattern": "^smk://(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", // "type": "string" // } "source": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -402,7 +402,7 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // } // }, @@ -440,7 +440,7 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // "Arn": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", + // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", // "type": "string" // } // }, @@ -521,7 +521,7 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // "Arn": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", + // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", // "type": "string" // } // }, @@ -591,14 +591,14 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // }, // "SaslScram512Auth": { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // } // }, @@ -642,7 +642,7 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // } // }, @@ -703,28 +703,28 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // }, // "ClientCertificateTlsAuth": { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // }, // "SaslScram256Auth": { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // }, // "SaslScram512Auth": { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // } // }, @@ -739,7 +739,7 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", // "type": "string" // }, // "StartingPosition": { @@ -1161,7 +1161,7 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", + // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", // "type": "string" // } "target": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -1522,7 +1522,7 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // "ExecutionRoleArn": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", // "type": "string" // }, // "InferenceAcceleratorOverrides": { @@ -1546,7 +1546,7 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // "TaskRoleArn": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", // "type": "string" // } // }, @@ -1643,7 +1643,7 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // "TaskDefinitionArn": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", // "type": "string" // } // }, @@ -1670,7 +1670,7 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // "items": { // "maxLength": 1600, // "minLength": 1, - // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + // "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", // "type": "string" // }, // "maxItems": 10, @@ -1780,7 +1780,7 @@ func pipeDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "Optional SecretManager ARN which stores the database credentials", // "maxLength": 1600, // "minLength": 1, - // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + // "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", // "type": "string" // }, // "Sqls": { diff --git a/internal/aws/qbusiness/permission_resource_gen.go b/internal/aws/qbusiness/permission_resource_gen.go index 6a6d887a8..c063560b3 100644 --- a/internal/aws/qbusiness/permission_resource_gen.go +++ b/internal/aws/qbusiness/permission_resource_gen.go @@ -80,14 +80,14 @@ func permissionResource(ctx context.Context) (resource.Resource, error) { // { // "maxLength": 1284, // "minLength": 1, - // "pattern": "^arn:aws:iam::[0-9]{12}:role/.+", + // "pattern": "^arn:aws:iam::[0-9]{12}:role/[a-zA-Z0-9_/+=,.@-]+$", // "type": "string" // } "principal": schema.StringAttribute{ /*START ATTRIBUTE*/ Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 1284), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws:iam::[0-9]{12}:role/.+"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws:iam::[0-9]{12}:role/[a-zA-Z0-9_/+=,.@-]+$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), diff --git a/internal/aws/qbusiness/permission_singular_data_source_gen.go b/internal/aws/qbusiness/permission_singular_data_source_gen.go index e3657104d..a7762903c 100644 --- a/internal/aws/qbusiness/permission_singular_data_source_gen.go +++ b/internal/aws/qbusiness/permission_singular_data_source_gen.go @@ -57,7 +57,7 @@ func permissionDataSource(ctx context.Context) (datasource.DataSource, error) { // { // "maxLength": 1284, // "minLength": 1, - // "pattern": "^arn:aws:iam::[0-9]{12}:role/.+", + // "pattern": "^arn:aws:iam::[0-9]{12}:role/[a-zA-Z0-9_/+=,.@-]+$", // "type": "string" // } "principal": schema.StringAttribute{ /*START ATTRIBUTE*/ diff --git a/internal/aws/quicksight/custom_permissions_plural_data_source_gen.go b/internal/aws/quicksight/custom_permissions_plural_data_source_gen.go new file mode 100644 index 000000000..05c67bede --- /dev/null +++ b/internal/aws/quicksight/custom_permissions_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 quicksight + +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_quicksight_custom_permissions_plural", customPermissionsPluralDataSource) +} + +// customPermissionsPluralDataSource returns the Terraform awscc_quicksight_custom_permissions_plural data source. +// This Terraform data source corresponds to the CloudFormation AWS::QuickSight::CustomPermissions resource. +func customPermissionsPluralDataSource(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::QuickSight::CustomPermissions", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::QuickSight::CustomPermissions").WithTerraformTypeName("awscc_quicksight_custom_permissions_plural") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/quicksight/custom_permissions_plural_data_source_gen_test.go b/internal/aws/quicksight/custom_permissions_plural_data_source_gen_test.go new file mode 100644 index 000000000..afe09fdfb --- /dev/null +++ b/internal/aws/quicksight/custom_permissions_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 quicksight_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSQuickSightCustomPermissionsPluralDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::QuickSight::CustomPermissions", "awscc_quicksight_custom_permissions_plural", "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/quicksight/custom_permissions_resource_gen.go b/internal/aws/quicksight/custom_permissions_resource_gen.go new file mode 100644 index 000000000..561952e82 --- /dev/null +++ b/internal/aws/quicksight/custom_permissions_resource_gen.go @@ -0,0 +1,555 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package quicksight + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_quicksight_custom_permissions", customPermissionsResource) +} + +// customPermissionsResource returns the Terraform awscc_quicksight_custom_permissions resource. +// This Terraform resource corresponds to the CloudFormation AWS::QuickSight::CustomPermissions resource. +func customPermissionsResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AwsAccountId + // CloudFormation resource type schema: + // + // { + // "maxLength": 12, + // "minLength": 12, + // "pattern": "^[0-9]{12}$", + // "type": "string" + // } + "aws_account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(12, 12), + stringvalidator.RegexMatches(regexp.MustCompile("^[0-9]{12}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Capabilities + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "AddOrRunAnomalyDetectionForAnalyses": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "CreateAndUpdateDashboardEmailReports": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "CreateAndUpdateDataSources": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "CreateAndUpdateDatasets": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "CreateAndUpdateThemes": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "CreateAndUpdateThresholdAlerts": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "CreateSPICEDataset": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "CreateSharedFolders": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "ExportToCsv": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "ExportToExcel": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "RenameSharedFolders": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "ShareAnalyses": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "ShareDashboards": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "ShareDataSources": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "ShareDatasets": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "SubscribeDashboardEmailReports": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "ViewAccountSPICECapacity": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + "capabilities": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AddOrRunAnomalyDetectionForAnalyses + "add_or_run_anomaly_detection_for_analyses": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreateAndUpdateDashboardEmailReports + "create_and_update_dashboard_email_reports": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreateAndUpdateDataSources + "create_and_update_data_sources": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreateAndUpdateDatasets + "create_and_update_datasets": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreateAndUpdateThemes + "create_and_update_themes": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreateAndUpdateThresholdAlerts + "create_and_update_threshold_alerts": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreateSPICEDataset + "create_spice_dataset": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreateSharedFolders + "create_shared_folders": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ExportToCsv + "export_to_csv": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ExportToExcel + "export_to_excel": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RenameSharedFolders + "rename_shared_folders": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ShareAnalyses + "share_analyses": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ShareDashboards + "share_dashboards": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ShareDataSources + "share_data_sources": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ShareDatasets + "share_datasets": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SubscribeDashboardEmailReports + "subscribe_dashboard_email_reports": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ViewAccountSPICECapacity + "view_account_spice_capacity": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CustomPermissionsName + // CloudFormation resource type schema: + // + // { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9+=,.@_-]+$", + // "type": "string" + // } + "custom_permissions_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: 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.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "items": { + // "additionalProperties": false, + // "description": "\u003cp\u003eThe key or keys of the key-value pairs for the resource tag or tags assigned to the\n resource.\u003c/p\u003e", + // "properties": { + // "Key": { + // "description": "\u003cp\u003eTag key.\u003c/p\u003e", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "\u003cp\u003eTag value.\u003c/p\u003e", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 200, + // "minItems": 1, + // "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*/ + Description: "

Tag key.

", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "

Tag value.

", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 200), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of the AWS::QuickSight::CustomPermissions Resource Type.", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::QuickSight::CustomPermissions").WithTerraformTypeName("awscc_quicksight_custom_permissions") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "add_or_run_anomaly_detection_for_analyses": "AddOrRunAnomalyDetectionForAnalyses", + "arn": "Arn", + "aws_account_id": "AwsAccountId", + "capabilities": "Capabilities", + "create_and_update_dashboard_email_reports": "CreateAndUpdateDashboardEmailReports", + "create_and_update_data_sources": "CreateAndUpdateDataSources", + "create_and_update_datasets": "CreateAndUpdateDatasets", + "create_and_update_themes": "CreateAndUpdateThemes", + "create_and_update_threshold_alerts": "CreateAndUpdateThresholdAlerts", + "create_shared_folders": "CreateSharedFolders", + "create_spice_dataset": "CreateSPICEDataset", + "custom_permissions_name": "CustomPermissionsName", + "export_to_csv": "ExportToCsv", + "export_to_excel": "ExportToExcel", + "key": "Key", + "rename_shared_folders": "RenameSharedFolders", + "share_analyses": "ShareAnalyses", + "share_dashboards": "ShareDashboards", + "share_data_sources": "ShareDataSources", + "share_datasets": "ShareDatasets", + "subscribe_dashboard_email_reports": "SubscribeDashboardEmailReports", + "tags": "Tags", + "value": "Value", + "view_account_spice_capacity": "ViewAccountSPICECapacity", + }) + + 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/quicksight/custom_permissions_resource_gen_test.go b/internal/aws/quicksight/custom_permissions_resource_gen_test.go new file mode 100644 index 000000000..013cb8579 --- /dev/null +++ b/internal/aws/quicksight/custom_permissions_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 quicksight_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSQuickSightCustomPermissions_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::QuickSight::CustomPermissions", "awscc_quicksight_custom_permissions", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/quicksight/custom_permissions_singular_data_source_gen.go b/internal/aws/quicksight/custom_permissions_singular_data_source_gen.go new file mode 100644 index 000000000..7a5fd1e16 --- /dev/null +++ b/internal/aws/quicksight/custom_permissions_singular_data_source_gen.go @@ -0,0 +1,340 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package quicksight + +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_quicksight_custom_permissions", customPermissionsDataSource) +} + +// customPermissionsDataSource returns the Terraform awscc_quicksight_custom_permissions data source. +// This Terraform data source corresponds to the CloudFormation AWS::QuickSight::CustomPermissions resource. +func customPermissionsDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AwsAccountId + // CloudFormation resource type schema: + // + // { + // "maxLength": 12, + // "minLength": 12, + // "pattern": "^[0-9]{12}$", + // "type": "string" + // } + "aws_account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Capabilities + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "AddOrRunAnomalyDetectionForAnalyses": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "CreateAndUpdateDashboardEmailReports": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "CreateAndUpdateDataSources": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "CreateAndUpdateDatasets": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "CreateAndUpdateThemes": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "CreateAndUpdateThresholdAlerts": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "CreateSPICEDataset": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "CreateSharedFolders": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "ExportToCsv": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "ExportToExcel": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "RenameSharedFolders": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "ShareAnalyses": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "ShareDashboards": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "ShareDataSources": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "ShareDatasets": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "SubscribeDashboardEmailReports": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // }, + // "ViewAccountSPICECapacity": { + // "enum": [ + // "DENY" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + "capabilities": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AddOrRunAnomalyDetectionForAnalyses + "add_or_run_anomaly_detection_for_analyses": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreateAndUpdateDashboardEmailReports + "create_and_update_dashboard_email_reports": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreateAndUpdateDataSources + "create_and_update_data_sources": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreateAndUpdateDatasets + "create_and_update_datasets": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreateAndUpdateThemes + "create_and_update_themes": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreateAndUpdateThresholdAlerts + "create_and_update_threshold_alerts": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreateSPICEDataset + "create_spice_dataset": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreateSharedFolders + "create_shared_folders": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ExportToCsv + "export_to_csv": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ExportToExcel + "export_to_excel": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RenameSharedFolders + "rename_shared_folders": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ShareAnalyses + "share_analyses": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ShareDashboards + "share_dashboards": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ShareDataSources + "share_data_sources": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ShareDatasets + "share_datasets": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SubscribeDashboardEmailReports + "subscribe_dashboard_email_reports": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ViewAccountSPICECapacity + "view_account_spice_capacity": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CustomPermissionsName + // CloudFormation resource type schema: + // + // { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9+=,.@_-]+$", + // "type": "string" + // } + "custom_permissions_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "items": { + // "additionalProperties": false, + // "description": "\u003cp\u003eThe key or keys of the key-value pairs for the resource tag or tags assigned to the\n resource.\u003c/p\u003e", + // "properties": { + // "Key": { + // "description": "\u003cp\u003eTag key.\u003c/p\u003e", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "\u003cp\u003eTag value.\u003c/p\u003e", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 200, + // "minItems": 1, + // "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*/ + Description: "

Tag key.

", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "

Tag value.

", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::QuickSight::CustomPermissions", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::QuickSight::CustomPermissions").WithTerraformTypeName("awscc_quicksight_custom_permissions") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "add_or_run_anomaly_detection_for_analyses": "AddOrRunAnomalyDetectionForAnalyses", + "arn": "Arn", + "aws_account_id": "AwsAccountId", + "capabilities": "Capabilities", + "create_and_update_dashboard_email_reports": "CreateAndUpdateDashboardEmailReports", + "create_and_update_data_sources": "CreateAndUpdateDataSources", + "create_and_update_datasets": "CreateAndUpdateDatasets", + "create_and_update_themes": "CreateAndUpdateThemes", + "create_and_update_threshold_alerts": "CreateAndUpdateThresholdAlerts", + "create_shared_folders": "CreateSharedFolders", + "create_spice_dataset": "CreateSPICEDataset", + "custom_permissions_name": "CustomPermissionsName", + "export_to_csv": "ExportToCsv", + "export_to_excel": "ExportToExcel", + "key": "Key", + "rename_shared_folders": "RenameSharedFolders", + "share_analyses": "ShareAnalyses", + "share_dashboards": "ShareDashboards", + "share_data_sources": "ShareDataSources", + "share_datasets": "ShareDatasets", + "subscribe_dashboard_email_reports": "SubscribeDashboardEmailReports", + "tags": "Tags", + "value": "Value", + "view_account_spice_capacity": "ViewAccountSPICECapacity", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/quicksight/custom_permissions_singular_data_source_gen_test.go b/internal/aws/quicksight/custom_permissions_singular_data_source_gen_test.go new file mode 100644 index 000000000..a1a46869b --- /dev/null +++ b/internal/aws/quicksight/custom_permissions_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 quicksight_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSQuickSightCustomPermissionsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::QuickSight::CustomPermissions", "awscc_quicksight_custom_permissions", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSQuickSightCustomPermissionsDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::QuickSight::CustomPermissions", "awscc_quicksight_custom_permissions", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/rds/db_cluster_resource_gen.go b/internal/aws/rds/db_cluster_resource_gen.go index a30e1e952..d6c9bf744 100644 --- a/internal/aws/rds/db_cluster_resource_gen.go +++ b/internal/aws/rds/db_cluster_resource_gen.go @@ -120,11 +120,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.\n Valid for Cluster Type: Multi-AZ DB clusters only", + // "description": "Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB cluster", // "type": "boolean" // } "auto_minor_version_upgrade": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.\n Valid for Cluster Type: Multi-AZ DB clusters only", + Description: "Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB cluster", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -356,6 +356,21 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: DatabaseInsightsMode + // CloudFormation resource type schema: + // + // { + // "description": "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters only", + // "type": "string" + // } + "database_insights_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters only", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: DatabaseName // CloudFormation resource type schema: // @@ -459,11 +474,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled.\n When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor.\n RDS Data API is supported with the following DB clusters:\n + Aurora PostgreSQL Serverless v2 and provisioned\n + Aurora PostgreSQL and Aurora MySQL Serverless v1\n \n For more information, see [Using RDS Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*.\n Valid for Cluster Type: Aurora DB clusters only", + // "description": "Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled.\n When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor.\n For more information, see [Using RDS Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*.\n Valid for Cluster Type: Aurora DB clusters only", // "type": "boolean" // } "enable_http_endpoint": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled.\n When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor.\n RDS Data API is supported with the following DB clusters:\n + Aurora PostgreSQL Serverless v2 and provisioned\n + Aurora PostgreSQL and Aurora MySQL Serverless v1\n \n For more information, see [Using RDS Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*.\n Valid for Cluster Type: Aurora DB clusters only", + Description: "Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled.\n When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor.\n For more information, see [Using RDS Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*.\n Valid for Cluster Type: Aurora DB clusters only", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -687,7 +702,7 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "The secret managed by RDS in AWS Secrets Manager for the master user password.\n For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*", + // "description": "The secret managed by RDS in AWS Secrets Manager for the master user password.\n When you restore a DB cluster from a snapshot, Amazon RDS generates a new secret instead of reusing the secret specified in the ``SecretArn`` property. This ensures that the restored DB cluster is securely managed with a dedicated secret. To maintain consistent integration with your application, you might need to update resource configurations to reference the newly created secret.\n For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*", // "properties": { // "KmsKeyId": { // "description": "The AWS KMS key identifier that is used to encrypt the secret.", @@ -720,7 +735,7 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The secret managed by RDS in AWS Secrets Manager for the master user password.\n For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*", + Description: "The secret managed by RDS in AWS Secrets Manager for the master user password.\n When you restore a DB cluster from a snapshot, Amazon RDS generates a new secret instead of reusing the secret specified in the ``SecretArn`` property. This ensures that the restored DB cluster is securely managed with a dedicated secret. To maintain consistent integration with your application, you might need to update resource configurations to reference the newly created secret.\n For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -752,11 +767,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, also set ``MonitoringInterval`` to a value other than ``0``.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", + // "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, also set ``MonitoringInterval`` to a value other than ``0``.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", // "type": "integer" // } "monitoring_interval": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, also set ``MonitoringInterval`` to a value other than ``0``.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", + Description: "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, also set ``MonitoringInterval`` to a value other than ``0``.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -767,11 +782,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting up and enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*.\n If ``MonitoringInterval`` is set to a value other than ``0``, supply a ``MonitoringRoleArn`` value.\n Valid for Cluster Type: Multi-AZ DB clusters only", + // "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting up and enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*.\n If ``MonitoringInterval`` is set to a value other than ``0``, supply a ``MonitoringRoleArn`` value.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", // "type": "string" // } "monitoring_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting up and enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*.\n If ``MonitoringInterval`` is set to a value other than ``0``, supply a ``MonitoringRoleArn`` value.\n Valid for Cluster Type: Multi-AZ DB clusters only", + Description: "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting up and enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*.\n If ``MonitoringInterval`` is set to a value other than ``0``, supply a ``MonitoringRoleArn`` value.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -797,11 +812,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether to turn on Performance Insights for the DB cluster.\n For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*.\n Valid for Cluster Type: Multi-AZ DB clusters only", + // "description": "Specifies whether to turn on Performance Insights for the DB cluster.\n For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", // "type": "boolean" // } "performance_insights_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether to turn on Performance Insights for the DB cluster.\n For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*.\n Valid for Cluster Type: Multi-AZ DB clusters only", + Description: "Specifies whether to turn on Performance Insights for the DB cluster.\n For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -812,11 +827,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The AWS KMS key identifier for encryption of Performance Insights data.\n The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.\n If you don't specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS-account. Your AWS-account has a different default KMS key for each AWS-Region.\n Valid for Cluster Type: Multi-AZ DB clusters only", + // "description": "The AWS KMS key identifier for encryption of Performance Insights data.\n The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.\n If you don't specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS-account. Your AWS-account has a different default KMS key for each AWS-Region.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", // "type": "string" // } "performance_insights_kms_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The AWS KMS key identifier for encryption of Performance Insights data.\n The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.\n If you don't specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS-account. Your AWS-account has a different default KMS key for each AWS-Region.\n Valid for Cluster Type: Multi-AZ DB clusters only", + Description: "The AWS KMS key identifier for encryption of Performance Insights data.\n The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.\n If you don't specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS-account. Your AWS-account has a different default KMS key for each AWS-Region.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -827,11 +842,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The number of days to retain Performance Insights data.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Valid Values:\n + ``7`` \n + *month* * 31, where *month* is a number of months from 1-23. Examples: ``93`` (3 months * 31), ``341`` (11 months * 31), ``589`` (19 months * 31)\n + ``731`` \n \n Default: ``7`` days\n If you specify a retention period that isn't valid, such as ``94``, Amazon RDS issues an error.", + // "description": "The number of days to retain Performance Insights data.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values:\n + ``7`` \n + *month* * 31, where *month* is a number of months from 1-23. Examples: ``93`` (3 months * 31), ``341`` (11 months * 31), ``589`` (19 months * 31)\n + ``731`` \n \n Default: ``7`` days\n If you specify a retention period that isn't valid, such as ``94``, Amazon RDS issues an error.", // "type": "integer" // } "performance_insights_retention_period": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The number of days to retain Performance Insights data.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Valid Values:\n + ``7`` \n + *month* * 31, where *month* is a number of months from 1-23. Examples: ``93`` (3 months * 31), ``341`` (11 months * 31), ``589`` (19 months * 31)\n + ``731`` \n \n Default: ``7`` days\n If you specify a retention period that isn't valid, such as ``94``, Amazon RDS issues an error.", + Description: "The number of days to retain Performance Insights data.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values:\n + ``7`` \n + *month* * 31, where *month* is a number of months from 1-23. Examples: ``93`` (3 months * 31), ``341`` (11 months * 31), ``589`` (19 months * 31)\n + ``731`` \n \n Default: ``7`` days\n If you specify a retention period that isn't valid, such as ``94``, Amazon RDS issues an error.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -1094,7 +1109,7 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // "type": "number" // }, // "SecondsUntilAutoPause": { - // "description": "", + // "description": "Specifies the number of seconds an Aurora Serverless v2 DB instance must be idle before Aurora attempts to automatically pause it. \n Specify a value between 300 seconds (five minutes) and 86,400 seconds (one day). The default is 300 seconds.", // "type": "integer" // } // }, @@ -1122,7 +1137,7 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: SecondsUntilAutoPause "seconds_until_auto_pause": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Specifies the number of seconds an Aurora Serverless v2 DB instance must be idle before Aurora attempts to automatically pause it. \n Specify a value between 300 seconds (five minutes) and 86,400 seconds (one day). The default is 300 seconds.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -1377,6 +1392,7 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { "backup_retention_period": "BackupRetentionPeriod", "cluster_scalability_type": "ClusterScalabilityType", "copy_tags_to_snapshot": "CopyTagsToSnapshot", + "database_insights_mode": "DatabaseInsightsMode", "database_name": "DatabaseName", "db_cluster_arn": "DBClusterArn", "db_cluster_identifier": "DBClusterIdentifier", 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 e4c32fdf4..cbf06b612 100644 --- a/internal/aws/rds/db_cluster_singular_data_source_gen.go +++ b/internal/aws/rds/db_cluster_singular_data_source_gen.go @@ -82,11 +82,11 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.\n Valid for Cluster Type: Multi-AZ DB clusters only", + // "description": "Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB cluster", // "type": "boolean" // } "auto_minor_version_upgrade": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.\n Valid for Cluster Type: Multi-AZ DB clusters only", + Description: "Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB cluster", Computed: true, }, /*END ATTRIBUTE*/ // Property: AvailabilityZones @@ -243,6 +243,17 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "Reserved for future use.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: DatabaseInsightsMode + // CloudFormation resource type schema: + // + // { + // "description": "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters only", + // "type": "string" + // } + "database_insights_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters only", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: DatabaseName // CloudFormation resource type schema: // @@ -318,11 +329,11 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled.\n When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor.\n RDS Data API is supported with the following DB clusters:\n + Aurora PostgreSQL Serverless v2 and provisioned\n + Aurora PostgreSQL and Aurora MySQL Serverless v1\n \n For more information, see [Using RDS Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*.\n Valid for Cluster Type: Aurora DB clusters only", + // "description": "Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled.\n When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor.\n For more information, see [Using RDS Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*.\n Valid for Cluster Type: Aurora DB clusters only", // "type": "boolean" // } "enable_http_endpoint": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled.\n When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor.\n RDS Data API is supported with the following DB clusters:\n + Aurora PostgreSQL Serverless v2 and provisioned\n + Aurora PostgreSQL and Aurora MySQL Serverless v1\n \n For more information, see [Using RDS Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*.\n Valid for Cluster Type: Aurora DB clusters only", + Description: "Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled.\n When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor.\n For more information, see [Using RDS Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*.\n Valid for Cluster Type: Aurora DB clusters only", Computed: true, }, /*END ATTRIBUTE*/ // Property: EnableIAMDatabaseAuthentication @@ -488,7 +499,7 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "The secret managed by RDS in AWS Secrets Manager for the master user password.\n For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*", + // "description": "The secret managed by RDS in AWS Secrets Manager for the master user password.\n When you restore a DB cluster from a snapshot, Amazon RDS generates a new secret instead of reusing the secret specified in the ``SecretArn`` property. This ensures that the restored DB cluster is securely managed with a dedicated secret. To maintain consistent integration with your application, you might need to update resource configurations to reference the newly created secret.\n For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*", // "properties": { // "KmsKeyId": { // "description": "The AWS KMS key identifier that is used to encrypt the secret.", @@ -514,7 +525,7 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The secret managed by RDS in AWS Secrets Manager for the master user password.\n For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*", + Description: "The secret managed by RDS in AWS Secrets Manager for the master user password.\n When you restore a DB cluster from a snapshot, Amazon RDS generates a new secret instead of reusing the secret specified in the ``SecretArn`` property. This ensures that the restored DB cluster is securely managed with a dedicated secret. To maintain consistent integration with your application, you might need to update resource configurations to reference the newly created secret.\n For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*", Computed: true, }, /*END ATTRIBUTE*/ // Property: MasterUsername @@ -534,22 +545,22 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, also set ``MonitoringInterval`` to a value other than ``0``.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", + // "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, also set ``MonitoringInterval`` to a value other than ``0``.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", // "type": "integer" // } "monitoring_interval": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, also set ``MonitoringInterval`` to a value other than ``0``.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", + Description: "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, also set ``MonitoringInterval`` to a value other than ``0``.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", Computed: true, }, /*END ATTRIBUTE*/ // Property: MonitoringRoleArn // CloudFormation resource type schema: // // { - // "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting up and enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*.\n If ``MonitoringInterval`` is set to a value other than ``0``, supply a ``MonitoringRoleArn`` value.\n Valid for Cluster Type: Multi-AZ DB clusters only", + // "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting up and enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*.\n If ``MonitoringInterval`` is set to a value other than ``0``, supply a ``MonitoringRoleArn`` value.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", // "type": "string" // } "monitoring_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting up and enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*.\n If ``MonitoringInterval`` is set to a value other than ``0``, supply a ``MonitoringRoleArn`` value.\n Valid for Cluster Type: Multi-AZ DB clusters only", + Description: "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting up and enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*.\n If ``MonitoringInterval`` is set to a value other than ``0``, supply a ``MonitoringRoleArn`` value.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", Computed: true, }, /*END ATTRIBUTE*/ // Property: NetworkType @@ -567,33 +578,33 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether to turn on Performance Insights for the DB cluster.\n For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*.\n Valid for Cluster Type: Multi-AZ DB clusters only", + // "description": "Specifies whether to turn on Performance Insights for the DB cluster.\n For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", // "type": "boolean" // } "performance_insights_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether to turn on Performance Insights for the DB cluster.\n For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*.\n Valid for Cluster Type: Multi-AZ DB clusters only", + Description: "Specifies whether to turn on Performance Insights for the DB cluster.\n For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", Computed: true, }, /*END ATTRIBUTE*/ // Property: PerformanceInsightsKmsKeyId // CloudFormation resource type schema: // // { - // "description": "The AWS KMS key identifier for encryption of Performance Insights data.\n The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.\n If you don't specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS-account. Your AWS-account has a different default KMS key for each AWS-Region.\n Valid for Cluster Type: Multi-AZ DB clusters only", + // "description": "The AWS KMS key identifier for encryption of Performance Insights data.\n The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.\n If you don't specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS-account. Your AWS-account has a different default KMS key for each AWS-Region.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", // "type": "string" // } "performance_insights_kms_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The AWS KMS key identifier for encryption of Performance Insights data.\n The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.\n If you don't specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS-account. Your AWS-account has a different default KMS key for each AWS-Region.\n Valid for Cluster Type: Multi-AZ DB clusters only", + Description: "The AWS KMS key identifier for encryption of Performance Insights data.\n The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.\n If you don't specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS-account. Your AWS-account has a different default KMS key for each AWS-Region.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", Computed: true, }, /*END ATTRIBUTE*/ // Property: PerformanceInsightsRetentionPeriod // CloudFormation resource type schema: // // { - // "description": "The number of days to retain Performance Insights data.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Valid Values:\n + ``7`` \n + *month* * 31, where *month* is a number of months from 1-23. Examples: ``93`` (3 months * 31), ``341`` (11 months * 31), ``589`` (19 months * 31)\n + ``731`` \n \n Default: ``7`` days\n If you specify a retention period that isn't valid, such as ``94``, Amazon RDS issues an error.", + // "description": "The number of days to retain Performance Insights data.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values:\n + ``7`` \n + *month* * 31, where *month* is a number of months from 1-23. Examples: ``93`` (3 months * 31), ``341`` (11 months * 31), ``589`` (19 months * 31)\n + ``731`` \n \n Default: ``7`` days\n If you specify a retention period that isn't valid, such as ``94``, Amazon RDS issues an error.", // "type": "integer" // } "performance_insights_retention_period": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The number of days to retain Performance Insights data.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Valid Values:\n + ``7`` \n + *month* * 31, where *month* is a number of months from 1-23. Examples: ``93`` (3 months * 31), ``341`` (11 months * 31), ``589`` (19 months * 31)\n + ``731`` \n \n Default: ``7`` days\n If you specify a retention period that isn't valid, such as ``94``, Amazon RDS issues an error.", + Description: "The number of days to retain Performance Insights data.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values:\n + ``7`` \n + *month* * 31, where *month* is a number of months from 1-23. Examples: ``93`` (3 months * 31), ``341`` (11 months * 31), ``589`` (19 months * 31)\n + ``731`` \n \n Default: ``7`` days\n If you specify a retention period that isn't valid, such as ``94``, Amazon RDS issues an error.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Port @@ -784,7 +795,7 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "number" // }, // "SecondsUntilAutoPause": { - // "description": "", + // "description": "Specifies the number of seconds an Aurora Serverless v2 DB instance must be idle before Aurora attempts to automatically pause it. \n Specify a value between 300 seconds (five minutes) and 86,400 seconds (one day). The default is 300 seconds.", // "type": "integer" // } // }, @@ -804,7 +815,7 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: SecondsUntilAutoPause "seconds_until_auto_pause": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Specifies the number of seconds an Aurora Serverless v2 DB instance must be idle before Aurora attempts to automatically pause it. \n Specify a value between 300 seconds (five minutes) and 86,400 seconds (one day). The default is 300 seconds.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -981,6 +992,7 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { "backup_retention_period": "BackupRetentionPeriod", "cluster_scalability_type": "ClusterScalabilityType", "copy_tags_to_snapshot": "CopyTagsToSnapshot", + "database_insights_mode": "DatabaseInsightsMode", "database_name": "DatabaseName", "db_cluster_arn": "DBClusterArn", "db_cluster_identifier": "DBClusterIdentifier", diff --git a/internal/aws/rds/db_instance_resource_gen.go b/internal/aws/rds/db_instance_resource_gen.go index e68bc7d5f..8b53c0b5a 100644 --- a/internal/aws/rds/db_instance_resource_gen.go +++ b/internal/aws/rds/db_instance_resource_gen.go @@ -522,6 +522,20 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: DatabaseInsightsMode + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "string" + // } + "database_insights_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: DbiResourceId // CloudFormation resource type schema: // @@ -1620,6 +1634,7 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { "character_set_name": "CharacterSetName", "copy_tags_to_snapshot": "CopyTagsToSnapshot", "custom_iam_instance_profile": "CustomIAMInstanceProfile", + "database_insights_mode": "DatabaseInsightsMode", "db_cluster_identifier": "DBClusterIdentifier", "db_cluster_snapshot_identifier": "DBClusterSnapshotIdentifier", "db_instance_arn": "DBInstanceArn", 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 fa4a2b279..ac7c5f23b 100644 --- a/internal/aws/rds/db_instance_singular_data_source_gen.go +++ b/internal/aws/rds/db_instance_singular_data_source_gen.go @@ -367,6 +367,17 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The Oracle system identifier (SID), which is the name of the Oracle database instance that manages your database files. In this context, the term \"Oracle database instance\" refers exclusively to the system global area (SGA) and Oracle background processes. If you don't specify a SID, the value defaults to ``RDSCDB``. The Oracle SID is also the name of your CDB.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: DatabaseInsightsMode + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "string" + // } + "database_insights_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: DbiResourceId // CloudFormation resource type schema: // @@ -1162,6 +1173,7 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { "character_set_name": "CharacterSetName", "copy_tags_to_snapshot": "CopyTagsToSnapshot", "custom_iam_instance_profile": "CustomIAMInstanceProfile", + "database_insights_mode": "DatabaseInsightsMode", "db_cluster_identifier": "DBClusterIdentifier", "db_cluster_snapshot_identifier": "DBClusterSnapshotIdentifier", "db_instance_arn": "DBInstanceArn", diff --git a/internal/aws/redshift/integration_resource_gen.go b/internal/aws/redshift/integration_resource_gen.go index 2eb66c2a7..0d9794775 100644 --- a/internal/aws/redshift/integration_resource_gen.go +++ b/internal/aws/redshift/integration_resource_gen.go @@ -109,10 +109,6 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "anyOf": [ - // {}, - // {} - // ], // "description": "An KMS key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, the default AWS owned KMS key is used.", // "type": "string" // } diff --git a/internal/aws/redshift/integration_singular_data_source_gen.go b/internal/aws/redshift/integration_singular_data_source_gen.go index 1d1759354..a10d56377 100644 --- a/internal/aws/redshift/integration_singular_data_source_gen.go +++ b/internal/aws/redshift/integration_singular_data_source_gen.go @@ -83,10 +83,6 @@ func integrationDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "anyOf": [ - // {}, - // {} - // ], // "description": "An KMS key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, the default AWS owned KMS key is used.", // "type": "string" // } diff --git a/internal/aws/resiliencehub/app_resource_gen.go b/internal/aws/resiliencehub/app_resource_gen.go index 7d53097b1..014cde18a 100644 --- a/internal/aws/resiliencehub/app_resource_gen.go +++ b/internal/aws/resiliencehub/app_resource_gen.go @@ -318,6 +318,22 @@ func appResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: RegulatoryPolicyArn + // CloudFormation resource type schema: + // + // { + // "description": "Amazon Resource Name (ARN) of the Regulatory Policy.", + // "pattern": "", + // "type": "string" + // } + "regulatory_policy_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Amazon Resource Name (ARN) of the Regulatory Policy.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ResiliencyPolicyArn // CloudFormation resource type schema: // @@ -555,6 +571,7 @@ func appResource(ctx context.Context) (resource.Resource, error) { "name": "Name", "permission_model": "PermissionModel", "physical_resource_id": "PhysicalResourceId", + "regulatory_policy_arn": "RegulatoryPolicyArn", "resiliency_policy_arn": "ResiliencyPolicyArn", "resource_mappings": "ResourceMappings", "resource_name": "ResourceName", diff --git a/internal/aws/resiliencehub/app_singular_data_source_gen.go b/internal/aws/resiliencehub/app_singular_data_source_gen.go index 9c6676a00..0de4d4fe8 100644 --- a/internal/aws/resiliencehub/app_singular_data_source_gen.go +++ b/internal/aws/resiliencehub/app_singular_data_source_gen.go @@ -224,6 +224,18 @@ func appDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "Defines the roles and credentials that AWS Resilience Hub would use while creating the application, importing its resources, and running an assessment.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: RegulatoryPolicyArn + // CloudFormation resource type schema: + // + // { + // "description": "Amazon Resource Name (ARN) of the Regulatory Policy.", + // "pattern": "", + // "type": "string" + // } + "regulatory_policy_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Amazon Resource Name (ARN) of the Regulatory Policy.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ResiliencyPolicyArn // CloudFormation resource type schema: // @@ -403,6 +415,7 @@ func appDataSource(ctx context.Context) (datasource.DataSource, error) { "name": "Name", "permission_model": "PermissionModel", "physical_resource_id": "PhysicalResourceId", + "regulatory_policy_arn": "RegulatoryPolicyArn", "resiliency_policy_arn": "ResiliencyPolicyArn", "resource_mappings": "ResourceMappings", "resource_name": "ResourceName", diff --git a/internal/aws/rolesanywhere/profile_resource_gen.go b/internal/aws/rolesanywhere/profile_resource_gen.go index 947983882..e3def8b36 100644 --- a/internal/aws/rolesanywhere/profile_resource_gen.go +++ b/internal/aws/rolesanywhere/profile_resource_gen.go @@ -231,7 +231,9 @@ func profileResource(ctx context.Context) (resource.Resource, error) { Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ boolplanmodifier.UseStateForUnknown(), + boolplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ + // RequireInstanceProperties is a write-only property. }, /*END ATTRIBUTE*/ // Property: RoleArns // CloudFormation resource type schema: @@ -373,6 +375,9 @@ func profileResource(ctx context.Context) (resource.Resource, error) { "value": "Value", }) + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/RequireInstanceProperties", + }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) opts = opts.WithUpdateTimeoutInMinutes(0) diff --git a/internal/aws/sagemaker/domain_resource_gen.go b/internal/aws/sagemaker/domain_resource_gen.go index 6db838590..29f1d639d 100644 --- a/internal/aws/sagemaker/domain_resource_gen.go +++ b/internal/aws/sagemaker/domain_resource_gen.go @@ -141,6 +141,27 @@ func domainResource(ctx context.Context) (resource.Resource, error) { // "FileSystemId" // ], // "type": "object" + // }, + // "FSxLustreFileSystemConfig": { + // "additionalProperties": false, + // "properties": { + // "FileSystemId": { + // "maxLength": 21, + // "minLength": 11, + // "pattern": "^(fs-[0-9a-f]{8,})$", + // "type": "string" + // }, + // "FileSystemPath": { + // "maxLength": 256, + // "minLength": 1, + // "pattern": "^\\/\\S*$", + // "type": "string" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" // } // }, // "type": "object" @@ -740,6 +761,41 @@ func domainResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: FSxLustreFileSystemConfig + "fsx_lustre_file_system_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(11, 21), + stringvalidator.RegexMatches(regexp.MustCompile("^(fs-[0-9a-f]{8,})$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FileSystemPath + "file_system_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + stringvalidator.RegexMatches(regexp.MustCompile("^\\/\\S*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Optional: true, @@ -1767,6 +1823,27 @@ func domainResource(ctx context.Context) (resource.Resource, error) { // "FileSystemId" // ], // "type": "object" + // }, + // "FSxLustreFileSystemConfig": { + // "additionalProperties": false, + // "properties": { + // "FileSystemId": { + // "maxLength": 21, + // "minLength": 11, + // "pattern": "^(fs-[0-9a-f]{8,})$", + // "type": "string" + // }, + // "FileSystemPath": { + // "maxLength": 256, + // "minLength": 1, + // "pattern": "^\\/\\S*$", + // "type": "string" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" // } // }, // "type": "object" @@ -2902,6 +2979,41 @@ func domainResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: FSxLustreFileSystemConfig + "fsx_lustre_file_system_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(11, 21), + stringvalidator.RegexMatches(regexp.MustCompile("^(fs-[0-9a-f]{8,})$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FileSystemPath + "file_system_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + stringvalidator.RegexMatches(regexp.MustCompile("^\\/\\S*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Optional: true, @@ -4877,6 +4989,7 @@ func domainResource(ctx context.Context) (resource.Resource, error) { "execution_role_identity_config": "ExecutionRoleIdentityConfig", "file_system_id": "FileSystemId", "file_system_path": "FileSystemPath", + "fsx_lustre_file_system_config": "FSxLustreFileSystemConfig", "gid": "Gid", "hidden_app_types": "HiddenAppTypes", "hidden_ml_tools": "HiddenMlTools", diff --git a/internal/aws/sagemaker/domain_singular_data_source_gen.go b/internal/aws/sagemaker/domain_singular_data_source_gen.go index cfd233f4c..2280be065 100644 --- a/internal/aws/sagemaker/domain_singular_data_source_gen.go +++ b/internal/aws/sagemaker/domain_singular_data_source_gen.go @@ -99,6 +99,27 @@ func domainDataSource(ctx context.Context) (datasource.DataSource, error) { // "FileSystemId" // ], // "type": "object" + // }, + // "FSxLustreFileSystemConfig": { + // "additionalProperties": false, + // "properties": { + // "FileSystemId": { + // "maxLength": 21, + // "minLength": 11, + // "pattern": "^(fs-[0-9a-f]{8,})$", + // "type": "string" + // }, + // "FileSystemPath": { + // "maxLength": 256, + // "minLength": 1, + // "pattern": "^\\/\\S*$", + // "type": "string" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" // } // }, // "type": "object" @@ -677,6 +698,20 @@ func domainDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: FSxLustreFileSystemConfig + "fsx_lustre_file_system_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FileSystemPath + "file_system_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Computed: true, @@ -1166,6 +1201,27 @@ func domainDataSource(ctx context.Context) (datasource.DataSource, error) { // "FileSystemId" // ], // "type": "object" + // }, + // "FSxLustreFileSystemConfig": { + // "additionalProperties": false, + // "properties": { + // "FileSystemId": { + // "maxLength": 21, + // "minLength": 11, + // "pattern": "^(fs-[0-9a-f]{8,})$", + // "type": "string" + // }, + // "FileSystemPath": { + // "maxLength": 256, + // "minLength": 1, + // "pattern": "^\\/\\S*$", + // "type": "string" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" // } // }, // "type": "object" @@ -2095,6 +2151,20 @@ func domainDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: FSxLustreFileSystemConfig + "fsx_lustre_file_system_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FileSystemPath + "file_system_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Computed: true, @@ -3008,6 +3078,7 @@ func domainDataSource(ctx context.Context) (datasource.DataSource, error) { "execution_role_identity_config": "ExecutionRoleIdentityConfig", "file_system_id": "FileSystemId", "file_system_path": "FileSystemPath", + "fsx_lustre_file_system_config": "FSxLustreFileSystemConfig", "gid": "Gid", "hidden_app_types": "HiddenAppTypes", "hidden_ml_tools": "HiddenMlTools", diff --git a/internal/aws/sagemaker/partner_app_plural_data_source_gen.go b/internal/aws/sagemaker/partner_app_plural_data_source_gen.go new file mode 100644 index 000000000..c87ef78da --- /dev/null +++ b/internal/aws/sagemaker/partner_app_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_sagemaker_partner_apps", partnerAppsDataSource) +} + +// partnerAppsDataSource returns the Terraform awscc_sagemaker_partner_apps data source. +// This Terraform data source corresponds to the CloudFormation AWS::SageMaker::PartnerApp resource. +func partnerAppsDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ + "id": schema.StringAttribute{ + Description: "Uniquely identifies the data source.", + Computed: true, + }, + "ids": schema.SetAttribute{ + Description: "Set of Resource Identifiers.", + ElementType: types.StringType, + Computed: true, + }, + } + + schema := schema.Schema{ + Description: "Plural Data Source schema for AWS::SageMaker::PartnerApp", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::SageMaker::PartnerApp").WithTerraformTypeName("awscc_sagemaker_partner_apps") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/sagemaker/partner_app_plural_data_source_gen_test.go b/internal/aws/sagemaker/partner_app_plural_data_source_gen_test.go new file mode 100644 index 000000000..3748416fe --- /dev/null +++ b/internal/aws/sagemaker/partner_app_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package sagemaker_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSSageMakerPartnerAppsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SageMaker::PartnerApp", "awscc_sagemaker_partner_apps", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/sagemaker/partner_app_resource_gen.go b/internal/aws/sagemaker/partner_app_resource_gen.go new file mode 100644 index 000000000..8bc442872 --- /dev/null +++ b/internal/aws/sagemaker/partner_app_resource_gen.go @@ -0,0 +1,460 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package sagemaker + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/setvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" + "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" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_sagemaker_partner_app", partnerAppResource) +} + +// partnerAppResource returns the Terraform awscc_sagemaker_partner_app resource. +// This Terraform resource corresponds to the CloudFormation AWS::SageMaker::PartnerApp resource. +func partnerAppResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplicationConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A collection of settings that specify the maintenance schedule for the PartnerApp.", + // "properties": { + // "AdminUsers": { + // "description": "A list of users with administrator privileges for the PartnerApp.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A collection of AdminUsers for the PartnerApp", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "maxItems": 5, + // "minItems": 0, + // "type": "array", + // "uniqueItems": true + // }, + // "Arguments": { + // "additionalProperties": false, + // "description": "A list of arguments to pass to the PartnerApp.", + // "patternProperties": { + // "": { + // "maxLength": 1024, + // "pattern": "", + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // } + "application_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AdminUsers + "admin_users": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of users with administrator privileges for the PartnerApp.", + Optional: true, + Computed: true, + Validators: []validator.Set{ /*START VALIDATORS*/ + setvalidator.SizeBetween(0, 5), + setvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 256), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Arguments + "arguments": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of arguments to pass to the PartnerApp.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A collection of settings that specify the maintenance schedule for the PartnerApp.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the created PartnerApp.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:partner-app/app-[A-Z0-9]{12}$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the created PartnerApp.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AuthType + // CloudFormation resource type schema: + // + // { + // "description": "The Auth type of PartnerApp.", + // "enum": [ + // "IAM" + // ], + // "type": "string" + // } + "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Auth type of PartnerApp.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "IAM", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: BaseUrl + // CloudFormation resource type schema: + // + // { + // "description": "The AppServerUrl based on app and account-info.", + // "maxLength": 2048, + // "type": "string" + // } + "base_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The AppServerUrl based on app and account-info.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ClientToken + // CloudFormation resource type schema: + // + // { + // "description": "The client token for the PartnerApp.", + // "maxLength": 36, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-]+$", + // "type": "string" + // } + "client_token": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The client token for the PartnerApp.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 36), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9-]+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // ClientToken is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: EnableIamSessionBasedIdentity + // CloudFormation resource type schema: + // + // { + // "description": "Enables IAM Session based Identity for PartnerApp.", + // "type": "boolean" + // } + "enable_iam_session_based_identity": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Enables IAM Session based Identity for PartnerApp.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ExecutionRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The execution role for the user.", + // "maxLength": 2048, + // "minLength": 20, + // "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + // "type": "string" + // } + "execution_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The execution role for the user.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(20, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MaintenanceConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A collection of settings that specify the maintenance schedule for the PartnerApp.", + // "properties": { + // "MaintenanceWindowStart": { + // "description": "The maintenance window start day and time for the PartnerApp.", + // "maxLength": 9, + // "pattern": "(Mon|Tue|Wed|Thu|Fri|Sat|Sun):([01]\\d|2[0-3]):([0-5]\\d)", + // "type": "string" + // } + // }, + // "required": [ + // "MaintenanceWindowStart" + // ], + // "type": "object" + // } + "maintenance_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaintenanceWindowStart + "maintenance_window_start": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The maintenance window start day and time for the PartnerApp.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(9), + stringvalidator.RegexMatches(regexp.MustCompile("(Mon|Tue|Wed|Thu|Fri|Sat|Sun):([01]\\d|2[0-3]):([0-5]\\d)"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A collection of settings that specify the maintenance schedule for the PartnerApp.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "A name for the PartnerApp.", + // "maxLength": 256, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9]+", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A name for the PartnerApp.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9]+"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "A list of tags to apply to the PartnerApp.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of tags to apply to the PartnerApp.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 50), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tier + // CloudFormation resource type schema: + // + // { + // "description": "The tier of the PartnerApp.", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // } + "tier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The tier of the PartnerApp.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "description": "The type of PartnerApp.", + // "enum": [ + // "lakera-guard", + // "comet", + // "deepchecks-llm-evaluation", + // "fiddler" + // ], + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of PartnerApp.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "lakera-guard", + "comet", + "deepchecks-llm-evaluation", + "fiddler", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Resource Type definition for AWS::SageMaker::PartnerApp", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::SageMaker::PartnerApp").WithTerraformTypeName("awscc_sagemaker_partner_app") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "admin_users": "AdminUsers", + "application_config": "ApplicationConfig", + "arguments": "Arguments", + "arn": "Arn", + "auth_type": "AuthType", + "base_url": "BaseUrl", + "client_token": "ClientToken", + "enable_iam_session_based_identity": "EnableIamSessionBasedIdentity", + "execution_role_arn": "ExecutionRoleArn", + "key": "Key", + "maintenance_config": "MaintenanceConfig", + "maintenance_window_start": "MaintenanceWindowStart", + "name": "Name", + "tags": "Tags", + "tier": "Tier", + "type": "Type", + "value": "Value", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/ClientToken", + }) + opts = opts.WithCreateTimeoutInMinutes(180).WithDeleteTimeoutInMinutes(240) + + opts = opts.WithUpdateTimeoutInMinutes(180) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/sagemaker/partner_app_resource_gen_test.go b/internal/aws/sagemaker/partner_app_resource_gen_test.go new file mode 100644 index 000000000..e0188dac2 --- /dev/null +++ b/internal/aws/sagemaker/partner_app_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package sagemaker_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSSageMakerPartnerApp_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SageMaker::PartnerApp", "awscc_sagemaker_partner_app", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/sagemaker/partner_app_singular_data_source_gen.go b/internal/aws/sagemaker/partner_app_singular_data_source_gen.go new file mode 100644 index 000000000..ab0f94434 --- /dev/null +++ b/internal/aws/sagemaker/partner_app_singular_data_source_gen.go @@ -0,0 +1,325 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_sagemaker_partner_app", partnerAppDataSource) +} + +// partnerAppDataSource returns the Terraform awscc_sagemaker_partner_app data source. +// This Terraform data source corresponds to the CloudFormation AWS::SageMaker::PartnerApp resource. +func partnerAppDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplicationConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A collection of settings that specify the maintenance schedule for the PartnerApp.", + // "properties": { + // "AdminUsers": { + // "description": "A list of users with administrator privileges for the PartnerApp.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A collection of AdminUsers for the PartnerApp", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "maxItems": 5, + // "minItems": 0, + // "type": "array", + // "uniqueItems": true + // }, + // "Arguments": { + // "additionalProperties": false, + // "description": "A list of arguments to pass to the PartnerApp.", + // "patternProperties": { + // "": { + // "maxLength": 1024, + // "pattern": "", + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // } + "application_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AdminUsers + "admin_users": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of users with administrator privileges for the PartnerApp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Arguments + "arguments": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of arguments to pass to the PartnerApp.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A collection of settings that specify the maintenance schedule for the PartnerApp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the created PartnerApp.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:partner-app/app-[A-Z0-9]{12}$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the created PartnerApp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AuthType + // CloudFormation resource type schema: + // + // { + // "description": "The Auth type of PartnerApp.", + // "enum": [ + // "IAM" + // ], + // "type": "string" + // } + "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Auth type of PartnerApp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: BaseUrl + // CloudFormation resource type schema: + // + // { + // "description": "The AppServerUrl based on app and account-info.", + // "maxLength": 2048, + // "type": "string" + // } + "base_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The AppServerUrl based on app and account-info.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ClientToken + // CloudFormation resource type schema: + // + // { + // "description": "The client token for the PartnerApp.", + // "maxLength": 36, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-]+$", + // "type": "string" + // } + "client_token": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The client token for the PartnerApp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnableIamSessionBasedIdentity + // CloudFormation resource type schema: + // + // { + // "description": "Enables IAM Session based Identity for PartnerApp.", + // "type": "boolean" + // } + "enable_iam_session_based_identity": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Enables IAM Session based Identity for PartnerApp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ExecutionRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The execution role for the user.", + // "maxLength": 2048, + // "minLength": 20, + // "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + // "type": "string" + // } + "execution_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The execution role for the user.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MaintenanceConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A collection of settings that specify the maintenance schedule for the PartnerApp.", + // "properties": { + // "MaintenanceWindowStart": { + // "description": "The maintenance window start day and time for the PartnerApp.", + // "maxLength": 9, + // "pattern": "(Mon|Tue|Wed|Thu|Fri|Sat|Sun):([01]\\d|2[0-3]):([0-5]\\d)", + // "type": "string" + // } + // }, + // "required": [ + // "MaintenanceWindowStart" + // ], + // "type": "object" + // } + "maintenance_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaintenanceWindowStart + "maintenance_window_start": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The maintenance window start day and time for the PartnerApp.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A collection of settings that specify the maintenance schedule for the PartnerApp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "A name for the PartnerApp.", + // "maxLength": 256, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9]+", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A name for the PartnerApp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "A list of tags to apply to the PartnerApp.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of tags to apply to the PartnerApp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tier + // CloudFormation resource type schema: + // + // { + // "description": "The tier of the PartnerApp.", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // } + "tier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The tier of the PartnerApp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "description": "The type of PartnerApp.", + // "enum": [ + // "lakera-guard", + // "comet", + // "deepchecks-llm-evaluation", + // "fiddler" + // ], + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of PartnerApp.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::SageMaker::PartnerApp", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::SageMaker::PartnerApp").WithTerraformTypeName("awscc_sagemaker_partner_app") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "admin_users": "AdminUsers", + "application_config": "ApplicationConfig", + "arguments": "Arguments", + "arn": "Arn", + "auth_type": "AuthType", + "base_url": "BaseUrl", + "client_token": "ClientToken", + "enable_iam_session_based_identity": "EnableIamSessionBasedIdentity", + "execution_role_arn": "ExecutionRoleArn", + "key": "Key", + "maintenance_config": "MaintenanceConfig", + "maintenance_window_start": "MaintenanceWindowStart", + "name": "Name", + "tags": "Tags", + "tier": "Tier", + "type": "Type", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/sagemaker/partner_app_singular_data_source_gen_test.go b/internal/aws/sagemaker/partner_app_singular_data_source_gen_test.go new file mode 100644 index 000000000..76ebf241e --- /dev/null +++ b/internal/aws/sagemaker/partner_app_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package sagemaker_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSSageMakerPartnerAppDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SageMaker::PartnerApp", "awscc_sagemaker_partner_app", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSSageMakerPartnerAppDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SageMaker::PartnerApp", "awscc_sagemaker_partner_app", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/sagemaker/space_resource_gen.go b/internal/aws/sagemaker/space_resource_gen.go index 9ea52d7ee..05aa0f482 100644 --- a/internal/aws/sagemaker/space_resource_gen.go +++ b/internal/aws/sagemaker/space_resource_gen.go @@ -301,6 +301,21 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { // "FileSystemId" // ], // "type": "object" + // }, + // "FSxLustreFileSystem": { + // "additionalProperties": false, + // "properties": { + // "FileSystemId": { + // "maxLength": 21, + // "minLength": 11, + // "pattern": "^(fs-[0-9a-f]{8,})$", + // "type": "string" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" // } // }, // "type": "object" @@ -954,6 +969,29 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: FSxLustreFileSystem + "fsx_lustre_file_system": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(11, 21), + stringvalidator.RegexMatches(regexp.MustCompile("^(fs-[0-9a-f]{8,})$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Optional: true, @@ -1731,6 +1769,7 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { "ebs_volume_size_in_gb": "EbsVolumeSizeInGb", "efs_file_system": "EFSFileSystem", "file_system_id": "FileSystemId", + "fsx_lustre_file_system": "FSxLustreFileSystem", "idle_settings": "IdleSettings", "idle_timeout_in_minutes": "IdleTimeoutInMinutes", "image_name": "ImageName", diff --git a/internal/aws/sagemaker/space_singular_data_source_gen.go b/internal/aws/sagemaker/space_singular_data_source_gen.go index 16b150d7d..ea75af433 100644 --- a/internal/aws/sagemaker/space_singular_data_source_gen.go +++ b/internal/aws/sagemaker/space_singular_data_source_gen.go @@ -254,6 +254,21 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { // "FileSystemId" // ], // "type": "object" + // }, + // "FSxLustreFileSystem": { + // "additionalProperties": false, + // "properties": { + // "FileSystemId": { + // "maxLength": 21, + // "minLength": 11, + // "pattern": "^(fs-[0-9a-f]{8,})$", + // "type": "string" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" // } // }, // "type": "object" @@ -761,6 +776,16 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: FSxLustreFileSystem + "fsx_lustre_file_system": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Computed: true, @@ -1069,6 +1094,7 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { "ebs_volume_size_in_gb": "EbsVolumeSizeInGb", "efs_file_system": "EFSFileSystem", "file_system_id": "FileSystemId", + "fsx_lustre_file_system": "FSxLustreFileSystem", "idle_settings": "IdleSettings", "idle_timeout_in_minutes": "IdleTimeoutInMinutes", "image_name": "ImageName", diff --git a/internal/aws/sagemaker/user_profile_resource_gen.go b/internal/aws/sagemaker/user_profile_resource_gen.go index 2976e6c6b..25e60da66 100644 --- a/internal/aws/sagemaker/user_profile_resource_gen.go +++ b/internal/aws/sagemaker/user_profile_resource_gen.go @@ -420,6 +420,27 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { // "FileSystemId" // ], // "type": "object" + // }, + // "FSxLustreFileSystemConfig": { + // "additionalProperties": false, + // "properties": { + // "FileSystemId": { + // "maxLength": 21, + // "minLength": 11, + // "pattern": "^(fs-[0-9a-f]{8,})$", + // "type": "string" + // }, + // "FileSystemPath": { + // "maxLength": 256, + // "minLength": 1, + // "pattern": "^\\/\\S*$", + // "type": "string" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" // } // }, // "type": "object" @@ -1414,6 +1435,41 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: FSxLustreFileSystemConfig + "fsx_lustre_file_system_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(11, 21), + stringvalidator.RegexMatches(regexp.MustCompile("^(fs-[0-9a-f]{8,})$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FileSystemPath + "file_system_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + stringvalidator.RegexMatches(regexp.MustCompile("^\\/\\S*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Optional: true, @@ -2451,6 +2507,7 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { "execution_role": "ExecutionRole", "file_system_id": "FileSystemId", "file_system_path": "FileSystemPath", + "fsx_lustre_file_system_config": "FSxLustreFileSystemConfig", "gid": "Gid", "hidden_app_types": "HiddenAppTypes", "hidden_ml_tools": "HiddenMlTools", diff --git a/internal/aws/sagemaker/user_profile_singular_data_source_gen.go b/internal/aws/sagemaker/user_profile_singular_data_source_gen.go index eabf4400c..b43fca6ba 100644 --- a/internal/aws/sagemaker/user_profile_singular_data_source_gen.go +++ b/internal/aws/sagemaker/user_profile_singular_data_source_gen.go @@ -351,6 +351,27 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { // "FileSystemId" // ], // "type": "object" + // }, + // "FSxLustreFileSystemConfig": { + // "additionalProperties": false, + // "properties": { + // "FileSystemId": { + // "maxLength": 21, + // "minLength": 11, + // "pattern": "^(fs-[0-9a-f]{8,})$", + // "type": "string" + // }, + // "FileSystemPath": { + // "maxLength": 256, + // "minLength": 1, + // "pattern": "^\\/\\S*$", + // "type": "string" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" // } // }, // "type": "object" @@ -1139,6 +1160,20 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: FSxLustreFileSystemConfig + "fsx_lustre_file_system_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FileSystemPath + "file_system_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Computed: true, @@ -1511,6 +1546,7 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { "execution_role": "ExecutionRole", "file_system_id": "FileSystemId", "file_system_path": "FileSystemPath", + "fsx_lustre_file_system_config": "FSxLustreFileSystemConfig", "gid": "Gid", "hidden_app_types": "HiddenAppTypes", "hidden_ml_tools": "HiddenMlTools", diff --git a/internal/aws/ses/configuration_set_resource_gen.go b/internal/aws/ses/configuration_set_resource_gen.go index f30ab8afc..4e60aee78 100644 --- a/internal/aws/ses/configuration_set_resource_gen.go +++ b/internal/aws/ses/configuration_set_resource_gen.go @@ -246,6 +246,11 @@ func configurationSetResource(ctx context.Context) (resource.Resource, error) { // "CustomRedirectDomain": { // "description": "The domain to use for tracking open and click events.", // "type": "string" + // }, + // "HttpsPolicy": { + // "description": "The https policy to use for tracking open and click events.", + // "pattern": "REQUIRE|REQUIRE_OPEN_ONLY|OPTIONAL", + // "type": "string" // } // }, // "type": "object" @@ -261,6 +266,18 @@ func configurationSetResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: HttpsPolicy + "https_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The https policy to use for tracking open and click events.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("REQUIRE|REQUIRE_OPEN_ONLY|OPTIONAL"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "An object that defines the open and click tracking options for emails that you send using the configuration set.", Optional: true, @@ -394,6 +411,7 @@ func configurationSetResource(ctx context.Context) (resource.Resource, error) { "delivery_options": "DeliveryOptions", "engagement_metrics": "EngagementMetrics", "guardian_options": "GuardianOptions", + "https_policy": "HttpsPolicy", "max_delivery_seconds": "MaxDeliverySeconds", "name": "Name", "optimized_shared_delivery": "OptimizedSharedDelivery", diff --git a/internal/aws/ses/configuration_set_singular_data_source_gen.go b/internal/aws/ses/configuration_set_singular_data_source_gen.go index aac801185..202456e00 100644 --- a/internal/aws/ses/configuration_set_singular_data_source_gen.go +++ b/internal/aws/ses/configuration_set_singular_data_source_gen.go @@ -174,6 +174,11 @@ func configurationSetDataSource(ctx context.Context) (datasource.DataSource, err // "CustomRedirectDomain": { // "description": "The domain to use for tracking open and click events.", // "type": "string" + // }, + // "HttpsPolicy": { + // "description": "The https policy to use for tracking open and click events.", + // "pattern": "REQUIRE|REQUIRE_OPEN_ONLY|OPTIONAL", + // "type": "string" // } // }, // "type": "object" @@ -185,6 +190,11 @@ func configurationSetDataSource(ctx context.Context) (datasource.DataSource, err Description: "The domain to use for tracking open and click events.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: HttpsPolicy + "https_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The https policy to use for tracking open and click events.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "An object that defines the open and click tracking options for emails that you send using the configuration set.", Computed: true, @@ -281,6 +291,7 @@ func configurationSetDataSource(ctx context.Context) (datasource.DataSource, err "delivery_options": "DeliveryOptions", "engagement_metrics": "EngagementMetrics", "guardian_options": "GuardianOptions", + "https_policy": "HttpsPolicy", "max_delivery_seconds": "MaxDeliverySeconds", "name": "Name", "optimized_shared_delivery": "OptimizedSharedDelivery", diff --git a/internal/aws/ses/mail_manager_rule_set_resource_gen.go b/internal/aws/ses/mail_manager_rule_set_resource_gen.go index aff6aada8..5d6d935ae 100644 --- a/internal/aws/ses/mail_manager_rule_set_resource_gen.go +++ b/internal/aws/ses/mail_manager_rule_set_resource_gen.go @@ -162,6 +162,42 @@ func mailManagerRuleSetResource(ctx context.Context) (resource.Resource, error) // ], // "type": "object" // }, + // "DeliverToQBusiness": { + // "additionalProperties": false, + // "properties": { + // "ActionFailurePolicy": { + // "enum": [ + // "CONTINUE", + // "DROP" + // ], + // "type": "string" + // }, + // "ApplicationId": { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "^[a-z0-9-]+$", + // "type": "string" + // }, + // "IndexId": { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "^[a-z0-9-]+$", + // "type": "string" + // }, + // "RoleArn": { + // "maxLength": 2048, + // "minLength": 20, + // "pattern": "^[a-zA-Z0-9:_/+=,@.#-]+$", + // "type": "string" + // } + // }, + // "required": [ + // "ApplicationId", + // "IndexId", + // "RoleArn" + // ], + // "type": "object" + // }, // "Drop": { // "additionalProperties": false, // "type": "object" @@ -954,6 +990,69 @@ func mailManagerRuleSetResource(ctx context.Context) (resource.Resource, error) objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: DeliverToQBusiness + "deliver_to_q_business": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ActionFailurePolicy + "action_failure_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "CONTINUE", + "DROP", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ApplicationId + "application_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(36, 36), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9-]+$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: IndexId + "index_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(36, 36), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9-]+$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RoleArn + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(20, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9:_/+=,@.#-]+$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Drop "drop": schema.StringAttribute{ /*START ATTRIBUTE*/ CustomType: jsontypes.NormalizedType{}, @@ -2161,16 +2260,19 @@ func mailManagerRuleSetResource(ctx context.Context) (resource.Resource, error) "add_header": "AddHeader", "analysis": "Analysis", "analyzer": "Analyzer", + "application_id": "ApplicationId", "archive": "Archive", "attribute": "Attribute", "boolean_expression": "BooleanExpression", "conditions": "Conditions", "deliver_to_mailbox": "DeliverToMailbox", + "deliver_to_q_business": "DeliverToQBusiness", "dmarc_expression": "DmarcExpression", "drop": "Drop", "evaluate": "Evaluate", "header_name": "HeaderName", "header_value": "HeaderValue", + "index_id": "IndexId", "ip_expression": "IpExpression", "key": "Key", "mail_from": "MailFrom", diff --git a/internal/aws/ses/mail_manager_rule_set_singular_data_source_gen.go b/internal/aws/ses/mail_manager_rule_set_singular_data_source_gen.go index 27153db64..709292ac8 100644 --- a/internal/aws/ses/mail_manager_rule_set_singular_data_source_gen.go +++ b/internal/aws/ses/mail_manager_rule_set_singular_data_source_gen.go @@ -138,6 +138,42 @@ func mailManagerRuleSetDataSource(ctx context.Context) (datasource.DataSource, e // ], // "type": "object" // }, + // "DeliverToQBusiness": { + // "additionalProperties": false, + // "properties": { + // "ActionFailurePolicy": { + // "enum": [ + // "CONTINUE", + // "DROP" + // ], + // "type": "string" + // }, + // "ApplicationId": { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "^[a-z0-9-]+$", + // "type": "string" + // }, + // "IndexId": { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "^[a-z0-9-]+$", + // "type": "string" + // }, + // "RoleArn": { + // "maxLength": 2048, + // "minLength": 20, + // "pattern": "^[a-zA-Z0-9:_/+=,@.#-]+$", + // "type": "string" + // } + // }, + // "required": [ + // "ApplicationId", + // "IndexId", + // "RoleArn" + // ], + // "type": "object" + // }, // "Drop": { // "additionalProperties": false, // "type": "object" @@ -854,6 +890,28 @@ func mailManagerRuleSetDataSource(ctx context.Context) (datasource.DataSource, e }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: DeliverToQBusiness + "deliver_to_q_business": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ActionFailurePolicy + "action_failure_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ApplicationId + "application_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IndexId + "index_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RoleArn + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Drop "drop": schema.StringAttribute{ /*START ATTRIBUTE*/ CustomType: jsontypes.NormalizedType{}, @@ -1327,16 +1385,19 @@ func mailManagerRuleSetDataSource(ctx context.Context) (datasource.DataSource, e "add_header": "AddHeader", "analysis": "Analysis", "analyzer": "Analyzer", + "application_id": "ApplicationId", "archive": "Archive", "attribute": "Attribute", "boolean_expression": "BooleanExpression", "conditions": "Conditions", "deliver_to_mailbox": "DeliverToMailbox", + "deliver_to_q_business": "DeliverToQBusiness", "dmarc_expression": "DmarcExpression", "drop": "Drop", "evaluate": "Evaluate", "header_name": "HeaderName", "header_value": "HeaderValue", + "index_id": "IndexId", "ip_expression": "IpExpression", "key": "Key", "mail_from": "MailFrom", diff --git a/internal/aws/ssmquicksetup/configuration_manager_resource_gen.go b/internal/aws/ssmquicksetup/configuration_manager_resource_gen.go index a4cedbd5b..75e71d33f 100644 --- a/internal/aws/ssmquicksetup/configuration_manager_resource_gen.go +++ b/internal/aws/ssmquicksetup/configuration_manager_resource_gen.go @@ -300,7 +300,7 @@ func configurationManagerResource(ctx context.Context) (resource.Resource, error // "": { // "maxLength": 256, // "minLength": 1, - // "pattern": "^[A-Za-z0-9+=@_\\/:.-]+$", + // "pattern": "^[A-Za-z0-9 +=@_\\/:.-]+$", // "type": "string" // } // }, diff --git a/internal/aws/ssmquicksetup/configuration_manager_singular_data_source_gen.go b/internal/aws/ssmquicksetup/configuration_manager_singular_data_source_gen.go index 606099fb4..331d2c83f 100644 --- a/internal/aws/ssmquicksetup/configuration_manager_singular_data_source_gen.go +++ b/internal/aws/ssmquicksetup/configuration_manager_singular_data_source_gen.go @@ -241,7 +241,7 @@ func configurationManagerDataSource(ctx context.Context) (datasource.DataSource, // "": { // "maxLength": 256, // "minLength": 1, - // "pattern": "^[A-Za-z0-9+=@_\\/:.-]+$", + // "pattern": "^[A-Za-z0-9 +=@_\\/:.-]+$", // "type": "string" // } // }, diff --git a/internal/aws/synthetics/canary_resource_gen.go b/internal/aws/synthetics/canary_resource_gen.go index eb28b4c88..ff1192378 100644 --- a/internal/aws/synthetics/canary_resource_gen.go +++ b/internal/aws/synthetics/canary_resource_gen.go @@ -591,6 +591,10 @@ func canaryResource(ctx context.Context) (resource.Resource, error) { // "additionalProperties": false, // "description": "Provide VPC Configuration if enabled.", // "properties": { + // "Ipv6AllowedForDualStack": { + // "description": "Allow outbound IPv6 traffic on VPC canaries that are connected to dual-stack subnets if set to true", + // "type": "boolean" + // }, // "SecurityGroupIds": { // "items": { // "type": "string" @@ -615,6 +619,15 @@ func canaryResource(ctx context.Context) (resource.Resource, error) { // } "vpc_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Ipv6AllowedForDualStack + "ipv_6_allowed_for_dual_stack": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Allow outbound IPv6 traffic on VPC canaries that are connected to dual-stack subnets if set to true", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: SecurityGroupIds "security_group_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, @@ -792,6 +805,7 @@ func canaryResource(ctx context.Context) (resource.Resource, error) { "failure_retention_period": "FailureRetentionPeriod", "handler": "Handler", "ignore_coordinates": "IgnoreCoordinates", + "ipv_6_allowed_for_dual_stack": "Ipv6AllowedForDualStack", "key": "Key", "kms_key_arn": "KmsKeyArn", "memory_in_mb": "MemoryInMB", diff --git a/internal/aws/synthetics/canary_singular_data_source_gen.go b/internal/aws/synthetics/canary_singular_data_source_gen.go index 3b1aca959..420545887 100644 --- a/internal/aws/synthetics/canary_singular_data_source_gen.go +++ b/internal/aws/synthetics/canary_singular_data_source_gen.go @@ -439,6 +439,10 @@ func canaryDataSource(ctx context.Context) (datasource.DataSource, error) { // "additionalProperties": false, // "description": "Provide VPC Configuration if enabled.", // "properties": { + // "Ipv6AllowedForDualStack": { + // "description": "Allow outbound IPv6 traffic on VPC canaries that are connected to dual-stack subnets if set to true", + // "type": "boolean" + // }, // "SecurityGroupIds": { // "items": { // "type": "string" @@ -463,6 +467,11 @@ func canaryDataSource(ctx context.Context) (datasource.DataSource, error) { // } "vpc_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Ipv6AllowedForDualStack + "ipv_6_allowed_for_dual_stack": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Allow outbound IPv6 traffic on VPC canaries that are connected to dual-stack subnets if set to true", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: SecurityGroupIds "security_group_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, @@ -586,6 +595,7 @@ func canaryDataSource(ctx context.Context) (datasource.DataSource, error) { "failure_retention_period": "FailureRetentionPeriod", "handler": "Handler", "ignore_coordinates": "IgnoreCoordinates", + "ipv_6_allowed_for_dual_stack": "Ipv6AllowedForDualStack", "key": "Key", "kms_key_arn": "KmsKeyArn", "memory_in_mb": "MemoryInMB", diff --git a/internal/aws/voiceid/domain_resource_gen.go b/internal/aws/voiceid/domain_resource_gen.go index ea567380a..cb9209ff0 100644 --- a/internal/aws/voiceid/domain_resource_gen.go +++ b/internal/aws/voiceid/domain_resource_gen.go @@ -49,7 +49,6 @@ func domainResource(ctx context.Context) (resource.Resource, error) { PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ - // Description is a write-only property. }, /*END ATTRIBUTE*/ // Property: DomainId // CloudFormation resource type schema: @@ -81,7 +80,6 @@ func domainResource(ctx context.Context) (resource.Resource, error) { stringvalidator.LengthBetween(1, 256), stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9][a-zA-Z0-9_-]*$"), ""), }, /*END VALIDATORS*/ - // Name is a write-only property. }, /*END ATTRIBUTE*/ // Property: ServerSideEncryptionConfiguration // CloudFormation resource type schema: @@ -111,7 +109,6 @@ func domainResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Required: true, - // ServerSideEncryptionConfiguration is a write-only property. }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: @@ -217,11 +214,6 @@ func domainResource(ctx context.Context) (resource.Resource, error) { "value": "Value", }) - opts = opts.WithWriteOnlyPropertyPaths([]string{ - "/properties/Description", - "/properties/Name", - "/properties/ServerSideEncryptionConfiguration", - }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) opts = opts.WithUpdateTimeoutInMinutes(0) diff --git a/internal/aws/vpclattice/resource_configuration_resource_gen.go b/internal/aws/vpclattice/resource_configuration_resource_gen.go index 1b706e56e..f9fdfaffd 100644 --- a/internal/aws/vpclattice/resource_configuration_resource_gen.go +++ b/internal/aws/vpclattice/resource_configuration_resource_gen.go @@ -179,7 +179,7 @@ func resourceConfigurationResource(ctx context.Context) (resource.Resource, erro // "properties": { // "ArnResource": { // "maxLength": 1224, - // "pattern": "", + // "pattern": "^arn.*", // "type": "string" // }, // "DnsResource": { @@ -221,6 +221,7 @@ func resourceConfigurationResource(ctx context.Context) (resource.Resource, erro Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthAtMost(1224), + stringvalidator.RegexMatches(regexp.MustCompile("^arn.*"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/vpclattice/resource_configuration_singular_data_source_gen.go b/internal/aws/vpclattice/resource_configuration_singular_data_source_gen.go index 8385d6a7e..2505e8e79 100644 --- a/internal/aws/vpclattice/resource_configuration_singular_data_source_gen.go +++ b/internal/aws/vpclattice/resource_configuration_singular_data_source_gen.go @@ -117,7 +117,7 @@ func resourceConfigurationDataSource(ctx context.Context) (datasource.DataSource // "properties": { // "ArnResource": { // "maxLength": 1224, - // "pattern": "", + // "pattern": "^arn.*", // "type": "string" // }, // "DnsResource": { diff --git a/internal/aws/wisdom/ai_agent_resource_gen.go b/internal/aws/wisdom/ai_agent_resource_gen.go index 49314fad8..d4ffac18c 100644 --- a/internal/aws/wisdom/ai_agent_resource_gen.go +++ b/internal/aws/wisdom/ai_agent_resource_gen.go @@ -1445,6 +1445,18 @@ func aIAgentResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ModifiedTimeSeconds + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "modified_time_seconds": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // @@ -1556,6 +1568,7 @@ func aIAgentResource(ctx context.Context) (resource.Resource, error) { "knowledge_base_association_configuration_data": "KnowledgeBaseAssociationConfigurationData", "manual_search_ai_agent_configuration": "ManualSearchAIAgentConfiguration", "max_results": "MaxResults", + "modified_time_seconds": "ModifiedTimeSeconds", "name": "Name", "or_conditions": "OrConditions", "override_knowledge_base_search_type": "OverrideKnowledgeBaseSearchType", diff --git a/internal/aws/wisdom/ai_agent_singular_data_source_gen.go b/internal/aws/wisdom/ai_agent_singular_data_source_gen.go index 69da56963..c4374a5fb 100644 --- a/internal/aws/wisdom/ai_agent_singular_data_source_gen.go +++ b/internal/aws/wisdom/ai_agent_singular_data_source_gen.go @@ -949,6 +949,15 @@ func aIAgentDataSource(ctx context.Context) (datasource.DataSource, error) { "description": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: ModifiedTimeSeconds + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "modified_time_seconds": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // @@ -1031,6 +1040,7 @@ func aIAgentDataSource(ctx context.Context) (datasource.DataSource, error) { "knowledge_base_association_configuration_data": "KnowledgeBaseAssociationConfigurationData", "manual_search_ai_agent_configuration": "ManualSearchAIAgentConfiguration", "max_results": "MaxResults", + "modified_time_seconds": "ModifiedTimeSeconds", "name": "Name", "or_conditions": "OrConditions", "override_knowledge_base_search_type": "OverrideKnowledgeBaseSearchType", diff --git a/internal/aws/wisdom/ai_prompt_resource_gen.go b/internal/aws/wisdom/ai_prompt_resource_gen.go index 2a94f8c06..70eb50cf0 100644 --- a/internal/aws/wisdom/ai_prompt_resource_gen.go +++ b/internal/aws/wisdom/ai_prompt_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/mapplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" @@ -147,6 +148,18 @@ func aIPromptResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ModifiedTimeSeconds + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "modified_time_seconds": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // @@ -318,6 +331,7 @@ func aIPromptResource(ctx context.Context) (resource.Resource, error) { "assistant_id": "AssistantId", "description": "Description", "model_id": "ModelId", + "modified_time_seconds": "ModifiedTimeSeconds", "name": "Name", "tags": "Tags", "template_configuration": "TemplateConfiguration", diff --git a/internal/aws/wisdom/ai_prompt_singular_data_source_gen.go b/internal/aws/wisdom/ai_prompt_singular_data_source_gen.go index c79b473a4..ecb14e5e1 100644 --- a/internal/aws/wisdom/ai_prompt_singular_data_source_gen.go +++ b/internal/aws/wisdom/ai_prompt_singular_data_source_gen.go @@ -99,6 +99,15 @@ func aIPromptDataSource(ctx context.Context) (datasource.DataSource, error) { "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: ModifiedTimeSeconds + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "modified_time_seconds": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // @@ -219,6 +228,7 @@ func aIPromptDataSource(ctx context.Context) (datasource.DataSource, error) { "assistant_id": "AssistantId", "description": "Description", "model_id": "ModelId", + "modified_time_seconds": "ModifiedTimeSeconds", "name": "Name", "tags": "Tags", "template_configuration": "TemplateConfiguration", diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index 49436c783..cfb0fc9a4 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" } -# 1121 CloudFormation resource types schemas are available for use with the Cloud Control API. +# 1129 CloudFormation resource types schemas are available for use with the Cloud Control API. resource_schema "aws_acmpca_certificate" { cloudformation_type_name = "AWS::ACMPCA::Certificate" @@ -273,6 +273,11 @@ resource_schema "aws_appconfig_configuration_profile" { suppress_plural_data_source_generation = true } +resource_schema "aws_appconfig_deployment" { + cloudformation_type_name = "AWS::AppConfig::Deployment" + suppress_plural_data_source_generation = true +} + resource_schema "aws_appconfig_deployment_strategy" { cloudformation_type_name = "AWS::AppConfig::DeploymentStrategy" } @@ -812,6 +817,10 @@ resource_schema "aws_cloudformation_type_activation" { cloudformation_type_name = "AWS::CloudFormation::TypeActivation" } +resource_schema "aws_cloudfront_anycast_ip_list" { + cloudformation_type_name = "AWS::CloudFront::AnycastIpList" +} + resource_schema "aws_cloudfront_cache_policy" { cloudformation_type_name = "AWS::CloudFront::CachePolicy" } @@ -1266,6 +1275,11 @@ resource_schema "aws_customerprofiles_event_stream" { suppress_plural_data_source_generation = true } +resource_schema "aws_customerprofiles_event_trigger" { + cloudformation_type_name = "AWS::CustomerProfiles::EventTrigger" + suppress_plural_data_source_generation = true +} + resource_schema "aws_customerprofiles_integration" { cloudformation_type_name = "AWS::CustomerProfiles::Integration" suppress_plural_data_source_generation = true @@ -2264,11 +2278,6 @@ resource_schema "aws_gamelift_container_fleet" { resource_schema "aws_gamelift_container_group_definition" { cloudformation_type_name = "AWS::GameLift::ContainerGroupDefinition" - - # Latest schema updates are suppressed. - # git checkout internal/service/cloudformation/schemas/AWS_GameLift_ContainerGroupDefinition.json - # Suppression Reason: set of unknown type - # https://github.com/hashicorp/terraform-provider-awscc/issues/2069 } resource_schema "aws_gamelift_fleet" { @@ -3837,6 +3846,10 @@ resource_schema "aws_quicksight_analysis" { # https://github.com/hashicorp/terraform-provider-awscc/issues/1531 } +resource_schema "aws_quicksight_custom_permissions" { + cloudformation_type_name = "AWS::QuickSight::CustomPermissions" +} + resource_schema "aws_quicksight_dashboard" { cloudformation_type_name = "AWS::QuickSight::Dashboard" suppress_plural_data_source_generation = true @@ -4559,6 +4572,10 @@ resource_schema "aws_sagemaker_monitoring_schedule" { cloudformation_type_name = "AWS::SageMaker::MonitoringSchedule" } +resource_schema "aws_sagemaker_partner_app" { + cloudformation_type_name = "AWS::SageMaker::PartnerApp" +} + resource_schema "aws_sagemaker_pipeline" { cloudformation_type_name = "AWS::SageMaker::Pipeline" } diff --git a/internal/provider/generators/allschemas/available_schemas.2025-01-08.hcl b/internal/provider/generators/allschemas/available_schemas.2025-01-08.hcl new file mode 100644 index 000000000..aa2f1f14f --- /dev/null +++ b/internal/provider/generators/allschemas/available_schemas.2025-01-08.hcl @@ -0,0 +1,4799 @@ +# 1129 CloudFormation resource types schemas are available for use with the Cloud Control API. + +resource_schema "aws_acmpca_certificate" { + cloudformation_type_name = "AWS::ACMPCA::Certificate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_certificate_authority" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthority" +} + +resource_schema "aws_acmpca_certificate_authority_activation" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthorityActivation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_permission" { + cloudformation_type_name = "AWS::ACMPCA::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_rule_groups_namespace" { + cloudformation_type_name = "AWS::APS::RuleGroupsNamespace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_scraper" { + cloudformation_type_name = "AWS::APS::Scraper" +} + +resource_schema "aws_aps_workspace" { + cloudformation_type_name = "AWS::APS::Workspace" +} + +resource_schema "aws_arczonalshift_autoshift_observer_notification_status" { + cloudformation_type_name = "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus" +} + +resource_schema "aws_arczonalshift_zonal_autoshift_configuration" { + cloudformation_type_name = "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} + +resource_schema "aws_accessanalyzer_analyzer" { + cloudformation_type_name = "AWS::AccessAnalyzer::Analyzer" +} + +resource_schema "aws_amazonmq_configuration" { + cloudformation_type_name = "AWS::AmazonMQ::Configuration" +} + +resource_schema "aws_amplify_app" { + cloudformation_type_name = "AWS::Amplify::App" +} + +resource_schema "aws_amplify_branch" { + cloudformation_type_name = "AWS::Amplify::Branch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplify_domain" { + cloudformation_type_name = "AWS::Amplify::Domain" +} + +resource_schema "aws_amplifyuibuilder_component" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_form" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Form" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_theme" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_account" { + cloudformation_type_name = "AWS::ApiGateway::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_api_key" { + cloudformation_type_name = "AWS::ApiGateway::ApiKey" +} + +resource_schema "aws_apigateway_authorizer" { + cloudformation_type_name = "AWS::ApiGateway::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_base_path_mapping" { + cloudformation_type_name = "AWS::ApiGateway::BasePathMapping" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_base_path_mapping_v2" { + cloudformation_type_name = "AWS::ApiGateway::BasePathMappingV2" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_client_certificate" { + cloudformation_type_name = "AWS::ApiGateway::ClientCertificate" +} + +resource_schema "aws_apigateway_deployment" { + cloudformation_type_name = "AWS::ApiGateway::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_part" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationPart" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_version" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_domain_name" { + cloudformation_type_name = "AWS::ApiGateway::DomainName" +} + +resource_schema "aws_apigateway_domain_name_access_association" { + cloudformation_type_name = "AWS::ApiGateway::DomainNameAccessAssociation" +} + +resource_schema "aws_apigateway_domain_name_v2" { + cloudformation_type_name = "AWS::ApiGateway::DomainNameV2" +} + +resource_schema "aws_apigateway_gateway_response" { + cloudformation_type_name = "AWS::ApiGateway::GatewayResponse" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_method" { + cloudformation_type_name = "AWS::ApiGateway::Method" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_model" { + cloudformation_type_name = "AWS::ApiGateway::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_request_validator" { + cloudformation_type_name = "AWS::ApiGateway::RequestValidator" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_resource" { + cloudformation_type_name = "AWS::ApiGateway::Resource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_rest_api" { + cloudformation_type_name = "AWS::ApiGateway::RestApi" +} + +resource_schema "aws_apigateway_stage" { + cloudformation_type_name = "AWS::ApiGateway::Stage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_usage_plan" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlan" +} + +resource_schema "aws_apigateway_usage_plan_key" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlanKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_vpc_link" { + cloudformation_type_name = "AWS::ApiGateway::VpcLink" +} + +resource_schema "aws_apigatewayv2_api" { + cloudformation_type_name = "AWS::ApiGatewayV2::Api" +} + +resource_schema "aws_apigatewayv2_api_mapping" { + cloudformation_type_name = "AWS::ApiGatewayV2::ApiMapping" +} + +resource_schema "aws_apigatewayv2_authorizer" { + cloudformation_type_name = "AWS::ApiGatewayV2::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_deployment" { + cloudformation_type_name = "AWS::ApiGatewayV2::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_domain_name" { + cloudformation_type_name = "AWS::ApiGatewayV2::DomainName" +} + +resource_schema "aws_apigatewayv2_integration" { + cloudformation_type_name = "AWS::ApiGatewayV2::Integration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_integration_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::IntegrationResponse" +} + +resource_schema "aws_apigatewayv2_model" { + cloudformation_type_name = "AWS::ApiGatewayV2::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route" { + cloudformation_type_name = "AWS::ApiGatewayV2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::RouteResponse" +} + +resource_schema "aws_apigatewayv2_vpc_link" { + cloudformation_type_name = "AWS::ApiGatewayV2::VpcLink" +} + +resource_schema "aws_appconfig_application" { + cloudformation_type_name = "AWS::AppConfig::Application" +} + +resource_schema "aws_appconfig_configuration_profile" { + cloudformation_type_name = "AWS::AppConfig::ConfigurationProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_deployment" { + cloudformation_type_name = "AWS::AppConfig::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_deployment_strategy" { + cloudformation_type_name = "AWS::AppConfig::DeploymentStrategy" +} + +resource_schema "aws_appconfig_environment" { + cloudformation_type_name = "AWS::AppConfig::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_extension" { + cloudformation_type_name = "AWS::AppConfig::Extension" +} + +resource_schema "aws_appconfig_extension_association" { + cloudformation_type_name = "AWS::AppConfig::ExtensionAssociation" +} + +resource_schema "aws_appconfig_hosted_configuration_version" { + cloudformation_type_name = "AWS::AppConfig::HostedConfigurationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appflow_connector" { + cloudformation_type_name = "AWS::AppFlow::Connector" +} + +resource_schema "aws_appflow_connector_profile" { + cloudformation_type_name = "AWS::AppFlow::ConnectorProfile" +} + +resource_schema "aws_appflow_flow" { + cloudformation_type_name = "AWS::AppFlow::Flow" +} + +resource_schema "aws_appintegrations_application" { + cloudformation_type_name = "AWS::AppIntegrations::Application" +} + +resource_schema "aws_appintegrations_data_integration" { + cloudformation_type_name = "AWS::AppIntegrations::DataIntegration" +} + +resource_schema "aws_appintegrations_event_integration" { + cloudformation_type_name = "AWS::AppIntegrations::EventIntegration" +} + +resource_schema "aws_apprunner_auto_scaling_configuration" { + cloudformation_type_name = "AWS::AppRunner::AutoScalingConfiguration" +} + +resource_schema "aws_apprunner_observability_configuration" { + cloudformation_type_name = "AWS::AppRunner::ObservabilityConfiguration" +} + +resource_schema "aws_apprunner_service" { + cloudformation_type_name = "AWS::AppRunner::Service" +} + +resource_schema "aws_apprunner_vpc_connector" { + cloudformation_type_name = "AWS::AppRunner::VpcConnector" +} + +resource_schema "aws_apprunner_vpc_ingress_connection" { + cloudformation_type_name = "AWS::AppRunner::VpcIngressConnection" +} + +resource_schema "aws_appstream_app_block" { + cloudformation_type_name = "AWS::AppStream::AppBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_app_block_builder" { + cloudformation_type_name = "AWS::AppStream::AppBlockBuilder" +} + +resource_schema "aws_appstream_application" { + cloudformation_type_name = "AWS::AppStream::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_entitlement_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationEntitlementAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_fleet_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_directory_config" { + cloudformation_type_name = "AWS::AppStream::DirectoryConfig" +} + +resource_schema "aws_appstream_entitlement" { + cloudformation_type_name = "AWS::AppStream::Entitlement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_image_builder" { + cloudformation_type_name = "AWS::AppStream::ImageBuilder" +} + +resource_schema "aws_appsync_api" { + cloudformation_type_name = "AWS::AppSync::Api" +} + +resource_schema "aws_appsync_channel_namespace" { + cloudformation_type_name = "AWS::AppSync::ChannelNamespace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_data_source" { + cloudformation_type_name = "AWS::AppSync::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_domain_name" { + cloudformation_type_name = "AWS::AppSync::DomainName" +} + +resource_schema "aws_appsync_domain_name_api_association" { + cloudformation_type_name = "AWS::AppSync::DomainNameApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_function_configuration" { + cloudformation_type_name = "AWS::AppSync::FunctionConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_graph_ql_api" { + cloudformation_type_name = "AWS::AppSync::GraphQLApi" +} + +resource_schema "aws_appsync_resolver" { + cloudformation_type_name = "AWS::AppSync::Resolver" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_source_api_association" { + cloudformation_type_name = "AWS::AppSync::SourceApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apptest_test_case" { + cloudformation_type_name = "AWS::AppTest::TestCase" +} + +resource_schema "aws_applicationautoscaling_scalable_target" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalableTarget" +} + +resource_schema "aws_applicationautoscaling_scaling_policy" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalingPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_applicationinsights_application" { + cloudformation_type_name = "AWS::ApplicationInsights::Application" +} + +resource_schema "aws_applicationsignals_service_level_objective" { + cloudformation_type_name = "AWS::ApplicationSignals::ServiceLevelObjective" +} + +resource_schema "aws_athena_capacity_reservation" { + cloudformation_type_name = "AWS::Athena::CapacityReservation" +} + +resource_schema "aws_athena_data_catalog" { + cloudformation_type_name = "AWS::Athena::DataCatalog" +} + +resource_schema "aws_athena_named_query" { + cloudformation_type_name = "AWS::Athena::NamedQuery" +} + +resource_schema "aws_athena_prepared_statement" { + cloudformation_type_name = "AWS::Athena::PreparedStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_athena_work_group" { + cloudformation_type_name = "AWS::Athena::WorkGroup" +} + +resource_schema "aws_auditmanager_assessment" { + cloudformation_type_name = "AWS::AuditManager::Assessment" +} + +resource_schema "aws_autoscaling_auto_scaling_group" { + cloudformation_type_name = "AWS::AutoScaling::AutoScalingGroup" +} + +resource_schema "aws_autoscaling_launch_configuration" { + cloudformation_type_name = "AWS::AutoScaling::LaunchConfiguration" +} + +resource_schema "aws_autoscaling_lifecycle_hook" { + cloudformation_type_name = "AWS::AutoScaling::LifecycleHook" +} + +resource_schema "aws_autoscaling_scaling_policy" { + cloudformation_type_name = "AWS::AutoScaling::ScalingPolicy" +} + +resource_schema "aws_autoscaling_scheduled_action" { + cloudformation_type_name = "AWS::AutoScaling::ScheduledAction" +} + +resource_schema "aws_autoscaling_warm_pool" { + cloudformation_type_name = "AWS::AutoScaling::WarmPool" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_b2bi_capability" { + cloudformation_type_name = "AWS::B2BI::Capability" +} + +resource_schema "aws_b2bi_partnership" { + cloudformation_type_name = "AWS::B2BI::Partnership" +} + +resource_schema "aws_b2bi_profile" { + cloudformation_type_name = "AWS::B2BI::Profile" +} + +resource_schema "aws_b2bi_transformer" { + cloudformation_type_name = "AWS::B2BI::Transformer" +} + +resource_schema "aws_bcmdataexports_export" { + cloudformation_type_name = "AWS::BCMDataExports::Export" +} + +resource_schema "aws_backup_backup_plan" { + cloudformation_type_name = "AWS::Backup::BackupPlan" +} + +resource_schema "aws_backup_backup_selection" { + cloudformation_type_name = "AWS::Backup::BackupSelection" +} + +resource_schema "aws_backup_backup_vault" { + cloudformation_type_name = "AWS::Backup::BackupVault" +} + +resource_schema "aws_backup_framework" { + cloudformation_type_name = "AWS::Backup::Framework" +} + +resource_schema "aws_backup_logically_air_gapped_backup_vault" { + cloudformation_type_name = "AWS::Backup::LogicallyAirGappedBackupVault" +} + +resource_schema "aws_backup_report_plan" { + cloudformation_type_name = "AWS::Backup::ReportPlan" +} + +resource_schema "aws_backup_restore_testing_plan" { + cloudformation_type_name = "AWS::Backup::RestoreTestingPlan" +} + +resource_schema "aws_backup_restore_testing_selection" { + cloudformation_type_name = "AWS::Backup::RestoreTestingSelection" +} + +resource_schema "aws_backupgateway_hypervisor" { + cloudformation_type_name = "AWS::BackupGateway::Hypervisor" +} + +resource_schema "aws_batch_compute_environment" { + cloudformation_type_name = "AWS::Batch::ComputeEnvironment" +} + +resource_schema "aws_batch_job_definition" { + cloudformation_type_name = "AWS::Batch::JobDefinition" +} + +resource_schema "aws_batch_job_queue" { + cloudformation_type_name = "AWS::Batch::JobQueue" +} + +resource_schema "aws_batch_scheduling_policy" { + cloudformation_type_name = "AWS::Batch::SchedulingPolicy" +} + +resource_schema "aws_bedrock_agent" { + cloudformation_type_name = "AWS::Bedrock::Agent" +} + +resource_schema "aws_bedrock_agent_alias" { + cloudformation_type_name = "AWS::Bedrock::AgentAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_application_inference_profile" { + cloudformation_type_name = "AWS::Bedrock::ApplicationInferenceProfile" +} + +resource_schema "aws_bedrock_data_source" { + cloudformation_type_name = "AWS::Bedrock::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow" { + cloudformation_type_name = "AWS::Bedrock::Flow" +} + +resource_schema "aws_bedrock_flow_alias" { + cloudformation_type_name = "AWS::Bedrock::FlowAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow_version" { + cloudformation_type_name = "AWS::Bedrock::FlowVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_guardrail" { + cloudformation_type_name = "AWS::Bedrock::Guardrail" +} + +resource_schema "aws_bedrock_guardrail_version" { + cloudformation_type_name = "AWS::Bedrock::GuardrailVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_knowledge_base" { + cloudformation_type_name = "AWS::Bedrock::KnowledgeBase" +} + +resource_schema "aws_bedrock_prompt" { + cloudformation_type_name = "AWS::Bedrock::Prompt" +} + +resource_schema "aws_bedrock_prompt_version" { + cloudformation_type_name = "AWS::Bedrock::PromptVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_billingconductor_billing_group" { + cloudformation_type_name = "AWS::BillingConductor::BillingGroup" +} + +resource_schema "aws_billingconductor_custom_line_item" { + cloudformation_type_name = "AWS::BillingConductor::CustomLineItem" +} + +resource_schema "aws_billingconductor_pricing_plan" { + cloudformation_type_name = "AWS::BillingConductor::PricingPlan" +} + +resource_schema "aws_billingconductor_pricing_rule" { + cloudformation_type_name = "AWS::BillingConductor::PricingRule" +} + +resource_schema "aws_budgets_budgets_action" { + cloudformation_type_name = "AWS::Budgets::BudgetsAction" +} + +resource_schema "aws_ce_anomaly_monitor" { + cloudformation_type_name = "AWS::CE::AnomalyMonitor" +} + +resource_schema "aws_ce_anomaly_subscription" { + cloudformation_type_name = "AWS::CE::AnomalySubscription" +} + +resource_schema "aws_ce_cost_category" { + cloudformation_type_name = "AWS::CE::CostCategory" +} + +resource_schema "aws_cur_report_definition" { + cloudformation_type_name = "AWS::CUR::ReportDefinition" +} + +resource_schema "aws_cassandra_keyspace" { + cloudformation_type_name = "AWS::Cassandra::Keyspace" +} + +resource_schema "aws_cassandra_table" { + cloudformation_type_name = "AWS::Cassandra::Table" +} + +resource_schema "aws_cassandra_type" { + cloudformation_type_name = "AWS::Cassandra::Type" +} + +resource_schema "aws_certificatemanager_account" { + cloudformation_type_name = "AWS::CertificateManager::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_chatbot_custom_action" { + cloudformation_type_name = "AWS::Chatbot::CustomAction" +} + +resource_schema "aws_chatbot_microsoft_teams_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::MicrosoftTeamsChannelConfiguration" +} + +resource_schema "aws_chatbot_slack_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::SlackChannelConfiguration" +} + +resource_schema "aws_cleanrooms_analysis_template" { + cloudformation_type_name = "AWS::CleanRooms::AnalysisTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_collaboration" { + cloudformation_type_name = "AWS::CleanRooms::Collaboration" +} + +resource_schema "aws_cleanrooms_configured_table" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTable" +} + +resource_schema "aws_cleanrooms_configured_table_association" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_id_mapping_table" { + cloudformation_type_name = "AWS::CleanRooms::IdMappingTable" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_id_namespace_association" { + cloudformation_type_name = "AWS::CleanRooms::IdNamespaceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_membership" { + cloudformation_type_name = "AWS::CleanRooms::Membership" +} + +resource_schema "aws_cleanrooms_privacy_budget_template" { + cloudformation_type_name = "AWS::CleanRooms::PrivacyBudgetTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanroomsml_training_dataset" { + cloudformation_type_name = "AWS::CleanRoomsML::TrainingDataset" +} + +resource_schema "aws_cloudformation_guard_hook" { + cloudformation_type_name = "AWS::CloudFormation::GuardHook" +} + +resource_schema "aws_cloudformation_hook_default_version" { + cloudformation_type_name = "AWS::CloudFormation::HookDefaultVersion" +} + +resource_schema "aws_cloudformation_hook_type_config" { + cloudformation_type_name = "AWS::CloudFormation::HookTypeConfig" +} + +resource_schema "aws_cloudformation_hook_version" { + cloudformation_type_name = "AWS::CloudFormation::HookVersion" +} + +resource_schema "aws_cloudformation_lambda_hook" { + cloudformation_type_name = "AWS::CloudFormation::LambdaHook" +} + +resource_schema "aws_cloudformation_module_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleDefaultVersion" +} + +resource_schema "aws_cloudformation_module_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_public_type_version" { + cloudformation_type_name = "AWS::CloudFormation::PublicTypeVersion" +} + +resource_schema "aws_cloudformation_publisher" { + cloudformation_type_name = "AWS::CloudFormation::Publisher" +} + +resource_schema "aws_cloudformation_resource_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceDefaultVersion" +} + +resource_schema "aws_cloudformation_resource_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceVersion" +} + +resource_schema "aws_cloudformation_stack" { + cloudformation_type_name = "AWS::CloudFormation::Stack" +} + +resource_schema "aws_cloudformation_stack_set" { + cloudformation_type_name = "AWS::CloudFormation::StackSet" +} + +resource_schema "aws_cloudformation_type_activation" { + cloudformation_type_name = "AWS::CloudFormation::TypeActivation" +} + +resource_schema "aws_cloudfront_anycast_ip_list" { + cloudformation_type_name = "AWS::CloudFront::AnycastIpList" +} + +resource_schema "aws_cloudfront_cache_policy" { + cloudformation_type_name = "AWS::CloudFront::CachePolicy" +} + +resource_schema "aws_cloudfront_cloudfront_origin_access_identity" { + cloudformation_type_name = "AWS::CloudFront::CloudFrontOriginAccessIdentity" +} + +resource_schema "aws_cloudfront_continuous_deployment_policy" { + cloudformation_type_name = "AWS::CloudFront::ContinuousDeploymentPolicy" +} + +resource_schema "aws_cloudfront_distribution" { + cloudformation_type_name = "AWS::CloudFront::Distribution" +} + +resource_schema "aws_cloudfront_function" { + cloudformation_type_name = "AWS::CloudFront::Function" +} + +resource_schema "aws_cloudfront_key_group" { + cloudformation_type_name = "AWS::CloudFront::KeyGroup" +} + +resource_schema "aws_cloudfront_key_value_store" { + cloudformation_type_name = "AWS::CloudFront::KeyValueStore" +} + +resource_schema "aws_cloudfront_monitoring_subscription" { + cloudformation_type_name = "AWS::CloudFront::MonitoringSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudfront_origin_access_control" { + cloudformation_type_name = "AWS::CloudFront::OriginAccessControl" +} + +resource_schema "aws_cloudfront_origin_request_policy" { + cloudformation_type_name = "AWS::CloudFront::OriginRequestPolicy" +} + +resource_schema "aws_cloudfront_public_key" { + cloudformation_type_name = "AWS::CloudFront::PublicKey" +} + +resource_schema "aws_cloudfront_realtime_log_config" { + cloudformation_type_name = "AWS::CloudFront::RealtimeLogConfig" +} + +resource_schema "aws_cloudfront_response_headers_policy" { + cloudformation_type_name = "AWS::CloudFront::ResponseHeadersPolicy" +} + +resource_schema "aws_cloudtrail_channel" { + cloudformation_type_name = "AWS::CloudTrail::Channel" +} + +resource_schema "aws_cloudtrail_dashboard" { + cloudformation_type_name = "AWS::CloudTrail::Dashboard" +} + +resource_schema "aws_cloudtrail_event_data_store" { + cloudformation_type_name = "AWS::CloudTrail::EventDataStore" +} + +resource_schema "aws_cloudtrail_resource_policy" { + cloudformation_type_name = "AWS::CloudTrail::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudtrail_trail" { + cloudformation_type_name = "AWS::CloudTrail::Trail" +} + +resource_schema "aws_cloudwatch_alarm" { + cloudformation_type_name = "AWS::CloudWatch::Alarm" +} + +resource_schema "aws_cloudwatch_composite_alarm" { + cloudformation_type_name = "AWS::CloudWatch::CompositeAlarm" +} + +resource_schema "aws_cloudwatch_dashboard" { + cloudformation_type_name = "AWS::CloudWatch::Dashboard" +} + +resource_schema "aws_cloudwatch_metric_stream" { + cloudformation_type_name = "AWS::CloudWatch::MetricStream" +} + +resource_schema "aws_codeartifact_domain" { + cloudformation_type_name = "AWS::CodeArtifact::Domain" +} + +resource_schema "aws_codeartifact_package_group" { + cloudformation_type_name = "AWS::CodeArtifact::PackageGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_codeartifact_repository" { + cloudformation_type_name = "AWS::CodeArtifact::Repository" +} + +resource_schema "aws_codebuild_fleet" { + cloudformation_type_name = "AWS::CodeBuild::Fleet" +} + +resource_schema "aws_codeconnections_connection" { + cloudformation_type_name = "AWS::CodeConnections::Connection" +} + +resource_schema "aws_codedeploy_application" { + cloudformation_type_name = "AWS::CodeDeploy::Application" +} + +resource_schema "aws_codedeploy_deployment_config" { + cloudformation_type_name = "AWS::CodeDeploy::DeploymentConfig" +} + +resource_schema "aws_codeguruprofiler_profiling_group" { + cloudformation_type_name = "AWS::CodeGuruProfiler::ProfilingGroup" +} + +resource_schema "aws_codegurureviewer_repository_association" { + cloudformation_type_name = "AWS::CodeGuruReviewer::RepositoryAssociation" +} + +resource_schema "aws_codepipeline_custom_action_type" { + cloudformation_type_name = "AWS::CodePipeline::CustomActionType" +} + +resource_schema "aws_codepipeline_pipeline" { + cloudformation_type_name = "AWS::CodePipeline::Pipeline" +} + +resource_schema "aws_codestarconnections_connection" { + cloudformation_type_name = "AWS::CodeStarConnections::Connection" +} + +resource_schema "aws_codestarconnections_repository_link" { + cloudformation_type_name = "AWS::CodeStarConnections::RepositoryLink" +} + +resource_schema "aws_codestarconnections_sync_configuration" { + cloudformation_type_name = "AWS::CodeStarConnections::SyncConfiguration" +} + +resource_schema "aws_codestarnotifications_notification_rule" { + cloudformation_type_name = "AWS::CodeStarNotifications::NotificationRule" +} + +resource_schema "aws_cognito_identity_pool" { + cloudformation_type_name = "AWS::Cognito::IdentityPool" +} + +resource_schema "aws_cognito_identity_pool_principal_tag" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolPrincipalTag" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_identity_pool_role_attachment" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolRoleAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_log_delivery_configuration" { + cloudformation_type_name = "AWS::Cognito::LogDeliveryConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_managed_login_branding" { + cloudformation_type_name = "AWS::Cognito::ManagedLoginBranding" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool" { + cloudformation_type_name = "AWS::Cognito::UserPool" +} + +resource_schema "aws_cognito_user_pool_client" { + cloudformation_type_name = "AWS::Cognito::UserPoolClient" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_group" { + cloudformation_type_name = "AWS::Cognito::UserPoolGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_identity_provider" { + cloudformation_type_name = "AWS::Cognito::UserPoolIdentityProvider" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_resource_server" { + cloudformation_type_name = "AWS::Cognito::UserPoolResourceServer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_risk_configuration_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolRiskConfigurationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_ui_customization_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUICustomizationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user" { + cloudformation_type_name = "AWS::Cognito::UserPoolUser" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user_to_group_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUserToGroupAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_comprehend_document_classifier" { + cloudformation_type_name = "AWS::Comprehend::DocumentClassifier" +} + +resource_schema "aws_comprehend_flywheel" { + cloudformation_type_name = "AWS::Comprehend::Flywheel" +} + +resource_schema "aws_config_aggregation_authorization" { + cloudformation_type_name = "AWS::Config::AggregationAuthorization" +} + +resource_schema "aws_config_config_rule" { + cloudformation_type_name = "AWS::Config::ConfigRule" +} + +resource_schema "aws_config_configuration_aggregator" { + cloudformation_type_name = "AWS::Config::ConfigurationAggregator" +} + +resource_schema "aws_config_conformance_pack" { + cloudformation_type_name = "AWS::Config::ConformancePack" +} + +resource_schema "aws_config_organization_conformance_pack" { + cloudformation_type_name = "AWS::Config::OrganizationConformancePack" +} + +resource_schema "aws_config_stored_query" { + cloudformation_type_name = "AWS::Config::StoredQuery" +} + +resource_schema "aws_connect_agent_status" { + cloudformation_type_name = "AWS::Connect::AgentStatus" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_approved_origin" { + cloudformation_type_name = "AWS::Connect::ApprovedOrigin" +} + +resource_schema "aws_connect_contact_flow" { + cloudformation_type_name = "AWS::Connect::ContactFlow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_contact_flow_module" { + cloudformation_type_name = "AWS::Connect::ContactFlowModule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_email_address" { + cloudformation_type_name = "AWS::Connect::EmailAddress" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_evaluation_form" { + cloudformation_type_name = "AWS::Connect::EvaluationForm" +} + +resource_schema "aws_connect_hours_of_operation" { + cloudformation_type_name = "AWS::Connect::HoursOfOperation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_instance" { + cloudformation_type_name = "AWS::Connect::Instance" +} + +resource_schema "aws_connect_instance_storage_config" { + cloudformation_type_name = "AWS::Connect::InstanceStorageConfig" +} + +resource_schema "aws_connect_integration_association" { + cloudformation_type_name = "AWS::Connect::IntegrationAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_phone_number" { + cloudformation_type_name = "AWS::Connect::PhoneNumber" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_predefined_attribute" { + cloudformation_type_name = "AWS::Connect::PredefinedAttribute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_prompt" { + cloudformation_type_name = "AWS::Connect::Prompt" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_queue" { + cloudformation_type_name = "AWS::Connect::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_quick_connect" { + cloudformation_type_name = "AWS::Connect::QuickConnect" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_routing_profile" { + cloudformation_type_name = "AWS::Connect::RoutingProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_rule" { + cloudformation_type_name = "AWS::Connect::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_security_key" { + cloudformation_type_name = "AWS::Connect::SecurityKey" +} + +resource_schema "aws_connect_security_profile" { + cloudformation_type_name = "AWS::Connect::SecurityProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_task_template" { + cloudformation_type_name = "AWS::Connect::TaskTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_traffic_distribution_group" { + cloudformation_type_name = "AWS::Connect::TrafficDistributionGroup" +} + +resource_schema "aws_connect_user" { + cloudformation_type_name = "AWS::Connect::User" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_user_hierarchy_group" { + cloudformation_type_name = "AWS::Connect::UserHierarchyGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_user_hierarchy_structure" { + cloudformation_type_name = "AWS::Connect::UserHierarchyStructure" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view" { + cloudformation_type_name = "AWS::Connect::View" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view_version" { + cloudformation_type_name = "AWS::Connect::ViewVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connectcampaigns_campaign" { + cloudformation_type_name = "AWS::ConnectCampaigns::Campaign" +} + +resource_schema "aws_connectcampaignsv2_campaign" { + cloudformation_type_name = "AWS::ConnectCampaignsV2::Campaign" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_controltower_enabled_baseline" { + cloudformation_type_name = "AWS::ControlTower::EnabledBaseline" +} + +resource_schema "aws_controltower_enabled_control" { + cloudformation_type_name = "AWS::ControlTower::EnabledControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_controltower_landing_zone" { + cloudformation_type_name = "AWS::ControlTower::LandingZone" +} + +resource_schema "aws_customerprofiles_calculated_attribute_definition" { + cloudformation_type_name = "AWS::CustomerProfiles::CalculatedAttributeDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_domain" { + cloudformation_type_name = "AWS::CustomerProfiles::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_event_stream" { + cloudformation_type_name = "AWS::CustomerProfiles::EventStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_event_trigger" { + cloudformation_type_name = "AWS::CustomerProfiles::EventTrigger" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_integration" { + cloudformation_type_name = "AWS::CustomerProfiles::Integration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_object_type" { + cloudformation_type_name = "AWS::CustomerProfiles::ObjectType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_segment_definition" { + cloudformation_type_name = "AWS::CustomerProfiles::SegmentDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_dms_data_migration" { + cloudformation_type_name = "AWS::DMS::DataMigration" +} + +resource_schema "aws_dms_data_provider" { + cloudformation_type_name = "AWS::DMS::DataProvider" +} + +resource_schema "aws_dms_instance_profile" { + cloudformation_type_name = "AWS::DMS::InstanceProfile" +} + +resource_schema "aws_dms_migration_project" { + cloudformation_type_name = "AWS::DMS::MigrationProject" +} + +resource_schema "aws_dms_replication_config" { + cloudformation_type_name = "AWS::DMS::ReplicationConfig" +} + +resource_schema "aws_databrew_dataset" { + cloudformation_type_name = "AWS::DataBrew::Dataset" +} + +resource_schema "aws_databrew_job" { + cloudformation_type_name = "AWS::DataBrew::Job" +} + +resource_schema "aws_databrew_project" { + cloudformation_type_name = "AWS::DataBrew::Project" +} + +resource_schema "aws_databrew_recipe" { + cloudformation_type_name = "AWS::DataBrew::Recipe" +} + +resource_schema "aws_databrew_ruleset" { + cloudformation_type_name = "AWS::DataBrew::Ruleset" +} + +resource_schema "aws_databrew_schedule" { + cloudformation_type_name = "AWS::DataBrew::Schedule" +} + +resource_schema "aws_datapipeline_pipeline" { + cloudformation_type_name = "AWS::DataPipeline::Pipeline" +} + +resource_schema "aws_datasync_agent" { + cloudformation_type_name = "AWS::DataSync::Agent" +} + +resource_schema "aws_datasync_location_azure_blob" { + cloudformation_type_name = "AWS::DataSync::LocationAzureBlob" +} + +resource_schema "aws_datasync_location_efs" { + cloudformation_type_name = "AWS::DataSync::LocationEFS" +} + +resource_schema "aws_datasync_location_fsx_lustre" { + cloudformation_type_name = "AWS::DataSync::LocationFSxLustre" +} + +resource_schema "aws_datasync_location_fsx_ontap" { + cloudformation_type_name = "AWS::DataSync::LocationFSxONTAP" +} + +resource_schema "aws_datasync_location_fsx_open_zfs" { + cloudformation_type_name = "AWS::DataSync::LocationFSxOpenZFS" +} + +resource_schema "aws_datasync_location_fsx_windows" { + cloudformation_type_name = "AWS::DataSync::LocationFSxWindows" +} + +resource_schema "aws_datasync_location_hdfs" { + cloudformation_type_name = "AWS::DataSync::LocationHDFS" +} + +resource_schema "aws_datasync_location_nfs" { + cloudformation_type_name = "AWS::DataSync::LocationNFS" +} + +resource_schema "aws_datasync_location_object_storage" { + cloudformation_type_name = "AWS::DataSync::LocationObjectStorage" +} + +resource_schema "aws_datasync_location_s3" { + cloudformation_type_name = "AWS::DataSync::LocationS3" +} + +resource_schema "aws_datasync_location_smb" { + cloudformation_type_name = "AWS::DataSync::LocationSMB" +} + +resource_schema "aws_datasync_storage_system" { + cloudformation_type_name = "AWS::DataSync::StorageSystem" +} + +resource_schema "aws_datasync_task" { + cloudformation_type_name = "AWS::DataSync::Task" +} + +resource_schema "aws_datazone_data_source" { + cloudformation_type_name = "AWS::DataZone::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_domain" { + cloudformation_type_name = "AWS::DataZone::Domain" +} + +resource_schema "aws_datazone_environment" { + cloudformation_type_name = "AWS::DataZone::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_actions" { + cloudformation_type_name = "AWS::DataZone::EnvironmentActions" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_blueprint_configuration" { + cloudformation_type_name = "AWS::DataZone::EnvironmentBlueprintConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_profile" { + cloudformation_type_name = "AWS::DataZone::EnvironmentProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_group_profile" { + cloudformation_type_name = "AWS::DataZone::GroupProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project" { + cloudformation_type_name = "AWS::DataZone::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project_membership" { + cloudformation_type_name = "AWS::DataZone::ProjectMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_subscription_target" { + cloudformation_type_name = "AWS::DataZone::SubscriptionTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_user_profile" { + cloudformation_type_name = "AWS::DataZone::UserProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_farm" { + cloudformation_type_name = "AWS::Deadline::Farm" +} + +resource_schema "aws_deadline_fleet" { + cloudformation_type_name = "AWS::Deadline::Fleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_license_endpoint" { + cloudformation_type_name = "AWS::Deadline::LicenseEndpoint" +} + +resource_schema "aws_deadline_metered_product" { + cloudformation_type_name = "AWS::Deadline::MeteredProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_monitor" { + cloudformation_type_name = "AWS::Deadline::Monitor" +} + +resource_schema "aws_deadline_queue" { + cloudformation_type_name = "AWS::Deadline::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_environment" { + cloudformation_type_name = "AWS::Deadline::QueueEnvironment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_fleet_association" { + cloudformation_type_name = "AWS::Deadline::QueueFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_storage_profile" { + cloudformation_type_name = "AWS::Deadline::StorageProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_detective_graph" { + cloudformation_type_name = "AWS::Detective::Graph" +} + +resource_schema "aws_detective_member_invitation" { + cloudformation_type_name = "AWS::Detective::MemberInvitation" +} + +resource_schema "aws_detective_organization_admin" { + cloudformation_type_name = "AWS::Detective::OrganizationAdmin" +} + +resource_schema "aws_devopsguru_log_anomaly_detection_integration" { + cloudformation_type_name = "AWS::DevOpsGuru::LogAnomalyDetectionIntegration" +} + +resource_schema "aws_devopsguru_notification_channel" { + cloudformation_type_name = "AWS::DevOpsGuru::NotificationChannel" +} + +resource_schema "aws_devopsguru_resource_collection" { + cloudformation_type_name = "AWS::DevOpsGuru::ResourceCollection" +} + +resource_schema "aws_directoryservice_simple_ad" { + cloudformation_type_name = "AWS::DirectoryService::SimpleAD" +} + +resource_schema "aws_docdbelastic_cluster" { + cloudformation_type_name = "AWS::DocDBElastic::Cluster" +} + +resource_schema "aws_dynamodb_global_table" { + cloudformation_type_name = "AWS::DynamoDB::GlobalTable" +} + +resource_schema "aws_dynamodb_table" { + cloudformation_type_name = "AWS::DynamoDB::Table" +} + +resource_schema "aws_ec2_capacity_reservation" { + cloudformation_type_name = "AWS::EC2::CapacityReservation" +} + +resource_schema "aws_ec2_capacity_reservation_fleet" { + cloudformation_type_name = "AWS::EC2::CapacityReservationFleet" +} + +resource_schema "aws_ec2_carrier_gateway" { + cloudformation_type_name = "AWS::EC2::CarrierGateway" +} + +resource_schema "aws_ec2_customer_gateway" { + cloudformation_type_name = "AWS::EC2::CustomerGateway" +} + +resource_schema "aws_ec2_dhcp_options" { + cloudformation_type_name = "AWS::EC2::DHCPOptions" +} + +resource_schema "aws_ec2_ec2_fleet" { + cloudformation_type_name = "AWS::EC2::EC2Fleet" +} + +resource_schema "aws_ec2_eip" { + cloudformation_type_name = "AWS::EC2::EIP" +} + +resource_schema "aws_ec2_eip_association" { + cloudformation_type_name = "AWS::EC2::EIPAssociation" +} + +resource_schema "aws_ec2_egress_only_internet_gateway" { + cloudformation_type_name = "AWS::EC2::EgressOnlyInternetGateway" +} + +resource_schema "aws_ec2_enclave_certificate_iam_role_association" { + cloudformation_type_name = "AWS::EC2::EnclaveCertificateIamRoleAssociation" +} + +resource_schema "aws_ec2_flow_log" { + cloudformation_type_name = "AWS::EC2::FlowLog" +} + +resource_schema "aws_ec2_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::GatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_host" { + cloudformation_type_name = "AWS::EC2::Host" +} + +resource_schema "aws_ec2_ipam" { + cloudformation_type_name = "AWS::EC2::IPAM" +} + +resource_schema "aws_ec2_ipam_allocation" { + cloudformation_type_name = "AWS::EC2::IPAMAllocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_pool" { + cloudformation_type_name = "AWS::EC2::IPAMPool" +} + +resource_schema "aws_ec2_ipam_pool_cidr" { + cloudformation_type_name = "AWS::EC2::IPAMPoolCidr" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_resource_discovery" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscovery" +} + +resource_schema "aws_ec2_ipam_resource_discovery_association" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscoveryAssociation" +} + +resource_schema "aws_ec2_ipam_scope" { + cloudformation_type_name = "AWS::EC2::IPAMScope" +} + +resource_schema "aws_ec2_instance" { + cloudformation_type_name = "AWS::EC2::Instance" +} + +resource_schema "aws_ec2_instance_connect_endpoint" { + cloudformation_type_name = "AWS::EC2::InstanceConnectEndpoint" +} + +resource_schema "aws_ec2_internet_gateway" { + cloudformation_type_name = "AWS::EC2::InternetGateway" +} + +resource_schema "aws_ec2_key_pair" { + cloudformation_type_name = "AWS::EC2::KeyPair" +} + +resource_schema "aws_ec2_launch_template" { + cloudformation_type_name = "AWS::EC2::LaunchTemplate" +} + +resource_schema "aws_ec2_local_gateway_route" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRoute" +} + +resource_schema "aws_ec2_local_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTable" +} + +resource_schema "aws_ec2_local_gateway_route_table_vpc_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVPCAssociation" +} + +resource_schema "aws_ec2_local_gateway_route_table_virtual_interface_group_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation" +} + +resource_schema "aws_ec2_nat_gateway" { + cloudformation_type_name = "AWS::EC2::NatGateway" +} + +resource_schema "aws_ec2_network_acl" { + cloudformation_type_name = "AWS::EC2::NetworkAcl" +} + +resource_schema "aws_ec2_network_insights_access_scope" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScope" +} + +resource_schema "aws_ec2_network_insights_access_scope_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScopeAnalysis" +} + +resource_schema "aws_ec2_network_insights_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAnalysis" +} + +resource_schema "aws_ec2_network_insights_path" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsPath" +} + +resource_schema "aws_ec2_network_interface" { + cloudformation_type_name = "AWS::EC2::NetworkInterface" +} + +resource_schema "aws_ec2_network_interface_attachment" { + cloudformation_type_name = "AWS::EC2::NetworkInterfaceAttachment" +} + +resource_schema "aws_ec2_network_performance_metric_subscription" { + cloudformation_type_name = "AWS::EC2::NetworkPerformanceMetricSubscription" +} + +resource_schema "aws_ec2_placement_group" { + cloudformation_type_name = "AWS::EC2::PlacementGroup" +} + +resource_schema "aws_ec2_prefix_list" { + cloudformation_type_name = "AWS::EC2::PrefixList" +} + +resource_schema "aws_ec2_route" { + cloudformation_type_name = "AWS::EC2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_route_table" { + cloudformation_type_name = "AWS::EC2::RouteTable" +} + +resource_schema "aws_ec2_security_group" { + cloudformation_type_name = "AWS::EC2::SecurityGroup" +} + +resource_schema "aws_ec2_security_group_egress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupEgress" +} + +resource_schema "aws_ec2_security_group_ingress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupIngress" +} + +resource_schema "aws_ec2_security_group_vpc_association" { + cloudformation_type_name = "AWS::EC2::SecurityGroupVpcAssociation" +} + +resource_schema "aws_ec2_snapshot_block_public_access" { + cloudformation_type_name = "AWS::EC2::SnapshotBlockPublicAccess" +} + +resource_schema "aws_ec2_spot_fleet" { + cloudformation_type_name = "AWS::EC2::SpotFleet" +} + +resource_schema "aws_ec2_subnet" { + cloudformation_type_name = "AWS::EC2::Subnet" +} + +resource_schema "aws_ec2_subnet_cidr_block" { + cloudformation_type_name = "AWS::EC2::SubnetCidrBlock" +} + +resource_schema "aws_ec2_subnet_network_acl_association" { + cloudformation_type_name = "AWS::EC2::SubnetNetworkAclAssociation" +} + +resource_schema "aws_ec2_subnet_route_table_association" { + cloudformation_type_name = "AWS::EC2::SubnetRouteTableAssociation" +} + +resource_schema "aws_ec2_transit_gateway" { + cloudformation_type_name = "AWS::EC2::TransitGateway" +} + +resource_schema "aws_ec2_transit_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayAttachment" +} + +resource_schema "aws_ec2_transit_gateway_connect" { + cloudformation_type_name = "AWS::EC2::TransitGatewayConnect" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomain" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomainAssociation" +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_member" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupMember" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_source" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_peering_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayPeeringAttachment" +} + +resource_schema "aws_ec2_transit_gateway_route" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRoute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTable" +} + +resource_schema "aws_ec2_transit_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table_propagation" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTablePropagation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_vpc_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayVpcAttachment" +} + +resource_schema "aws_ec2_vpc" { + cloudformation_type_name = "AWS::EC2::VPC" +} + +resource_schema "aws_ec2_vpc_block_public_access_exclusion" { + cloudformation_type_name = "AWS::EC2::VPCBlockPublicAccessExclusion" +} + +resource_schema "aws_ec2_vpc_block_public_access_options" { + cloudformation_type_name = "AWS::EC2::VPCBlockPublicAccessOptions" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_vpc_cidr_block" { + cloudformation_type_name = "AWS::EC2::VPCCidrBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_vpcdhcp_options_association" { + cloudformation_type_name = "AWS::EC2::VPCDHCPOptionsAssociation" +} + +resource_schema "aws_ec2_vpc_endpoint" { + cloudformation_type_name = "AWS::EC2::VPCEndpoint" +} + +resource_schema "aws_ec2_vpc_endpoint_connection_notification" { + cloudformation_type_name = "AWS::EC2::VPCEndpointConnectionNotification" +} + +resource_schema "aws_ec2_vpc_endpoint_service" { + cloudformation_type_name = "AWS::EC2::VPCEndpointService" +} + +resource_schema "aws_ec2_vpc_endpoint_service_permissions" { + cloudformation_type_name = "AWS::EC2::VPCEndpointServicePermissions" +} + +resource_schema "aws_ec2_vpc_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::VPCGatewayAttachment" +} + +resource_schema "aws_ec2_vpc_peering_connection" { + cloudformation_type_name = "AWS::EC2::VPCPeeringConnection" +} + +resource_schema "aws_ec2_vpn_connection" { + cloudformation_type_name = "AWS::EC2::VPNConnection" +} + +resource_schema "aws_ec2_vpn_connection_route" { + cloudformation_type_name = "AWS::EC2::VPNConnectionRoute" +} + +resource_schema "aws_ec2_vpn_gateway" { + cloudformation_type_name = "AWS::EC2::VPNGateway" +} + +resource_schema "aws_ec2_verified_access_endpoint" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessEndpoint" +} + +resource_schema "aws_ec2_verified_access_group" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessGroup" +} + +resource_schema "aws_ec2_verified_access_instance" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessInstance" +} + +resource_schema "aws_ec2_verified_access_trust_provider" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessTrustProvider" +} + +resource_schema "aws_ec2_volume" { + cloudformation_type_name = "AWS::EC2::Volume" +} + +resource_schema "aws_ec2_volume_attachment" { + cloudformation_type_name = "AWS::EC2::VolumeAttachment" +} + +resource_schema "aws_ecr_public_repository" { + cloudformation_type_name = "AWS::ECR::PublicRepository" +} + +resource_schema "aws_ecr_pull_through_cache_rule" { + cloudformation_type_name = "AWS::ECR::PullThroughCacheRule" +} + +resource_schema "aws_ecr_registry_policy" { + cloudformation_type_name = "AWS::ECR::RegistryPolicy" +} + +resource_schema "aws_ecr_replication_configuration" { + cloudformation_type_name = "AWS::ECR::ReplicationConfiguration" +} + +resource_schema "aws_ecr_repository" { + cloudformation_type_name = "AWS::ECR::Repository" +} + +resource_schema "aws_ecr_repository_creation_template" { + cloudformation_type_name = "AWS::ECR::RepositoryCreationTemplate" +} + +resource_schema "aws_ecs_capacity_provider" { + cloudformation_type_name = "AWS::ECS::CapacityProvider" +} + +resource_schema "aws_ecs_cluster" { + cloudformation_type_name = "AWS::ECS::Cluster" +} + +resource_schema "aws_ecs_cluster_capacity_provider_associations" { + cloudformation_type_name = "AWS::ECS::ClusterCapacityProviderAssociations" +} + +resource_schema "aws_ecs_primary_task_set" { + cloudformation_type_name = "AWS::ECS::PrimaryTaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ecs_service" { + cloudformation_type_name = "AWS::ECS::Service" +} + +resource_schema "aws_ecs_task_definition" { + cloudformation_type_name = "AWS::ECS::TaskDefinition" +} + +resource_schema "aws_ecs_task_set" { + cloudformation_type_name = "AWS::ECS::TaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_efs_access_point" { + cloudformation_type_name = "AWS::EFS::AccessPoint" +} + +resource_schema "aws_efs_file_system" { + cloudformation_type_name = "AWS::EFS::FileSystem" +} + +resource_schema "aws_efs_mount_target" { + cloudformation_type_name = "AWS::EFS::MountTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_access_entry" { + cloudformation_type_name = "AWS::EKS::AccessEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_addon" { + cloudformation_type_name = "AWS::EKS::Addon" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_cluster" { + cloudformation_type_name = "AWS::EKS::Cluster" +} + +resource_schema "aws_eks_fargate_profile" { + cloudformation_type_name = "AWS::EKS::FargateProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_identity_provider_config" { + cloudformation_type_name = "AWS::EKS::IdentityProviderConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_nodegroup" { + cloudformation_type_name = "AWS::EKS::Nodegroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_pod_identity_association" { + cloudformation_type_name = "AWS::EKS::PodIdentityAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_emr_security_configuration" { + cloudformation_type_name = "AWS::EMR::SecurityConfiguration" +} + +resource_schema "aws_emr_studio" { + cloudformation_type_name = "AWS::EMR::Studio" +} + +resource_schema "aws_emr_studio_session_mapping" { + cloudformation_type_name = "AWS::EMR::StudioSessionMapping" +} + +resource_schema "aws_emr_wal_workspace" { + cloudformation_type_name = "AWS::EMR::WALWorkspace" +} + +resource_schema "aws_emrcontainers_virtual_cluster" { + cloudformation_type_name = "AWS::EMRContainers::VirtualCluster" +} + +resource_schema "aws_emrserverless_application" { + cloudformation_type_name = "AWS::EMRServerless::Application" +} + +resource_schema "aws_elasticache_global_replication_group" { + cloudformation_type_name = "AWS::ElastiCache::GlobalReplicationGroup" +} + +resource_schema "aws_elasticache_parameter_group" { + cloudformation_type_name = "AWS::ElastiCache::ParameterGroup" +} + +resource_schema "aws_elasticache_serverless_cache" { + cloudformation_type_name = "AWS::ElastiCache::ServerlessCache" +} + +resource_schema "aws_elasticache_subnet_group" { + cloudformation_type_name = "AWS::ElastiCache::SubnetGroup" +} + +resource_schema "aws_elasticache_user" { + cloudformation_type_name = "AWS::ElastiCache::User" +} + +resource_schema "aws_elasticache_user_group" { + cloudformation_type_name = "AWS::ElastiCache::UserGroup" +} + +resource_schema "aws_elasticbeanstalk_application" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Application" +} + +resource_schema "aws_elasticbeanstalk_application_version" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ApplicationVersion" +} + +resource_schema "aws_elasticbeanstalk_configuration_template" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ConfigurationTemplate" +} + +resource_schema "aws_elasticbeanstalk_environment" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Environment" +} + +resource_schema "aws_elasticloadbalancingv2_listener" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_listener_rule" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::ListenerRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_load_balancer" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::LoadBalancer" +} + +resource_schema "aws_elasticloadbalancingv2_target_group" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TargetGroup" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStore" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store_revocation" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStoreRevocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_id_mapping_workflow" { + cloudformation_type_name = "AWS::EntityResolution::IdMappingWorkflow" +} + +resource_schema "aws_entityresolution_id_namespace" { + cloudformation_type_name = "AWS::EntityResolution::IdNamespace" +} + +resource_schema "aws_entityresolution_matching_workflow" { + cloudformation_type_name = "AWS::EntityResolution::MatchingWorkflow" +} + +resource_schema "aws_entityresolution_policy_statement" { + cloudformation_type_name = "AWS::EntityResolution::PolicyStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_schema_mapping" { + cloudformation_type_name = "AWS::EntityResolution::SchemaMapping" +} + +resource_schema "aws_eventschemas_discoverer" { + cloudformation_type_name = "AWS::EventSchemas::Discoverer" +} + +resource_schema "aws_eventschemas_registry" { + cloudformation_type_name = "AWS::EventSchemas::Registry" +} + +resource_schema "aws_eventschemas_registry_policy" { + cloudformation_type_name = "AWS::EventSchemas::RegistryPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eventschemas_schema" { + cloudformation_type_name = "AWS::EventSchemas::Schema" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_events_api_destination" { + cloudformation_type_name = "AWS::Events::ApiDestination" +} + +resource_schema "aws_events_archive" { + cloudformation_type_name = "AWS::Events::Archive" +} + +resource_schema "aws_events_connection" { + cloudformation_type_name = "AWS::Events::Connection" +} + +resource_schema "aws_events_endpoint" { + cloudformation_type_name = "AWS::Events::Endpoint" +} + +resource_schema "aws_events_event_bus" { + cloudformation_type_name = "AWS::Events::EventBus" +} + +resource_schema "aws_events_rule" { + cloudformation_type_name = "AWS::Events::Rule" +} + +resource_schema "aws_evidently_experiment" { + cloudformation_type_name = "AWS::Evidently::Experiment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_feature" { + cloudformation_type_name = "AWS::Evidently::Feature" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_launch" { + cloudformation_type_name = "AWS::Evidently::Launch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_project" { + cloudformation_type_name = "AWS::Evidently::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_segment" { + cloudformation_type_name = "AWS::Evidently::Segment" +} + +resource_schema "aws_fis_experiment_template" { + cloudformation_type_name = "AWS::FIS::ExperimentTemplate" +} + +resource_schema "aws_fis_target_account_configuration" { + cloudformation_type_name = "AWS::FIS::TargetAccountConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fms_notification_channel" { + cloudformation_type_name = "AWS::FMS::NotificationChannel" +} + +resource_schema "aws_fms_policy" { + cloudformation_type_name = "AWS::FMS::Policy" +} + +resource_schema "aws_fms_resource_set" { + cloudformation_type_name = "AWS::FMS::ResourceSet" +} + +resource_schema "aws_fsx_data_repository_association" { + cloudformation_type_name = "AWS::FSx::DataRepositoryAssociation" +} + +resource_schema "aws_finspace_environment" { + cloudformation_type_name = "AWS::FinSpace::Environment" +} + +resource_schema "aws_forecast_dataset" { + cloudformation_type_name = "AWS::Forecast::Dataset" +} + +resource_schema "aws_forecast_dataset_group" { + cloudformation_type_name = "AWS::Forecast::DatasetGroup" +} + +resource_schema "aws_frauddetector_detector" { + cloudformation_type_name = "AWS::FraudDetector::Detector" +} + +resource_schema "aws_frauddetector_entity_type" { + cloudformation_type_name = "AWS::FraudDetector::EntityType" +} + +resource_schema "aws_frauddetector_event_type" { + cloudformation_type_name = "AWS::FraudDetector::EventType" +} + +resource_schema "aws_frauddetector_label" { + cloudformation_type_name = "AWS::FraudDetector::Label" +} + +resource_schema "aws_frauddetector_list" { + cloudformation_type_name = "AWS::FraudDetector::List" +} + +resource_schema "aws_frauddetector_outcome" { + cloudformation_type_name = "AWS::FraudDetector::Outcome" +} + +resource_schema "aws_frauddetector_variable" { + cloudformation_type_name = "AWS::FraudDetector::Variable" +} + +resource_schema "aws_gamelift_alias" { + cloudformation_type_name = "AWS::GameLift::Alias" +} + +resource_schema "aws_gamelift_build" { + cloudformation_type_name = "AWS::GameLift::Build" +} + +resource_schema "aws_gamelift_container_fleet" { + cloudformation_type_name = "AWS::GameLift::ContainerFleet" +} + +resource_schema "aws_gamelift_container_group_definition" { + cloudformation_type_name = "AWS::GameLift::ContainerGroupDefinition" +} + +resource_schema "aws_gamelift_fleet" { + cloudformation_type_name = "AWS::GameLift::Fleet" +} + +resource_schema "aws_gamelift_game_server_group" { + cloudformation_type_name = "AWS::GameLift::GameServerGroup" +} + +resource_schema "aws_gamelift_game_session_queue" { + cloudformation_type_name = "AWS::GameLift::GameSessionQueue" +} + +resource_schema "aws_gamelift_location" { + cloudformation_type_name = "AWS::GameLift::Location" +} + +resource_schema "aws_gamelift_matchmaking_configuration" { + cloudformation_type_name = "AWS::GameLift::MatchmakingConfiguration" +} + +resource_schema "aws_gamelift_matchmaking_rule_set" { + cloudformation_type_name = "AWS::GameLift::MatchmakingRuleSet" +} + +resource_schema "aws_gamelift_script" { + cloudformation_type_name = "AWS::GameLift::Script" +} + +resource_schema "aws_globalaccelerator_accelerator" { + cloudformation_type_name = "AWS::GlobalAccelerator::Accelerator" +} + +resource_schema "aws_globalaccelerator_cross_account_attachment" { + cloudformation_type_name = "AWS::GlobalAccelerator::CrossAccountAttachment" +} + +resource_schema "aws_globalaccelerator_endpoint_group" { + cloudformation_type_name = "AWS::GlobalAccelerator::EndpointGroup" +} + +resource_schema "aws_globalaccelerator_listener" { + cloudformation_type_name = "AWS::GlobalAccelerator::Listener" +} + +resource_schema "aws_glue_crawler" { + cloudformation_type_name = "AWS::Glue::Crawler" +} + +resource_schema "aws_glue_database" { + cloudformation_type_name = "AWS::Glue::Database" +} + +resource_schema "aws_glue_job" { + cloudformation_type_name = "AWS::Glue::Job" +} + +resource_schema "aws_glue_registry" { + cloudformation_type_name = "AWS::Glue::Registry" +} + +resource_schema "aws_glue_schema" { + cloudformation_type_name = "AWS::Glue::Schema" +} + +resource_schema "aws_glue_schema_version" { + cloudformation_type_name = "AWS::Glue::SchemaVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_schema_version_metadata" { + cloudformation_type_name = "AWS::Glue::SchemaVersionMetadata" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_trigger" { + cloudformation_type_name = "AWS::Glue::Trigger" +} + +resource_schema "aws_glue_usage_profile" { + cloudformation_type_name = "AWS::Glue::UsageProfile" +} + +resource_schema "aws_grafana_workspace" { + cloudformation_type_name = "AWS::Grafana::Workspace" +} + +resource_schema "aws_greengrassv2_component_version" { + cloudformation_type_name = "AWS::GreengrassV2::ComponentVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_greengrassv2_deployment" { + cloudformation_type_name = "AWS::GreengrassV2::Deployment" +} + +resource_schema "aws_groundstation_config" { + cloudformation_type_name = "AWS::GroundStation::Config" +} + +resource_schema "aws_groundstation_dataflow_endpoint_group" { + cloudformation_type_name = "AWS::GroundStation::DataflowEndpointGroup" +} + +resource_schema "aws_groundstation_mission_profile" { + cloudformation_type_name = "AWS::GroundStation::MissionProfile" +} + +resource_schema "aws_guardduty_detector" { + cloudformation_type_name = "AWS::GuardDuty::Detector" +} + +resource_schema "aws_guardduty_filter" { + cloudformation_type_name = "AWS::GuardDuty::Filter" +} + +resource_schema "aws_guardduty_ip_set" { + cloudformation_type_name = "AWS::GuardDuty::IPSet" +} + +resource_schema "aws_guardduty_malware_protection_plan" { + cloudformation_type_name = "AWS::GuardDuty::MalwareProtectionPlan" +} + +resource_schema "aws_guardduty_master" { + cloudformation_type_name = "AWS::GuardDuty::Master" +} + +resource_schema "aws_guardduty_member" { + cloudformation_type_name = "AWS::GuardDuty::Member" +} + +resource_schema "aws_guardduty_threat_intel_set" { + cloudformation_type_name = "AWS::GuardDuty::ThreatIntelSet" +} + +resource_schema "aws_healthimaging_datastore" { + cloudformation_type_name = "AWS::HealthImaging::Datastore" +} + +resource_schema "aws_healthlake_fhir_datastore" { + cloudformation_type_name = "AWS::HealthLake::FHIRDatastore" +} + +resource_schema "aws_iam_group" { + cloudformation_type_name = "AWS::IAM::Group" +} + +resource_schema "aws_iam_group_policy" { + cloudformation_type_name = "AWS::IAM::GroupPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_instance_profile" { + cloudformation_type_name = "AWS::IAM::InstanceProfile" +} + +resource_schema "aws_iam_managed_policy" { + cloudformation_type_name = "AWS::IAM::ManagedPolicy" +} + +resource_schema "aws_iam_oidc_provider" { + cloudformation_type_name = "AWS::IAM::OIDCProvider" +} + +resource_schema "aws_iam_role" { + cloudformation_type_name = "AWS::IAM::Role" +} + +resource_schema "aws_iam_role_policy" { + cloudformation_type_name = "AWS::IAM::RolePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_saml_provider" { + cloudformation_type_name = "AWS::IAM::SAMLProvider" +} + +resource_schema "aws_iam_server_certificate" { + cloudformation_type_name = "AWS::IAM::ServerCertificate" +} + +resource_schema "aws_iam_service_linked_role" { + cloudformation_type_name = "AWS::IAM::ServiceLinkedRole" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_user" { + cloudformation_type_name = "AWS::IAM::User" +} + +resource_schema "aws_iam_user_policy" { + cloudformation_type_name = "AWS::IAM::UserPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_virtual_mfa_device" { + cloudformation_type_name = "AWS::IAM::VirtualMFADevice" +} + +resource_schema "aws_ivs_channel" { + cloudformation_type_name = "AWS::IVS::Channel" +} + +resource_schema "aws_ivs_encoder_configuration" { + cloudformation_type_name = "AWS::IVS::EncoderConfiguration" +} + +resource_schema "aws_ivs_ingest_configuration" { + cloudformation_type_name = "AWS::IVS::IngestConfiguration" +} + +resource_schema "aws_ivs_playback_key_pair" { + cloudformation_type_name = "AWS::IVS::PlaybackKeyPair" +} + +resource_schema "aws_ivs_playback_restriction_policy" { + cloudformation_type_name = "AWS::IVS::PlaybackRestrictionPolicy" +} + +resource_schema "aws_ivs_public_key" { + cloudformation_type_name = "AWS::IVS::PublicKey" +} + +resource_schema "aws_ivs_recording_configuration" { + cloudformation_type_name = "AWS::IVS::RecordingConfiguration" +} + +resource_schema "aws_ivs_stage" { + cloudformation_type_name = "AWS::IVS::Stage" +} + +resource_schema "aws_ivs_storage_configuration" { + cloudformation_type_name = "AWS::IVS::StorageConfiguration" +} + +resource_schema "aws_ivs_stream_key" { + cloudformation_type_name = "AWS::IVS::StreamKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ivschat_logging_configuration" { + cloudformation_type_name = "AWS::IVSChat::LoggingConfiguration" +} + +resource_schema "aws_ivschat_room" { + cloudformation_type_name = "AWS::IVSChat::Room" +} + +resource_schema "aws_identitystore_group" { + cloudformation_type_name = "AWS::IdentityStore::Group" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_identitystore_group_membership" { + cloudformation_type_name = "AWS::IdentityStore::GroupMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_component" { + cloudformation_type_name = "AWS::ImageBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_container_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ContainerRecipe" +} + +resource_schema "aws_imagebuilder_distribution_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::DistributionConfiguration" +} + +resource_schema "aws_imagebuilder_image" { + cloudformation_type_name = "AWS::ImageBuilder::Image" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_image_pipeline" { + cloudformation_type_name = "AWS::ImageBuilder::ImagePipeline" +} + +resource_schema "aws_imagebuilder_image_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ImageRecipe" +} + +resource_schema "aws_imagebuilder_infrastructure_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::InfrastructureConfiguration" +} + +resource_schema "aws_imagebuilder_lifecycle_policy" { + cloudformation_type_name = "AWS::ImageBuilder::LifecyclePolicy" +} + +resource_schema "aws_imagebuilder_workflow" { + cloudformation_type_name = "AWS::ImageBuilder::Workflow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspector_assessment_target" { + cloudformation_type_name = "AWS::Inspector::AssessmentTarget" +} + +resource_schema "aws_inspector_assessment_template" { + cloudformation_type_name = "AWS::Inspector::AssessmentTemplate" +} + +resource_schema "aws_inspector_resource_group" { + cloudformation_type_name = "AWS::Inspector::ResourceGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspectorv2_cis_scan_configuration" { + cloudformation_type_name = "AWS::InspectorV2::CisScanConfiguration" +} + +resource_schema "aws_inspectorv2_filter" { + cloudformation_type_name = "AWS::InspectorV2::Filter" +} + +resource_schema "aws_internetmonitor_monitor" { + cloudformation_type_name = "AWS::InternetMonitor::Monitor" +} + +resource_schema "aws_invoicing_invoice_unit" { + cloudformation_type_name = "AWS::Invoicing::InvoiceUnit" +} + +resource_schema "aws_iot_account_audit_configuration" { + cloudformation_type_name = "AWS::IoT::AccountAuditConfiguration" +} + +resource_schema "aws_iot_authorizer" { + cloudformation_type_name = "AWS::IoT::Authorizer" +} + +resource_schema "aws_iot_billing_group" { + cloudformation_type_name = "AWS::IoT::BillingGroup" +} + +resource_schema "aws_iot_ca_certificate" { + cloudformation_type_name = "AWS::IoT::CACertificate" +} + +resource_schema "aws_iot_certificate" { + cloudformation_type_name = "AWS::IoT::Certificate" +} + +resource_schema "aws_iot_certificate_provider" { + cloudformation_type_name = "AWS::IoT::CertificateProvider" +} + +resource_schema "aws_iot_command" { + cloudformation_type_name = "AWS::IoT::Command" +} + +resource_schema "aws_iot_custom_metric" { + cloudformation_type_name = "AWS::IoT::CustomMetric" +} + +resource_schema "aws_iot_dimension" { + cloudformation_type_name = "AWS::IoT::Dimension" +} + +resource_schema "aws_iot_domain_configuration" { + cloudformation_type_name = "AWS::IoT::DomainConfiguration" +} + +resource_schema "aws_iot_fleet_metric" { + cloudformation_type_name = "AWS::IoT::FleetMetric" +} + +resource_schema "aws_iot_job_template" { + cloudformation_type_name = "AWS::IoT::JobTemplate" +} + +resource_schema "aws_iot_logging" { + cloudformation_type_name = "AWS::IoT::Logging" +} + +resource_schema "aws_iot_mitigation_action" { + cloudformation_type_name = "AWS::IoT::MitigationAction" +} + +resource_schema "aws_iot_policy" { + cloudformation_type_name = "AWS::IoT::Policy" +} + +resource_schema "aws_iot_provisioning_template" { + cloudformation_type_name = "AWS::IoT::ProvisioningTemplate" +} + +resource_schema "aws_iot_resource_specific_logging" { + cloudformation_type_name = "AWS::IoT::ResourceSpecificLogging" +} + +resource_schema "aws_iot_role_alias" { + cloudformation_type_name = "AWS::IoT::RoleAlias" +} + +resource_schema "aws_iot_scheduled_audit" { + cloudformation_type_name = "AWS::IoT::ScheduledAudit" +} + +resource_schema "aws_iot_security_profile" { + cloudformation_type_name = "AWS::IoT::SecurityProfile" +} + +resource_schema "aws_iot_software_package" { + cloudformation_type_name = "AWS::IoT::SoftwarePackage" +} + +resource_schema "aws_iot_software_package_version" { + cloudformation_type_name = "AWS::IoT::SoftwarePackageVersion" +} + +resource_schema "aws_iot_thing" { + cloudformation_type_name = "AWS::IoT::Thing" +} + +resource_schema "aws_iot_thing_group" { + cloudformation_type_name = "AWS::IoT::ThingGroup" +} + +resource_schema "aws_iot_thing_type" { + cloudformation_type_name = "AWS::IoT::ThingType" +} + +resource_schema "aws_iot_topic_rule" { + cloudformation_type_name = "AWS::IoT::TopicRule" +} + +resource_schema "aws_iot_topic_rule_destination" { + cloudformation_type_name = "AWS::IoT::TopicRuleDestination" +} + +resource_schema "aws_iotanalytics_channel" { + cloudformation_type_name = "AWS::IoTAnalytics::Channel" +} + +resource_schema "aws_iotanalytics_dataset" { + cloudformation_type_name = "AWS::IoTAnalytics::Dataset" +} + +resource_schema "aws_iotanalytics_datastore" { + cloudformation_type_name = "AWS::IoTAnalytics::Datastore" +} + +resource_schema "aws_iotanalytics_pipeline" { + cloudformation_type_name = "AWS::IoTAnalytics::Pipeline" +} + +resource_schema "aws_iotcoredeviceadvisor_suite_definition" { + cloudformation_type_name = "AWS::IoTCoreDeviceAdvisor::SuiteDefinition" +} + +resource_schema "aws_iotevents_alarm_model" { + cloudformation_type_name = "AWS::IoTEvents::AlarmModel" +} + +resource_schema "aws_iotevents_detector_model" { + cloudformation_type_name = "AWS::IoTEvents::DetectorModel" +} + +resource_schema "aws_iotevents_input" { + cloudformation_type_name = "AWS::IoTEvents::Input" +} + +resource_schema "aws_iotfleethub_application" { + cloudformation_type_name = "AWS::IoTFleetHub::Application" +} + +resource_schema "aws_iotfleetwise_campaign" { + cloudformation_type_name = "AWS::IoTFleetWise::Campaign" +} + +resource_schema "aws_iotfleetwise_decoder_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::DecoderManifest" +} + +resource_schema "aws_iotfleetwise_fleet" { + cloudformation_type_name = "AWS::IoTFleetWise::Fleet" +} + +resource_schema "aws_iotfleetwise_model_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::ModelManifest" +} + +resource_schema "aws_iotfleetwise_signal_catalog" { + cloudformation_type_name = "AWS::IoTFleetWise::SignalCatalog" +} + +resource_schema "aws_iotfleetwise_state_template" { + cloudformation_type_name = "AWS::IoTFleetWise::StateTemplate" +} + +resource_schema "aws_iotfleetwise_vehicle" { + cloudformation_type_name = "AWS::IoTFleetWise::Vehicle" +} + +resource_schema "aws_iotsitewise_access_policy" { + cloudformation_type_name = "AWS::IoTSiteWise::AccessPolicy" +} + +resource_schema "aws_iotsitewise_asset" { + cloudformation_type_name = "AWS::IoTSiteWise::Asset" +} + +resource_schema "aws_iotsitewise_asset_model" { + cloudformation_type_name = "AWS::IoTSiteWise::AssetModel" +} + +resource_schema "aws_iotsitewise_dashboard" { + cloudformation_type_name = "AWS::IoTSiteWise::Dashboard" +} + +resource_schema "aws_iotsitewise_gateway" { + cloudformation_type_name = "AWS::IoTSiteWise::Gateway" +} + +resource_schema "aws_iotsitewise_portal" { + cloudformation_type_name = "AWS::IoTSiteWise::Portal" +} + +resource_schema "aws_iotsitewise_project" { + cloudformation_type_name = "AWS::IoTSiteWise::Project" +} + +resource_schema "aws_iottwinmaker_component_type" { + cloudformation_type_name = "AWS::IoTTwinMaker::ComponentType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_entity" { + cloudformation_type_name = "AWS::IoTTwinMaker::Entity" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_scene" { + cloudformation_type_name = "AWS::IoTTwinMaker::Scene" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_sync_job" { + cloudformation_type_name = "AWS::IoTTwinMaker::SyncJob" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_workspace" { + cloudformation_type_name = "AWS::IoTTwinMaker::Workspace" +} + +resource_schema "aws_iotwireless_destination" { + cloudformation_type_name = "AWS::IoTWireless::Destination" +} + +resource_schema "aws_iotwireless_device_profile" { + cloudformation_type_name = "AWS::IoTWireless::DeviceProfile" +} + +resource_schema "aws_iotwireless_fuota_task" { + cloudformation_type_name = "AWS::IoTWireless::FuotaTask" +} + +resource_schema "aws_iotwireless_multicast_group" { + cloudformation_type_name = "AWS::IoTWireless::MulticastGroup" +} + +resource_schema "aws_iotwireless_network_analyzer_configuration" { + cloudformation_type_name = "AWS::IoTWireless::NetworkAnalyzerConfiguration" +} + +resource_schema "aws_iotwireless_partner_account" { + cloudformation_type_name = "AWS::IoTWireless::PartnerAccount" +} + +resource_schema "aws_iotwireless_service_profile" { + cloudformation_type_name = "AWS::IoTWireless::ServiceProfile" +} + +resource_schema "aws_iotwireless_task_definition" { + cloudformation_type_name = "AWS::IoTWireless::TaskDefinition" +} + +resource_schema "aws_iotwireless_wireless_device" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDevice" +} + +resource_schema "aws_iotwireless_wireless_device_import_task" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDeviceImportTask" +} + +resource_schema "aws_iotwireless_wireless_gateway" { + cloudformation_type_name = "AWS::IoTWireless::WirelessGateway" +} + +resource_schema "aws_kms_alias" { + cloudformation_type_name = "AWS::KMS::Alias" +} + +resource_schema "aws_kms_key" { + cloudformation_type_name = "AWS::KMS::Key" +} + +resource_schema "aws_kms_replica_key" { + cloudformation_type_name = "AWS::KMS::ReplicaKey" +} + +resource_schema "aws_kafkaconnect_connector" { + cloudformation_type_name = "AWS::KafkaConnect::Connector" +} + +resource_schema "aws_kafkaconnect_custom_plugin" { + cloudformation_type_name = "AWS::KafkaConnect::CustomPlugin" +} + +resource_schema "aws_kafkaconnect_worker_configuration" { + cloudformation_type_name = "AWS::KafkaConnect::WorkerConfiguration" +} + +resource_schema "aws_kendra_data_source" { + cloudformation_type_name = "AWS::Kendra::DataSource" +} + +resource_schema "aws_kendra_faq" { + cloudformation_type_name = "AWS::Kendra::Faq" +} + +resource_schema "aws_kendra_index" { + cloudformation_type_name = "AWS::Kendra::Index" +} + +resource_schema "aws_kendraranking_execution_plan" { + cloudformation_type_name = "AWS::KendraRanking::ExecutionPlan" +} + +resource_schema "aws_kinesis_resource_policy" { + cloudformation_type_name = "AWS::Kinesis::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kinesis_stream" { + cloudformation_type_name = "AWS::Kinesis::Stream" +} + +resource_schema "aws_kinesisanalyticsv2_application" { + cloudformation_type_name = "AWS::KinesisAnalyticsV2::Application" +} + +resource_schema "aws_kinesisfirehose_delivery_stream" { + cloudformation_type_name = "AWS::KinesisFirehose::DeliveryStream" +} + +resource_schema "aws_kinesisvideo_signaling_channel" { + cloudformation_type_name = "AWS::KinesisVideo::SignalingChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kinesisvideo_stream" { + cloudformation_type_name = "AWS::KinesisVideo::Stream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_data_cells_filter" { + cloudformation_type_name = "AWS::LakeFormation::DataCellsFilter" +} + +resource_schema "aws_lakeformation_principal_permissions" { + cloudformation_type_name = "AWS::LakeFormation::PrincipalPermissions" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_tag" { + cloudformation_type_name = "AWS::LakeFormation::Tag" +} + +resource_schema "aws_lakeformation_tag_association" { + cloudformation_type_name = "AWS::LakeFormation::TagAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_alias" { + cloudformation_type_name = "AWS::Lambda::Alias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_code_signing_config" { + cloudformation_type_name = "AWS::Lambda::CodeSigningConfig" +} + +resource_schema "aws_lambda_event_invoke_config" { + cloudformation_type_name = "AWS::Lambda::EventInvokeConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_event_source_mapping" { + cloudformation_type_name = "AWS::Lambda::EventSourceMapping" +} + +resource_schema "aws_lambda_function" { + cloudformation_type_name = "AWS::Lambda::Function" +} + +resource_schema "aws_lambda_layer_version" { + cloudformation_type_name = "AWS::Lambda::LayerVersion" +} + +resource_schema "aws_lambda_layer_version_permission" { + cloudformation_type_name = "AWS::Lambda::LayerVersionPermission" +} + +resource_schema "aws_lambda_permission" { + cloudformation_type_name = "AWS::Lambda::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_url" { + cloudformation_type_name = "AWS::Lambda::Url" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_version" { + cloudformation_type_name = "AWS::Lambda::Version" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_launchwizard_deployment" { + cloudformation_type_name = "AWS::LaunchWizard::Deployment" +} + +resource_schema "aws_lex_bot" { + cloudformation_type_name = "AWS::Lex::Bot" +} + +resource_schema "aws_lex_bot_alias" { + cloudformation_type_name = "AWS::Lex::BotAlias" +} + +resource_schema "aws_lex_bot_version" { + cloudformation_type_name = "AWS::Lex::BotVersion" +} + +resource_schema "aws_lex_resource_policy" { + cloudformation_type_name = "AWS::Lex::ResourcePolicy" +} + +resource_schema "aws_licensemanager_grant" { + cloudformation_type_name = "AWS::LicenseManager::Grant" +} + +resource_schema "aws_licensemanager_license" { + cloudformation_type_name = "AWS::LicenseManager::License" +} + +resource_schema "aws_lightsail_alarm" { + cloudformation_type_name = "AWS::Lightsail::Alarm" +} + +resource_schema "aws_lightsail_bucket" { + cloudformation_type_name = "AWS::Lightsail::Bucket" +} + +resource_schema "aws_lightsail_certificate" { + cloudformation_type_name = "AWS::Lightsail::Certificate" +} + +resource_schema "aws_lightsail_container" { + cloudformation_type_name = "AWS::Lightsail::Container" +} + +resource_schema "aws_lightsail_database" { + cloudformation_type_name = "AWS::Lightsail::Database" +} + +resource_schema "aws_lightsail_disk" { + cloudformation_type_name = "AWS::Lightsail::Disk" +} + +resource_schema "aws_lightsail_distribution" { + cloudformation_type_name = "AWS::Lightsail::Distribution" +} + +resource_schema "aws_lightsail_instance" { + cloudformation_type_name = "AWS::Lightsail::Instance" +} + +resource_schema "aws_lightsail_load_balancer" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancer" +} + +resource_schema "aws_lightsail_load_balancer_tls_certificate" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancerTlsCertificate" +} + +resource_schema "aws_lightsail_static_ip" { + cloudformation_type_name = "AWS::Lightsail::StaticIp" +} + +resource_schema "aws_location_api_key" { + cloudformation_type_name = "AWS::Location::APIKey" +} + +resource_schema "aws_location_geofence_collection" { + cloudformation_type_name = "AWS::Location::GeofenceCollection" +} + +resource_schema "aws_location_map" { + cloudformation_type_name = "AWS::Location::Map" +} + +resource_schema "aws_location_place_index" { + cloudformation_type_name = "AWS::Location::PlaceIndex" +} + +resource_schema "aws_location_route_calculator" { + cloudformation_type_name = "AWS::Location::RouteCalculator" +} + +resource_schema "aws_location_tracker" { + cloudformation_type_name = "AWS::Location::Tracker" +} + +resource_schema "aws_location_tracker_consumer" { + cloudformation_type_name = "AWS::Location::TrackerConsumer" +} + +resource_schema "aws_logs_account_policy" { + cloudformation_type_name = "AWS::Logs::AccountPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_delivery" { + cloudformation_type_name = "AWS::Logs::Delivery" +} + +resource_schema "aws_logs_delivery_destination" { + cloudformation_type_name = "AWS::Logs::DeliveryDestination" +} + +resource_schema "aws_logs_delivery_source" { + cloudformation_type_name = "AWS::Logs::DeliverySource" +} + +resource_schema "aws_logs_destination" { + cloudformation_type_name = "AWS::Logs::Destination" +} + +resource_schema "aws_logs_integration" { + cloudformation_type_name = "AWS::Logs::Integration" +} + +resource_schema "aws_logs_log_anomaly_detector" { + cloudformation_type_name = "AWS::Logs::LogAnomalyDetector" +} + +resource_schema "aws_logs_log_group" { + cloudformation_type_name = "AWS::Logs::LogGroup" +} + +resource_schema "aws_logs_log_stream" { + cloudformation_type_name = "AWS::Logs::LogStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_metric_filter" { + cloudformation_type_name = "AWS::Logs::MetricFilter" +} + +resource_schema "aws_logs_query_definition" { + cloudformation_type_name = "AWS::Logs::QueryDefinition" +} + +resource_schema "aws_logs_resource_policy" { + cloudformation_type_name = "AWS::Logs::ResourcePolicy" +} + +resource_schema "aws_logs_subscription_filter" { + cloudformation_type_name = "AWS::Logs::SubscriptionFilter" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_transformer" { + cloudformation_type_name = "AWS::Logs::Transformer" +} + +resource_schema "aws_lookoutequipment_inference_scheduler" { + cloudformation_type_name = "AWS::LookoutEquipment::InferenceScheduler" +} + +resource_schema "aws_lookoutmetrics_alert" { + cloudformation_type_name = "AWS::LookoutMetrics::Alert" +} + +resource_schema "aws_lookoutmetrics_anomaly_detector" { + cloudformation_type_name = "AWS::LookoutMetrics::AnomalyDetector" +} + +resource_schema "aws_lookoutvision_project" { + cloudformation_type_name = "AWS::LookoutVision::Project" +} + +resource_schema "aws_m2_application" { + cloudformation_type_name = "AWS::M2::Application" +} + +resource_schema "aws_m2_deployment" { + cloudformation_type_name = "AWS::M2::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_m2_environment" { + cloudformation_type_name = "AWS::M2::Environment" +} + +resource_schema "aws_msk_batch_scram_secret" { + cloudformation_type_name = "AWS::MSK::BatchScramSecret" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_cluster" { + cloudformation_type_name = "AWS::MSK::Cluster" +} + +resource_schema "aws_msk_cluster_policy" { + cloudformation_type_name = "AWS::MSK::ClusterPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_configuration" { + cloudformation_type_name = "AWS::MSK::Configuration" +} + +resource_schema "aws_msk_replicator" { + cloudformation_type_name = "AWS::MSK::Replicator" +} + +resource_schema "aws_msk_serverless_cluster" { + cloudformation_type_name = "AWS::MSK::ServerlessCluster" +} + +resource_schema "aws_msk_vpc_connection" { + cloudformation_type_name = "AWS::MSK::VpcConnection" +} + +resource_schema "aws_mwaa_environment" { + cloudformation_type_name = "AWS::MWAA::Environment" +} + +resource_schema "aws_macie_allow_list" { + cloudformation_type_name = "AWS::Macie::AllowList" +} + +resource_schema "aws_macie_custom_data_identifier" { + cloudformation_type_name = "AWS::Macie::CustomDataIdentifier" +} + +resource_schema "aws_macie_findings_filter" { + cloudformation_type_name = "AWS::Macie::FindingsFilter" +} + +resource_schema "aws_macie_session" { + cloudformation_type_name = "AWS::Macie::Session" +} + +resource_schema "aws_managedblockchain_accessor" { + cloudformation_type_name = "AWS::ManagedBlockchain::Accessor" +} + +resource_schema "aws_mediaconnect_bridge" { + cloudformation_type_name = "AWS::MediaConnect::Bridge" +} + +resource_schema "aws_mediaconnect_bridge_output" { + cloudformation_type_name = "AWS::MediaConnect::BridgeOutput" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_bridge_source" { + cloudformation_type_name = "AWS::MediaConnect::BridgeSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow" { + cloudformation_type_name = "AWS::MediaConnect::Flow" +} + +resource_schema "aws_mediaconnect_flow_entitlement" { + cloudformation_type_name = "AWS::MediaConnect::FlowEntitlement" +} + +resource_schema "aws_mediaconnect_flow_output" { + cloudformation_type_name = "AWS::MediaConnect::FlowOutput" +} + +resource_schema "aws_mediaconnect_flow_source" { + cloudformation_type_name = "AWS::MediaConnect::FlowSource" +} + +resource_schema "aws_mediaconnect_flow_vpc_interface" { + cloudformation_type_name = "AWS::MediaConnect::FlowVpcInterface" +} + +resource_schema "aws_mediaconnect_gateway" { + cloudformation_type_name = "AWS::MediaConnect::Gateway" +} + +resource_schema "aws_medialive_channel_placement_group" { + cloudformation_type_name = "AWS::MediaLive::ChannelPlacementGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_medialive_cloudwatch_alarm_template" { + cloudformation_type_name = "AWS::MediaLive::CloudWatchAlarmTemplate" +} + +resource_schema "aws_medialive_cloudwatch_alarm_template_group" { + cloudformation_type_name = "AWS::MediaLive::CloudWatchAlarmTemplateGroup" +} + +resource_schema "aws_medialive_cluster" { + cloudformation_type_name = "AWS::MediaLive::Cluster" +} + +resource_schema "aws_medialive_event_bridge_rule_template" { + cloudformation_type_name = "AWS::MediaLive::EventBridgeRuleTemplate" +} + +resource_schema "aws_medialive_event_bridge_rule_template_group" { + cloudformation_type_name = "AWS::MediaLive::EventBridgeRuleTemplateGroup" +} + +resource_schema "aws_medialive_multiplex" { + cloudformation_type_name = "AWS::MediaLive::Multiplex" +} + +resource_schema "aws_medialive_multiplexprogram" { + cloudformation_type_name = "AWS::MediaLive::Multiplexprogram" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_medialive_network" { + cloudformation_type_name = "AWS::MediaLive::Network" +} + +resource_schema "aws_medialive_sdi_source" { + cloudformation_type_name = "AWS::MediaLive::SdiSource" +} + +resource_schema "aws_medialive_signal_map" { + cloudformation_type_name = "AWS::MediaLive::SignalMap" +} + +resource_schema "aws_mediapackage_asset" { + cloudformation_type_name = "AWS::MediaPackage::Asset" +} + +resource_schema "aws_mediapackage_channel" { + cloudformation_type_name = "AWS::MediaPackage::Channel" +} + +resource_schema "aws_mediapackage_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackage::OriginEndpoint" +} + +resource_schema "aws_mediapackage_packaging_configuration" { + cloudformation_type_name = "AWS::MediaPackage::PackagingConfiguration" +} + +resource_schema "aws_mediapackage_packaging_group" { + cloudformation_type_name = "AWS::MediaPackage::PackagingGroup" +} + +resource_schema "aws_mediapackagev2_channel" { + cloudformation_type_name = "AWS::MediaPackageV2::Channel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_channel_group" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelGroup" +} + +resource_schema "aws_mediapackagev2_channel_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpoint" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_channel" { + cloudformation_type_name = "AWS::MediaTailor::Channel" +} + +resource_schema "aws_mediatailor_channel_policy" { + cloudformation_type_name = "AWS::MediaTailor::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_live_source" { + cloudformation_type_name = "AWS::MediaTailor::LiveSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_playback_configuration" { + cloudformation_type_name = "AWS::MediaTailor::PlaybackConfiguration" +} + +resource_schema "aws_mediatailor_source_location" { + cloudformation_type_name = "AWS::MediaTailor::SourceLocation" +} + +resource_schema "aws_mediatailor_vod_source" { + cloudformation_type_name = "AWS::MediaTailor::VodSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_memorydb_acl" { + cloudformation_type_name = "AWS::MemoryDB::ACL" +} + +resource_schema "aws_memorydb_cluster" { + cloudformation_type_name = "AWS::MemoryDB::Cluster" +} + +resource_schema "aws_memorydb_multi_region_cluster" { + cloudformation_type_name = "AWS::MemoryDB::MultiRegionCluster" +} + +resource_schema "aws_memorydb_parameter_group" { + cloudformation_type_name = "AWS::MemoryDB::ParameterGroup" +} + +resource_schema "aws_memorydb_subnet_group" { + cloudformation_type_name = "AWS::MemoryDB::SubnetGroup" +} + +resource_schema "aws_memorydb_user" { + cloudformation_type_name = "AWS::MemoryDB::User" +} + +resource_schema "aws_neptune_db_cluster" { + cloudformation_type_name = "AWS::Neptune::DBCluster" +} + +resource_schema "aws_neptunegraph_graph" { + cloudformation_type_name = "AWS::NeptuneGraph::Graph" +} + +resource_schema "aws_neptunegraph_private_graph_endpoint" { + cloudformation_type_name = "AWS::NeptuneGraph::PrivateGraphEndpoint" +} + +resource_schema "aws_networkfirewall_firewall" { + cloudformation_type_name = "AWS::NetworkFirewall::Firewall" +} + +resource_schema "aws_networkfirewall_firewall_policy" { + cloudformation_type_name = "AWS::NetworkFirewall::FirewallPolicy" +} + +resource_schema "aws_networkfirewall_logging_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::LoggingConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkfirewall_rule_group" { + cloudformation_type_name = "AWS::NetworkFirewall::RuleGroup" +} + +resource_schema "aws_networkfirewall_tls_inspection_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::TLSInspectionConfiguration" +} + +resource_schema "aws_networkmanager_connect_attachment" { + cloudformation_type_name = "AWS::NetworkManager::ConnectAttachment" +} + +resource_schema "aws_networkmanager_connect_peer" { + cloudformation_type_name = "AWS::NetworkManager::ConnectPeer" +} + +resource_schema "aws_networkmanager_core_network" { + cloudformation_type_name = "AWS::NetworkManager::CoreNetwork" +} + +resource_schema "aws_networkmanager_customer_gateway_association" { + cloudformation_type_name = "AWS::NetworkManager::CustomerGatewayAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_device" { + cloudformation_type_name = "AWS::NetworkManager::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_direct_connect_gateway_attachment" { + cloudformation_type_name = "AWS::NetworkManager::DirectConnectGatewayAttachment" +} + +resource_schema "aws_networkmanager_global_network" { + cloudformation_type_name = "AWS::NetworkManager::GlobalNetwork" +} + +resource_schema "aws_networkmanager_link" { + cloudformation_type_name = "AWS::NetworkManager::Link" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_link_association" { + cloudformation_type_name = "AWS::NetworkManager::LinkAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site" { + cloudformation_type_name = "AWS::NetworkManager::Site" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site_to_site_vpn_attachment" { + cloudformation_type_name = "AWS::NetworkManager::SiteToSiteVpnAttachment" +} + +resource_schema "aws_networkmanager_transit_gateway_peering" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayPeering" +} + +resource_schema "aws_networkmanager_transit_gateway_registration" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRegistration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_transit_gateway_route_table_attachment" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRouteTableAttachment" +} + +resource_schema "aws_networkmanager_vpc_attachment" { + cloudformation_type_name = "AWS::NetworkManager::VpcAttachment" +} + +resource_schema "aws_osis_pipeline" { + cloudformation_type_name = "AWS::OSIS::Pipeline" +} + +resource_schema "aws_oam_link" { + cloudformation_type_name = "AWS::Oam::Link" +} + +resource_schema "aws_oam_sink" { + cloudformation_type_name = "AWS::Oam::Sink" +} + +resource_schema "aws_omics_annotation_store" { + cloudformation_type_name = "AWS::Omics::AnnotationStore" +} + +resource_schema "aws_omics_reference_store" { + cloudformation_type_name = "AWS::Omics::ReferenceStore" +} + +resource_schema "aws_omics_run_group" { + cloudformation_type_name = "AWS::Omics::RunGroup" +} + +resource_schema "aws_omics_sequence_store" { + cloudformation_type_name = "AWS::Omics::SequenceStore" +} + +resource_schema "aws_omics_variant_store" { + cloudformation_type_name = "AWS::Omics::VariantStore" +} + +resource_schema "aws_omics_workflow" { + cloudformation_type_name = "AWS::Omics::Workflow" +} + +resource_schema "aws_opensearchserverless_access_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::AccessPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_collection" { + cloudformation_type_name = "AWS::OpenSearchServerless::Collection" +} + +resource_schema "aws_opensearchserverless_lifecycle_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::LifecyclePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_config" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_vpc_endpoint" { + cloudformation_type_name = "AWS::OpenSearchServerless::VpcEndpoint" +} + +resource_schema "aws_opensearchservice_application" { + cloudformation_type_name = "AWS::OpenSearchService::Application" +} + +resource_schema "aws_opensearchservice_domain" { + cloudformation_type_name = "AWS::OpenSearchService::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opsworkscm_server" { + cloudformation_type_name = "AWS::OpsWorksCM::Server" +} + +resource_schema "aws_organizations_account" { + cloudformation_type_name = "AWS::Organizations::Account" +} + +resource_schema "aws_organizations_organization" { + cloudformation_type_name = "AWS::Organizations::Organization" +} + +resource_schema "aws_organizations_organizational_unit" { + cloudformation_type_name = "AWS::Organizations::OrganizationalUnit" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_policy" { + cloudformation_type_name = "AWS::Organizations::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_resource_policy" { + cloudformation_type_name = "AWS::Organizations::ResourcePolicy" +} + +resource_schema "aws_pcaconnectorad_connector" { + cloudformation_type_name = "AWS::PCAConnectorAD::Connector" +} + +resource_schema "aws_pcaconnectorad_directory_registration" { + cloudformation_type_name = "AWS::PCAConnectorAD::DirectoryRegistration" +} + +resource_schema "aws_pcaconnectorad_service_principal_name" { + cloudformation_type_name = "AWS::PCAConnectorAD::ServicePrincipalName" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template" { + cloudformation_type_name = "AWS::PCAConnectorAD::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template_group_access_control_entry" { + cloudformation_type_name = "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorscep_challenge" { + cloudformation_type_name = "AWS::PCAConnectorSCEP::Challenge" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorscep_connector" { + cloudformation_type_name = "AWS::PCAConnectorSCEP::Connector" +} + +resource_schema "aws_pcs_cluster" { + cloudformation_type_name = "AWS::PCS::Cluster" +} + +resource_schema "aws_pcs_compute_node_group" { + cloudformation_type_name = "AWS::PCS::ComputeNodeGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcs_queue" { + cloudformation_type_name = "AWS::PCS::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_panorama_application_instance" { + cloudformation_type_name = "AWS::Panorama::ApplicationInstance" +} + +resource_schema "aws_panorama_package" { + cloudformation_type_name = "AWS::Panorama::Package" +} + +resource_schema "aws_panorama_package_version" { + cloudformation_type_name = "AWS::Panorama::PackageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_paymentcryptography_alias" { + cloudformation_type_name = "AWS::PaymentCryptography::Alias" +} + +resource_schema "aws_paymentcryptography_key" { + cloudformation_type_name = "AWS::PaymentCryptography::Key" +} + +resource_schema "aws_personalize_dataset" { + cloudformation_type_name = "AWS::Personalize::Dataset" +} + +resource_schema "aws_personalize_dataset_group" { + cloudformation_type_name = "AWS::Personalize::DatasetGroup" +} + +resource_schema "aws_personalize_schema" { + cloudformation_type_name = "AWS::Personalize::Schema" +} + +resource_schema "aws_personalize_solution" { + cloudformation_type_name = "AWS::Personalize::Solution" +} + +resource_schema "aws_pinpoint_in_app_template" { + cloudformation_type_name = "AWS::Pinpoint::InAppTemplate" +} + +resource_schema "aws_pipes_pipe" { + cloudformation_type_name = "AWS::Pipes::Pipe" +} + +resource_schema "aws_proton_environment_account_connection" { + cloudformation_type_name = "AWS::Proton::EnvironmentAccountConnection" +} + +resource_schema "aws_proton_environment_template" { + cloudformation_type_name = "AWS::Proton::EnvironmentTemplate" +} + +resource_schema "aws_proton_service_template" { + cloudformation_type_name = "AWS::Proton::ServiceTemplate" +} + +resource_schema "aws_qbusiness_application" { + cloudformation_type_name = "AWS::QBusiness::Application" +} + +resource_schema "aws_qbusiness_data_accessor" { + cloudformation_type_name = "AWS::QBusiness::DataAccessor" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_data_source" { + cloudformation_type_name = "AWS::QBusiness::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_index" { + cloudformation_type_name = "AWS::QBusiness::Index" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_permission" { + cloudformation_type_name = "AWS::QBusiness::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_plugin" { + cloudformation_type_name = "AWS::QBusiness::Plugin" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_retriever" { + cloudformation_type_name = "AWS::QBusiness::Retriever" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_web_experience" { + cloudformation_type_name = "AWS::QBusiness::WebExperience" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qldb_stream" { + cloudformation_type_name = "AWS::QLDB::Stream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_analysis" { + cloudformation_type_name = "AWS::QuickSight::Analysis" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_custom_permissions" { + cloudformation_type_name = "AWS::QuickSight::CustomPermissions" +} + +resource_schema "aws_quicksight_dashboard" { + cloudformation_type_name = "AWS::QuickSight::Dashboard" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_data_set" { + cloudformation_type_name = "AWS::QuickSight::DataSet" +} + +resource_schema "aws_quicksight_data_source" { + cloudformation_type_name = "AWS::QuickSight::DataSource" +} + +resource_schema "aws_quicksight_folder" { + cloudformation_type_name = "AWS::QuickSight::Folder" +} + +resource_schema "aws_quicksight_refresh_schedule" { + cloudformation_type_name = "AWS::QuickSight::RefreshSchedule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_template" { + cloudformation_type_name = "AWS::QuickSight::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_theme" { + cloudformation_type_name = "AWS::QuickSight::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_topic" { + cloudformation_type_name = "AWS::QuickSight::Topic" +} + +resource_schema "aws_quicksight_vpc_connection" { + cloudformation_type_name = "AWS::QuickSight::VPCConnection" +} + +resource_schema "aws_ram_permission" { + cloudformation_type_name = "AWS::RAM::Permission" +} + +resource_schema "aws_ram_resource_share" { + cloudformation_type_name = "AWS::RAM::ResourceShare" +} + +resource_schema "aws_rds_custom_db_engine_version" { + cloudformation_type_name = "AWS::RDS::CustomDBEngineVersion" +} + +resource_schema "aws_rds_db_cluster" { + cloudformation_type_name = "AWS::RDS::DBCluster" +} + +resource_schema "aws_rds_db_cluster_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBClusterParameterGroup" +} + +resource_schema "aws_rds_db_instance" { + cloudformation_type_name = "AWS::RDS::DBInstance" +} + +resource_schema "aws_rds_db_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBParameterGroup" +} + +resource_schema "aws_rds_db_proxy" { + cloudformation_type_name = "AWS::RDS::DBProxy" +} + +resource_schema "aws_rds_db_proxy_endpoint" { + cloudformation_type_name = "AWS::RDS::DBProxyEndpoint" +} + +resource_schema "aws_rds_db_proxy_target_group" { + cloudformation_type_name = "AWS::RDS::DBProxyTargetGroup" +} + +resource_schema "aws_rds_db_shard_group" { + cloudformation_type_name = "AWS::RDS::DBShardGroup" +} + +resource_schema "aws_rds_db_subnet_group" { + cloudformation_type_name = "AWS::RDS::DBSubnetGroup" +} + +resource_schema "aws_rds_event_subscription" { + cloudformation_type_name = "AWS::RDS::EventSubscription" +} + +resource_schema "aws_rds_global_cluster" { + cloudformation_type_name = "AWS::RDS::GlobalCluster" +} + +resource_schema "aws_rds_integration" { + cloudformation_type_name = "AWS::RDS::Integration" +} + +resource_schema "aws_rds_option_group" { + cloudformation_type_name = "AWS::RDS::OptionGroup" +} + +resource_schema "aws_rum_app_monitor" { + cloudformation_type_name = "AWS::RUM::AppMonitor" +} + +resource_schema "aws_rbin_rule" { + cloudformation_type_name = "AWS::Rbin::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_redshift_cluster" { + cloudformation_type_name = "AWS::Redshift::Cluster" +} + +resource_schema "aws_redshift_cluster_parameter_group" { + cloudformation_type_name = "AWS::Redshift::ClusterParameterGroup" +} + +resource_schema "aws_redshift_cluster_subnet_group" { + cloudformation_type_name = "AWS::Redshift::ClusterSubnetGroup" +} + +resource_schema "aws_redshift_endpoint_access" { + cloudformation_type_name = "AWS::Redshift::EndpointAccess" +} + +resource_schema "aws_redshift_endpoint_authorization" { + cloudformation_type_name = "AWS::Redshift::EndpointAuthorization" +} + +resource_schema "aws_redshift_event_subscription" { + cloudformation_type_name = "AWS::Redshift::EventSubscription" +} + +resource_schema "aws_redshift_integration" { + cloudformation_type_name = "AWS::Redshift::Integration" +} + +resource_schema "aws_redshift_scheduled_action" { + cloudformation_type_name = "AWS::Redshift::ScheduledAction" +} + +resource_schema "aws_redshiftserverless_namespace" { + cloudformation_type_name = "AWS::RedshiftServerless::Namespace" +} + +resource_schema "aws_redshiftserverless_workgroup" { + cloudformation_type_name = "AWS::RedshiftServerless::Workgroup" +} + +resource_schema "aws_refactorspaces_application" { + cloudformation_type_name = "AWS::RefactorSpaces::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_environment" { + cloudformation_type_name = "AWS::RefactorSpaces::Environment" +} + +resource_schema "aws_refactorspaces_route" { + cloudformation_type_name = "AWS::RefactorSpaces::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_service" { + cloudformation_type_name = "AWS::RefactorSpaces::Service" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rekognition_collection" { + cloudformation_type_name = "AWS::Rekognition::Collection" +} + +resource_schema "aws_rekognition_project" { + cloudformation_type_name = "AWS::Rekognition::Project" +} + +resource_schema "aws_rekognition_stream_processor" { + cloudformation_type_name = "AWS::Rekognition::StreamProcessor" +} + +resource_schema "aws_resiliencehub_app" { + cloudformation_type_name = "AWS::ResilienceHub::App" +} + +resource_schema "aws_resiliencehub_resiliency_policy" { + cloudformation_type_name = "AWS::ResilienceHub::ResiliencyPolicy" +} + +resource_schema "aws_resourceexplorer2_default_view_association" { + cloudformation_type_name = "AWS::ResourceExplorer2::DefaultViewAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_resourceexplorer2_index" { + cloudformation_type_name = "AWS::ResourceExplorer2::Index" +} + +resource_schema "aws_resourceexplorer2_view" { + cloudformation_type_name = "AWS::ResourceExplorer2::View" +} + +resource_schema "aws_resourcegroups_group" { + cloudformation_type_name = "AWS::ResourceGroups::Group" +} + +resource_schema "aws_resourcegroups_tag_sync_task" { + cloudformation_type_name = "AWS::ResourceGroups::TagSyncTask" +} + +resource_schema "aws_robomaker_fleet" { + cloudformation_type_name = "AWS::RoboMaker::Fleet" +} + +resource_schema "aws_robomaker_robot" { + cloudformation_type_name = "AWS::RoboMaker::Robot" +} + +resource_schema "aws_robomaker_robot_application" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplication" +} + +resource_schema "aws_robomaker_robot_application_version" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_robomaker_simulation_application" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplication" +} + +resource_schema "aws_robomaker_simulation_application_version" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rolesanywhere_crl" { + cloudformation_type_name = "AWS::RolesAnywhere::CRL" +} + +resource_schema "aws_rolesanywhere_profile" { + cloudformation_type_name = "AWS::RolesAnywhere::Profile" +} + +resource_schema "aws_rolesanywhere_trust_anchor" { + cloudformation_type_name = "AWS::RolesAnywhere::TrustAnchor" +} + +resource_schema "aws_route53_cidr_collection" { + cloudformation_type_name = "AWS::Route53::CidrCollection" +} + +resource_schema "aws_route53_dnssec" { + cloudformation_type_name = "AWS::Route53::DNSSEC" +} + +resource_schema "aws_route53_health_check" { + cloudformation_type_name = "AWS::Route53::HealthCheck" +} + +resource_schema "aws_route53_hosted_zone" { + cloudformation_type_name = "AWS::Route53::HostedZone" +} + +resource_schema "aws_route53_key_signing_key" { + cloudformation_type_name = "AWS::Route53::KeySigningKey" +} + +resource_schema "aws_route53profiles_profile" { + cloudformation_type_name = "AWS::Route53Profiles::Profile" +} + +resource_schema "aws_route53profiles_profile_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileAssociation" +} + +resource_schema "aws_route53profiles_profile_resource_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_cluster" { + cloudformation_type_name = "AWS::Route53RecoveryControl::Cluster" +} + +resource_schema "aws_route53recoverycontrol_control_panel" { + cloudformation_type_name = "AWS::Route53RecoveryControl::ControlPanel" +} + +resource_schema "aws_route53recoverycontrol_routing_control" { + cloudformation_type_name = "AWS::Route53RecoveryControl::RoutingControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_safety_rule" { + cloudformation_type_name = "AWS::Route53RecoveryControl::SafetyRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoveryreadiness_cell" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::Cell" +} + +resource_schema "aws_route53recoveryreadiness_readiness_check" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ReadinessCheck" +} + +resource_schema "aws_route53recoveryreadiness_recovery_group" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::RecoveryGroup" +} + +resource_schema "aws_route53recoveryreadiness_resource_set" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ResourceSet" +} + +resource_schema "aws_route53resolver_firewall_domain_list" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallDomainList" +} + +resource_schema "aws_route53resolver_firewall_rule_group" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroup" +} + +resource_schema "aws_route53resolver_firewall_rule_group_association" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroupAssociation" +} + +resource_schema "aws_route53resolver_outpost_resolver" { + cloudformation_type_name = "AWS::Route53Resolver::OutpostResolver" +} + +resource_schema "aws_route53resolver_resolver_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverConfig" +} + +resource_schema "aws_route53resolver_resolver_dnssec_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverDNSSECConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation" +} + +resource_schema "aws_route53resolver_resolver_rule" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRule" +} + +resource_schema "aws_route53resolver_resolver_rule_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRuleAssociation" +} + +resource_schema "aws_s3_access_grant" { + cloudformation_type_name = "AWS::S3::AccessGrant" +} + +resource_schema "aws_s3_access_grants_instance" { + cloudformation_type_name = "AWS::S3::AccessGrantsInstance" +} + +resource_schema "aws_s3_access_grants_location" { + cloudformation_type_name = "AWS::S3::AccessGrantsLocation" +} + +resource_schema "aws_s3_access_point" { + cloudformation_type_name = "AWS::S3::AccessPoint" +} + +resource_schema "aws_s3_bucket" { + cloudformation_type_name = "AWS::S3::Bucket" +} + +resource_schema "aws_s3_bucket_policy" { + cloudformation_type_name = "AWS::S3::BucketPolicy" +} + +resource_schema "aws_s3_multi_region_access_point" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPoint" +} + +resource_schema "aws_s3_multi_region_access_point_policy" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPointPolicy" +} + +resource_schema "aws_s3_storage_lens" { + cloudformation_type_name = "AWS::S3::StorageLens" +} + +resource_schema "aws_s3_storage_lens_group" { + cloudformation_type_name = "AWS::S3::StorageLensGroup" +} + +resource_schema "aws_s3express_bucket_policy" { + cloudformation_type_name = "AWS::S3Express::BucketPolicy" +} + +resource_schema "aws_s3express_directory_bucket" { + cloudformation_type_name = "AWS::S3Express::DirectoryBucket" +} + +resource_schema "aws_s3objectlambda_access_point" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPoint" +} + +resource_schema "aws_s3objectlambda_access_point_policy" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_access_point" { + cloudformation_type_name = "AWS::S3Outposts::AccessPoint" +} + +resource_schema "aws_s3outposts_bucket" { + cloudformation_type_name = "AWS::S3Outposts::Bucket" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_bucket_policy" { + cloudformation_type_name = "AWS::S3Outposts::BucketPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_endpoint" { + cloudformation_type_name = "AWS::S3Outposts::Endpoint" +} + +resource_schema "aws_s3tables_table_bucket" { + cloudformation_type_name = "AWS::S3Tables::TableBucket" +} + +resource_schema "aws_s3tables_table_bucket_policy" { + cloudformation_type_name = "AWS::S3Tables::TableBucketPolicy" +} + +resource_schema "aws_ses_configuration_set" { + cloudformation_type_name = "AWS::SES::ConfigurationSet" +} + +resource_schema "aws_ses_configuration_set_event_destination" { + cloudformation_type_name = "AWS::SES::ConfigurationSetEventDestination" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ses_contact_list" { + cloudformation_type_name = "AWS::SES::ContactList" +} + +resource_schema "aws_ses_dedicated_ip_pool" { + cloudformation_type_name = "AWS::SES::DedicatedIpPool" +} + +resource_schema "aws_ses_email_identity" { + cloudformation_type_name = "AWS::SES::EmailIdentity" +} + +resource_schema "aws_ses_mail_manager_addon_instance" { + cloudformation_type_name = "AWS::SES::MailManagerAddonInstance" +} + +resource_schema "aws_ses_mail_manager_addon_subscription" { + cloudformation_type_name = "AWS::SES::MailManagerAddonSubscription" +} + +resource_schema "aws_ses_mail_manager_archive" { + cloudformation_type_name = "AWS::SES::MailManagerArchive" +} + +resource_schema "aws_ses_mail_manager_ingress_point" { + cloudformation_type_name = "AWS::SES::MailManagerIngressPoint" +} + +resource_schema "aws_ses_mail_manager_relay" { + cloudformation_type_name = "AWS::SES::MailManagerRelay" +} + +resource_schema "aws_ses_mail_manager_rule_set" { + cloudformation_type_name = "AWS::SES::MailManagerRuleSet" +} + +resource_schema "aws_ses_mail_manager_traffic_policy" { + cloudformation_type_name = "AWS::SES::MailManagerTrafficPolicy" +} + +resource_schema "aws_ses_template" { + cloudformation_type_name = "AWS::SES::Template" +} + +resource_schema "aws_ses_vdm_attributes" { + cloudformation_type_name = "AWS::SES::VdmAttributes" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sns_subscription" { + cloudformation_type_name = "AWS::SNS::Subscription" +} + +resource_schema "aws_sns_topic" { + cloudformation_type_name = "AWS::SNS::Topic" +} + +resource_schema "aws_sns_topic_inline_policy" { + cloudformation_type_name = "AWS::SNS::TopicInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sqs_queue" { + cloudformation_type_name = "AWS::SQS::Queue" +} + +resource_schema "aws_sqs_queue_inline_policy" { + cloudformation_type_name = "AWS::SQS::QueueInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssm_association" { + cloudformation_type_name = "AWS::SSM::Association" +} + +resource_schema "aws_ssm_document" { + cloudformation_type_name = "AWS::SSM::Document" +} + +resource_schema "aws_ssm_parameter" { + cloudformation_type_name = "AWS::SSM::Parameter" +} + +resource_schema "aws_ssm_patch_baseline" { + cloudformation_type_name = "AWS::SSM::PatchBaseline" +} + +resource_schema "aws_ssm_resource_data_sync" { + cloudformation_type_name = "AWS::SSM::ResourceDataSync" +} + +resource_schema "aws_ssm_resource_policy" { + cloudformation_type_name = "AWS::SSM::ResourcePolicy" +} + +resource_schema "aws_ssmcontacts_contact" { + cloudformation_type_name = "AWS::SSMContacts::Contact" +} + +resource_schema "aws_ssmcontacts_contact_channel" { + cloudformation_type_name = "AWS::SSMContacts::ContactChannel" +} + +resource_schema "aws_ssmcontacts_plan" { + cloudformation_type_name = "AWS::SSMContacts::Plan" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssmcontacts_rotation" { + cloudformation_type_name = "AWS::SSMContacts::Rotation" +} + +resource_schema "aws_ssmincidents_replication_set" { + cloudformation_type_name = "AWS::SSMIncidents::ReplicationSet" +} + +resource_schema "aws_ssmincidents_response_plan" { + cloudformation_type_name = "AWS::SSMIncidents::ResponsePlan" +} + +resource_schema "aws_ssmquicksetup_configuration_manager" { + cloudformation_type_name = "AWS::SSMQuickSetup::ConfigurationManager" +} + +resource_schema "aws_sso_application" { + cloudformation_type_name = "AWS::SSO::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sso_application_assignment" { + cloudformation_type_name = "AWS::SSO::ApplicationAssignment" +} + +resource_schema "aws_sso_assignment" { + cloudformation_type_name = "AWS::SSO::Assignment" +} + +resource_schema "aws_sso_instance" { + cloudformation_type_name = "AWS::SSO::Instance" +} + +resource_schema "aws_sso_instance_access_control_attribute_configuration" { + cloudformation_type_name = "AWS::SSO::InstanceAccessControlAttributeConfiguration" +} + +resource_schema "aws_sso_permission_set" { + cloudformation_type_name = "AWS::SSO::PermissionSet" +} + +resource_schema "aws_sagemaker_app" { + cloudformation_type_name = "AWS::SageMaker::App" +} + +resource_schema "aws_sagemaker_app_image_config" { + cloudformation_type_name = "AWS::SageMaker::AppImageConfig" +} + +resource_schema "aws_sagemaker_cluster" { + cloudformation_type_name = "AWS::SageMaker::Cluster" +} + +resource_schema "aws_sagemaker_data_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::DataQualityJobDefinition" +} + +resource_schema "aws_sagemaker_device" { + cloudformation_type_name = "AWS::SageMaker::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_device_fleet" { + cloudformation_type_name = "AWS::SageMaker::DeviceFleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_domain" { + cloudformation_type_name = "AWS::SageMaker::Domain" +} + +resource_schema "aws_sagemaker_endpoint" { + cloudformation_type_name = "AWS::SageMaker::Endpoint" +} + +resource_schema "aws_sagemaker_feature_group" { + cloudformation_type_name = "AWS::SageMaker::FeatureGroup" +} + +resource_schema "aws_sagemaker_image" { + cloudformation_type_name = "AWS::SageMaker::Image" +} + +resource_schema "aws_sagemaker_image_version" { + cloudformation_type_name = "AWS::SageMaker::ImageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_inference_component" { + cloudformation_type_name = "AWS::SageMaker::InferenceComponent" +} + +resource_schema "aws_sagemaker_inference_experiment" { + cloudformation_type_name = "AWS::SageMaker::InferenceExperiment" +} + +resource_schema "aws_sagemaker_mlflow_tracking_server" { + cloudformation_type_name = "AWS::SageMaker::MlflowTrackingServer" +} + +resource_schema "aws_sagemaker_model_bias_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelBiasJobDefinition" +} + +resource_schema "aws_sagemaker_model_card" { + cloudformation_type_name = "AWS::SageMaker::ModelCard" +} + +resource_schema "aws_sagemaker_model_explainability_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelExplainabilityJobDefinition" +} + +resource_schema "aws_sagemaker_model_package" { + cloudformation_type_name = "AWS::SageMaker::ModelPackage" +} + +resource_schema "aws_sagemaker_model_package_group" { + cloudformation_type_name = "AWS::SageMaker::ModelPackageGroup" +} + +resource_schema "aws_sagemaker_model_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelQualityJobDefinition" +} + +resource_schema "aws_sagemaker_monitoring_schedule" { + cloudformation_type_name = "AWS::SageMaker::MonitoringSchedule" +} + +resource_schema "aws_sagemaker_partner_app" { + cloudformation_type_name = "AWS::SageMaker::PartnerApp" +} + +resource_schema "aws_sagemaker_pipeline" { + cloudformation_type_name = "AWS::SageMaker::Pipeline" +} + +resource_schema "aws_sagemaker_project" { + cloudformation_type_name = "AWS::SageMaker::Project" +} + +resource_schema "aws_sagemaker_space" { + cloudformation_type_name = "AWS::SageMaker::Space" +} + +resource_schema "aws_sagemaker_studio_lifecycle_config" { + cloudformation_type_name = "AWS::SageMaker::StudioLifecycleConfig" +} + +resource_schema "aws_sagemaker_user_profile" { + cloudformation_type_name = "AWS::SageMaker::UserProfile" +} + +resource_schema "aws_scheduler_schedule" { + cloudformation_type_name = "AWS::Scheduler::Schedule" +} + +resource_schema "aws_scheduler_schedule_group" { + cloudformation_type_name = "AWS::Scheduler::ScheduleGroup" +} + +resource_schema "aws_secretsmanager_resource_policy" { + cloudformation_type_name = "AWS::SecretsManager::ResourcePolicy" +} + +resource_schema "aws_secretsmanager_rotation_schedule" { + cloudformation_type_name = "AWS::SecretsManager::RotationSchedule" +} + +resource_schema "aws_secretsmanager_secret" { + cloudformation_type_name = "AWS::SecretsManager::Secret" +} + +resource_schema "aws_secretsmanager_secret_target_attachment" { + cloudformation_type_name = "AWS::SecretsManager::SecretTargetAttachment" +} + +resource_schema "aws_securityhub_automation_rule" { + cloudformation_type_name = "AWS::SecurityHub::AutomationRule" +} + +resource_schema "aws_securityhub_configuration_policy" { + cloudformation_type_name = "AWS::SecurityHub::ConfigurationPolicy" +} + +resource_schema "aws_securityhub_delegated_admin" { + cloudformation_type_name = "AWS::SecurityHub::DelegatedAdmin" +} + +resource_schema "aws_securityhub_finding_aggregator" { + cloudformation_type_name = "AWS::SecurityHub::FindingAggregator" +} + +resource_schema "aws_securityhub_hub" { + cloudformation_type_name = "AWS::SecurityHub::Hub" +} + +resource_schema "aws_securityhub_insight" { + cloudformation_type_name = "AWS::SecurityHub::Insight" +} + +resource_schema "aws_securityhub_organization_configuration" { + cloudformation_type_name = "AWS::SecurityHub::OrganizationConfiguration" +} + +resource_schema "aws_securityhub_policy_association" { + cloudformation_type_name = "AWS::SecurityHub::PolicyAssociation" +} + +resource_schema "aws_securityhub_product_subscription" { + cloudformation_type_name = "AWS::SecurityHub::ProductSubscription" +} + +resource_schema "aws_securityhub_security_control" { + cloudformation_type_name = "AWS::SecurityHub::SecurityControl" +} + +resource_schema "aws_securityhub_standard" { + cloudformation_type_name = "AWS::SecurityHub::Standard" +} + +resource_schema "aws_securitylake_aws_log_source" { + cloudformation_type_name = "AWS::SecurityLake::AwsLogSource" +} + +resource_schema "aws_securitylake_data_lake" { + cloudformation_type_name = "AWS::SecurityLake::DataLake" +} + +resource_schema "aws_securitylake_subscriber" { + cloudformation_type_name = "AWS::SecurityLake::Subscriber" +} + +resource_schema "aws_securitylake_subscriber_notification" { + cloudformation_type_name = "AWS::SecurityLake::SubscriberNotification" +} + +resource_schema "aws_servicecatalog_cloudformation_provisioned_product" { + cloudformation_type_name = "AWS::ServiceCatalog::CloudFormationProvisionedProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalog_service_action" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceAction" +} + +resource_schema "aws_servicecatalog_service_action_association" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceActionAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_application" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::Application" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroup" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_resource_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::ResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_shield_drt_access" { + cloudformation_type_name = "AWS::Shield::DRTAccess" +} + +resource_schema "aws_shield_proactive_engagement" { + cloudformation_type_name = "AWS::Shield::ProactiveEngagement" +} + +resource_schema "aws_shield_protection" { + cloudformation_type_name = "AWS::Shield::Protection" +} + +resource_schema "aws_shield_protection_group" { + cloudformation_type_name = "AWS::Shield::ProtectionGroup" +} + +resource_schema "aws_signer_profile_permission" { + cloudformation_type_name = "AWS::Signer::ProfilePermission" +} + +resource_schema "aws_signer_signing_profile" { + cloudformation_type_name = "AWS::Signer::SigningProfile" +} + +resource_schema "aws_simspaceweaver_simulation" { + cloudformation_type_name = "AWS::SimSpaceWeaver::Simulation" +} + +resource_schema "aws_stepfunctions_activity" { + cloudformation_type_name = "AWS::StepFunctions::Activity" +} + +resource_schema "aws_stepfunctions_state_machine" { + cloudformation_type_name = "AWS::StepFunctions::StateMachine" +} + +resource_schema "aws_stepfunctions_state_machine_alias" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_stepfunctions_state_machine_version" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_supportapp_account_alias" { + cloudformation_type_name = "AWS::SupportApp::AccountAlias" +} + +resource_schema "aws_supportapp_slack_channel_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackChannelConfiguration" +} + +resource_schema "aws_supportapp_slack_workspace_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackWorkspaceConfiguration" +} + +resource_schema "aws_synthetics_canary" { + cloudformation_type_name = "AWS::Synthetics::Canary" +} + +resource_schema "aws_synthetics_group" { + cloudformation_type_name = "AWS::Synthetics::Group" +} + +resource_schema "aws_systemsmanagersap_application" { + cloudformation_type_name = "AWS::SystemsManagerSAP::Application" +} + +resource_schema "aws_timestream_database" { + cloudformation_type_name = "AWS::Timestream::Database" +} + +resource_schema "aws_timestream_influx_db_instance" { + cloudformation_type_name = "AWS::Timestream::InfluxDBInstance" +} + +resource_schema "aws_timestream_scheduled_query" { + cloudformation_type_name = "AWS::Timestream::ScheduledQuery" +} + +resource_schema "aws_timestream_table" { + cloudformation_type_name = "AWS::Timestream::Table" +} + +resource_schema "aws_transfer_agreement" { + cloudformation_type_name = "AWS::Transfer::Agreement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_transfer_certificate" { + cloudformation_type_name = "AWS::Transfer::Certificate" +} + +resource_schema "aws_transfer_connector" { + cloudformation_type_name = "AWS::Transfer::Connector" +} + +resource_schema "aws_transfer_profile" { + cloudformation_type_name = "AWS::Transfer::Profile" +} + +resource_schema "aws_transfer_server" { + cloudformation_type_name = "AWS::Transfer::Server" +} + +resource_schema "aws_transfer_user" { + cloudformation_type_name = "AWS::Transfer::User" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_transfer_workflow" { + cloudformation_type_name = "AWS::Transfer::Workflow" +} + +resource_schema "aws_verifiedpermissions_identity_source" { + cloudformation_type_name = "AWS::VerifiedPermissions::IdentitySource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy" { + cloudformation_type_name = "AWS::VerifiedPermissions::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy_store" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyStore" +} + +resource_schema "aws_verifiedpermissions_policy_template" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_voiceid_domain" { + cloudformation_type_name = "AWS::VoiceID::Domain" +} + +resource_schema "aws_vpclattice_access_log_subscription" { + cloudformation_type_name = "AWS::VpcLattice::AccessLogSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_auth_policy" { + cloudformation_type_name = "AWS::VpcLattice::AuthPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_listener" { + cloudformation_type_name = "AWS::VpcLattice::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_resource_configuration" { + cloudformation_type_name = "AWS::VpcLattice::ResourceConfiguration" +} + +resource_schema "aws_vpclattice_resource_gateway" { + cloudformation_type_name = "AWS::VpcLattice::ResourceGateway" +} + +resource_schema "aws_vpclattice_resource_policy" { + cloudformation_type_name = "AWS::VpcLattice::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_rule" { + cloudformation_type_name = "AWS::VpcLattice::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_service" { + cloudformation_type_name = "AWS::VpcLattice::Service" +} + +resource_schema "aws_vpclattice_service_network" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetwork" +} + +resource_schema "aws_vpclattice_service_network_resource_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkResourceAssociation" +} + +resource_schema "aws_vpclattice_service_network_service_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkServiceAssociation" +} + +resource_schema "aws_vpclattice_service_network_vpc_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkVpcAssociation" +} + +resource_schema "aws_vpclattice_target_group" { + cloudformation_type_name = "AWS::VpcLattice::TargetGroup" +} + +resource_schema "aws_wafv2_ip_set" { + cloudformation_type_name = "AWS::WAFv2::IPSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_logging_configuration" { + cloudformation_type_name = "AWS::WAFv2::LoggingConfiguration" +} + +resource_schema "aws_wafv2_regex_pattern_set" { + cloudformation_type_name = "AWS::WAFv2::RegexPatternSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_rule_group" { + cloudformation_type_name = "AWS::WAFv2::RuleGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl" { + cloudformation_type_name = "AWS::WAFv2::WebACL" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl_association" { + cloudformation_type_name = "AWS::WAFv2::WebACLAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_agent" { + cloudformation_type_name = "AWS::Wisdom::AIAgent" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_agent_version" { + cloudformation_type_name = "AWS::Wisdom::AIAgentVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_guardrail" { + cloudformation_type_name = "AWS::Wisdom::AIGuardrail" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_guardrail_version" { + cloudformation_type_name = "AWS::Wisdom::AIGuardrailVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_prompt" { + cloudformation_type_name = "AWS::Wisdom::AIPrompt" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_prompt_version" { + cloudformation_type_name = "AWS::Wisdom::AIPromptVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_assistant" { + cloudformation_type_name = "AWS::Wisdom::Assistant" +} + +resource_schema "aws_wisdom_assistant_association" { + cloudformation_type_name = "AWS::Wisdom::AssistantAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_knowledge_base" { + cloudformation_type_name = "AWS::Wisdom::KnowledgeBase" +} + +resource_schema "aws_wisdom_message_template" { + cloudformation_type_name = "AWS::Wisdom::MessageTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_message_template_version" { + cloudformation_type_name = "AWS::Wisdom::MessageTemplateVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspaces_connection_alias" { + cloudformation_type_name = "AWS::WorkSpaces::ConnectionAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspaces_workspaces_pool" { + cloudformation_type_name = "AWS::WorkSpaces::WorkspacesPool" +} + +resource_schema "aws_workspacesthinclient_environment" { + cloudformation_type_name = "AWS::WorkSpacesThinClient::Environment" +} + +resource_schema "aws_workspacesweb_browser_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::BrowserSettings" +} + +resource_schema "aws_workspacesweb_data_protection_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::DataProtectionSettings" +} + +resource_schema "aws_workspacesweb_identity_provider" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IdentityProvider" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspacesweb_ip_access_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IpAccessSettings" +} + +resource_schema "aws_workspacesweb_network_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::NetworkSettings" +} + +resource_schema "aws_workspacesweb_portal" { + cloudformation_type_name = "AWS::WorkSpacesWeb::Portal" +} + +resource_schema "aws_workspacesweb_trust_store" { + cloudformation_type_name = "AWS::WorkSpacesWeb::TrustStore" +} + +resource_schema "aws_workspacesweb_user_access_logging_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserAccessLoggingSettings" +} + +resource_schema "aws_workspacesweb_user_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserSettings" +} + +resource_schema "aws_xray_group" { + cloudformation_type_name = "AWS::XRay::Group" +} + +resource_schema "aws_xray_resource_policy" { + cloudformation_type_name = "AWS::XRay::ResourcePolicy" +} + +resource_schema "aws_xray_sampling_rule" { + cloudformation_type_name = "AWS::XRay::SamplingRule" +} diff --git a/internal/provider/import_examples_gen.json b/internal/provider/import_examples_gen.json index a570c8c17..7844dbec5 100644 --- a/internal/provider/import_examples_gen.json +++ b/internal/provider/import_examples_gen.json @@ -239,6 +239,11 @@ "identifier": ["ApplicationId","ConfigurationProfileId"], "path": "./examples/resources/awscc_appconfig_configuration_profile/import.sh" }, + { + "resource": "awscc_appconfig_deployment", + "identifier": ["ApplicationId","EnvironmentId","DeploymentNumber"], + "path": "./examples/resources/awscc_appconfig_deployment/import.sh" + }, { "resource": "awscc_appconfig_deployment_strategy", "identifier": ["Id"], @@ -809,6 +814,11 @@ "identifier": ["Arn"], "path": "./examples/resources/awscc_cloudformation_type_activation/import.sh" }, + { + "resource": "awscc_cloudfront_anycast_ip_list", + "identifier": ["Id"], + "path": "./examples/resources/awscc_cloudfront_anycast_ip_list/import.sh" + }, { "resource": "awscc_cloudfront_cache_policy", "identifier": ["Id"], @@ -1254,6 +1264,11 @@ "identifier": ["DomainName","EventStreamName"], "path": "./examples/resources/awscc_customerprofiles_event_stream/import.sh" }, + { + "resource": "awscc_customerprofiles_event_trigger", + "identifier": ["DomainName","EventTriggerName"], + "path": "./examples/resources/awscc_customerprofiles_event_trigger/import.sh" + }, { "resource": "awscc_customerprofiles_integration", "identifier": ["DomainName","Uri"], @@ -4139,6 +4154,11 @@ "identifier": ["AnalysisId","AwsAccountId"], "path": "./examples/resources/awscc_quicksight_analysis/import.sh" }, + { + "resource": "awscc_quicksight_custom_permissions", + "identifier": ["AwsAccountId","CustomPermissionsName"], + "path": "./examples/resources/awscc_quicksight_custom_permissions/import.sh" + }, { "resource": "awscc_quicksight_dashboard", "identifier": ["AwsAccountId","DashboardId"], @@ -4964,6 +4984,11 @@ "identifier": ["MonitoringScheduleArn"], "path": "./examples/resources/awscc_sagemaker_monitoring_schedule/import.sh" }, + { + "resource": "awscc_sagemaker_partner_app", + "identifier": ["Arn"], + "path": "./examples/resources/awscc_sagemaker_partner_app/import.sh" + }, { "resource": "awscc_sagemaker_pipeline", "identifier": ["PipelineName"], diff --git a/internal/provider/plural_data_sources.go b/internal/provider/plural_data_sources.go index 11704ef99..5d05838cc 100644 --- a/internal/provider/plural_data_sources.go +++ b/internal/provider/plural_data_sources.go @@ -112,6 +112,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_cloudformation_stacks -cftype AWS::CloudFormation::Stack -package cloudformation ../aws/cloudformation/stack_plural_data_source_gen.go ../aws/cloudformation/stack_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_cloudformation_stack_sets -cftype AWS::CloudFormation::StackSet -package cloudformation ../aws/cloudformation/stack_set_plural_data_source_gen.go ../aws/cloudformation/stack_set_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_cloudformation_type_activations -cftype AWS::CloudFormation::TypeActivation -package cloudformation ../aws/cloudformation/type_activation_plural_data_source_gen.go ../aws/cloudformation/type_activation_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_cloudfront_anycast_ip_lists -cftype AWS::CloudFront::AnycastIpList -package cloudfront ../aws/cloudfront/anycast_ip_list_plural_data_source_gen.go ../aws/cloudfront/anycast_ip_list_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_cloudfront_cache_policies -cftype AWS::CloudFront::CachePolicy -package cloudfront ../aws/cloudfront/cache_policy_plural_data_source_gen.go ../aws/cloudfront/cache_policy_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_cloudfront_cloudfront_origin_access_identities -cftype AWS::CloudFront::CloudFrontOriginAccessIdentity -package cloudfront ../aws/cloudfront/cloudfront_origin_access_identity_plural_data_source_gen.go ../aws/cloudfront/cloudfront_origin_access_identity_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_cloudfront_continuous_deployment_policies -cftype AWS::CloudFront::ContinuousDeploymentPolicy -package cloudfront ../aws/cloudfront/continuous_deployment_policy_plural_data_source_gen.go ../aws/cloudfront/continuous_deployment_policy_plural_data_source_gen_test.go @@ -622,6 +623,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_qbusiness_applications -cftype AWS::QBusiness::Application -package qbusiness ../aws/qbusiness/application_plural_data_source_gen.go ../aws/qbusiness/application_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_qldb_streams -cftype AWS::QLDB::Stream -package qldb ../aws/qldb/stream_plural_data_source_gen.go ../aws/qldb/stream_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_quicksight_analyses -cftype AWS::QuickSight::Analysis -package quicksight ../aws/quicksight/analysis_plural_data_source_gen.go ../aws/quicksight/analysis_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_quicksight_custom_permissions_plural -cftype AWS::QuickSight::CustomPermissions -package quicksight ../aws/quicksight/custom_permissions_plural_data_source_gen.go ../aws/quicksight/custom_permissions_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_quicksight_data_sets -cftype AWS::QuickSight::DataSet -package quicksight ../aws/quicksight/data_set_plural_data_source_gen.go ../aws/quicksight/data_set_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_quicksight_data_sources -cftype AWS::QuickSight::DataSource -package quicksight ../aws/quicksight/data_source_plural_data_source_gen.go ../aws/quicksight/data_source_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_quicksight_folders -cftype AWS::QuickSight::Folder -package quicksight ../aws/quicksight/folder_plural_data_source_gen.go ../aws/quicksight/folder_plural_data_source_gen_test.go @@ -761,6 +763,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_model_package_groups -cftype AWS::SageMaker::ModelPackageGroup -package sagemaker ../aws/sagemaker/model_package_group_plural_data_source_gen.go ../aws/sagemaker/model_package_group_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_model_quality_job_definitions -cftype AWS::SageMaker::ModelQualityJobDefinition -package sagemaker ../aws/sagemaker/model_quality_job_definition_plural_data_source_gen.go ../aws/sagemaker/model_quality_job_definition_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_monitoring_schedules -cftype AWS::SageMaker::MonitoringSchedule -package sagemaker ../aws/sagemaker/monitoring_schedule_plural_data_source_gen.go ../aws/sagemaker/monitoring_schedule_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_partner_apps -cftype AWS::SageMaker::PartnerApp -package sagemaker ../aws/sagemaker/partner_app_plural_data_source_gen.go ../aws/sagemaker/partner_app_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_pipelines -cftype AWS::SageMaker::Pipeline -package sagemaker ../aws/sagemaker/pipeline_plural_data_source_gen.go ../aws/sagemaker/pipeline_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_projects -cftype AWS::SageMaker::Project -package sagemaker ../aws/sagemaker/project_plural_data_source_gen.go ../aws/sagemaker/project_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_spaces -cftype AWS::SageMaker::Space -package sagemaker ../aws/sagemaker/space_plural_data_source_gen.go ../aws/sagemaker/space_plural_data_source_gen_test.go diff --git a/internal/provider/resources.go b/internal/provider/resources.go index a4d030a07..53bdbbd7c 100644 --- a/internal/provider/resources.go +++ b/internal/provider/resources.go @@ -50,6 +50,7 @@ //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_deployment -cfschema ../service/cloudformation/schemas/AWS_AppConfig_Deployment.json -package appconfig -- ../aws/appconfig/deployment_resource_gen.go ../aws/appconfig/deployment_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appconfig_deployment_strategy -cfschema ../service/cloudformation/schemas/AWS_AppConfig_DeploymentStrategy.json -package appconfig -- ../aws/appconfig/deployment_strategy_resource_gen.go ../aws/appconfig/deployment_strategy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appconfig_environment -cfschema ../service/cloudformation/schemas/AWS_AppConfig_Environment.json -package appconfig -- ../aws/appconfig/environment_resource_gen.go ../aws/appconfig/environment_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 @@ -164,6 +165,7 @@ //go:generate go run generators/resource/main.go -resource awscc_cloudformation_stack -cfschema ../service/cloudformation/schemas/AWS_CloudFormation_Stack.json -package cloudformation -- ../aws/cloudformation/stack_resource_gen.go ../aws/cloudformation/stack_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cloudformation_stack_set -cfschema ../service/cloudformation/schemas/AWS_CloudFormation_StackSet.json -package cloudformation -- ../aws/cloudformation/stack_set_resource_gen.go ../aws/cloudformation/stack_set_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cloudformation_type_activation -cfschema ../service/cloudformation/schemas/AWS_CloudFormation_TypeActivation.json -package cloudformation -- ../aws/cloudformation/type_activation_resource_gen.go ../aws/cloudformation/type_activation_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_cloudfront_anycast_ip_list -cfschema ../service/cloudformation/schemas/AWS_CloudFront_AnycastIpList.json -package cloudfront -- ../aws/cloudfront/anycast_ip_list_resource_gen.go ../aws/cloudfront/anycast_ip_list_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cloudfront_cache_policy -cfschema ../service/cloudformation/schemas/AWS_CloudFront_CachePolicy.json -package cloudfront -- ../aws/cloudfront/cache_policy_resource_gen.go ../aws/cloudfront/cache_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cloudfront_cloudfront_origin_access_identity -cfschema ../service/cloudformation/schemas/AWS_CloudFront_CloudFrontOriginAccessIdentity.json -package cloudfront -- ../aws/cloudfront/cloudfront_origin_access_identity_resource_gen.go ../aws/cloudfront/cloudfront_origin_access_identity_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cloudfront_continuous_deployment_policy -cfschema ../service/cloudformation/schemas/AWS_CloudFront_ContinuousDeploymentPolicy.json -package cloudfront -- ../aws/cloudfront/continuous_deployment_policy_resource_gen.go ../aws/cloudfront/continuous_deployment_policy_resource_gen_test.go @@ -253,6 +255,7 @@ //go:generate go run generators/resource/main.go -resource awscc_customerprofiles_calculated_attribute_definition -cfschema ../service/cloudformation/schemas/AWS_CustomerProfiles_CalculatedAttributeDefinition.json -package customerprofiles -- ../aws/customerprofiles/calculated_attribute_definition_resource_gen.go ../aws/customerprofiles/calculated_attribute_definition_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_customerprofiles_domain -cfschema ../service/cloudformation/schemas/AWS_CustomerProfiles_Domain.json -package customerprofiles -- ../aws/customerprofiles/domain_resource_gen.go ../aws/customerprofiles/domain_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_customerprofiles_event_stream -cfschema ../service/cloudformation/schemas/AWS_CustomerProfiles_EventStream.json -package customerprofiles -- ../aws/customerprofiles/event_stream_resource_gen.go ../aws/customerprofiles/event_stream_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_customerprofiles_event_trigger -cfschema ../service/cloudformation/schemas/AWS_CustomerProfiles_EventTrigger.json -package customerprofiles -- ../aws/customerprofiles/event_trigger_resource_gen.go ../aws/customerprofiles/event_trigger_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_customerprofiles_integration -cfschema ../service/cloudformation/schemas/AWS_CustomerProfiles_Integration.json -package customerprofiles -- ../aws/customerprofiles/integration_resource_gen.go ../aws/customerprofiles/integration_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_customerprofiles_object_type -cfschema ../service/cloudformation/schemas/AWS_CustomerProfiles_ObjectType.json -package customerprofiles -- ../aws/customerprofiles/object_type_resource_gen.go ../aws/customerprofiles/object_type_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_customerprofiles_segment_definition -cfschema ../service/cloudformation/schemas/AWS_CustomerProfiles_SegmentDefinition.json -package customerprofiles -- ../aws/customerprofiles/segment_definition_resource_gen.go ../aws/customerprofiles/segment_definition_resource_gen_test.go @@ -830,6 +833,7 @@ //go:generate go run generators/resource/main.go -resource awscc_qbusiness_web_experience -cfschema ../service/cloudformation/schemas/AWS_QBusiness_WebExperience.json -package qbusiness -- ../aws/qbusiness/web_experience_resource_gen.go ../aws/qbusiness/web_experience_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_qldb_stream -cfschema ../service/cloudformation/schemas/AWS_QLDB_Stream.json -package qldb -- ../aws/qldb/stream_resource_gen.go ../aws/qldb/stream_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_quicksight_analysis -cfschema ../service/cloudformation/schemas/AWS_QuickSight_Analysis.json -package quicksight -- ../aws/quicksight/analysis_resource_gen.go ../aws/quicksight/analysis_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_quicksight_custom_permissions -cfschema ../service/cloudformation/schemas/AWS_QuickSight_CustomPermissions.json -package quicksight -- ../aws/quicksight/custom_permissions_resource_gen.go ../aws/quicksight/custom_permissions_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_quicksight_dashboard -cfschema ../service/cloudformation/schemas/AWS_QuickSight_Dashboard.json -package quicksight -- ../aws/quicksight/dashboard_resource_gen.go ../aws/quicksight/dashboard_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_quicksight_data_set -cfschema ../service/cloudformation/schemas/AWS_QuickSight_DataSet.json -package quicksight -- ../aws/quicksight/data_set_resource_gen.go ../aws/quicksight/data_set_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_quicksight_data_source -cfschema ../service/cloudformation/schemas/AWS_QuickSight_DataSource.json -package quicksight -- ../aws/quicksight/data_source_resource_gen.go ../aws/quicksight/data_source_resource_gen_test.go @@ -995,6 +999,7 @@ //go:generate go run generators/resource/main.go -resource awscc_sagemaker_model_package_group -cfschema ../service/cloudformation/schemas/AWS_SageMaker_ModelPackageGroup.json -package sagemaker -- ../aws/sagemaker/model_package_group_resource_gen.go ../aws/sagemaker/model_package_group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_sagemaker_model_quality_job_definition -cfschema ../service/cloudformation/schemas/AWS_SageMaker_ModelQualityJobDefinition.json -package sagemaker -- ../aws/sagemaker/model_quality_job_definition_resource_gen.go ../aws/sagemaker/model_quality_job_definition_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_sagemaker_monitoring_schedule -cfschema ../service/cloudformation/schemas/AWS_SageMaker_MonitoringSchedule.json -package sagemaker -- ../aws/sagemaker/monitoring_schedule_resource_gen.go ../aws/sagemaker/monitoring_schedule_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_sagemaker_partner_app -cfschema ../service/cloudformation/schemas/AWS_SageMaker_PartnerApp.json -package sagemaker -- ../aws/sagemaker/partner_app_resource_gen.go ../aws/sagemaker/partner_app_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_sagemaker_pipeline -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Pipeline.json -package sagemaker -- ../aws/sagemaker/pipeline_resource_gen.go ../aws/sagemaker/pipeline_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_sagemaker_project -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Project.json -package sagemaker -- ../aws/sagemaker/project_resource_gen.go ../aws/sagemaker/project_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_sagemaker_space -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Space.json -package sagemaker -- ../aws/sagemaker/space_resource_gen.go ../aws/sagemaker/space_resource_gen_test.go diff --git a/internal/provider/singular_data_sources.go b/internal/provider/singular_data_sources.go index 7c1b5f4c4..a5f00a5d4 100644 --- a/internal/provider/singular_data_sources.go +++ b/internal/provider/singular_data_sources.go @@ -50,6 +50,7 @@ //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_deployment -cfschema ../service/cloudformation/schemas/AWS_AppConfig_Deployment.json -package appconfig ../aws/appconfig/deployment_singular_data_source_gen.go ../aws/appconfig/deployment_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appconfig_deployment_strategy -cfschema ../service/cloudformation/schemas/AWS_AppConfig_DeploymentStrategy.json -package appconfig ../aws/appconfig/deployment_strategy_singular_data_source_gen.go ../aws/appconfig/deployment_strategy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appconfig_environment -cfschema ../service/cloudformation/schemas/AWS_AppConfig_Environment.json -package appconfig ../aws/appconfig/environment_singular_data_source_gen.go ../aws/appconfig/environment_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 @@ -164,6 +165,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_cloudformation_stack -cfschema ../service/cloudformation/schemas/AWS_CloudFormation_Stack.json -package cloudformation ../aws/cloudformation/stack_singular_data_source_gen.go ../aws/cloudformation/stack_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cloudformation_stack_set -cfschema ../service/cloudformation/schemas/AWS_CloudFormation_StackSet.json -package cloudformation ../aws/cloudformation/stack_set_singular_data_source_gen.go ../aws/cloudformation/stack_set_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cloudformation_type_activation -cfschema ../service/cloudformation/schemas/AWS_CloudFormation_TypeActivation.json -package cloudformation ../aws/cloudformation/type_activation_singular_data_source_gen.go ../aws/cloudformation/type_activation_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_cloudfront_anycast_ip_list -cfschema ../service/cloudformation/schemas/AWS_CloudFront_AnycastIpList.json -package cloudfront ../aws/cloudfront/anycast_ip_list_singular_data_source_gen.go ../aws/cloudfront/anycast_ip_list_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cloudfront_cache_policy -cfschema ../service/cloudformation/schemas/AWS_CloudFront_CachePolicy.json -package cloudfront ../aws/cloudfront/cache_policy_singular_data_source_gen.go ../aws/cloudfront/cache_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cloudfront_cloudfront_origin_access_identity -cfschema ../service/cloudformation/schemas/AWS_CloudFront_CloudFrontOriginAccessIdentity.json -package cloudfront ../aws/cloudfront/cloudfront_origin_access_identity_singular_data_source_gen.go ../aws/cloudfront/cloudfront_origin_access_identity_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cloudfront_continuous_deployment_policy -cfschema ../service/cloudformation/schemas/AWS_CloudFront_ContinuousDeploymentPolicy.json -package cloudfront ../aws/cloudfront/continuous_deployment_policy_singular_data_source_gen.go ../aws/cloudfront/continuous_deployment_policy_singular_data_source_gen_test.go @@ -253,6 +255,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_customerprofiles_calculated_attribute_definition -cfschema ../service/cloudformation/schemas/AWS_CustomerProfiles_CalculatedAttributeDefinition.json -package customerprofiles ../aws/customerprofiles/calculated_attribute_definition_singular_data_source_gen.go ../aws/customerprofiles/calculated_attribute_definition_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_customerprofiles_domain -cfschema ../service/cloudformation/schemas/AWS_CustomerProfiles_Domain.json -package customerprofiles ../aws/customerprofiles/domain_singular_data_source_gen.go ../aws/customerprofiles/domain_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_customerprofiles_event_stream -cfschema ../service/cloudformation/schemas/AWS_CustomerProfiles_EventStream.json -package customerprofiles ../aws/customerprofiles/event_stream_singular_data_source_gen.go ../aws/customerprofiles/event_stream_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_customerprofiles_event_trigger -cfschema ../service/cloudformation/schemas/AWS_CustomerProfiles_EventTrigger.json -package customerprofiles ../aws/customerprofiles/event_trigger_singular_data_source_gen.go ../aws/customerprofiles/event_trigger_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_customerprofiles_integration -cfschema ../service/cloudformation/schemas/AWS_CustomerProfiles_Integration.json -package customerprofiles ../aws/customerprofiles/integration_singular_data_source_gen.go ../aws/customerprofiles/integration_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_customerprofiles_object_type -cfschema ../service/cloudformation/schemas/AWS_CustomerProfiles_ObjectType.json -package customerprofiles ../aws/customerprofiles/object_type_singular_data_source_gen.go ../aws/customerprofiles/object_type_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_customerprofiles_segment_definition -cfschema ../service/cloudformation/schemas/AWS_CustomerProfiles_SegmentDefinition.json -package customerprofiles ../aws/customerprofiles/segment_definition_singular_data_source_gen.go ../aws/customerprofiles/segment_definition_singular_data_source_gen_test.go @@ -830,6 +833,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_qbusiness_web_experience -cfschema ../service/cloudformation/schemas/AWS_QBusiness_WebExperience.json -package qbusiness ../aws/qbusiness/web_experience_singular_data_source_gen.go ../aws/qbusiness/web_experience_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_qldb_stream -cfschema ../service/cloudformation/schemas/AWS_QLDB_Stream.json -package qldb ../aws/qldb/stream_singular_data_source_gen.go ../aws/qldb/stream_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_quicksight_analysis -cfschema ../service/cloudformation/schemas/AWS_QuickSight_Analysis.json -package quicksight ../aws/quicksight/analysis_singular_data_source_gen.go ../aws/quicksight/analysis_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_quicksight_custom_permissions -cfschema ../service/cloudformation/schemas/AWS_QuickSight_CustomPermissions.json -package quicksight ../aws/quicksight/custom_permissions_singular_data_source_gen.go ../aws/quicksight/custom_permissions_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_quicksight_dashboard -cfschema ../service/cloudformation/schemas/AWS_QuickSight_Dashboard.json -package quicksight ../aws/quicksight/dashboard_singular_data_source_gen.go ../aws/quicksight/dashboard_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_quicksight_data_set -cfschema ../service/cloudformation/schemas/AWS_QuickSight_DataSet.json -package quicksight ../aws/quicksight/data_set_singular_data_source_gen.go ../aws/quicksight/data_set_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_quicksight_data_source -cfschema ../service/cloudformation/schemas/AWS_QuickSight_DataSource.json -package quicksight ../aws/quicksight/data_source_singular_data_source_gen.go ../aws/quicksight/data_source_singular_data_source_gen_test.go @@ -995,6 +999,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_model_package_group -cfschema ../service/cloudformation/schemas/AWS_SageMaker_ModelPackageGroup.json -package sagemaker ../aws/sagemaker/model_package_group_singular_data_source_gen.go ../aws/sagemaker/model_package_group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_model_quality_job_definition -cfschema ../service/cloudformation/schemas/AWS_SageMaker_ModelQualityJobDefinition.json -package sagemaker ../aws/sagemaker/model_quality_job_definition_singular_data_source_gen.go ../aws/sagemaker/model_quality_job_definition_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_monitoring_schedule -cfschema ../service/cloudformation/schemas/AWS_SageMaker_MonitoringSchedule.json -package sagemaker ../aws/sagemaker/monitoring_schedule_singular_data_source_gen.go ../aws/sagemaker/monitoring_schedule_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_partner_app -cfschema ../service/cloudformation/schemas/AWS_SageMaker_PartnerApp.json -package sagemaker ../aws/sagemaker/partner_app_singular_data_source_gen.go ../aws/sagemaker/partner_app_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_pipeline -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Pipeline.json -package sagemaker ../aws/sagemaker/pipeline_singular_data_source_gen.go ../aws/sagemaker/pipeline_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_project -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Project.json -package sagemaker ../aws/sagemaker/project_singular_data_source_gen.go ../aws/sagemaker/project_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_space -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Space.json -package sagemaker ../aws/sagemaker/space_singular_data_source_gen.go ../aws/sagemaker/space_singular_data_source_gen_test.go diff --git a/internal/service/cloudformation/schemas/AWS_AppConfig_Deployment.json b/internal/service/cloudformation/schemas/AWS_AppConfig_Deployment.json new file mode 100644 index 000000000..6f756aa97 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_AppConfig_Deployment.json @@ -0,0 +1,172 @@ +{ + "tagging": { + "permissions": [ + "appconfig:TagResource", + "appconfig:UntagResource", + "appconfig:ListTagsForResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "typeName": "AWS::AppConfig::Deployment", + "readOnlyProperties": [ + "/properties/DeploymentNumber" + ], + "description": "Resource Type definition for AWS::AppConfig::Deployment", + "createOnlyProperties": [ + "/properties/ApplicationId", + "/properties/ConfigurationProfileId", + "/properties/DeploymentStrategyId", + "/properties/EnvironmentId", + "/properties/Description", + "/properties/ConfigurationVersion", + "/properties/KmsKeyIdentifier", + "/properties/DynamicExtensionParameters", + "/properties/Tags" + ], + "primaryIdentifier": [ + "/properties/ApplicationId", + "/properties/EnvironmentId", + "/properties/DeploymentNumber" + ], + "required": [ + "ApplicationId", + "ConfigurationProfileId", + "DeploymentStrategyId", + "EnvironmentId", + "ConfigurationVersion" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "handlers": { + "read": { + "permissions": [ + "appconfig:GetDeployment", + "appconfig:ListTagsForResource" + ] + }, + "create": { + "permissions": [ + "appconfig:StartDeployment", + "appconfig:GetDeployment", + "appconfig:TagResource", + "appconfig:ListTagsForResource", + "kms:GenerateDataKey" + ], + "timeoutInMinutes": 1445 + }, + "list": { + "permissions": [ + "appconfig:ListDeployments" + ], + "handlerSchema": { + "properties": { + "EnvironmentId": { + "$ref": "resource-schema.json#/properties/EnvironmentId" + }, + "ApplicationId": { + "$ref": "resource-schema.json#/properties/ApplicationId" + } + }, + "required": [ + "ApplicationId", + "EnvironmentId" + ] + } + }, + "delete": { + "permissions": [ + "appconfig:StopDeployment" + ] + } + }, + "writeOnlyProperties": [ + "/properties/DynamicExtensionParameters" + ], + "additionalProperties": false, + "definitions": { + "Tag": { + "description": "Metadata to assign to the deployment. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "description": "The tag value can be up to 256 characters.", + "type": "string" + }, + "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:.", + "type": "string" + } + } + }, + "DynamicExtensionParameters": { + "additionalProperties": false, + "type": "object", + "properties": { + "ParameterValue": { + "type": "string" + }, + "ExtensionReference": { + "type": "string" + }, + "ParameterName": { + "type": "string" + } + } + } + }, + "properties": { + "DeploymentStrategyId": { + "description": "The deployment strategy ID.", + "type": "string" + }, + "ConfigurationProfileId": { + "description": "The configuration profile ID.", + "type": "string" + }, + "EnvironmentId": { + "description": "The environment ID.", + "type": "string" + }, + "KmsKeyIdentifier": { + "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})$", + "description": "The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.", + "type": "string" + }, + "Description": { + "description": "A description of the deployment.", + "type": "string" + }, + "ConfigurationVersion": { + "description": "The configuration version to deploy. If deploying an AWS AppConfig hosted configuration version, you can specify either the version number or version label. For all other configurations, you must specify the version number.", + "type": "string" + }, + "DeploymentNumber": { + "description": "The sequence number of the deployment.", + "type": "string" + }, + "ApplicationId": { + "description": "The application ID.", + "type": "string" + }, + "DynamicExtensionParameters": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/DynamicExtensionParameters" + } + }, + "Tags": { + "uniqueItems": true, + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_Backup_LogicallyAirGappedBackupVault.json b/internal/service/cloudformation/schemas/AWS_Backup_LogicallyAirGappedBackupVault.json index f23cbced9..d1d3fc062 100644 --- a/internal/service/cloudformation/schemas/AWS_Backup_LogicallyAirGappedBackupVault.json +++ b/internal/service/cloudformation/schemas/AWS_Backup_LogicallyAirGappedBackupVault.json @@ -95,7 +95,9 @@ ], "readOnlyProperties": [ "/properties/BackupVaultArn", - "/properties/EncryptionKeyArn" + "/properties/EncryptionKeyArn", + "/properties/VaultState", + "/properties/VaultType" ], "primaryIdentifier": [ "/properties/BackupVaultName" diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_Agent.json b/internal/service/cloudformation/schemas/AWS_Bedrock_Agent.json index f300e4c6d..2fafd86c9 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_Agent.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_Agent.json @@ -196,6 +196,9 @@ }, "Parameters": { "$ref": "#/definitions/ParameterMap" + }, + "RequireConfirmation": { + "$ref": "#/definitions/RequireConfirmation" } }, "required": [ @@ -393,6 +396,14 @@ "KNOWLEDGE_BASE_RESPONSE_GENERATION" ] }, + "RequireConfirmation": { + "type": "string", + "description": "ENUM to check if action requires user confirmation", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, "S3Identifier": { "type": "object", "description": "The identifier for the S3 resource.", diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json b/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json index 91898823a..0bcc77c77 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json @@ -16,6 +16,9 @@ }, "ParsingPrompt": { "$ref": "#/definitions/ParsingPrompt" + }, + "ParsingModality": { + "$ref": "#/definitions/ParsingModality" } }, "required": [ @@ -105,33 +108,6 @@ "required": [ "Type" ], - "oneOf": [ - { - "required": [ - "S3Configuration" - ] - }, - { - "required": [ - "ConfluenceConfiguration" - ] - }, - { - "required": [ - "SalesforceConfiguration" - ] - }, - { - "required": [ - "SharePointConfiguration" - ] - }, - { - "required": [ - "WebConfiguration" - ] - } - ], "additionalProperties": false }, "DataSourceStatus": { @@ -151,7 +127,8 @@ "CONFLUENCE", "SALESFORCE", "SHAREPOINT", - "WEB" + "WEB", + "CUSTOM" ] }, "DataDeletionPolicy": { @@ -248,6 +225,9 @@ }, "BedrockFoundationModelConfiguration": { "$ref": "#/definitions/BedrockFoundationModelConfiguration" + }, + "BedrockDataAutomationConfiguration": { + "$ref": "#/definitions/BedrockDataAutomationConfiguration" } }, "required": [ @@ -255,6 +235,23 @@ ], "additionalProperties": false }, + "ParsingModality": { + "type": "string", + "description": "Determine how will parsed content be stored.", + "enum": [ + "MULTIMODAL" + ] + }, + "BedrockDataAutomationConfiguration": { + "type": "object", + "description": "Settings for a Bedrock Data Automation used to parse documents for a data source.", + "properties": { + "ParsingModality": { + "$ref": "#/definitions/ParsingModality" + } + }, + "additionalProperties": false + }, "ParsingPrompt": { "type": "object", "description": "Instructions for interpreting the contents of a document.", @@ -275,7 +272,8 @@ "type": "string", "description": "The parsing strategy for the data source.", "enum": [ - "BEDROCK_FOUNDATION_MODEL" + "BEDROCK_FOUNDATION_MODEL", + "BEDROCK_DATA_AUTOMATION" ] }, "S3DataSourceConfiguration": { diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json b/internal/service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json index 168e28423..ee1389d94 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json @@ -11,11 +11,13 @@ }, "VectorKnowledgeBaseConfiguration": { "$ref": "#/definitions/VectorKnowledgeBaseConfiguration" + }, + "KendraKnowledgeBaseConfiguration": { + "$ref": "#/definitions/KendraKnowledgeBaseConfiguration" } }, "required": [ - "Type", - "VectorKnowledgeBaseConfiguration" + "Type" ], "additionalProperties": false }, @@ -45,7 +47,8 @@ "type": "string", "description": "The type of a knowledge base.", "enum": [ - "VECTOR" + "VECTOR", + "KENDRA" ] }, "OpenSearchServerlessConfiguration": { @@ -55,7 +58,7 @@ "CollectionArn": { "type": "string", "maxLength": 2048, - "pattern": "^arn:aws:aoss:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:collection/[a-z0-9-]{3,32}$", + "pattern": "^arn:aws(|-cn|-us-gov|-iso):aoss:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:collection\/[a-z0-9-]{3,32}$", "description": "The ARN of the OpenSearch Service vector store." }, "VectorIndexName": { @@ -479,12 +482,96 @@ }, "EmbeddingModelConfiguration": { "$ref": "#/definitions/EmbeddingModelConfiguration" + }, + "SupplementalDataStorageConfiguration": { + "$ref": "#/definitions/SupplementalDataStorageConfiguration" } }, "required": [ "EmbeddingModelArn" ], "additionalProperties": false + }, + "S3Location": { + "type": "object", + "description": "An Amazon S3 location.", + "properties": { + "URI": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^s3://.{1,128}$", + "description": "The location's URI" + } + }, + "required": [ + "URI" + ], + "additionalProperties": false + }, + "SupplementalDataStorageLocationType": { + "type": "string", + "description": "Supplemental data storage location type.", + "enum": [ + "S3" + ] + }, + "SupplementalDataStorageLocation": { + "type": "object", + "description": "Supplemental data storage location.", + "properties": { + "SupplementalDataStorageLocationType": { + "$ref": "#/definitions/SupplementalDataStorageLocationType" + }, + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "required": [ + "SupplementalDataStorageLocationType" + ], + "additionalProperties": false + }, + "SupplementalDataStorageLocations": { + "type": "array", + "items": { + "$ref": "#/definitions/SupplementalDataStorageLocation" + }, + "maxItems": 1, + "minItems": 1, + "description": "List of supplemental data storage locations.", + "insertionOrder": false + }, + "SupplementalDataStorageConfiguration": { + "type": "object", + "description": "Configurations for supplemental data storage.", + "properties": { + "SupplementalDataStorageLocations": { + "$ref": "#/definitions/SupplementalDataStorageLocations" + } + }, + "required": [ + "SupplementalDataStorageLocations" + ], + "additionalProperties": false + }, + "KendraKnowledgeBaseConfiguration": { + "type": "object", + "description": "Configurations for a Kendra knowledge base", + "properties": { + "KendraIndexArn": { + "$ref": "#/definitions/KendraIndexArn" + } + }, + "required": [ + "KendraIndexArn" + ], + "additionalProperties": false + }, + "KendraIndexArn": { + "type": "string", + "description": "Arn of a Kendra index", + "pattern": "^arn:aws(|-cn|-us-gov):kendra:[a-z0-9-]{1,20}:([0-9]{12}|):index\/([a-zA-Z0-9][a-zA-Z0-9-]{35}|[a-zA-Z0-9][a-zA-Z0-9-]{35}-[a-zA-Z0-9][a-zA-Z0-9-]{35})$" } }, "properties": { @@ -552,8 +639,7 @@ "required": [ "KnowledgeBaseConfiguration", "Name", - "RoleArn", - "StorageConfiguration" + "RoleArn" ], "readOnlyProperties": [ "/properties/KnowledgeBaseId", diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json b/internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json index ffd70f669..e3f3a72d0 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json @@ -6,7 +6,8 @@ "type": "string", "description": "Prompt template type", "enum": [ - "TEXT" + "TEXT", + "CHAT" ] }, "PromptVariant": { @@ -33,6 +34,9 @@ }, "InferenceConfiguration": { "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "GenAiResource": { + "$ref": "#/definitions/PromptGenAiResource" } }, "required": [ @@ -69,6 +73,47 @@ "required": [], "additionalProperties": false }, + "ChatPromptTemplateConfiguration": { + "type": "object", + "description": "Configuration for chat prompt template", + "properties": { + "Messages": { + "type": "array", + "items": { + "$ref": "#/definitions/Message" + }, + "minItems": 0, + "description": "List of messages for chat prompt template", + "insertionOrder": true + }, + "System": { + "type": "array", + "items": { + "$ref": "#/definitions/SystemContentBlock" + }, + "minItems": 0, + "description": "Configuration for chat prompt template", + "insertionOrder": true + }, + "ToolConfiguration": { + "$ref": "#/definitions/ToolConfiguration" + }, + "InputVariables": { + "type": "array", + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "description": "List of input variables", + "insertionOrder": true + } + }, + "required": [ + "Messages" + ], + "additionalProperties": false + }, "PromptTemplateConfiguration": { "description": "Prompt template configuration", "oneOf": [ @@ -84,6 +129,19 @@ "Text" ], "additionalProperties": false + }, + { + "type": "object", + "title": "Chat", + "properties": { + "Chat": { + "$ref": "#/definitions/ChatPromptTemplateConfiguration" + } + }, + "required": [ + "Chat" + ], + "additionalProperties": false } ] }, @@ -117,6 +175,232 @@ ], "additionalProperties": false }, + "ConversationRole": { + "type": "string", + "description": "Conversation roles for the chat prompt", + "enum": [ + "user", + "assistant" + ] + }, + "ContentBlock": { + "description": "Configuration for chat prompt template", + "oneOf": [ + { + "title": "Text", + "type": "object", + "properties": { + "Text": { + "type": "string", + "minLength": 1, + "description": "Configuration for chat prompt template" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "SystemContentBlock": { + "description": "Configuration for chat prompt template", + "oneOf": [ + { + "title": "Text", + "type": "object", + "properties": { + "Text": { + "type": "string", + "minLength": 1, + "description": "Configuration for chat prompt template" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "Message": { + "type": "object", + "description": "Chat prompt Message", + "properties": { + "Role": { + "$ref": "#/definitions/ConversationRole" + }, + "Content": { + "type": "array", + "items": { + "$ref": "#/definitions/ContentBlock" + }, + "minItems": 1, + "description": "List of Content Blocks", + "insertionOrder": true + } + }, + "required": [ + "Role", + "Content" + ], + "additionalProperties": false + }, + "ToolInputSchema": { + "description": "Tool input schema", + "oneOf": [ + { + "type": "object", + "title": "Json", + "properties": { + "Json": { + "type": "object" + } + }, + "description": "Tool input schema json", + "required": [ + "Json" + ], + "additionalProperties": false + } + ] + }, + "ToolSpecification": { + "type": "object", + "description": "Tool specification", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$", + "minLength": 1, + "maxLength": 64, + "description": "Tool name" + }, + "Description": { + "type": "string", + "minLength": 1 + }, + "InputSchema": { + "$ref": "#/definitions/ToolInputSchema" + } + }, + "required": [ + "Name", + "InputSchema" + ], + "additionalProperties": false + }, + "Tool": { + "description": "Tool details", + "oneOf": [ + { + "type": "object", + "title": "ToolSpec", + "properties": { + "ToolSpec": { + "$ref": "#/definitions/ToolSpecification" + } + }, + "required": [ + "ToolSpec" + ], + "additionalProperties": false + } + ] + }, + "AutoToolChoice": { + "type": "object", + "description": "Auto Tool choice", + "additionalProperties": false + }, + "AnyToolChoice": { + "type": "object", + "description": "Any Tool choice", + "additionalProperties": false + }, + "SpecificToolChoice": { + "type": "object", + "description": "Specific Tool choice", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$", + "minLength": 1, + "maxLength": 64, + "description": "Tool name" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false + }, + "ToolChoice": { + "description": "Tool choice", + "oneOf": [ + { + "title": "Auto", + "type": "object", + "properties": { + "Auto": { + "$ref": "#/definitions/AutoToolChoice" + } + }, + "required": [ + "Auto" + ], + "additionalProperties": false + }, + { + "title": "Any", + "type": "object", + "properties": { + "Any": { + "$ref": "#/definitions/AnyToolChoice" + } + }, + "required": [ + "Any" + ], + "additionalProperties": false + }, + { + "title": "Tool", + "type": "object", + "properties": { + "Tool": { + "$ref": "#/definitions/SpecificToolChoice" + } + }, + "required": [ + "Tool" + ], + "additionalProperties": false + } + ] + }, + "ToolConfiguration": { + "type": "object", + "description": "Tool configuration", + "properties": { + "Tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tool" + }, + "minItems": 1, + "description": "List of Tools", + "insertionOrder": true + }, + "ToolChoice": { + "$ref": "#/definitions/ToolChoice" + } + }, + "required": [ + "Tools" + ], + "additionalProperties": false + }, "PromptModelInferenceConfiguration": { "type": "object", "description": "Prompt model inference configuration", @@ -195,6 +479,40 @@ } }, "additionalProperties": false + }, + "PromptAgentResource": { + "description": "Target Agent to invoke with Prompt", + "type": "object", + "properties": { + "AgentIdentifier": { + "type": "string", + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$", + "description": "Arn representation of the Agent Alias." + } + }, + "required": [ + "AgentIdentifier" + ], + "additionalProperties": false + }, + "PromptGenAiResource": { + "description": "Target resource to invoke with Prompt", + "oneOf": [ + { + "type": "object", + "title": "Agent", + "properties": { + "Agent": { + "$ref": "#/definitions/PromptAgentResource" + } + }, + "required": [ + "Agent" + ], + "additionalProperties": false + } + ] } }, "properties": { diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_Collaboration.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_Collaboration.json index c4c16452b..13d1957e9 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRooms_Collaboration.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_Collaboration.json @@ -56,6 +56,33 @@ }, "uniqueItems": true }, + "MLMemberAbilities": { + "type": "object", + "properties": { + "CustomMLMemberAbilities": { + "$ref": "#/definitions/CustomMLMemberAbilities" + } + }, + "required": [ + "CustomMLMemberAbilities" + ], + "additionalProperties": false + }, + "CustomMLMemberAbility": { + "type": "string", + "enum": [ + "CAN_RECEIVE_MODEL_OUTPUT", + "CAN_RECEIVE_INFERENCE_OUTPUT" + ] + }, + "CustomMLMemberAbilities": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomMLMemberAbility" + }, + "uniqueItems": true + }, "MemberSpecification": { "type": "object", "properties": { @@ -68,6 +95,9 @@ "MemberAbilities": { "$ref": "#/definitions/MemberAbilities" }, + "MLMemberAbilities": { + "$ref": "#/definitions/MLMemberAbilities" + }, "DisplayName": { "$ref": "#/definitions/Name" }, @@ -123,6 +153,9 @@ "properties": { "QueryCompute": { "$ref": "#/definitions/QueryComputePaymentConfig" + }, + "MachineLearning": { + "$ref": "#/definitions/MLPaymentConfig" } }, "required": [ @@ -140,6 +173,42 @@ "required": [ "IsResponsible" ] + }, + "MLPaymentConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "ModelTraining": { + "$ref": "#/definitions/ModelTrainingPaymentConfig" + }, + "ModelInference": { + "$ref": "#/definitions/ModelInferencePaymentConfig" + } + } + }, + "ModelTrainingPaymentConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "IsResponsible": { + "type": "boolean" + } + }, + "required": [ + "IsResponsible" + ] + }, + "ModelInferencePaymentConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "IsResponsible": { + "type": "boolean" + } + }, + "required": [ + "IsResponsible" + ] } }, "properties": { @@ -168,6 +237,9 @@ "CreatorMemberAbilities": { "$ref": "#/definitions/MemberAbilities" }, + "CreatorMLMemberAbilities": { + "$ref": "#/definitions/MLMemberAbilities" + }, "DataEncryptionMetadata": { "$ref": "#/definitions/DataEncryptionMetadata" }, @@ -217,6 +289,7 @@ "createOnlyProperties": [ "/properties/CreatorDisplayName", "/properties/CreatorMemberAbilities", + "/properties/CreatorMLMemberAbilities", "/properties/DataEncryptionMetadata", "/properties/QueryLogStatus", "/properties/Members", diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json index 743335e5c..f34669945 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json @@ -103,6 +103,9 @@ "properties": { "QueryCompute": { "$ref": "#/definitions/MembershipQueryComputePaymentConfig" + }, + "MachineLearning": { + "$ref": "#/definitions/MembershipMLPaymentConfig" } }, "required": [ @@ -120,6 +123,42 @@ "required": [ "IsResponsible" ] + }, + "MembershipMLPaymentConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "ModelTraining": { + "$ref": "#/definitions/MembershipModelTrainingPaymentConfig" + }, + "ModelInference": { + "$ref": "#/definitions/MembershipModelInferencePaymentConfig" + } + } + }, + "MembershipModelTrainingPaymentConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "IsResponsible": { + "type": "boolean" + } + }, + "required": [ + "IsResponsible" + ] + }, + "MembershipModelInferencePaymentConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "IsResponsible": { + "type": "boolean" + } + }, + "required": [ + "IsResponsible" + ] } }, "properties": { diff --git a/internal/service/cloudformation/schemas/AWS_CloudFront_AnycastIpList.json b/internal/service/cloudformation/schemas/AWS_CloudFront_AnycastIpList.json new file mode 100644 index 000000000..eceb24465 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_CloudFront_AnycastIpList.json @@ -0,0 +1,159 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/IpCount", + "/properties/Name", + "/properties/Tags" + ], + "definitions": { + "AnycastIpList": { + "additionalProperties": false, + "properties": { + "AnycastIps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IpCount": { + "type": "integer" + }, + "LastModifiedTime": { + "format": "date-time", + "type": "string" + }, + "Name": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_]{1,64}$", + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "AnycastIps", + "Arn", + "Id", + "IpCount", + "LastModifiedTime", + "Name", + "Status" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "Tags": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "description": "Definition of AWS::CloudFront::AnycastIpList Resource Type", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateAnycastIpList", + "cloudfront:TagResource" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteAnycastIpList", + "cloudfront:GetAnycastIpList" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListAnycastIpLists" + ] + }, + "read": { + "permissions": [ + "cloudfront:GetAnycastIpList", + "cloudfront:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AnycastIpList": { + "$ref": "#/definitions/AnycastIpList" + }, + "ETag": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IpCount": { + "type": "integer" + }, + "Name": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_]{1,64}$", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "readOnlyProperties": [ + "/properties/AnycastIpList", + "/properties/ETag", + "/properties/Id" + ], + "required": [ + "IpCount", + "Name" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "cloudfront:TagResource", + "cloudfront:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::CloudFront::AnycastIpList" +} diff --git a/internal/service/cloudformation/schemas/AWS_CloudFront_Distribution.json b/internal/service/cloudformation/schemas/AWS_CloudFront_Distribution.json index 2b756b02c..c7eee4b21 100644 --- a/internal/service/cloudformation/schemas/AWS_CloudFront_Distribution.json +++ b/internal/service/cloudformation/schemas/AWS_CloudFront_Distribution.json @@ -61,7 +61,7 @@ }, "GrpcConfig": { "$ref": "#/definitions/GrpcConfig", - "description": "" + "description": "The gRPC configuration for your cache behavior." }, "LambdaFunctionAssociations": { "items": { @@ -200,7 +200,7 @@ "OriginKeepaliveTimeout": { "default": 5, "type": "integer", - "description": "Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds.\n For more information, see [Origin Keep-alive Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout) in the *Amazon CloudFront Developer Guide*." + "description": "Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds.\n For more information, see [Keep-alive timeout (custom origins only)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout) in the *Amazon CloudFront Developer Guide*." }, "OriginProtocolPolicy": { "type": "string", @@ -209,7 +209,7 @@ "OriginReadTimeout": { "default": 30, "type": "integer", - "description": "Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds.\n For more information, see [Origin Response Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*." + "description": "Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds.\n For more information, see [Response timeout (custom origins only)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*." }, "OriginSSLProtocols": { "default": [ @@ -291,7 +291,7 @@ }, "GrpcConfig": { "$ref": "#/definitions/GrpcConfig", - "description": "" + "description": "The gRPC configuration for your cache behavior." }, "LambdaFunctionAssociations": { "items": { @@ -374,6 +374,10 @@ "uniqueItems": false, "description": "A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution." }, + "AnycastIpListId": { + "type": "string", + "description": "" + }, "CNAMEs": { "items": { "type": "string" @@ -418,7 +422,7 @@ "DefaultRootObject": { "default": "", "type": "string", - "description": "The object that you want CloudFront to request from your origin (for example, ``index.html``) when a viewer requests the root URL for your distribution (``https://www.example.com``) instead of an object in your distribution (``https://www.example.com/product-description.html``). Specifying a default root object avoids exposing the contents of your distribution.\n Specify only the object name, for example, ``index.html``. Don't add a ``/`` before the object name.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*." + "description": "When a viewer requests the root URL for your distribution, the default root object is the object that you want CloudFront to request from your origin. For example, if your root URL is ``https://www.example.com``, you can specify CloudFront to return the ``index.html`` file as the default root object. You can specify a default root object so that viewers see a specific file or object, instead of another object in your distribution (for example, ``https://www.example.com/product-description.html``). A default root object avoids exposing the contents of your distribution.\n You can specify the object name or a path to the object name (for example, ``index.html`` or ``exampleFolderName/index.html``). Your string can't begin with a forward slash (``/``). Only specify the object name or the path to the object.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Specify a default root object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*." }, "Enabled": { "type": "boolean", @@ -570,14 +574,15 @@ "additionalProperties": false, "properties": { "Enabled": { - "type": "boolean" + "type": "boolean", + "description": "Enables your CloudFront distribution to receive gRPC requests and to proxy them directly to your origins." } }, "required": [ "Enabled" ], "type": "object", - "description": "" + "description": "Amazon CloudFront supports gRPC, an open-source remote procedure call (RPC) framework built on HTTP/2. gRPC offers bi-directional streaming and binary protocol that buffers payloads, making it suitable for applications that require low latency communications.\n To enable your distribution to handle gRPC requests, you must include HTTP/2 as one of the supported ``HTTP`` versions and allow ``HTTP`` methods, including ``POST``.\n For more information, see [Using gRPC with CloudFront distributions](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-using-grpc.html) in the *Amazon CloudFront Developer Guide*." }, "LambdaFunctionAssociation": { "additionalProperties": false, @@ -660,7 +665,7 @@ "properties": { "Bucket": { "type": "string", - "description": "The Amazon S3 bucket to store the access logs in, for example, ``myawslogbucket.s3.amazonaws.com``." + "description": "The Amazon S3 bucket to store the access logs in, for example, ``amzn-s3-demo-bucket.s3.amazonaws.com``." }, "IncludeCookies": { "default": false, @@ -674,7 +679,7 @@ } }, "type": "object", - "description": "A complex type that controls whether access logs are written for the distribution." + "description": "A complex type that specifies whether access logs are written for the distribution.\n If you already enabled standard logging (legacy) and you want to enable standard logging (v2) to send your access logs to Amazon S3, we recommend that you specify a *different* Amazon S3 bucket or use a *separate path* in the same bucket (for example, use a log prefix or partitioning). This helps you keep track of which log files are associated with which logging subscription and prevents log files from overwriting each other. For more information, see [Standard logging (access logs)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) in the *Amazon CloudFront Developer Guide*." }, "Origin": { "additionalProperties": false, @@ -768,7 +773,7 @@ }, "SelectionCriteria": { "$ref": "#/definitions/OriginGroupSelectionCriteria", - "description": "" + "description": "The selection criteria for the origin group. For more information, see [Create an origin group](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html#concept_origin_groups.creating) in the *Amazon CloudFront Developer Guide*." } }, "required": [ @@ -777,7 +782,7 @@ "Members" ], "type": "object", - "description": "An origin group includes two origins (a primary origin and a second origin to failover to) and a failover criteria that you specify. You create an origin group to support origin failover in CloudFront. When you create or update a distribution, you can specify the origin group instead of a single origin, and CloudFront will failover from the primary origin to the second origin under the failover conditions that you've chosen." + "description": "An origin group includes two origins (a primary origin and a secondary origin to failover to) and a failover criteria that you specify. You create an origin group to support origin failover in CloudFront. When you create or update a distribution, you can specify the origin group instead of a single origin, and CloudFront will failover from the primary origin to the secondary origin under the failover conditions that you've chosen.\n Optionally, you can choose selection criteria for your origin group to specify how your origins are selected when your distribution routes viewer requests." }, "OriginGroupFailoverCriteria": { "additionalProperties": false, diff --git a/internal/service/cloudformation/schemas/AWS_Connect_Queue.json b/internal/service/cloudformation/schemas/AWS_Connect_Queue.json index 75c3c90d9..80904e8b6 100644 --- a/internal/service/cloudformation/schemas/AWS_Connect_Queue.json +++ b/internal/service/cloudformation/schemas/AWS_Connect_Queue.json @@ -141,7 +141,6 @@ "description": "The quick connects available to agents who are working the queue.", "type": "array", "minItems": 1, - "maxItems": 50, "insertionOrder": false, "items": { "$ref": "#/definitions/QuickConnectArn" diff --git a/internal/service/cloudformation/schemas/AWS_CustomerProfiles_EventTrigger.json b/internal/service/cloudformation/schemas/AWS_CustomerProfiles_EventTrigger.json new file mode 100644 index 000000000..4f7369855 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_CustomerProfiles_EventTrigger.json @@ -0,0 +1,372 @@ +{ + "typeName": "AWS::CustomerProfiles::EventTrigger", + "description": "An event trigger resource of Amazon Connect Customer Profiles", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-customer-profiles", + "definitions": { + "DomainName": { + "description": "The unique name of the domain.", + "type": "string", + "pattern": "^[a-zA-Z0-9_-]+$", + "minLength": 1, + "maxLength": 64 + }, + "EventTriggerName": { + "description": "The unique name of the event trigger.", + "type": "string", + "pattern": "^[a-zA-Z0-9_-]+$", + "minLength": 1, + "maxLength": 64 + }, + "ObjectTypeName": { + "description": "The unique name of the object type.", + "type": "string", + "pattern": "^[a-zA-Z_][a-zA-Z_0-9-]*$", + "minLength": 1, + "maxLength": 255 + }, + "Description": { + "description": "The description of the event trigger.", + "type": "string", + "minLength": 1, + "maxLength": 1000 + }, + "EventTriggerConditions": { + "description": "A list of conditions that determine when an event should trigger the destination.", + "type": "array", + "items": { + "$ref": "#/definitions/EventTriggerCondition" + }, + "insertionOrder": false, + "minItems": 1, + "maxItems": 5 + }, + "EventTriggerCondition": { + "description": "Specifies the circumstances under which the event should trigger the destination.", + "type": "object", + "properties": { + "EventTriggerDimensions": { + "$ref": "#/definitions/EventTriggerDimensions" + }, + "LogicalOperator": { + "$ref": "#/definitions/EventTriggerLogicalOperator" + } + }, + "required": [ + "EventTriggerDimensions", + "LogicalOperator" + ], + "additionalProperties": false + }, + "EventTriggerDimensions": { + "description": "A list of dimensions to be evaluated for the event.", + "type": "array", + "items": { + "$ref": "#/definitions/EventTriggerDimension" + }, + "insertionOrder": false, + "minItems": 1, + "maxItems": 10 + }, + "EventTriggerDimension": { + "description": "A specific event dimension to be assessed.", + "type": "object", + "properties": { + "ObjectAttributes": { + "$ref": "#/definitions/ObjectAttributes" + } + }, + "required": [ + "ObjectAttributes" + ], + "additionalProperties": false + }, + "EventTriggerLogicalOperator": { + "description": "The operator used to combine multiple dimensions.", + "type": "string", + "enum": [ + "ANY", + "ALL", + "NONE" + ] + }, + "ObjectAttributes": { + "description": "A list of object attributes to be evaluated.", + "type": "array", + "items": { + "$ref": "#/definitions/ObjectAttribute" + }, + "insertionOrder": false, + "minItems": 1, + "maxItems": 10 + }, + "ObjectAttribute": { + "description": "The criteria that a specific object attribute must meet to trigger the destination.", + "type": "object", + "properties": { + "Source": { + "description": "An attribute contained within a source object.", + "type": "string", + "minLength": 1, + "maxLength": 1000 + }, + "FieldName": { + "description": "A field defined within an object type.", + "type": "string", + "pattern": "^[a-zA-Z0-9_.-]+$", + "minLength": 1, + "maxLength": 64 + }, + "ComparisonOperator": { + "description": "The operator used to compare an attribute against a list of values.", + "type": "string", + "enum": [ + "INCLUSIVE", + "EXCLUSIVE", + "CONTAINS", + "BEGINS_WITH", + "ENDS_WITH", + "GREATER_THAN", + "LESS_THAN", + "GREATER_THAN_OR_EQUAL", + "LESS_THAN_OR_EQUAL", + "EQUAL", + "BEFORE", + "AFTER", + "ON", + "BETWEEN", + "NOT_BETWEEN" + ] + }, + "Values": { + "description": "A list of attribute values used for comparison.", + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 255 + }, + "insertionOrder": false, + "minItems": 1, + "maxItems": 10 + } + }, + "required": [ + "ComparisonOperator", + "Values" + ], + "additionalProperties": false + }, + "EventTriggerLimits": { + "description": "Defines limits controlling whether an event triggers the destination, based on ingestion latency and the number of invocations per profile over specific time periods.", + "type": "object", + "properties": { + "EventExpiration": { + "$ref": "#/definitions/EventExpiration" + }, + "Periods": { + "$ref": "#/definitions/Periods" + } + }, + "additionalProperties": false + }, + "EventExpiration": { + "description": "Specifies that an event will only trigger the destination if it is processed within a certain latency period.", + "type": "integer", + "format": "int64" + }, + "Periods": { + "description": "A list of time periods during which the limits apply.", + "type": "array", + "items": { + "$ref": "#/definitions/Period" + }, + "insertionOrder": false, + "minItems": 1, + "maxItems": 4 + }, + "Period": { + "description": "Defines a limit and the time period during which it is enforced.", + "type": "object", + "properties": { + "Unit": { + "description": "The unit of time.", + "type": "string", + "enum": [ + "HOURS", + "DAYS", + "WEEKS", + "MONTHS" + ] + }, + "Value": { + "description": "The amount of time of the specified unit.", + "type": "integer", + "minimum": 1, + "maximum": 24 + }, + "MaxInvocationsPerProfile": { + "description": "The maximum allowed number of destination invocations per profile.", + "type": "integer", + "minimum": 1, + "maximum": 1000 + }, + "Unlimited": { + "description": "If set to true, there is no limit on the number of destination invocations per profile. The default is false.", + "type": "boolean" + } + }, + "required": [ + "Unit", + "Value" + ], + "additionalProperties": false + }, + "SegmentFilter": { + "description": "The destination is triggered only for profiles that meet the criteria of a segment definition.", + "type": "string", + "pattern": "^[a-zA-Z0-9_-]+$", + "minLength": 1, + "maxLength": 64 + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 0, + "maxLength": 256 + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "maxItems": 50 + } + }, + "properties": { + "DomainName": { + "$ref": "#/definitions/DomainName" + }, + "EventTriggerName": { + "$ref": "#/definitions/EventTriggerName" + }, + "ObjectTypeName": { + "$ref": "#/definitions/ObjectTypeName" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "EventTriggerConditions": { + "$ref": "#/definitions/EventTriggerConditions" + }, + "EventTriggerLimits": { + "$ref": "#/definitions/EventTriggerLimits" + }, + "SegmentFilter": { + "$ref": "#/definitions/SegmentFilter" + }, + "CreatedAt": { + "description": "The timestamp of when the event trigger was created.", + "type": "string" + }, + "LastUpdatedAt": { + "description": "The timestamp of when the event trigger was most recently updated.", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "additionalProperties": false, + "required": [ + "DomainName", + "EventTriggerName", + "ObjectTypeName", + "EventTriggerConditions" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "profile:TagResource", + "profile:UntagResource", + "profile:ListTagsForResource" + ] + }, + "createOnlyProperties": [ + "/properties/DomainName", + "/properties/EventTriggerName" + ], + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/LastUpdatedAt" + ], + "primaryIdentifier": [ + "/properties/DomainName", + "/properties/EventTriggerName" + ], + "handlers": { + "create": { + "permissions": [ + "profile:CreateEventTrigger", + "profile:TagResource" + ] + }, + "read": { + "permissions": [ + "profile:GetEventTrigger" + ] + }, + "update": { + "permissions": [ + "profile:GetEventTrigger", + "profile:UpdateEventTrigger", + "profile:UntagResource", + "profile:TagResource" + ] + }, + "delete": { + "permissions": [ + "profile:DeleteEventTrigger" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "DomainName": { + "$ref": "resource-schema.json#/properties/DomainName" + } + }, + "required": [ + "DomainName" + ] + }, + "permissions": [ + "profile:ListEventTriggers" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_DMS_DataProvider.json b/internal/service/cloudformation/schemas/AWS_DMS_DataProvider.json index 65c70489a..71f197337 100644 --- a/internal/service/cloudformation/schemas/AWS_DMS_DataProvider.json +++ b/internal/service/cloudformation/schemas/AWS_DMS_DataProvider.json @@ -46,6 +46,29 @@ "verify-ca", "verify-full" ] + }, + "MongoDbSslModeValue": { + "type": "string", + "enum": [ + "none", + "require", + "verify-full" + ] + }, + "MongoDbAuthType": { + "type": "string", + "enum": [ + "no", + "password" + ] + }, + "MongoDbAuthMechanism": { + "type": "string", + "enum": [ + "default", + "mongodb_cr", + "scram_sha_1" + ] } }, "properties": { @@ -83,12 +106,16 @@ "description": "The property describes a data engine for the data provider.", "type": "string", "enum": [ - "postgres", + "aurora", + "aurora_postgresql", "mysql", "oracle", + "postgres", "sqlserver", - "aurora", - "aurora_postgresql" + "redshift", + "mariadb", + "mongodb", + "docdb" ] }, "ExactSettings": { @@ -226,6 +253,118 @@ "DatabaseName" ], "additionalProperties": false + }, + "RedshiftSettings": { + "description": "RedshiftSettings property identifier.", + "type": "object", + "properties": { + "ServerName": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "DatabaseName": { + "type": "string" + } + }, + "required": [ + "ServerName", + "Port", + "DatabaseName" + ], + "additionalProperties": false + }, + "MariaDbSettings": { + "description": "MariaDbSettings property identifier.", + "type": "object", + "properties": { + "ServerName": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "SslMode": { + "type": "object", + "$ref": "#/definitions/DmsSslModeValue" + }, + "CertificateArn": { + "type": "string" + } + }, + "required": [ + "ServerName", + "Port", + "SslMode" + ], + "additionalProperties": false + }, + "DocDbSettings": { + "description": "DocDbSettings property identifier.", + "type": "object", + "properties": { + "ServerName": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "DatabaseName": { + "type": "string" + }, + "SslMode": { + "type": "object", + "$ref": "#/definitions/MongoDbSslModeValue" + }, + "CertificateArn": { + "type": "string" + } + }, + "required": [ + "ServerName", + "Port", + "DatabaseName" + ], + "additionalProperties": false + }, + "MongoDbSettings": { + "description": "MongoDbSettings property identifier.", + "type": "object", + "properties": { + "ServerName": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "DatabaseName": { + "type": "string" + }, + "SslMode": { + "type": "object", + "$ref": "#/definitions/MongoDbSslModeValue" + }, + "CertificateArn": { + "type": "string" + }, + "AuthType": { + "type": "object", + "$ref": "#/definitions/MongoDbAuthType" + }, + "AuthSource": { + "type": "string" + }, + "AuthMechanism": { + "type": "object", + "$ref": "#/definitions/MongoDbAuthMechanism" + } + }, + "required": [ + "ServerName", + "Port" + ], + "additionalProperties": false } }, "anyOf": [ @@ -248,6 +387,26 @@ "required": [ "MicrosoftSqlServerSettings" ] + }, + { + "required": [ + "RedshiftSettings" + ] + }, + { + "required": [ + "DocDbSettings" + ] + }, + { + "required": [ + "MariaDbSettings" + ] + }, + { + "required": [ + "MongoDbSettings" + ] } ], "additionalProperties": false diff --git a/internal/service/cloudformation/schemas/AWS_DataZone_DataSource.json b/internal/service/cloudformation/schemas/AWS_DataZone_DataSource.json index f9ec1733a..e0faff331 100644 --- a/internal/service/cloudformation/schemas/AWS_DataZone_DataSource.json +++ b/internal/service/cloudformation/schemas/AWS_DataZone_DataSource.json @@ -15,7 +15,7 @@ "pattern": "^arn:aws[^:]*:iam::\\d{12}:(role|role/service-role)/[\\w+=,.@-]{1,128}$" }, "DataSourceConfigurationInput": { - "description": "Specifies the configuration of the data source. It can be set to either glueRunConfiguration or redshiftRunConfiguration.", + "description": "Specifies the configuration of the data source. It can be set to either glueRunConfiguration or redshiftRunConfiguration or sageMakerRunConfiguration.", "oneOf": [ { "type": "object", @@ -36,6 +36,16 @@ } }, "additionalProperties": false + }, + { + "type": "object", + "title": "SageMakerRunConfiguration", + "properties": { + "SageMakerRunConfiguration": { + "$ref": "#/definitions/SageMakerRunConfigurationInput" + } + }, + "additionalProperties": false } ] }, @@ -315,6 +325,20 @@ }, "insertionOrder": false }, + "SageMakerRunConfigurationInput": { + "type": "object", + "description": "The configuration details of the Amazon SageMaker data source.", + "properties": { + "TrackingAssets": { + "description": "The tracking assets of the Amazon SageMaker run.", + "$ref": "#/definitions/TrackingAssets" + } + }, + "required": [ + "TrackingAssets" + ], + "additionalProperties": false + }, "ScheduleConfiguration": { "type": "object", "description": "The schedule of the data source runs.", @@ -336,6 +360,23 @@ "Timezone": { "type": "string" }, + "TrackingAssets": { + "type": "object", + "description": "The tracking assets of the Amazon SageMaker run.", + "patternProperties": { + "": { + "type": "array", + "items": { + "type": "string", + "pattern": "^arn:aws[^:]*:sagemaker:[a-z]{2}-?(iso|gov)?-{1}[a-z]*-{1}[0-9]:\\d{12}:[\\w+=,.@-]{1,128}/[\\w+=,.@-]{1,256}$" + }, + "minItems": 0, + "maxItems": 500 + } + }, + "maxProperties": 1, + "additionalProperties": false + }, "TypeRevision": { "type": "string", "description": "The revision of the metadata form type.", diff --git a/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json b/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json index ae2f38b8e..b3b59b896 100644 --- a/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json +++ b/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json @@ -46,6 +46,9 @@ "$ref": "#/definitions/LocalSecondaryIndex" } }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, "WriteProvisionedThroughputSettings": { "$ref": "#/definitions/WriteProvisionedThroughputSettings" }, @@ -164,7 +167,17 @@ "properties": { "PointInTimeRecoveryEnabled": { "type": "boolean" + }, + "RecoveryPeriodInDays": { + "type": "integer", + "minimum": 1, + "maximum": 35 } + }, + "dependencies": { + "RecoveryPeriodInDays": [ + "PointInTimeRecoveryEnabled" + ] } }, "ReplicaSpecification": { diff --git a/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json b/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json index fed42ad4e..0bbdf1fd0 100644 --- a/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json +++ b/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json @@ -381,7 +381,18 @@ "PointInTimeRecoveryEnabled": { "description": "Indicates whether point in time recovery is enabled (true) or disabled (false) on the table.", "type": "boolean" + }, + "RecoveryPeriodInDays": { + "maximum": 35, + "description": "", + "type": "integer", + "minimum": 1 } + }, + "dependencies": { + "RecoveryPeriodInDays": [ + "PointInTimeRecoveryEnabled" + ] } }, "ProvisionedThroughput": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VPCCidrBlock.json b/internal/service/cloudformation/schemas/AWS_EC2_VPCCidrBlock.json index cf2751240..9629276f4 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VPCCidrBlock.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VPCCidrBlock.json @@ -50,6 +50,10 @@ "IpSource": { "type": "string", "description": "The IP Source of an IPv6 VPC CIDR Block." + }, + "Ipv6CidrBlockNetworkBorderGroup": { + "type": "string", + "description": "The name of the location from which we advertise the IPV6 CIDR block." } }, "tagging": { @@ -67,7 +71,8 @@ "/properties/Ipv4IpamPoolId", "/properties/Ipv4NetmaskLength", "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" + "/properties/Ipv6NetmaskLength", + "/properties/Ipv6CidrBlockNetworkBorderGroup" ], "primaryIdentifier": [ "/properties/Id", diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpoint.json b/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpoint.json index f53118623..1a92623ae 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpoint.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpoint.json @@ -1,8 +1,14 @@ { "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeVpcEndpoints" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", "cloudFormationSystemTags": false }, "handlers": { @@ -21,7 +27,9 @@ "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "vpc-lattice:CreateServiceNetworkVpcEndpointAssociation", - "vpc-lattice:DescribeServiceNetworkVpcEndpointAssociation" + "vpc-lattice:DescribeServiceNetworkVpcEndpointAssociation", + "ec2:CreateTags", + "ec2:DeleteTags" ], "timeoutInMinutes": 210 }, @@ -32,7 +40,9 @@ "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "vpc-lattice:CreateServiceNetworkVpcEndpointAssociation", - "vpc-lattice:DescribeServiceNetworkVpcEndpointAssociation" + "vpc-lattice:DescribeServiceNetworkVpcEndpointAssociation", + "ec2:CreateTags", + "ec2:DeleteTags" ], "timeoutInMinutes": 210 }, @@ -50,7 +60,9 @@ "ec2:DescribeVpcEndpoints", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", - "vpc-lattice:DescribeServiceNetworkVpcEndpointAssociation" + "vpc-lattice:DescribeServiceNetworkVpcEndpointAssociation", + "ec2:CreateTags", + "ec2:DeleteTags" ], "timeoutInMinutes": 210 } @@ -99,6 +111,23 @@ ] } } + }, + "Tag": { + "description": "", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ] } }, "properties": { @@ -234,6 +263,15 @@ "Id": { "description": "", "type": "string" + }, + "Tags": { + "uniqueItems": false, + "description": "", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } } }, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpointService.json b/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpointService.json index d2d543800..ec3d7e149 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpointService.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpointService.json @@ -2,6 +2,24 @@ "typeName": "AWS::EC2::VPCEndpointService", "description": "Resource Type definition for AWS::EC2::VPCEndpointService", "additionalProperties": false, + "definitions": { + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ] + } + }, "properties": { "NetworkLoadBalancerArns": { "type": "array", @@ -32,6 +50,15 @@ "items": { "type": "string" } + }, + "Tags": { + "type": "array", + "description": "The tags to add to the VPC endpoint service.", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } } }, "primaryIdentifier": [ @@ -44,32 +71,38 @@ "/properties/ContributorInsightsEnabled" ], "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ] }, "handlers": { "create": { "permissions": [ "ec2:CreateVpcEndpointServiceConfiguration", - "ec2:ModifyVpcEndpointServiceConfiguration", "ec2:ModifyVpcEndpointServicePayerResponsibility", "cloudwatch:ListManagedInsightRules", "cloudwatch:DeleteInsightRules", "cloudwatch:PutManagedInsightRules", - "ec2:DescribeVpcEndpointServiceConfigurations" + "ec2:DescribeVpcEndpointServiceConfigurations", + "ec2:CreateTags" ] }, "update": { "permissions": [ "ec2:ModifyVpcEndpointServiceConfiguration", - "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:ModifyVpcEndpointServicePayerResponsibility", "cloudwatch:ListManagedInsightRules", "cloudwatch:DeleteInsightRules", - "cloudwatch:PutManagedInsightRules" + "cloudwatch:PutManagedInsightRules", + "ec2:CreateTags", + "ec2:DeleteTags" ] }, "read": { @@ -83,7 +116,8 @@ "ec2:DeleteVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpointServiceConfigurations", "cloudwatch:ListManagedInsightRules", - "cloudwatch:DeleteInsightRules" + "cloudwatch:DeleteInsightRules", + "ec2:DeleteTags" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_Volume.json b/internal/service/cloudformation/schemas/AWS_EC2_Volume.json index 90c1d1b31..f333909cb 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_Volume.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_Volume.json @@ -1,101 +1,25 @@ { - "typeName": "AWS::EC2::Volume", - "description": "Specifies an Amazon Elastic Block Store (Amazon EBS) volume.\n When you use CFNlong to update an Amazon EBS volume that modifies ``Iops``, ``Size``, or ``VolumeType``, there is a cooldown period before another operation can occur. This can cause your stack to report being in ``UPDATE_IN_PROGRESS`` or ``UPDATE_ROLLBACK_IN_PROGRESS`` for long periods of time.\n Amazon EBS does not support sizing down an Amazon EBS volume. CFNlong does not attempt to modify an Amazon EBS volume to a smaller size on rollback.\n Some common scenarios when you might encounter a cooldown period for Amazon EBS include:\n + You successfully update an Amazon EBS volume and the update succeeds. When you attempt another update within the cooldown window, that update will be subject to a cooldown period.\n + You successfully update an Amazon EBS volume and the update succeeds but another change in your ``update-stack`` call fails. The rollback will be subject to a cooldown period.\n \n For more information, see [Requirements for EBS volume modifications](https://docs.aws.amazon.com/ebs/latest/userguide/modify-volume-requirements.html).\n *DeletionPolicy attribute* \n To control how CFNlong handles the volume when the stack is deleted, set a deletion policy for your volume. You can choose to retain the volume, to delete the volume, or to create a snapshot of the volume. For more information, see [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).\n If you set a deletion policy that creates a snapshot, all tags on the volume are included in the snapshot.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "additionalProperties": false, - "properties": { - "MultiAttachEnabled": { - "type": "boolean", - "description": "Indicates whether Amazon EBS Multi-Attach is enabled.\n CFNlong does not currently support updating a single-attach volume to be multi-attach enabled, updating a multi-attach enabled volume to be single-attach, or updating the size or number of I/O operations per second (IOPS) of a multi-attach enabled volume." - }, - "KmsKeyId": { - "type": "string", - "description": "The identifier of the kms-key-long to use for Amazon EBS encryption. If ``KmsKeyId`` is specified, the encrypted state must be ``true``.\n If you omit this property and your account is enabled for encryption by default, or *Encrypted* is set to ``true``, then the volume is encrypted using the default key specified for your account. If your account does not have a default key, then the volume is encrypted using the aws-managed-key.\n Alternatively, if you want to specify a different key, you can specify one of the following:\n + Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.\n + Key alias. Specify the alias for the key, prefixed with ``alias/``. For example, for a key with the alias ``my_cmk``, use ``alias/my_cmk``. Or to specify the aws-managed-key, use ``alias/aws/ebs``.\n + Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.\n + Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias." - }, - "Encrypted": { - "type": "boolean", - "description": "Indicates whether the volume should be encrypted. The effect of setting the encryption state to ``true`` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see [Encryption by default](https://docs.aws.amazon.com/ebs/latest/userguide/work-with-ebs-encr.html#encryption-by-default) in the *Amazon EBS User Guide*.\n Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see [Supported instance types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances)." - }, - "Size": { - "type": "integer", - "description": "The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size.\n The following are the supported volumes sizes for each volume type:\n + ``gp2`` and ``gp3``: 1 - 16,384 GiB\n + ``io1``: 4 - 16,384 GiB\n + ``io2``: 4 - 65,536 GiB\n + ``st1`` and ``sc1``: 125 - 16,384 GiB\n + ``standard``: 1 - 1024 GiB" - }, - "AutoEnableIO": { - "type": "boolean", - "description": "Indicates whether the volume is auto-enabled for I/O operations. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O." - }, - "OutpostArn": { - "type": "string", - "description": "The Amazon Resource Name (ARN) of the Outpost." - }, - "AvailabilityZone": { - "type": "string", - "description": "The ID of the Availability Zone in which to create the volume. For example, ``us-east-1a``." - }, - "Throughput": { - "type": "integer", - "description": "The throughput to provision for a volume, with a maximum of 1,000 MiB/s.\n This parameter is valid only for ``gp3`` volumes. The default value is 125.\n Valid Range: Minimum value of 125. Maximum value of 1000." - }, - "Iops": { - "type": "integer", - "description": "The number of I/O operations per second (IOPS). For ``gp3``, ``io1``, and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.\n The following are the supported values for each volume type:\n + ``gp3``: 3,000 - 16,000 IOPS\n + ``io1``: 100 - 64,000 IOPS\n + ``io2``: 100 - 256,000 IOPS\n \n For ``io2`` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html). On other instances, you can achieve performance up to 32,000 IOPS.\n This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS. This parameter is not supported for ``gp2``, ``st1``, ``sc1``, or ``standard`` volumes." - }, - "SnapshotId": { - "type": "string", - "description": "The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size." - }, - "VolumeType": { - "type": "string", - "description": "The volume type. This parameter can be one of the following values:\n + General Purpose SSD: ``gp2`` | ``gp3`` \n + Provisioned IOPS SSD: ``io1`` | ``io2`` \n + Throughput Optimized HDD: ``st1`` \n + Cold HDD: ``sc1`` \n + Magnetic: ``standard`` \n \n For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html).\n Default: ``gp2``" - }, - "VolumeId": { - "type": "string", - "description": "" - }, - "Tags": { - "type": "array", - "uniqueItems": false, - "description": "The tags to apply to the volume during creation.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - } - } - }, - "definitions": { - "Tag": { - "type": "object", - "additionalProperties": false, - "properties": { - "Key": { - "description": "The tag key.", - "type": "string" - }, - "Value": { - "description": "The tag value.", - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "description": "Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)." - } - }, "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags", "permissions": [ "ec2:CreateTags", "ec2:DeleteTags", "ec2:DescribeTags" - ] + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false }, "handlers": { + "read": { + "permissions": [ + "ec2:DescribeVolumes", + "ec2:DescribeVolumeAttribute", + "ec2:DescribeTags" + ] + }, "create": { "permissions": [ "ec2:CreateVolume", @@ -108,13 +32,6 @@ ], "timeoutInMinutes": 725 }, - "read": { - "permissions": [ - "ec2:DescribeVolumes", - "ec2:DescribeVolumeAttribute", - "ec2:DescribeTags" - ] - }, "update": { "permissions": [ "ec2:ModifyVolume", @@ -127,6 +44,13 @@ ], "timeoutInMinutes": 2160 }, + "list": { + "permissions": [ + "ec2:DescribeVolumes", + "ec2:DescribeTags", + "ec2:DescribeVolumeAttribute" + ] + }, "delete": { "permissions": [ "ec2:DeleteVolume", @@ -135,22 +59,98 @@ "ec2:DeleteTags", "ec2:DescribeVolumes" ] - }, - "list": { - "permissions": [ - "ec2:DescribeVolumes", - "ec2:DescribeTags", - "ec2:DescribeVolumeAttribute" - ] } }, - "required": [ - "AvailabilityZone" + "typeName": "AWS::EC2::Volume", + "readOnlyProperties": [ + "/properties/VolumeId" ], + "description": "Specifies an Amazon Elastic Block Store (Amazon EBS) volume.\n When you use CFNlong to update an Amazon EBS volume that modifies ``Iops``, ``Size``, or ``VolumeType``, there is a cooldown period before another operation can occur. This can cause your stack to report being in ``UPDATE_IN_PROGRESS`` or ``UPDATE_ROLLBACK_IN_PROGRESS`` for long periods of time.\n Amazon EBS does not support sizing down an Amazon EBS volume. CFNlong does not attempt to modify an Amazon EBS volume to a smaller size on rollback.\n Some common scenarios when you might encounter a cooldown period for Amazon EBS include:\n + You successfully update an Amazon EBS volume and the update succeeds. When you attempt another update within the cooldown window, that update will be subject to a cooldown period.\n + You successfully update an Amazon EBS volume and the update succeeds but another change in your ``update-stack`` call fails. The rollback will be subject to a cooldown period.\n \n For more information, see [Requirements for EBS volume modifications](https://docs.aws.amazon.com/ebs/latest/userguide/modify-volume-requirements.html).\n *DeletionPolicy attribute* \n To control how CFNlong handles the volume when the stack is deleted, set a deletion policy for your volume. You can choose to retain the volume, to delete the volume, or to create a snapshot of the volume. For more information, see [DeletionPolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).\n If you set a deletion policy that creates a snapshot, all tags on the volume are included in the snapshot.", + "additionalProperties": false, "primaryIdentifier": [ "/properties/VolumeId" ], - "readOnlyProperties": [ - "/properties/VolumeId" + "definitions": { + "Tag": { + "description": "Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "description": "The tag value.", + "type": "string" + }, + "Key": { + "description": "The tag key.", + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ] + } + }, + "properties": { + "MultiAttachEnabled": { + "description": "Indicates whether Amazon EBS Multi-Attach is enabled.\n CFNlong does not currently support updating a single-attach volume to be multi-attach enabled, updating a multi-attach enabled volume to be single-attach, or updating the size or number of I/O operations per second (IOPS) of a multi-attach enabled volume.", + "type": "boolean" + }, + "KmsKeyId": { + "description": "The identifier of the kms-key-long to use for Amazon EBS encryption. If ``KmsKeyId`` is specified, the encrypted state must be ``true``.\n If you omit this property and your account is enabled for encryption by default, or *Encrypted* is set to ``true``, then the volume is encrypted using the default key specified for your account. If your account does not have a default key, then the volume is encrypted using the aws-managed-key.\n Alternatively, if you want to specify a different key, you can specify one of the following:\n + Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.\n + Key alias. Specify the alias for the key, prefixed with ``alias/``. For example, for a key with the alias ``my_cmk``, use ``alias/my_cmk``. Or to specify the aws-managed-key, use ``alias/aws/ebs``.\n + Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.\n + Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.", + "type": "string" + }, + "Encrypted": { + "description": "Indicates whether the volume should be encrypted. The effect of setting the encryption state to ``true`` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see [Encryption by default](https://docs.aws.amazon.com/ebs/latest/userguide/work-with-ebs-encr.html#encryption-by-default) in the *Amazon EBS User Guide*.\n Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see [Supported instance types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances).", + "type": "boolean" + }, + "Size": { + "description": "The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size.\n The following are the supported volumes sizes for each volume type:\n + ``gp2`` and ``gp3``: 1 - 16,384 GiB\n + ``io1``: 4 - 16,384 GiB\n + ``io2``: 4 - 65,536 GiB\n + ``st1`` and ``sc1``: 125 - 16,384 GiB\n + ``standard``: 1 - 1024 GiB", + "type": "integer" + }, + "AutoEnableIO": { + "description": "Indicates whether the volume is auto-enabled for I/O operations. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O.", + "type": "boolean" + }, + "OutpostArn": { + "description": "The Amazon Resource Name (ARN) of the Outpost.", + "type": "string" + }, + "AvailabilityZone": { + "description": "The ID of the Availability Zone in which to create the volume. For example, ``us-east-1a``.", + "type": "string" + }, + "Throughput": { + "description": "The throughput to provision for a volume, with a maximum of 1,000 MiB/s.\n This parameter is valid only for ``gp3`` volumes. The default value is 125.\n Valid Range: Minimum value of 125. Maximum value of 1000.", + "type": "integer" + }, + "Iops": { + "description": "The number of I/O operations per second (IOPS). For ``gp3``, ``io1``, and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.\n The following are the supported values for each volume type:\n + ``gp3``: 3,000 - 16,000 IOPS\n + ``io1``: 100 - 64,000 IOPS\n + ``io2``: 100 - 256,000 IOPS\n \n For ``io2`` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html). On other instances, you can achieve performance up to 32,000 IOPS.\n This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS. This parameter is not supported for ``gp2``, ``st1``, ``sc1``, or ``standard`` volumes.", + "type": "integer" + }, + "SnapshotId": { + "description": "The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.", + "type": "string" + }, + "VolumeId": { + "description": "", + "type": "string" + }, + "VolumeType": { + "description": "The volume type. This parameter can be one of the following values:\n + General Purpose SSD: ``gp2`` | ``gp3`` \n + Provisioned IOPS SSD: ``io1`` | ``io2`` \n + Throughput Optimized HDD: ``st1`` \n + Cold HDD: ``sc1`` \n + Magnetic: ``standard`` \n \n For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html).\n Default: ``gp2``", + "type": "string" + }, + "Tags": { + "uniqueItems": false, + "description": "The tags to apply to the volume during creation.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } + } + }, + "required": [ + "AvailabilityZone" ] } diff --git a/internal/service/cloudformation/schemas/AWS_ECS_Service.json b/internal/service/cloudformation/schemas/AWS_ECS_Service.json index 768000965..b7dc11b0d 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_Service.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_Service.json @@ -307,7 +307,7 @@ "type": "string" } }, - "description": "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don\u2019t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don\u2019t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``.\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", + "description": "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don\u2019t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don\u2019t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/).\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", "additionalProperties": false, "type": "object" }, @@ -558,11 +558,11 @@ "$ref": "#/definitions/DeploymentCircuitBreaker" }, "MaximumPercent": { - "description": "If a service is using the rolling update (``ECS``) deployment type, the ``maximumPercent`` parameter represents an upper limit on the number of your service's tasks that are allowed in the ``RUNNING`` or ``PENDING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the ``REPLICA`` service scheduler and has a ``desiredCount`` of four tasks and a ``maximumPercent`` value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default ``maximumPercent`` value for a service using the ``REPLICA`` service scheduler is 200%.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and tasks in the service use the EC2 launch type, the *maximum percent* value is set to the default value. The *maximum percent* value is used to define the upper limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``maximumPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service.", + "description": "If a service is using the rolling update (``ECS``) deployment type, the ``maximumPercent`` parameter represents an upper limit on the number of your service's tasks that are allowed in the ``RUNNING`` or ``PENDING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the ``REPLICA`` service scheduler and has a ``desiredCount`` of four tasks and a ``maximumPercent`` value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default ``maximumPercent`` value for a service using the ``REPLICA`` service scheduler is 200%.\n The Amazon ECS scheduler uses this parameter to replace unhealthy tasks by starting replacement tasks first and then stopping the unhealthy tasks, as long as cluster resources for starting replacement tasks are available. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and tasks in the service use the EC2 launch type, the *maximum percent* value is set to the default value. The *maximum percent* value is used to define the upper limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``maximumPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If the service uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types, and the tasks in the service use the Fargate launch type, the maximum percent value is not used. The value is still returned when describing your service.", "type": "integer" }, "MinimumHealthyPercent": { - "description": "If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. \n For services that *do not* use a load balancer, the following should be noted:\n + A service is considered healthy if all essential containers within the tasks in the service pass their health checks.\n + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total.\n + If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings. \n \n For services that *do* use a load balancer, the following should be noted:\n + If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n + If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n \n The default value for a replica service for ``minimumHealthyPercent`` is 100%. The default ``minimumHealthyPercent`` value for a service using the ``DAEMON`` service schedule is 0% for the CLI, the AWS SDKs, and the APIs and 50% for the AWS Management Console.\n The minimum number of healthy tasks during a deployment is the ``desiredCount`` multiplied by the ``minimumHealthyPercent``/100, rounded up to the nearest integer value.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value is set to the default value. The *minimum healthy percent* value is used to define the lower limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``minimumHealthyPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.", + "description": "If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. \n If any tasks are unhealthy and if ``maximumPercent`` doesn't allow the Amazon ECS scheduler to start replacement tasks, the scheduler stops the unhealthy tasks one-by-one \u2014 using the ``minimumHealthyPercent`` as a constraint \u2014 to clear up capacity to launch replacement tasks. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) . \n For services that *do not* use a load balancer, the following should be noted:\n + A service is considered healthy if all essential containers within the tasks in the service pass their health checks.\n + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total.\n + If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings. \n \n For services that *do* use a load balancer, the following should be noted:\n + If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n + If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n \n The default value for a replica service for ``minimumHealthyPercent`` is 100%. The default ``minimumHealthyPercent`` value for a service using the ``DAEMON`` service schedule is 0% for the CLI, the AWS SDKs, and the APIs and 50% for the AWS Management Console.\n The minimum number of healthy tasks during a deployment is the ``desiredCount`` multiplied by the ``minimumHealthyPercent``/100, rounded up to the nearest integer value.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value is set to the default value. The *minimum healthy percent* value is used to define the lower limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``minimumHealthyPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.", "type": "integer" } } @@ -674,7 +674,7 @@ } }, "CapacityProviderStrategy": { - "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy may contain a maximum of 6 capacity providers.", + "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.", "type": "array", "items": { "$ref": "#/definitions/CapacityProviderStrategyItem" diff --git a/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json b/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json index d3d8e27a1..7cb144b9f 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json @@ -503,7 +503,7 @@ "type": "string" } }, - "description": "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don\u2019t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don\u2019t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``.\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", + "description": "The configuration options to send to the log driver.\n The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:\n + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don\u2019t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don\u2019t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. \n To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.\n When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.\n Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.\n When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.\n When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``. For more information, see [Under the hood: FireLens for Amazon ECS Tasks](https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/).\n When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.\n This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``", "additionalProperties": false, "type": "object" }, @@ -1123,7 +1123,7 @@ "type": "string" }, "EnableFaultInjection": { - "description": "", + "description": "Enables fault injection and allows for fault injection requests to be accepted from the task's containers. The default value is ``false``.", "type": "boolean" }, "ExecutionRoleArn": { diff --git a/internal/service/cloudformation/schemas/AWS_EFS_FileSystem.json b/internal/service/cloudformation/schemas/AWS_EFS_FileSystem.json index 7adad9900..4744b213f 100644 --- a/internal/service/cloudformation/schemas/AWS_EFS_FileSystem.json +++ b/internal/service/cloudformation/schemas/AWS_EFS_FileSystem.json @@ -72,7 +72,7 @@ "DISABLED", "ENABLED" ], - "description": "The status of the file system's replication overwrite protection.\n + ``ENABLED`` ? The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is ``ENABLED`` by default. \n + ``DISABLED`` ? The file system can be used as the destination file system in a replication configuration. The file system is read-only and can only be modified by EFS replication.\n + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is only modified only by EFS replication.\n \n If the replication configuration is deleted, the file system's replication overwrite protection is re-enabled, the file system becomes writeable." + "description": "The status of the file system's replication overwrite protection.\n + ``ENABLED`` ? The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is ``ENABLED`` by default. \n + ``DISABLED`` ? The file system can be used as the destination file system in a replication configuration. The file system is read-only and can only be modified by EFS replication.\n + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is modified only by EFS replication.\n \n If the replication configuration is deleted, the file system's replication overwrite protection is re-enabled, the file system becomes writeable." } }, "description": "Describes the protection on the file system." @@ -83,11 +83,11 @@ "properties": { "Status": { "type": "string", - "description": "" + "description": "Describes the status of the replication configuration. For more information about replication status, see [Viewing replication details](https://docs.aws.amazon.com//efs/latest/ug/awsbackup.html#restoring-backup-efsmonitoring-replication-status.html) in the *Amazon EFS User Guide*." }, "StatusMessage": { "type": "string", - "description": "" + "description": "Message that provides details about the ``PAUSED`` or ``ERRROR`` state of the replication destination configuration. For more information about replication status messages, see [Viewing replication details](https://docs.aws.amazon.com//efs/latest/ug/awsbackup.html#restoring-backup-efsmonitoring-replication-status.html) in the *Amazon EFS User Guide*." }, "FileSystemId": { "pattern": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:file-system/fs-[0-9a-f]{8,40}|fs-[0-9a-f]{8,40})$", @@ -100,7 +100,7 @@ }, "RoleArn": { "type": "string", - "description": "" + "description": "The Amazon Resource Name (ARN) of the current source file system in the replication configuration." }, "AvailabilityZoneName": { "type": "string", diff --git a/internal/service/cloudformation/schemas/AWS_GameLift_ContainerGroupDefinition.json b/internal/service/cloudformation/schemas/AWS_GameLift_ContainerGroupDefinition.json index 43343cb3f..b32949c89 100644 --- a/internal/service/cloudformation/schemas/AWS_GameLift_ContainerGroupDefinition.json +++ b/internal/service/cloudformation/schemas/AWS_GameLift_ContainerGroupDefinition.json @@ -1,99 +1,30 @@ { + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "typeName": "AWS::GameLift::ContainerGroupDefinition", + "description": "The AWS::GameLift::ContainerGroupDefinition resource creates an Amazon GameLift container group definition.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-gamelift.git", "tagging": { - "permissions": [ - "gamelift:ListTagsForResource", - "gamelift:TagResource", - "gamelift:UntagResource" - ], "taggable": true, + "cloudFormationSystemTags": false, "tagOnCreate": true, "tagUpdatable": true, "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": false - }, - "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", - "typeName": "AWS::GameLift::ContainerGroupDefinition", - "readOnlyProperties": [ - "/properties/ContainerGroupDefinitionArn", - "/properties/CreationTime", - "/properties/ContainerDefinitions/*/ResolvedImageDigest" - ], - "description": "The AWS::GameLift::ContainerGroupDefinition resource creates an Amazon GameLift container group definition.", - "createOnlyProperties": [ - "/properties/Name", - "/properties/SchedulingStrategy", - "/properties/TotalMemoryLimit", - "/properties/TotalCpuLimit", - "/properties/ContainerDefinitions", - "/properties/OperatingSystem" - ], - "primaryIdentifier": [ - "/properties/Name" - ], - "required": [ - "Name", - "TotalMemoryLimit", - "TotalCpuLimit", - "ContainerDefinitions", - "OperatingSystem" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-gamelift.git", - "handlers": { - "read": { - "permissions": [ - "gamelift:DescribeContainerGroupDefinition", - "gamelift:ListTagsForResource" - ] - }, - "create": { - "permissions": [ - "gamelift:CreateContainerGroupDefinition", - "gamelift:DescribeContainerGroupDefinition", - "gamelift:ListTagsForResource", - "gamelift:TagResource", - "ecr:BatchCheckLayerAvailability", - "ecr:BatchGetImage", - "ecr:GetDownloadUrlForLayer", - "ecr:DescribeImages" - ] - }, - "update": { - "permissions": [ - "gamelift:ListTagsForResource", - "gamelift:TagResource", - "gamelift:UntagResource" - ] - }, - "list": { - "permissions": [ - "gamelift:ListContainerGroupDefinitions" - ] - }, - "delete": { - "permissions": [ - "gamelift:DescribeContainerGroupDefinition", - "gamelift:DeleteContainerGroupDefinition" - ] - } + "permissions": [ + "gamelift:ListTagsForResource", + "gamelift:TagResource", + "gamelift:UntagResource" + ] }, - "additionalProperties": false, "definitions": { "ContainerPortRange": { "description": "A set of one or more port numbers that can be opened on the container.", - "additionalProperties": false, "type": "object", "properties": { "FromPort": { "description": "A starting value for the range of allowed port numbers.", - "maximum": 60000, "type": "integer", - "minimum": 1 - }, - "ToPort": { - "description": "An ending value for the range of allowed port numbers. Port numbers are end-inclusive. This value must be equal to or greater than FromPort.", - "maximum": 60000, - "type": "integer", - "minimum": 1 + "minimum": 1, + "maximum": 60000 }, "Protocol": { "description": "Defines the protocol of these ports.", @@ -102,38 +33,158 @@ "TCP", "UDP" ] + }, + "ToPort": { + "description": "An ending value for the range of allowed port numbers. Port numbers are end-inclusive. This value must be equal to or greater than FromPort.", + "type": "integer", + "minimum": 1, + "maximum": 60000 } }, "required": [ "FromPort", "Protocol", "ToPort" - ] + ], + "additionalProperties": false }, - "MemoryLimits": { - "description": "Specifies how much memory is available to the container.", - "additionalProperties": false, + "ContainerHealthCheck": { + "description": "Specifies how the process manager checks the health of containers.", "type": "object", "properties": { - "SoftLimit": { - "description": "The amount of memory that is reserved for the container.", - "maximum": 1024000, + "Command": { + "description": "A string array representing the command that the container runs to determine if it is healthy.", + "type": "array", + "uniqueItems": false, + "insertionOrder": true, + "minItems": 1, + "maxItems": 20, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 255, + "pattern": "^.*$" + } + }, + "Interval": { + "description": "How often (in seconds) the health is checked.", "type": "integer", - "minimum": 4 + "minimum": 60, + "maximum": 300 }, - "HardLimit": { - "description": "The hard limit of memory to reserve for the container.", - "maximum": 1024000, + "Timeout": { + "description": "How many seconds the process manager allows the command to run before canceling it.", + "type": "integer", + "minimum": 30, + "maximum": 60 + }, + "Retries": { + "description": "How many times the process manager will retry the command after a timeout. (The first run of the command does not count as a retry.)", + "type": "integer", + "minimum": 5, + "maximum": 10 + }, + "StartPeriod": { + "description": "The optional grace period (in seconds) to give a container time to boostrap before teh health check is declared failed.", "type": "integer", - "minimum": 4 + "minimum": 0, + "maximum": 300 } - } + }, + "required": [ + "Command" + ], + "additionalProperties": false + }, + "PortConfiguration": { + "description": "Defines the ports on a container.", + "type": "object", + "properties": { + "ContainerPortRanges": { + "description": "Specifies one or more ranges of ports on a container.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/definitions/ContainerPortRange" + } + } + }, + "required": [ + "ContainerPortRanges" + ], + "additionalProperties": false + }, + "ContainerEnvironment": { + "description": "An environment variable to set inside a container, in the form of a key-value pair.", + "type": "object", + "properties": { + "Name": { + "description": "The environment variable name.", + "type": "string", + "minLength": 1, + "maxLength": 255, + "pattern": "^.*$" + }, + "Value": { + "description": "The environment variable value.", + "type": "string", + "minLength": 1, + "maxLength": 255, + "pattern": "^.*$" + } + }, + "required": [ + "Name", + "Value" + ], + "additionalProperties": false + }, + "ContainerMountPoint": { + "description": "Defines the mount point configuration within a container.", + "type": "object", + "properties": { + "InstancePath": { + "description": "The path on the host that will be mounted in the container.", + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^\\/[\\s\\S]*$" + }, + "ContainerPath": { + "description": "The path inside the container where the mount is accessible.", + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^(\\/+[^\\/]+\\/*)+$" + }, + "AccessLevel": { + "description": "The access permissions for the mounted path.", + "type": "string", + "enum": [ + "READ_ONLY", + "READ_AND_WRITE" + ] + } + }, + "required": [ + "InstancePath" + ], + "additionalProperties": false }, "ContainerDependency": { "description": "A dependency that impacts a container's startup and shutdown.", - "additionalProperties": false, "type": "object", "properties": { + "ContainerName": { + "description": "A descriptive label for the container definition. The container being defined depends on this container's condition.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9-]+$" + }, "Condition": { "description": "The type of dependency.", "type": "string", @@ -143,249 +194,213 @@ "SUCCESS", "HEALTHY" ] - }, - "ContainerName": { - "minLength": 1, - "pattern": "^[a-zA-Z0-9-]+$", - "description": "A descriptive label for the container definition. The container being defined depends on this container's condition.", - "type": "string", - "maxLength": 128 } }, "required": [ "ContainerName", "Condition" - ] + ], + "additionalProperties": false }, - "ContainerEnvironment": { - "description": "An environment variable to set inside a container, in the form of a key-value pair.", - "additionalProperties": false, + "Tag": { + "description": "A key-value pair to associate with a resource.", "type": "object", "properties": { - "Value": { - "minLength": 1, - "pattern": "^.*$", - "description": "The environment variable value.", + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length.", "type": "string", - "maxLength": 255 - }, - "Name": { "minLength": 1, - "pattern": "^.*$", - "description": "The environment variable name.", + "maxLength": 128, + "pattern": "^.*$" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length.", "type": "string", - "maxLength": 255 + "minLength": 0, + "maxLength": 256, + "pattern": "^.*$" } }, "required": [ - "Name", + "Key", "Value" - ] + ], + "additionalProperties": false }, - "ContainerDefinition": { - "description": "Details about a container that is used in a container fleet", - "additionalProperties": false, + "GameServerContainerDefinition": { + "description": "Specifies the information required to run game servers with this container group", "type": "object", "properties": { - "WorkingDirectory": { - "minLength": 1, - "pattern": "^.*$", - "description": "The working directory to run commands inside the container in.", + "ContainerName": { + "description": "A descriptive label for the container definition. Container definition names must be unique with a container group definition.", "type": "string", - "maxLength": 255 - }, - "MemoryLimits": { - "description": "Specifies how much memory is available to the container. You must specify at least this parameter or the TotalMemoryLimit parameter of the ContainerGroupDefinition.", - "$ref": "#/definitions/MemoryLimits" - }, - "HealthCheck": { - "description": "Specifies how the health of the containers will be checked.", - "$ref": "#/definitions/ContainerHealthCheck" - }, - "Cpu": { - "description": "The maximum number of CPU units reserved for this container. The value is expressed as an integer amount of CPU units. 1 vCPU is equal to 1024 CPU units", - "maximum": 10240, - "type": "integer", - "minimum": 1 + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9-]+$" }, - "EntryPoint": { - "minItems": 1, - "maxItems": 20, - "uniqueItems": false, - "description": "The entry point that's passed to the container so that it will run as an executable. If there are multiple arguments, each argument is a string in the array.", - "insertionOrder": true, + "DependsOn": { + "description": "A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers.", "type": "array", + "uniqueItems": true, + "insertionOrder": true, + "minItems": 1, + "maxItems": 10, "items": { - "minLength": 1, - "type": "string", - "maxLength": 1024 + "$ref": "#/definitions/ContainerDependency" } }, + "ServerSdkVersion": { + "description": "The version of the server SDK used in this container group", + "type": "string", + "maxLength": 128, + "pattern": "^\\d+\\.\\d+\\.\\d+$" + }, "ImageUri": { - "minLength": 1, - "pattern": "^[a-zA-Z0-9-_\\.@\\/:]+$", "description": "Specifies the image URI of this container.", "type": "string", - "maxLength": 255 + "minLength": 1, + "maxLength": 255, + "pattern": "^[a-zA-Z0-9-_\\.@\\/:]+$" }, "ResolvedImageDigest": { - "pattern": "^sha256:[a-fA-F0-9]{64}$", "description": "The digest of the container image.", - "type": "string" - }, - "Essential": { - "description": "Specifies if the container is essential. If an essential container fails a health check, then all containers in the container group will be restarted. You must specify exactly 1 essential container in a container group.", - "type": "boolean" - }, - "PortConfiguration": { - "description": "Defines the ports on the container.", - "$ref": "#/definitions/PortConfiguration" - }, - "DependsOn": { - "minItems": 1, - "maxItems": 10, - "uniqueItems": true, - "description": "A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers.", - "insertionOrder": true, - "type": "array", - "items": { - "$ref": "#/definitions/ContainerDependency" - } - }, - "ContainerName": { - "minLength": 1, - "pattern": "^[a-zA-Z0-9-]+$", - "description": "A descriptive label for the container definition. Container definition names must be unique with a container group definition.", "type": "string", - "maxLength": 128 + "pattern": "^sha256:[a-fA-F0-9]{64}$" }, - "Command": { + "EnvironmentOverride": { + "description": "The environment variables to pass to a container.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, "minItems": 1, "maxItems": 20, - "uniqueItems": false, - "description": "The command that's passed to the container.", - "insertionOrder": true, - "type": "array", "items": { - "minLength": 1, - "pattern": "^.*$", - "type": "string", - "maxLength": 255 + "$ref": "#/definitions/ContainerEnvironment" } }, - "Environment": { - "minItems": 1, - "maxItems": 20, + "PortConfiguration": { + "description": "Defines the ports on the container.", + "$ref": "#/definitions/PortConfiguration" + }, + "MountPoints": { + "description": "A list of mount point configurations to be used in a container.", + "type": "array", "uniqueItems": true, - "description": "The environment variables to pass to a container.", "insertionOrder": false, - "type": "array", + "minItems": 1, + "maxItems": 10, "items": { - "$ref": "#/definitions/ContainerEnvironment" + "$ref": "#/definitions/ContainerMountPoint" } } }, "required": [ "ContainerName", - "ImageUri" - ] + "ImageUri", + "ServerSdkVersion" + ], + "additionalProperties": false }, - "Tag": { - "description": "A key-value pair to associate with a resource.", - "additionalProperties": false, + "SupportContainerDefinition": { + "description": "Supports the function of the main container group", "type": "object", "properties": { - "Value": { - "minLength": 0, - "pattern": "^.*$", - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length.", + "ContainerName": { + "description": "A descriptive label for the container definition.", "type": "string", - "maxLength": 256 + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9-]+$" }, - "Key": { + "Vcpu": { + "description": "The number of virtual CPUs to give to the support group", + "type": "number", + "minimum": 0.125, + "maximum": 10 + }, + "DependsOn": { + "description": "A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers.", + "type": "array", + "uniqueItems": true, + "insertionOrder": true, + "minItems": 1, + "maxItems": 10, + "items": { + "$ref": "#/definitions/ContainerDependency" + } + }, + "Essential": { + "description": "Specifies if the container is essential. If an essential container fails a health check, then all containers in the container group will be restarted. You must specify exactly 1 essential container in a container group.", + "type": "boolean" + }, + "ImageUri": { + "description": "Specifies the image URI of this container.", + "type": "string", "minLength": 1, - "pattern": "^.*$", - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length.", + "maxLength": 255, + "pattern": "^[a-zA-Z0-9-_\\.@\\/:]+$" + }, + "ResolvedImageDigest": { + "description": "The digest of the container image.", "type": "string", - "maxLength": 128 - } - }, - "required": [ - "Key", - "Value" - ] - }, - "PortConfiguration": { - "description": "Defines the ports on a container.", - "additionalProperties": false, - "type": "object", - "properties": { - "ContainerPortRanges": { - "minItems": 1, - "maxItems": 100, + "pattern": "^sha256:[a-fA-F0-9]{64}$" + }, + "MemoryHardLimitMebibytes": { + "description": "The total memory limit of container groups following this definition in MiB", + "type": "integer", + "minimum": 4, + "maximum": 1024000 + }, + "EnvironmentOverride": { + "description": "The environment variables to pass to a container.", + "type": "array", "uniqueItems": true, - "description": "Specifies one or more ranges of ports on a container.", "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/ContainerPortRange" - } - } - }, - "required": [ - "ContainerPortRanges" - ] - }, - "ContainerHealthCheck": { - "description": "Specifies how the process manager checks the health of containers.", - "additionalProperties": false, - "type": "object", - "properties": { - "Command": { "minItems": 1, "maxItems": 20, - "uniqueItems": false, - "description": "A string array representing the command that the container runs to determine if it is healthy.", - "insertionOrder": true, - "type": "array", "items": { - "minLength": 1, - "pattern": "^.*$", - "type": "string", - "maxLength": 255 + "$ref": "#/definitions/ContainerEnvironment" } }, - "Timeout": { - "description": "How many seconds the process manager allows the command to run before canceling it.", - "maximum": 60, - "type": "integer", - "minimum": 30 - }, - "Retries": { - "description": "How many times the process manager will retry the command after a timeout. (The first run of the command does not count as a retry.)", - "maximum": 10, - "type": "integer", - "minimum": 5 + "PortConfiguration": { + "description": "Defines the ports on the container.", + "$ref": "#/definitions/PortConfiguration" }, - "Interval": { - "description": "How often (in seconds) the health is checked.", - "maximum": 300, - "type": "integer", - "minimum": 60 + "HealthCheck": { + "description": "Specifies how the health of the containers will be checked.", + "$ref": "#/definitions/ContainerHealthCheck" }, - "StartPeriod": { - "description": "The optional grace period (in seconds) to give a container time to boostrap before teh health check is declared failed.", - "maximum": 300, - "type": "integer", - "minimum": 0 + "MountPoints": { + "description": "A list of mount point configurations to be used in a container.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "minItems": 1, + "maxItems": 10, + "items": { + "$ref": "#/definitions/ContainerMountPoint" + } } }, "required": [ - "Command" - ] + "ContainerName", + "ImageUri" + ], + "additionalProperties": false } }, "properties": { + "ContainerGroupDefinitionArn": { + "description": "The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container group resource and uniquely identifies it across all AWS Regions.", + "type": "string", + "minLength": 1, + "maxLength": 512, + "pattern": "^arn:.*:containergroupdefinition\\/[a-zA-Z0-9\\-]+(:[0-9]+)?$" + }, + "CreationTime": { + "description": "A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").", + "type": "string" + }, "OperatingSystem": { "description": "The operating system of the container group", "type": "string", @@ -394,64 +409,145 @@ ] }, "Name": { - "minLength": 1, - "pattern": "^[a-zA-Z0-9-]+$", "description": "A descriptive label for the container group definition.", "type": "string", - "maxLength": 128 - }, - "ContainerGroupDefinitionArn": { "minLength": 1, - "pattern": "^arn:.*:containergroupdefinition/containergroupdefinition-[a-zA-Z0-9-]+$|^arn:.*:containergroupdefinition/[a-zA-Z0-9-\\:]+$", - "description": "The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container group resource and uniquely identifies it across all AWS Regions.", - "type": "string", - "maxLength": 512 + "maxLength": 128, + "pattern": "^[a-zA-Z0-9-]+$" }, - "SchedulingStrategy": { - "description": "Specifies whether the container group includes replica or daemon containers.", + "ContainerGroupType": { + "description": "The scope of the container group", "type": "string", "enum": [ - "REPLICA", - "DAEMON" + "GAME_SERVER", + "PER_INSTANCE" ] }, - "TotalMemoryLimit": { - "description": "The maximum amount of memory (in MiB) to allocate for this container group.", - "maximum": 1024000, + "TotalMemoryLimitMebibytes": { + "description": "The total memory limit of container groups following this definition in MiB", "type": "integer", - "minimum": 4 + "minimum": 4, + "maximum": 1024000 }, - "CreationTime": { - "description": "A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").", - "type": "string" + "TotalVcpuLimit": { + "description": "The total amount of virtual CPUs on the container group definition", + "type": "number", + "minimum": 0.125, + "maximum": 10 }, - "ContainerDefinitions": { - "minItems": 1, - "maxItems": 10, + "GameServerContainerDefinition": { + "$ref": "#/definitions/GameServerContainerDefinition" + }, + "SupportContainerDefinitions": { + "description": "A collection of support container definitions that define the containers in this group.", + "type": "array", "uniqueItems": true, - "description": "A collection of container definitions that define the containers in this group.", "insertionOrder": false, - "type": "array", + "minItems": 1, + "maxItems": 10, "items": { - "$ref": "#/definitions/ContainerDefinition" + "$ref": "#/definitions/SupportContainerDefinition" } }, + "VersionNumber": { + "description": "The version of this ContainerGroupDefinition", + "type": "integer", + "minimum": 0 + }, + "SourceVersionNumber": { + "description": "A specific ContainerGroupDefinition version to be updated", + "type": "integer", + "minimum": 0 + }, + "VersionDescription": { + "description": "The description of this version", + "type": "string", + "minLength": 1, + "maxLength": 1024 + }, + "Status": { + "description": "A string indicating ContainerGroupDefinition status.", + "type": "string", + "enum": [ + "READY", + "COPYING", + "FAILED" + ] + }, + "StatusReason": { + "description": "A string indicating the reason for ContainerGroupDefinition status.", + "type": "string" + }, "Tags": { - "minItems": 0, - "maxItems": 200, - "uniqueItems": true, "description": "An array of key-value pairs to apply to this resource.", - "insertionOrder": false, "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "minItems": 0, + "maxItems": 200, "items": { "$ref": "#/definitions/Tag" } + } + }, + "additionalProperties": false, + "required": [ + "Name", + "OperatingSystem", + "TotalMemoryLimitMebibytes", + "TotalVcpuLimit" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/ContainerGroupType" + ], + "readOnlyProperties": [ + "/properties/ContainerGroupDefinitionArn", + "/properties/CreationTime", + "/properties/VersionNumber", + "/properties/Status", + "/properties/StatusReason" + ], + "primaryIdentifier": [ + "/properties/Name" + ], + "handlers": { + "create": { + "permissions": [ + "gamelift:CreateContainerGroupDefinition", + "gamelift:DescribeContainerGroupDefinition", + "gamelift:ListTagsForResource", + "gamelift:TagResource", + "ecr:BatchCheckLayerAvailability", + "ecr:BatchGetImage", + "ecr:GetDownloadUrlForLayer", + "ecr:DescribeImages" + ] }, - "TotalCpuLimit": { - "description": "The maximum number of CPU units reserved for this container group. The value is expressed as an integer amount of CPU units. (1 vCPU is equal to 1024 CPU units.)", - "maximum": 10240, - "type": "integer", - "minimum": 128 + "read": { + "permissions": [ + "gamelift:DescribeContainerGroupDefinition", + "gamelift:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "gamelift:UpdateContainerGroupDefinition", + "gamelift:ListTagsForResource", + "gamelift:TagResource", + "gamelift:UntagResource" + ] + }, + "delete": { + "permissions": [ + "gamelift:DescribeContainerGroupDefinition", + "gamelift:DeleteContainerGroupDefinition" + ] + }, + "list": { + "permissions": [ + "gamelift:ListContainerGroupDefinitions" + ] } } } diff --git a/internal/service/cloudformation/schemas/AWS_GameLift_Location.json b/internal/service/cloudformation/schemas/AWS_GameLift_Location.json index c92256972..48b63c34f 100644 --- a/internal/service/cloudformation/schemas/AWS_GameLift_Location.json +++ b/internal/service/cloudformation/schemas/AWS_GameLift_Location.json @@ -6,7 +6,14 @@ "tagging": { "taggable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "tagOnCreate": true, + "tagUpdatable": true, + "permissions": [ + "gamelift:ListTagsForResource", + "gamelift:TagResource", + "gamelift:UntagResource" + ] }, "definitions": { "Tag": { diff --git a/internal/service/cloudformation/schemas/AWS_GameLift_MatchmakingConfiguration.json b/internal/service/cloudformation/schemas/AWS_GameLift_MatchmakingConfiguration.json index ea1096da9..afc43fdf8 100644 --- a/internal/service/cloudformation/schemas/AWS_GameLift_MatchmakingConfiguration.json +++ b/internal/service/cloudformation/schemas/AWS_GameLift_MatchmakingConfiguration.json @@ -6,7 +6,14 @@ "tagging": { "taggable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "tagOnCreate": true, + "tagUpdatable": true, + "permissions": [ + "gamelift:ListTagsForResource", + "gamelift:TagResource", + "gamelift:UntagResource" + ] }, "definitions": { "GameProperty": { diff --git a/internal/service/cloudformation/schemas/AWS_GameLift_MatchmakingRuleSet.json b/internal/service/cloudformation/schemas/AWS_GameLift_MatchmakingRuleSet.json index 0e87df79a..9f51393d9 100644 --- a/internal/service/cloudformation/schemas/AWS_GameLift_MatchmakingRuleSet.json +++ b/internal/service/cloudformation/schemas/AWS_GameLift_MatchmakingRuleSet.json @@ -6,7 +6,14 @@ "tagging": { "taggable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "tagOnCreate": true, + "tagUpdatable": true, + "permissions": [ + "gamelift:ListTagsForResource", + "gamelift:TagResource", + "gamelift:UntagResource" + ] }, "definitions": { "Tag": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Image.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Image.json index 996596bc4..9cc90f9ad 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Image.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Image.json @@ -1,97 +1,103 @@ { - "typeName": "AWS::ImageBuilder::Image", - "description": "Resource schema for AWS::ImageBuilder::Image", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "ImageTestsConfiguration": { - "description": "The image tests configuration used when creating this image.", - "$ref": "#/definitions/ImageTestsConfiguration" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" + "tagging": { + "taggable": false + }, + "oneOf": [ + { + "required": [ + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" + { + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" + { + "required": [ + "ImportDiskImageSettings" + ] + } + ], + "handlers": { + "read": { + "permissions": [ + "imagebuilder:GetImage" + ] }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:GetImage", + "imagebuilder:CreateImage", + "imagebuilder:TagResource", + "inspector2:BatchGetAccountStatus" + ], + "timeoutInMinutes": 720 }, - "Workflows": { - "description": "Workflows to define the image build process", - "type": "array", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowConfiguration" + "list": { + "permissions": [ + "imagebuilder:ListImages", + "imagebuilder:ListImageBuildVersions" + ], + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Arn" + } + }, + "required": [ + "Arn" + ] } }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageScanningConfiguration": { - "description": "Contains settings for vulnerability scans.", - "$ref": "#/definitions/ImageScanningConfiguration" - }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string" - }, - "Tags": { - "description": "The tags associated with the image.", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "": { - "type": "string" - } - } + "delete": { + "permissions": [ + "imagebuilder:GetImage", + "imagebuilder:DeleteImage", + "imagebuilder:UnTagResource", + "imagebuilder:CancelImageCreation" + ] } }, + "typeName": "AWS::ImageBuilder::Image", + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Name", + "/properties/ImageId", + "/properties/ImageUri" + ], + "description": "Resource schema for AWS::ImageBuilder::Image", + "createOnlyProperties": [ + "/properties/ImageRecipeArn", + "/properties/ContainerRecipeArn", + "/properties/InfrastructureConfigurationArn", + "/properties/Workflows", + "/properties/DistributionConfigurationArn", + "/properties/ImageTestsConfiguration", + "/properties/ImageScanningConfiguration", + "/properties/EnhancedImageMetadataEnabled", + "/properties/Tags" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Arn" + ], "definitions": { - "ImageTestsConfiguration": { - "description": "The image tests configuration used when creating this image.", - "type": "object", - "additionalProperties": false, - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "type": "integer", - "minimum": 60, - "maximum": 1440 - } - } - }, "ImageScanningConfiguration": { "description": "Contains settings for Image Builder image resource and container image scans.", - "type": "object", "additionalProperties": false, + "type": "object", "properties": { "EcrConfiguration": { "description": "Contains ECR settings for vulnerability scans.", @@ -103,44 +109,25 @@ } } }, - "EcrConfiguration": { - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "type": "object", - "additionalProperties": false, - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "type": "array", - "insertionOrder": true, - "items": { - "type": "string" - } - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don?t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - } - }, "WorkflowConfiguration": { "description": "The workflow configuration of the image", - "type": "object", "additionalProperties": false, + "type": "object", "properties": { - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", + "ParallelGroup": { + "description": "The parallel group name", "type": "string" }, "Parameters": { "description": "The parameters associated with the workflow", - "type": "array", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/WorkflowParameter" } }, - "ParallelGroup": { - "description": "The parallel group name", + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", "type": "string" }, "OnFailure": { @@ -153,112 +140,130 @@ } } }, - "WorkflowParameter": { - "description": "A parameter associated with the workflow", - "type": "object", + "EcrConfiguration": { + "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", "additionalProperties": false, + "type": "object", "properties": { - "Name": { - "type": "string" - }, - "Value": { - "type": "array", + "ContainerTags": { + "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", "insertionOrder": true, + "type": "array", "items": { - "$ref": "#/definitions/WorkflowParameterValue" + "type": "string" } + }, + "RepositoryName": { + "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", + "type": "string" } } }, "WorkflowParameterValue": { "description": "The value associated with the workflow parameter", "type": "string" - } - }, - "additionalProperties": false, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] + "ImageTestsConfiguration": { + "description": "The image tests configuration used when creating this image.", + "additionalProperties": false, + "type": "object", + "properties": { + "TimeoutMinutes": { + "description": "TimeoutMinutes", + "maximum": 1440, + "type": "integer", + "minimum": 60 + }, + "ImageTestsEnabled": { + "description": "ImageTestsEnabled", + "type": "boolean" + } + } + }, + "WorkflowParameter": { + "description": "A parameter associated with the workflow", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + } + }, + "Name": { + "type": "string" + } + } } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/Workflows", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "tagging": { - "taggable": false }, - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] + "properties": { + "ImageScanningConfiguration": { + "description": "Contains settings for vulnerability scans.", + "$ref": "#/definitions/ImageScanningConfiguration" }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string" }, - "list": { - "permissions": [ - "imagebuilder:ListImages", - "imagebuilder:ListImageBuildVersions" - ], - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/WorkflowConfiguration" } + }, + "ImageUri": { + "description": "URI for containers created in current Region with default ECR image tag", + "type": "string" + }, + "Name": { + "description": "The name of the image.", + "type": "string" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", + "type": "string" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration.", + "type": "string" + }, + "ImageId": { + "description": "The AMI ID of the EC2 AMI in current region.", + "type": "string" + }, + "ImageTestsConfiguration": { + "description": "The image tests configuration used when creating this image.", + "$ref": "#/definitions/ImageTestsConfiguration" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image.", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, + "Tags": { + "patternProperties": { + "": { + "type": "string" + } + }, + "description": "The tags associated with the image.", + "additionalProperties": false, + "type": "object" } } } diff --git a/internal/service/cloudformation/schemas/AWS_Logs_MetricFilter.json b/internal/service/cloudformation/schemas/AWS_Logs_MetricFilter.json index 98e428269..6ec3b363a 100644 --- a/internal/service/cloudformation/schemas/AWS_Logs_MetricFilter.json +++ b/internal/service/cloudformation/schemas/AWS_Logs_MetricFilter.json @@ -187,7 +187,7 @@ "maxLength": 512 }, "ApplyOnTransformedLogs": { - "description": "", + "description": "This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html).\n If this value is ``true``, the metric filter is applied on the transformed version of the log events instead of the original ingested log events.", "type": "boolean" }, "FilterName": { diff --git a/internal/service/cloudformation/schemas/AWS_Logs_SubscriptionFilter.json b/internal/service/cloudformation/schemas/AWS_Logs_SubscriptionFilter.json index 335f4bf61..32ef81c2a 100644 --- a/internal/service/cloudformation/schemas/AWS_Logs_SubscriptionFilter.json +++ b/internal/service/cloudformation/schemas/AWS_Logs_SubscriptionFilter.json @@ -40,7 +40,7 @@ ] }, "ApplyOnTransformedLogs": { - "description": "", + "description": "This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html).\n If this value is ``true``, the subscription filter is applied on the transformed version of the log events instead of the original ingested log events.", "type": "boolean" } }, diff --git a/internal/service/cloudformation/schemas/AWS_Macie_AllowList.json b/internal/service/cloudformation/schemas/AWS_Macie_AllowList.json index 5876c9b01..2e49bb8c8 100644 --- a/internal/service/cloudformation/schemas/AWS_Macie_AllowList.json +++ b/internal/service/cloudformation/schemas/AWS_Macie_AllowList.json @@ -7,7 +7,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "macie2:TagResource", + "macie2:UntagResource" + ] }, "definitions": { "Regex": { diff --git a/internal/service/cloudformation/schemas/AWS_Macie_CustomDataIdentifier.json b/internal/service/cloudformation/schemas/AWS_Macie_CustomDataIdentifier.json index 69e3d37b7..1598b217c 100644 --- a/internal/service/cloudformation/schemas/AWS_Macie_CustomDataIdentifier.json +++ b/internal/service/cloudformation/schemas/AWS_Macie_CustomDataIdentifier.json @@ -76,7 +76,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "macie2:TagResource", + "macie2:UntagResource" + ] }, "required": [ "Name", @@ -129,7 +133,8 @@ "update": { "permissions": [ "macie2:TagResource", - "macie2:UntagResource" + "macie2:UntagResource", + "macie2:GetCustomDataIdentifier" ] } } diff --git a/internal/service/cloudformation/schemas/AWS_Macie_FindingsFilter.json b/internal/service/cloudformation/schemas/AWS_Macie_FindingsFilter.json index 1e7b33c0b..8ca14f7fb 100644 --- a/internal/service/cloudformation/schemas/AWS_Macie_FindingsFilter.json +++ b/internal/service/cloudformation/schemas/AWS_Macie_FindingsFilter.json @@ -138,7 +138,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "macie2:TagResource", + "macie2:UntagResource" + ] }, "required": [ "Name", diff --git a/internal/service/cloudformation/schemas/AWS_MediaConnect_Bridge.json b/internal/service/cloudformation/schemas/AWS_MediaConnect_Bridge.json index 32062901d..c113ff7d9 100644 --- a/internal/service/cloudformation/schemas/AWS_MediaConnect_Bridge.json +++ b/internal/service/cloudformation/schemas/AWS_MediaConnect_Bridge.json @@ -176,6 +176,10 @@ "description": "The network source multicast IP.", "type": "string" }, + "MulticastSourceSettings": { + "description": "The settings related to the multicast source.", + "$ref": "#/definitions/MulticastSourceSettings" + }, "Port": { "description": "The network source port.", "type": "integer" @@ -194,6 +198,17 @@ ], "additionalProperties": false }, + "MulticastSourceSettings": { + "type": "object", + "description": "The settings related to the multicast source.", + "properties": { + "MulticastSourceIp": { + "description": "The IP address of the source for source-specific multicast (SSM).", + "type": "string" + } + }, + "additionalProperties": false + }, "ProtocolEnum": { "type": "string", "enum": [ diff --git a/internal/service/cloudformation/schemas/AWS_MediaConnect_BridgeSource.json b/internal/service/cloudformation/schemas/AWS_MediaConnect_BridgeSource.json index adc629687..918541916 100644 --- a/internal/service/cloudformation/schemas/AWS_MediaConnect_BridgeSource.json +++ b/internal/service/cloudformation/schemas/AWS_MediaConnect_BridgeSource.json @@ -44,6 +44,10 @@ "description": "The network source multicast IP.", "type": "string" }, + "MulticastSourceSettings": { + "description": "The settings related to the multicast source.", + "$ref": "#/definitions/MulticastSourceSettings" + }, "Port": { "description": "The network source port.", "type": "integer" @@ -61,6 +65,17 @@ ], "additionalProperties": false }, + "MulticastSourceSettings": { + "type": "object", + "description": "The settings related to the multicast source.", + "properties": { + "MulticastSourceIp": { + "description": "The IP address of the source for source-specific multicast (SSM).", + "type": "string" + } + }, + "additionalProperties": false + }, "ProtocolEnum": { "type": "string", "enum": [ diff --git a/internal/service/cloudformation/schemas/AWS_PCS_Cluster.json b/internal/service/cloudformation/schemas/AWS_PCS_Cluster.json index b49a1d950..df0e1b26e 100644 --- a/internal/service/cloudformation/schemas/AWS_PCS_Cluster.json +++ b/internal/service/cloudformation/schemas/AWS_PCS_Cluster.json @@ -288,7 +288,8 @@ "pcs:GetCluster", "pcs:ListTagsForResource", "pcs:TagResource" - ] + ], + "timeoutInMinutes": 60 }, "read": { "permissions": [ @@ -309,7 +310,8 @@ "permissions": [ "pcs:DeleteCluster", "pcs:GetCluster" - ] + ], + "timeoutInMinutes": 60 }, "list": { "permissions": [ diff --git a/internal/service/cloudformation/schemas/AWS_PCS_Queue.json b/internal/service/cloudformation/schemas/AWS_PCS_Queue.json index 3a4b0e850..20d45f8f9 100644 --- a/internal/service/cloudformation/schemas/AWS_PCS_Queue.json +++ b/internal/service/cloudformation/schemas/AWS_PCS_Queue.json @@ -121,7 +121,8 @@ "pcs:GetQueue", "pcs:ListTagsForResource", "pcs:TagResource" - ] + ], + "timeoutInMinutes": 60 }, "read": { "permissions": [ @@ -143,7 +144,8 @@ "permissions": [ "pcs:DeleteQueue", "pcs:GetQueue" - ] + ], + "timeoutInMinutes": 60 }, "list": { "handlerSchema": { diff --git a/internal/service/cloudformation/schemas/AWS_Pipes_Pipe.json b/internal/service/cloudformation/schemas/AWS_Pipes_Pipe.json index fc0b10ff0..d78327923 100644 --- a/internal/service/cloudformation/schemas/AWS_Pipes_Pipe.json +++ b/internal/service/cloudformation/schemas/AWS_Pipes_Pipe.json @@ -191,7 +191,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^(^arn:aws([a-z]|\\-)*:logs:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):log-group:.+)$" + "pattern": "^(^arn:aws([a-z]|\\-)*:logs:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):log-group:.+)$" } }, "additionalProperties": false @@ -203,7 +203,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$" + "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$" } }, "additionalProperties": false @@ -390,7 +390,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$" + "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$" }, "InferenceAcceleratorOverrides": { "type": "array", @@ -405,7 +405,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$" + "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$" } }, "additionalProperties": false @@ -451,7 +451,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^(^arn:aws([a-z]|\\-)*:firehose:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):deliverystream/.+)$" + "pattern": "^(^arn:aws([a-z]|\\-)*:firehose:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):deliverystream/.+)$" } }, "additionalProperties": false @@ -509,7 +509,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", "description": "Optional SecretManager ARN which stores the database credentials" } }, @@ -530,7 +530,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", "description": "Optional SecretManager ARN which stores the database credentials" } }, @@ -547,7 +547,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", "description": "Optional SecretManager ARN which stores the database credentials" } }, @@ -962,7 +962,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", "description": "Optional SecretManager ARN which stores the database credentials" }, "Vpc": { @@ -1070,7 +1070,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$" + "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$" }, "TaskCount": { "type": "integer", @@ -1169,7 +1169,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$" + "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$" }, "maxItems": 10, "minItems": 0 @@ -1286,7 +1286,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", "description": "Optional SecretManager ARN which stores the database credentials" }, "Database": { @@ -1550,7 +1550,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", "description": "Optional SecretManager ARN which stores the database credentials" } }, @@ -1567,7 +1567,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", "description": "Optional SecretManager ARN which stores the database credentials" } }, @@ -1584,7 +1584,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", "description": "Optional SecretManager ARN which stores the database credentials" } }, @@ -1601,7 +1601,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", "description": "Optional SecretManager ARN which stores the database credentials" } }, @@ -1741,7 +1741,7 @@ "type": "string", "maxLength": 1600, "minLength": 0, - "pattern": "^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$" + "pattern": "^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$" }, "EnrichmentParameters": { "$ref": "#/definitions/PipeEnrichmentParameters" @@ -1774,7 +1774,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^smk://(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$" + "pattern": "^smk://(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$" }, "SourceParameters": { "$ref": "#/definitions/PipeSourceParameters" @@ -1792,7 +1792,7 @@ "type": "string", "maxLength": 1600, "minLength": 1, - "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$" + "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$" }, "TargetParameters": { "$ref": "#/definitions/PipeTargetParameters" diff --git a/internal/service/cloudformation/schemas/AWS_QBusiness_DataAccessor.json b/internal/service/cloudformation/schemas/AWS_QBusiness_DataAccessor.json index 28227ef8f..c7e795f91 100644 --- a/internal/service/cloudformation/schemas/AWS_QBusiness_DataAccessor.json +++ b/internal/service/cloudformation/schemas/AWS_QBusiness_DataAccessor.json @@ -212,7 +212,7 @@ }, "DisplayName": { "type": "string", - "maxLength": 1000, + "maxLength": 100, "minLength": 1, "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*$" }, @@ -226,7 +226,7 @@ "type": "string", "maxLength": 1284, "minLength": 1, - "pattern": "^arn:aws:iam::[0-9]{12}:role/.+" + "pattern": "^arn:aws:iam::[0-9]{12}:role\/[a-zA-Z0-9_\/+=,.@-]+$" }, "Tags": { "type": "array", @@ -242,6 +242,7 @@ } }, "required": [ + "ApplicationId", "ActionConfigurations", "DisplayName", "Principal" diff --git a/internal/service/cloudformation/schemas/AWS_QBusiness_Permission.json b/internal/service/cloudformation/schemas/AWS_QBusiness_Permission.json index 46bcfa6c2..2aea7554a 100644 --- a/internal/service/cloudformation/schemas/AWS_QBusiness_Permission.json +++ b/internal/service/cloudformation/schemas/AWS_QBusiness_Permission.json @@ -27,7 +27,7 @@ "type": "string", "maxLength": 1284, "minLength": 1, - "pattern": "^arn:aws:iam::[0-9]{12}:role/.+" + "pattern": "^arn:aws:iam::[0-9]{12}:role\/[a-zA-Z0-9_\/+=,.@-]+$" } }, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_QuickSight_CustomPermissions.json b/internal/service/cloudformation/schemas/AWS_QuickSight_CustomPermissions.json new file mode 100644 index 000000000..f48efdea0 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_QuickSight_CustomPermissions.json @@ -0,0 +1,180 @@ +{ + "typeName": "AWS::QuickSight::CustomPermissions", + "description": "Definition of the AWS::QuickSight::CustomPermissions Resource Type.", + "definitions": { + "Capabilities": { + "type": "object", + "properties": { + "ExportToCsv": { + "$ref": "#/definitions/CapabilityState" + }, + "ExportToExcel": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateThemes": { + "$ref": "#/definitions/CapabilityState" + }, + "AddOrRunAnomalyDetectionForAnalyses": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareAnalyses": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateDatasets": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareDatasets": { + "$ref": "#/definitions/CapabilityState" + }, + "SubscribeDashboardEmailReports": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateDashboardEmailReports": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareDashboards": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateThresholdAlerts": { + "$ref": "#/definitions/CapabilityState" + }, + "RenameSharedFolders": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateSharedFolders": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateAndUpdateDataSources": { + "$ref": "#/definitions/CapabilityState" + }, + "ShareDataSources": { + "$ref": "#/definitions/CapabilityState" + }, + "ViewAccountSPICECapacity": { + "$ref": "#/definitions/CapabilityState" + }, + "CreateSPICEDataset": { + "$ref": "#/definitions/CapabilityState" + } + }, + "additionalProperties": false + }, + "CapabilityState": { + "type": "string", + "enum": [ + "DENY" + ] + }, + "Tag": { + "type": "object", + "description": "

The key or keys of the key-value pairs for the resource tag or tags assigned to the\n resource.

", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "description": "

Tag key.

" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "description": "

Tag value.

" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + } + }, + "properties": { + "Arn": { + "type": "string" + }, + "AwsAccountId": { + "type": "string", + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$" + }, + "Capabilities": { + "$ref": "#/definitions/Capabilities" + }, + "CustomPermissionsName": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9+=,.@_-]+$" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 1 + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/CustomPermissionsName" + ], + "primaryIdentifier": [ + "/properties/AwsAccountId", + "/properties/CustomPermissionsName" + ], + "handlers": { + "create": { + "permissions": [ + "quicksight:CreateCustomPermissions", + "quicksight:TagResource" + ] + }, + "read": { + "permissions": [ + "quicksight:DescribeCustomPermissions", + "quicksight:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "quicksight:UpdateCustomPermissions", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "quicksight:DeleteCustomPermissions" + ] + }, + "list": { + "permissions": [ + "quicksight:ListCustomPermissions" + ] + } + }, + "additionalProperties": false, + "required": [ + "AwsAccountId", + "CustomPermissionsName" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + } +} diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json index 7231e3b6d..472ce4bb3 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json @@ -32,7 +32,7 @@ } }, "AutoMinorVersionUpgrade": { - "description": "Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.\n Valid for Cluster Type: Multi-AZ DB clusters only", + "description": "Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB cluster", "type": "boolean" }, "BacktrackWindow": { @@ -54,6 +54,10 @@ "description": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "type": "boolean" }, + "DatabaseInsightsMode": { + "description": "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters only", + "type": "string" + }, "DatabaseName": { "description": "The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*. \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "type": "string" @@ -125,7 +129,7 @@ "type": "boolean" }, "EnableHttpEndpoint": { - "description": "Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled.\n When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor.\n RDS Data API is supported with the following DB clusters:\n + Aurora PostgreSQL Serverless v2 and provisioned\n + Aurora PostgreSQL and Aurora MySQL Serverless v1\n \n For more information, see [Using RDS Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*.\n Valid for Cluster Type: Aurora DB clusters only", + "description": "Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled.\n When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor.\n For more information, see [Using RDS Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*.\n Valid for Cluster Type: Aurora DB clusters only", "type": "boolean" }, "EnableIAMDatabaseAuthentication": { @@ -176,14 +180,14 @@ }, "MasterUserSecret": { "$ref": "#/definitions/MasterUserSecret", - "description": "The secret managed by RDS in AWS Secrets Manager for the master user password.\n For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*" + "description": "The secret managed by RDS in AWS Secrets Manager for the master user password.\n When you restore a DB cluster from a snapshot, Amazon RDS generates a new secret instead of reusing the secret specified in the ``SecretArn`` property. This ensures that the restored DB cluster is securely managed with a dedicated secret. To maintain consistent integration with your application, you might need to update resource configurations to reference the newly created secret.\n For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*" }, "MonitoringInterval": { - "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, also set ``MonitoringInterval`` to a value other than ``0``.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, also set ``MonitoringInterval`` to a value other than ``0``.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", "type": "integer" }, "MonitoringRoleArn": { - "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting up and enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*.\n If ``MonitoringInterval`` is set to a value other than ``0``, supply a ``MonitoringRoleArn`` value.\n Valid for Cluster Type: Multi-AZ DB clusters only", + "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting up and enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*.\n If ``MonitoringInterval`` is set to a value other than ``0``, supply a ``MonitoringRoleArn`` value.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", "type": "string" }, "NetworkType": { @@ -191,15 +195,15 @@ "type": "string" }, "PerformanceInsightsEnabled": { - "description": "Specifies whether to turn on Performance Insights for the DB cluster.\n For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*.\n Valid for Cluster Type: Multi-AZ DB clusters only", + "description": "Specifies whether to turn on Performance Insights for the DB cluster.\n For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", "type": "boolean" }, "PerformanceInsightsKmsKeyId": { - "description": "The AWS KMS key identifier for encryption of Performance Insights data.\n The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.\n If you don't specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS-account. Your AWS-account has a different default KMS key for each AWS-Region.\n Valid for Cluster Type: Multi-AZ DB clusters only", + "description": "The AWS KMS key identifier for encryption of Performance Insights data.\n The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.\n If you don't specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS-account. Your AWS-account has a different default KMS key for each AWS-Region.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", "type": "string" }, "PerformanceInsightsRetentionPeriod": { - "description": "The number of days to retain Performance Insights data.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Valid Values:\n + ``7`` \n + *month* * 31, where *month* is a number of months from 1-23. Examples: ``93`` (3 months * 31), ``341`` (11 months * 31), ``589`` (19 months * 31)\n + ``731`` \n \n Default: ``7`` days\n If you specify a retention period that isn't valid, such as ``94``, Amazon RDS issues an error.", + "description": "The number of days to retain Performance Insights data.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values:\n + ``7`` \n + *month* * 31, where *month* is a number of months from 1-23. Examples: ``93`` (3 months * 31), ``341`` (11 months * 31), ``589`` (19 months * 31)\n + ``731`` \n \n Default: ``7`` days\n If you specify a retention period that isn't valid, such as ``94``, Amazon RDS issues an error.", "type": "integer" }, "Port": { @@ -345,7 +349,7 @@ }, "SecondsUntilAutoPause": { "type": "integer", - "description": "" + "description": "Specifies the number of seconds an Aurora Serverless v2 DB instance must be idle before Aurora attempts to automatically pause it. \n Specify a value between 300 seconds (five minutes) and 86,400 seconds (one day). The default is 300 seconds." } } }, diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json index b0806a259..0915a2fe8 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json @@ -176,6 +176,10 @@ "type": "string", "description": "The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance.\n This setting is required for RDS Custom.\n Constraints:\n + The profile must exist in your account.\n + The profile must have an IAM role that Amazon EC2 has permissions to assume.\n + The instance profile name and the associated IAM role name must start with the prefix ``AWSRDSCustom``.\n \n For the list of permissions required for the IAM role, see [Configure IAM and your VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc) in the *Amazon RDS User Guide*." }, + "DatabaseInsightsMode": { + "description": "", + "type": "string" + }, "DBClusterIdentifier": { "type": "string", "description": "The identifier of the DB cluster that this DB instance will belong to.\n This setting doesn't apply to RDS Custom DB instances." @@ -560,7 +564,8 @@ "/properties/DBInstanceArn", "/properties/MasterUserSecret/SecretArn", "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" + "/properties/CertificateDetails/ValidTill", + "/properties/DatabaseInsightsMode" ], "primaryIdentifier": [ "/properties/DBInstanceIdentifier" diff --git a/internal/service/cloudformation/schemas/AWS_Redshift_Integration.json b/internal/service/cloudformation/schemas/AWS_Redshift_Integration.json index a2f238204..0ad2b6d56 100644 --- a/internal/service/cloudformation/schemas/AWS_Redshift_Integration.json +++ b/internal/service/cloudformation/schemas/AWS_Redshift_Integration.json @@ -37,21 +37,7 @@ }, "KMSKeyId": { "type": "string", - "description": "An KMS key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, the default AWS owned KMS key is used.", - "anyOf": [ - { - "relationshipRef": { - "typeName": "AWS::KMS::Key", - "propertyPath": "/properties/Arn" - } - }, - { - "relationshipRef": { - "typeName": "AWS::KMS::Key", - "propertyPath": "/properties/KeyId" - } - } - ] + "description": "An KMS key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, the default AWS owned KMS key is used." }, "AdditionalEncryptionContext": { "$ref": "#/definitions/EncryptionContextMap" @@ -131,9 +117,10 @@ "redshift:CreateTags", "redshift:DescribeTags", "redshift:DescribeClusters", + "redshift:CreateInboundIntegration", + "redshift-serverless:ListNamespaces", "kms:CreateGrant", - "kms:DescribeKey", - "redshift:CreateInboundIntegration" + "kms:DescribeKey" ] }, "read": { @@ -149,7 +136,8 @@ "redshift:CreateTags", "redshift:DeleteTags", "redshift:DescribeClusters", - "redshift:DescribeTags" + "redshift:DescribeTags", + "redshift-serverless:ListNamespaces" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_RefactorSpaces_Application.json b/internal/service/cloudformation/schemas/AWS_RefactorSpaces_Application.json index 241750b37..958e00b16 100644 --- a/internal/service/cloudformation/schemas/AWS_RefactorSpaces_Application.json +++ b/internal/service/cloudformation/schemas/AWS_RefactorSpaces_Application.json @@ -189,10 +189,6 @@ "apigateway:POST", "apigateway:PUT", "apigateway:UpdateRestApiPolicy", - "apigateway:Update*", - "apigateway:Delete*", - "apigateway:Get*", - "apigateway:Put*", "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeTags", @@ -220,10 +216,10 @@ "ec2:DeleteTags", "ec2:RevokeSecurityGroupIngress", "elasticloadbalancing:DeleteLoadBalancer", - "apigateway:Update*", - "apigateway:Delete*", - "apigateway:Get*", - "apigateway:Put*" + "apigateway:DELETE", + "apigateway:GET", + "apigateway:PUT", + "apigateway:UpdateRestApiPolicy" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_RefactorSpaces_Service.json b/internal/service/cloudformation/schemas/AWS_RefactorSpaces_Service.json index c67268247..7908ecb18 100644 --- a/internal/service/cloudformation/schemas/AWS_RefactorSpaces_Service.json +++ b/internal/service/cloudformation/schemas/AWS_RefactorSpaces_Service.json @@ -186,7 +186,7 @@ }, "read": { "permissions": [ - "refactor-spacess:GetService", + "refactor-spaces:GetService", "refactor-spaces:ListTagsForResource" ] }, diff --git a/internal/service/cloudformation/schemas/AWS_ResilienceHub_App.json b/internal/service/cloudformation/schemas/AWS_ResilienceHub_App.json index c5083db4a..4732090d0 100644 --- a/internal/service/cloudformation/schemas/AWS_ResilienceHub_App.json +++ b/internal/service/cloudformation/schemas/AWS_ResilienceHub_App.json @@ -162,6 +162,11 @@ "description": "Amazon Resource Name (ARN) of the Resiliency Policy.", "pattern": "" }, + "RegulatoryPolicyArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Regulatory Policy.", + "pattern": "" + }, "Tags": { "$ref": "#/definitions/TagMap" }, @@ -216,7 +221,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "resiliencehub:TagResource", + "resiliencehub:ListTagsForResource", + "resiliencehub:UntagResource" + ] }, "additionalProperties": false, "required": [ @@ -256,7 +266,17 @@ "sns:GetTopicAttributes", "route53:List*", "iam:PassRole", - "resiliencehub:*" + "resiliencehub:CreateApp", + "resiliencehub:DescribeApp", + "resiliencehub:DescribeAppVersionTemplate", + "resiliencehub:PutDraftAppVersionTemplate", + "resiliencehub:AddDraftAppVersionResourceMappings", + "resiliencehub:ListAppVersionResourceMappings", + "resiliencehub:ListAppVersions", + "resiliencehub:PublishAppVersion", + "resiliencehub:ListTagsForResource", + "resiliencehub:TagResource", + "resiliencehub:UntagResource" ] }, "read": { @@ -289,7 +309,18 @@ "sns:GetTopicAttributes", "route53:List*", "iam:PassRole", - "resiliencehub:*" + "resiliencehub:UpdateApp", + "resiliencehub:DescribeApp", + "resiliencehub:DescribeAppVersionTemplate", + "resiliencehub:PutDraftAppVersionTemplate", + "resiliencehub:AddDraftAppVersionResourceMappings", + "resiliencehub:RemoveDraftAppVersionResourceMappings", + "resiliencehub:ListAppVersionResourceMappings", + "resiliencehub:ListAppVersions", + "resiliencehub:PublishAppVersion", + "resiliencehub:ListTagsForResource", + "resiliencehub:TagResource", + "resiliencehub:UntagResource" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_ResilienceHub_ResiliencyPolicy.json b/internal/service/cloudformation/schemas/AWS_ResilienceHub_ResiliencyPolicy.json index 22da5c727..32c875771 100644 --- a/internal/service/cloudformation/schemas/AWS_ResilienceHub_ResiliencyPolicy.json +++ b/internal/service/cloudformation/schemas/AWS_ResilienceHub_ResiliencyPolicy.json @@ -107,7 +107,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "resiliencehub:TagResource", + "resiliencehub:ListTagsForResource", + "resiliencehub:UntagResource" + ] }, "additionalProperties": false, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_RolesAnywhere_CRL.json b/internal/service/cloudformation/schemas/AWS_RolesAnywhere_CRL.json index f5a7b605b..1671bd907 100644 --- a/internal/service/cloudformation/schemas/AWS_RolesAnywhere_CRL.json +++ b/internal/service/cloudformation/schemas/AWS_RolesAnywhere_CRL.json @@ -55,7 +55,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "rolesanywhere:UntagResource", + "rolesanywhere:TagResource", + "rolesanywhere:ListTagsForResource" + ] }, "required": [ "Name", diff --git a/internal/service/cloudformation/schemas/AWS_RolesAnywhere_Profile.json b/internal/service/cloudformation/schemas/AWS_RolesAnywhere_Profile.json index 937aa33d5..9cb0a13f9 100644 --- a/internal/service/cloudformation/schemas/AWS_RolesAnywhere_Profile.json +++ b/internal/service/cloudformation/schemas/AWS_RolesAnywhere_Profile.json @@ -124,12 +124,23 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "rolesanywhere:UntagResource", + "rolesanywhere:TagResource", + "rolesanywhere:ListTagsForResource" + ] }, + "createOnlyProperties": [ + "/properties/RequireInstanceProperties" + ], "readOnlyProperties": [ "/properties/ProfileId", "/properties/ProfileArn" ], + "writeOnlyProperties": [ + "/properties/RequireInstanceProperties" + ], "primaryIdentifier": [ "/properties/ProfileId" ], diff --git a/internal/service/cloudformation/schemas/AWS_RolesAnywhere_TrustAnchor.json b/internal/service/cloudformation/schemas/AWS_RolesAnywhere_TrustAnchor.json index b6bb7850a..a1a6b5acd 100644 --- a/internal/service/cloudformation/schemas/AWS_RolesAnywhere_TrustAnchor.json +++ b/internal/service/cloudformation/schemas/AWS_RolesAnywhere_TrustAnchor.json @@ -150,7 +150,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "rolesanywhere:UntagResource", + "rolesanywhere:TagResource", + "rolesanywhere:ListTagsForResource" + ] }, "required": [ "Name", diff --git a/internal/service/cloudformation/schemas/AWS_S3_AccessPoint.json b/internal/service/cloudformation/schemas/AWS_S3_AccessPoint.json index e9e62c326..0fc4a3964 100644 --- a/internal/service/cloudformation/schemas/AWS_S3_AccessPoint.json +++ b/internal/service/cloudformation/schemas/AWS_S3_AccessPoint.json @@ -148,5 +148,8 @@ ] } }, + "tagging": { + "taggable": false + }, "additionalProperties": false } diff --git a/internal/service/cloudformation/schemas/AWS_SES_ConfigurationSet.json b/internal/service/cloudformation/schemas/AWS_SES_ConfigurationSet.json index 6c6ffb6a5..1171537e5 100644 --- a/internal/service/cloudformation/schemas/AWS_SES_ConfigurationSet.json +++ b/internal/service/cloudformation/schemas/AWS_SES_ConfigurationSet.json @@ -11,6 +11,11 @@ "CustomRedirectDomain": { "type": "string", "description": "The domain to use for tracking open and click events." + }, + "HttpsPolicy": { + "type": "string", + "description": "The https policy to use for tracking open and click events.", + "pattern": "REQUIRE|REQUIRE_OPEN_ONLY|OPTIONAL" } } }, diff --git a/internal/service/cloudformation/schemas/AWS_SES_MailManagerRuleSet.json b/internal/service/cloudformation/schemas/AWS_SES_MailManagerRuleSet.json index fb509f13f..82c64c378 100644 --- a/internal/service/cloudformation/schemas/AWS_SES_MailManagerRuleSet.json +++ b/internal/service/cloudformation/schemas/AWS_SES_MailManagerRuleSet.json @@ -94,6 +94,38 @@ ], "additionalProperties": false }, + "DeliverToQBusinessAction": { + "type": "object", + "properties": { + "ActionFailurePolicy": { + "$ref": "#/definitions/ActionFailurePolicy" + }, + "ApplicationId": { + "type": "string", + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9-]+$" + }, + "IndexId": { + "type": "string", + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-z0-9-]+$" + }, + "RoleArn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "pattern": "^[a-zA-Z0-9:_/+=,@.#-]+$" + } + }, + "required": [ + "ApplicationId", + "IndexId", + "RoleArn" + ], + "additionalProperties": false + }, "DropAction": { "type": "object", "additionalProperties": false @@ -288,6 +320,19 @@ "DeliverToMailbox" ], "additionalProperties": false + }, + { + "type": "object", + "title": "DeliverToQBusiness", + "properties": { + "DeliverToQBusiness": { + "$ref": "#/definitions/DeliverToQBusinessAction" + } + }, + "required": [ + "DeliverToQBusiness" + ], + "additionalProperties": false } ] }, diff --git a/internal/service/cloudformation/schemas/AWS_SSMQuickSetup_ConfigurationManager.json b/internal/service/cloudformation/schemas/AWS_SSMQuickSetup_ConfigurationManager.json index 924700c4f..ec0346382 100644 --- a/internal/service/cloudformation/schemas/AWS_SSMQuickSetup_ConfigurationManager.json +++ b/internal/service/cloudformation/schemas/AWS_SSMQuickSetup_ConfigurationManager.json @@ -119,7 +119,7 @@ "type": "string", "maxLength": 256, "minLength": 1, - "pattern": "^[A-Za-z0-9+=@_\\/:.-]+$" + "pattern": "^[A-Za-z0-9 +=@_\\/:.-]+$" } }, "additionalProperties": false diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_Domain.json b/internal/service/cloudformation/schemas/AWS_SageMaker_Domain.json index 759aea979..c5d1e6ad4 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_Domain.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_Domain.json @@ -629,6 +629,9 @@ "properties": { "EFSFileSystemConfig": { "$ref": "#/definitions/EFSFileSystemConfig" + }, + "FSxLustreFileSystemConfig": { + "$ref": "#/definitions/FSxLustreFileSystemConfig" } } }, @@ -653,6 +656,27 @@ "FileSystemId" ] }, + "FSxLustreFileSystemConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "FileSystemPath": { + "type": "string", + "pattern": "^\\/\\S*$", + "minLength": 1, + "maxLength": 256 + }, + "FileSystemId": { + "type": "string", + "minLength": 11, + "maxLength": 21, + "pattern": "^(fs-[0-9a-f]{8,})$" + } + }, + "required": [ + "FileSystemId" + ] + }, "CustomImage": { "type": "object", "description": "A custom SageMaker image.", diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_PartnerApp.json b/internal/service/cloudformation/schemas/AWS_SageMaker_PartnerApp.json new file mode 100644 index 000000000..fdcfb2d6e --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_PartnerApp.json @@ -0,0 +1,244 @@ +{ + "typeName": "AWS::SageMaker::PartnerApp", + "description": "Resource Type definition for AWS::SageMaker::PartnerApp", + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the created PartnerApp.", + "minLength": 1, + "maxLength": 128, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:partner-app/app-[A-Z0-9]{12}$" + }, + "Name": { + "type": "string", + "description": "A name for the PartnerApp.", + "minLength": 1, + "maxLength": 256, + "pattern": "^[a-zA-Z0-9]+" + }, + "Type": { + "type": "string", + "description": "The type of PartnerApp.", + "enum": [ + "lakera-guard", + "comet", + "deepchecks-llm-evaluation", + "fiddler" + ] + }, + "ExecutionRoleArn": { + "type": "string", + "description": "The execution role for the user.", + "minLength": 20, + "maxLength": 2048, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$" + }, + "Tier": { + "type": "string", + "description": "The tier of the PartnerApp.", + "minLength": 1, + "maxLength": 64 + }, + "EnableIamSessionBasedIdentity": { + "type": "boolean", + "description": "Enables IAM Session based Identity for PartnerApp." + }, + "ApplicationConfig": { + "$ref": "#/definitions/PartnerAppConfig", + "description": "A collection of settings that specify the maintenance schedule for the PartnerApp." + }, + "AuthType": { + "type": "string", + "description": "The Auth type of PartnerApp.", + "enum": [ + "IAM" + ] + }, + "BaseUrl": { + "type": "string", + "description": "The AppServerUrl based on app and account-info.", + "maxLength": 2048 + }, + "MaintenanceConfig": { + "$ref": "#/definitions/PartnerAppMaintenanceConfig", + "description": "A collection of settings that specify the maintenance schedule for the PartnerApp." + }, + "ClientToken": { + "type": "string", + "description": "The client token for the PartnerApp.", + "minLength": 1, + "maxLength": 36, + "pattern": "^[a-zA-Z0-9-]+$" + }, + "Tags": { + "type": "array", + "description": "A list of tags to apply to the PartnerApp.", + "uniqueItems": false, + "insertionOrder": false, + "minItems": 0, + "maxItems": 50, + "items": { + "$ref": "#/definitions/Tag" + } + } + }, + "definitions": { + "PartnerAppConfig": { + "type": "object", + "description": "A collection of configuration settings for the PartnerApp.", + "additionalProperties": false, + "properties": { + "AdminUsers": { + "type": "array", + "description": "A list of users with administrator privileges for the PartnerApp.", + "uniqueItems": true, + "insertionOrder": false, + "minItems": 0, + "maxItems": 5, + "items": { + "$ref": "#/definitions/PartnerAppAdminUserList" + } + }, + "Arguments": { + "description": "A list of arguments to pass to the PartnerApp.", + "type": "object", + "additionalProperties": false, + "maxProperties": 5, + "patternProperties": { + "": { + "type": "string", + "pattern": "", + "maxLength": 1024 + } + } + } + } + }, + "PartnerAppAdminUserList": { + "type": "string", + "description": "A collection of AdminUsers for the PartnerApp", + "additionalProperties": false, + "minLength": 1, + "maxLength": 256 + }, + "PartnerAppMaintenanceConfig": { + "type": "object", + "description": "A collection of settings that specify the maintenance schedule for the PartnerApp.", + "additionalProperties": false, + "properties": { + "MaintenanceWindowStart": { + "type": "string", + "description": "The maintenance window start day and time for the PartnerApp.", + "maxLength": 9, + "pattern": "(Mon|Tue|Wed|Thu|Fri|Sat|Sun):([01]\\d|2[0-3]):([0-5]\\d)" + } + }, + "required": [ + "MaintenanceWindowStart" + ] + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Value": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "Key", + "Value" + ] + } + }, + "required": [ + "Name", + "Type", + "AuthType", + "ExecutionRoleArn", + "Tier" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/ExecutionRoleArn", + "/properties/AuthType" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/BaseUrl" + ], + "writeOnlyProperties": [ + "/properties/ClientToken" + ], + "deprecatedProperties": [ + "/properties/ClientToken" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "replacementStrategy": "delete_then_create", + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreatePartnerApp", + "sagemaker:DescribePartnerApp", + "sagemaker:AddTags", + "sagemaker:ListTags", + "iam:PassRole" + ], + "timeoutInMinutes": 180 + }, + "read": { + "permissions": [ + "sagemaker:DescribePartnerApp", + "sagemaker:ListTags" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdatePartnerApp", + "sagemaker:DescribePartnerApp", + "sagemaker:AddTags", + "sagemaker:ListTags", + "sagemaker:DeleteTags" + ], + "timeoutInMinutes": 180 + }, + "delete": { + "permissions": [ + "sagemaker:DeletePartnerApp", + "sagemaker:DescribePartnerApp", + "sagemaker:DeleteTags" + ], + "timeoutInMinutes": 240 + }, + "list": { + "permissions": [ + "sagemaker:ListPartnerApps", + "sagemaker:DescribePartnerApp", + "sagemaker:ListTags" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "sagemaker:AddTags", + "sagemaker:DeleteTags", + "sagemaker:ListTags" + ] + } +} diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_Space.json b/internal/service/cloudformation/schemas/AWS_SageMaker_Space.json index 9819b0e63..13fa42405 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_Space.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_Space.json @@ -145,6 +145,9 @@ "properties": { "EFSFileSystem": { "$ref": "#/definitions/EFSFileSystem" + }, + "FSxLustreFileSystem": { + "$ref": "#/definitions/FSxLustreFileSystem" } } }, @@ -163,6 +166,21 @@ "FileSystemId" ] }, + "FSxLustreFileSystem": { + "type": "object", + "additionalProperties": false, + "properties": { + "FileSystemId": { + "type": "string", + "minLength": 11, + "maxLength": 21, + "pattern": "^(fs-[0-9a-f]{8,})$" + } + }, + "required": [ + "FileSystemId" + ] + }, "SpaceJupyterLabAppSettings": { "type": "object", "description": "The JupyterServer app settings.", diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_UserProfile.json b/internal/service/cloudformation/schemas/AWS_SageMaker_UserProfile.json index 182bae000..07964af9a 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_UserProfile.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_UserProfile.json @@ -485,6 +485,9 @@ "properties": { "EFSFileSystemConfig": { "$ref": "#/definitions/EFSFileSystemConfig" + }, + "FSxLustreFileSystemConfig": { + "$ref": "#/definitions/FSxLustreFileSystemConfig" } } }, @@ -509,6 +512,27 @@ "FileSystemId" ] }, + "FSxLustreFileSystemConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "FileSystemPath": { + "type": "string", + "pattern": "^\\/\\S*$", + "minLength": 1, + "maxLength": 256 + }, + "FileSystemId": { + "type": "string", + "minLength": 11, + "maxLength": 21, + "pattern": "^(fs-[0-9a-f]{8,})$" + } + }, + "required": [ + "FileSystemId" + ] + }, "CustomImage": { "type": "object", "description": "A custom SageMaker image.", diff --git a/internal/service/cloudformation/schemas/AWS_Synthetics_Canary.json b/internal/service/cloudformation/schemas/AWS_Synthetics_Canary.json index ff0539f3b..f2eac9d2a 100644 --- a/internal/service/cloudformation/schemas/AWS_Synthetics_Canary.json +++ b/internal/service/cloudformation/schemas/AWS_Synthetics_Canary.json @@ -190,6 +190,10 @@ "items": { "type": "string" } + }, + "Ipv6AllowedForDualStack": { + "description": "Allow outbound IPv6 traffic on VPC canaries that are connected to dual-stack subnets if set to true", + "type": "boolean" } }, "required": [ @@ -361,7 +365,10 @@ "lambda:ListTags", "lambda:TagResource", "lambda:UntagResource", - "iam:PassRole" + "iam:PassRole", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups" ] }, "read": { diff --git a/internal/service/cloudformation/schemas/AWS_VoiceID_Domain.json b/internal/service/cloudformation/schemas/AWS_VoiceID_Domain.json index 053e45133..f96715aaf 100644 --- a/internal/service/cloudformation/schemas/AWS_VoiceID_Domain.json +++ b/internal/service/cloudformation/schemas/AWS_VoiceID_Domain.json @@ -78,11 +78,6 @@ "readOnlyProperties": [ "/properties/DomainId" ], - "writeOnlyProperties": [ - "/properties/Description", - "/properties/Name", - "/properties/ServerSideEncryptionConfiguration" - ], "primaryIdentifier": [ "/properties/DomainId" ], @@ -91,7 +86,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "#/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "voiceid:TagResource", + "voiceid:UntagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_VpcLattice_ResourceConfiguration.json b/internal/service/cloudformation/schemas/AWS_VpcLattice_ResourceConfiguration.json index 5f6b45fcc..1119a9994 100644 --- a/internal/service/cloudformation/schemas/AWS_VpcLattice_ResourceConfiguration.json +++ b/internal/service/cloudformation/schemas/AWS_VpcLattice_ResourceConfiguration.json @@ -113,7 +113,7 @@ ] }, "ArnResource": { - "pattern": "", + "pattern": "^arn.*", "type": "string", "maxLength": 1224 }, diff --git a/internal/service/cloudformation/schemas/AWS_Wisdom_AIAgent.json b/internal/service/cloudformation/schemas/AWS_Wisdom_AIAgent.json index d214cf409..dbcba1c4e 100644 --- a/internal/service/cloudformation/schemas/AWS_Wisdom_AIAgent.json +++ b/internal/service/cloudformation/schemas/AWS_Wisdom_AIAgent.json @@ -340,6 +340,9 @@ }, "Type": { "$ref": "#/definitions/AIAgentType" + }, + "ModifiedTimeSeconds": { + "type": "number" } }, "required": [ @@ -350,7 +353,8 @@ "readOnlyProperties": [ "/properties/AIAgentArn", "/properties/AIAgentId", - "/properties/AssistantArn" + "/properties/AssistantArn", + "/properties/ModifiedTimeSeconds" ], "createOnlyProperties": [ "/properties/AssistantId", diff --git a/internal/service/cloudformation/schemas/AWS_Wisdom_AIPrompt.json b/internal/service/cloudformation/schemas/AWS_Wisdom_AIPrompt.json index 4d115f09f..a0e1ea0fa 100644 --- a/internal/service/cloudformation/schemas/AWS_Wisdom_AIPrompt.json +++ b/internal/service/cloudformation/schemas/AWS_Wisdom_AIPrompt.json @@ -118,6 +118,9 @@ }, "Type": { "$ref": "#/definitions/AIPromptType" + }, + "ModifiedTimeSeconds": { + "type": "number" } }, "required": [ @@ -130,7 +133,8 @@ "readOnlyProperties": [ "/properties/AIPromptArn", "/properties/AIPromptId", - "/properties/AssistantArn" + "/properties/AssistantArn", + "/properties/ModifiedTimeSeconds" ], "createOnlyProperties": [ "/properties/ApiFormat",