From 70de3f0954002c876fd11607e4906a0e48325401 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 13 Mar 2025 11:02:40 -0400 Subject: [PATCH 1/6] 2025/03/12 CloudFormation schemas in us-east-1; Refresh existing schemas. --- .../AWS_Athena_CapacityReservation.json | 7 +- .../schemas/AWS_Athena_DataCatalog.json | 75 +- .../schemas/AWS_Batch_JobDefinition.json | 1698 +++++++++-------- .../schemas/AWS_Bedrock_Agent.json | 7 + .../schemas/AWS_Chatbot_CustomAction.json | 2 +- ...ot_MicrosoftTeamsChannelConfiguration.json | 7 + .../schemas/AWS_DynamoDB_GlobalTable.json | 984 +++++----- .../schemas/AWS_DynamoDB_Table.json | 2 +- .../schemas/AWS_EC2_VPCEndpointService.json | 16 + .../schemas/AWS_ECR_PullThroughCacheRule.json | 59 +- .../schemas/AWS_ECS_Service.json | 6 +- .../schemas/AWS_ECS_TaskDefinition.json | 12 +- .../AWS_ElasticLoadBalancingV2_Listener.json | 6 +- ...S_ElasticLoadBalancingV2_LoadBalancer.json | 10 +- .../schemas/AWS_EventSchemas_Discoverer.json | 7 +- .../schemas/AWS_EventSchemas_Registry.json | 7 +- .../schemas/AWS_EventSchemas_Schema.json | 7 +- .../schemas/AWS_ImageBuilder_Component.json | 10 +- .../AWS_ImageBuilder_ContainerRecipe.json | 10 +- ...mageBuilder_DistributionConfiguration.json | 6 +- .../schemas/AWS_ImageBuilder_Image.json | 10 +- .../AWS_ImageBuilder_ImagePipeline.json | 6 +- .../schemas/AWS_ImageBuilder_ImageRecipe.json | 10 +- ...geBuilder_InfrastructureConfiguration.json | 6 +- .../AWS_ImageBuilder_LifecyclePolicy.json | 6 +- .../schemas/AWS_ImageBuilder_Workflow.json | 10 +- .../schemas/AWS_IoT_SoftwarePackage.json | 9 +- .../AWS_IoT_SoftwarePackageVersion.json | 101 +- .../schemas/AWS_MSK_Replicator.json | 3 +- .../schemas/AWS_Omics_ReferenceStore.json | 3 - .../schemas/AWS_Omics_SequenceStore.json | 3 - .../schemas/AWS_RDS_DBCluster.json | 2 +- .../schemas/AWS_RDS_DBInstance.json | 2 +- .../schemas/AWS_RUM_AppMonitor.json | 40 +- .../AWS_SageMaker_InferenceComponent.json | 115 +- .../schemas/AWS_Shield_Protection.json | 9 +- .../schemas/AWS_Shield_ProtectionGroup.json | 2 + 37 files changed, 1865 insertions(+), 1410 deletions(-) diff --git a/internal/service/cloudformation/schemas/AWS_Athena_CapacityReservation.json b/internal/service/cloudformation/schemas/AWS_Athena_CapacityReservation.json index 4269c7aac7..9c97fe9643 100644 --- a/internal/service/cloudformation/schemas/AWS_Athena_CapacityReservation.json +++ b/internal/service/cloudformation/schemas/AWS_Athena_CapacityReservation.json @@ -201,6 +201,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "athena:UntagResource", + "athena:TagResource", + "athena:ListTagsForResource" + ] } } diff --git a/internal/service/cloudformation/schemas/AWS_Athena_DataCatalog.json b/internal/service/cloudformation/schemas/AWS_Athena_DataCatalog.json index 0ea3a4fd49..7bbeb81739 100644 --- a/internal/service/cloudformation/schemas/AWS_Athena_DataCatalog.json +++ b/internal/service/cloudformation/schemas/AWS_Athena_DataCatalog.json @@ -60,13 +60,37 @@ "$ref": "#/definitions/Tags" }, "Type": { - "description": "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. ", + "description": "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. FEDERATED is a federated catalog for which Athena creates the connection and the Lambda function for you based on the parameters that you pass.", "type": "string", "enum": [ "LAMBDA", "GLUE", - "HIVE" + "HIVE", + "FEDERATED" ] + }, + "Status": { + "description": "The status of the creation or deletion of the data catalog. LAMBDA, GLUE, and HIVE data catalog types are created synchronously. Their status is either CREATE_COMPLETE or CREATE_FAILED. The FEDERATED data catalog type is created asynchronously.", + "type": "string", + "enum": [ + "CREATE_IN_PROGRESS", + "CREATE_COMPLETE", + "CREATE_FAILED", + "CREATE_FAILED_CLEANUP_IN_PROGRESS", + "CREATE_FAILED_CLEANUP_COMPLETE", + "CREATE_FAILED_CLEANUP_FAILED", + "DELETE_IN_PROGRESS", + "DELETE_COMPLETE", + "DELETE_FAILED" + ] + }, + "ConnectionType": { + "description": "The type of connection for a FEDERATED data catalog", + "type": "string" + }, + "Error": { + "description": "Text of the error that occurred during data catalog creation or deletion.", + "type": "string" } }, "required": [ @@ -77,7 +101,40 @@ "create": { "permissions": [ "athena:CreateDataCatalog", - "athena:TagResource" + "athena:GetDataCatalog", + "athena:TagResource", + "s3:ListBucket", + "glue:TagResource", + "glue:CreateConnection", + "glue:DeleteConnection", + "glue:UpdateConnection", + "serverlessrepo:CreateCloudFormationTemplate", + "serverlessrepo:GetCloudFormationTemplate", + "cloudformation:CreateStack", + "cloudformation:DeleteStack", + "cloudformation:DescribeStacks", + "cloudformation:CreateChangeSet", + "iam:AttachRolePolicy", + "iam:DetachRolePolicy", + "iam:DeleteRolePolicy", + "iam:PutRolePolicy", + "iam:CreateRole", + "iam:TagRole", + "iam:DeleteRole", + "iam:GetRole", + "iam:GetRolePolicy", + "iam:PassRole", + "lambda:DeleteFunction", + "lambda:CreateFunction", + "lambda:TagResource", + "lambda:GetFunction", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "secretsmanager:ListSecrets", + "glue:GetConnection", + "ecr:BatchGetImage", + "ecr:GetDownloadUrlForLayer" ] }, "read": { @@ -97,7 +154,17 @@ }, "delete": { "permissions": [ - "athena:DeleteDataCatalog" + "athena:DeleteDataCatalog", + "athena:GetDataCatalog", + "glue:GetConnection", + "glue:UpdateConnection", + "cloudformation:DeleteStack", + "cloudformation:DescribeStacks", + "lambda:DeleteFunction", + "iam:DeleteRole", + "iam:DeleteRolePolicy", + "iam:DetachRolePolicy", + "s3:ListBucket" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_Batch_JobDefinition.json b/internal/service/cloudformation/schemas/AWS_Batch_JobDefinition.json index ea7b1f141d..60008047fd 100644 --- a/internal/service/cloudformation/schemas/AWS_Batch_JobDefinition.json +++ b/internal/service/cloudformation/schemas/AWS_Batch_JobDefinition.json @@ -1,260 +1,492 @@ { - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "permissions": [ - "Batch:TagResource", - "Batch:UntagResource" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "handlers": { - "read": { - "permissions": [ - "Batch:DescribeJobDefinitions" - ] - }, - "create": { - "permissions": [ - "Batch:RegisterJobDefinition", - "Batch:TagResource", - "Batch:DescribeJobDefinitions", - "Iam:PassRole" - ] - }, - "update": { - "permissions": [ - "Batch:DescribeJobDefinitions", - "Batch:RegisterJobDefinition", - "Batch:DeregisterJobDefinition", - "Batch:TagResource", - "Batch:UntagResource", - "Iam:PassRole" - ] - }, - "list": { - "permissions": [ - "Batch:DescribeJobDefinitions" - ] - }, - "delete": { - "permissions": [ - "Batch:DescribeJobDefinitions", - "Batch:DeregisterJobDefinition", - "Iam:PassRole" - ] - } - }, "typeName": "AWS::Batch::JobDefinition", "description": "Resource Type definition for AWS::Batch::JobDefinition", - "createOnlyProperties": [ - "/properties/JobDefinitionName" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/JobDefinitionName" - ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "definitions": { - "JobTimeout": { - "additionalProperties": false, + "ContainerProperties": { "type": "object", + "additionalProperties": false, "properties": { - "AttemptDurationSeconds": { + "Command": { + "type": "array", + "uniqueItems": false, + "insertionOrder": true, + "items": { + "type": "string" + } + }, + "Environment": { + "type": "array", + "uniqueItems": false, + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Environment" + } + }, + "Image": { + "type": "string" + }, + "JobRoleArn": { + "type": "string" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MountPoint" + } + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "Ulimits": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Ulimit" + } + }, + "User": { + "type": "string" + }, + "Vcpus": { "type": "integer" + }, + "Volumes": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + } + }, + "ResourceRequirements": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ResourceRequirement" + } + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Secrets": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + } + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "FargatePlatformConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + } + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" } - } + }, + "required": [ + "Image" + ] }, - "EksContainerEnvironmentVariable": { - "additionalProperties": false, + "MultiNodeContainerProperties": { "type": "object", + "additionalProperties": false, "properties": { - "Value": { + "Command": { + "type": "array", + "uniqueItems": false, + "insertionOrder": true, + "items": { + "type": "string" + } + }, + "Environment": { + "type": "array", + "uniqueItems": false, + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Environment" + } + }, + "Image": { "type": "string" }, - "Name": { + "JobRoleArn": { "type": "string" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MountPoint" + } + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "Ulimits": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Ulimit" + } + }, + "User": { + "type": "string" + }, + "Vcpus": { + "type": "integer" + }, + "Volumes": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + } + }, + "InstanceType": { + "type": "string" + }, + "ResourceRequirements": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ResourceRequirement" + } + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Secrets": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + } + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" } }, "required": [ - "Name" + "Image" ] }, - "NodeRangeProperty": { + "EphemeralStorage": { + "type": "object", "additionalProperties": false, + "properties": { + "SizeInGiB": { + "type": "integer" + } + }, + "required": [ + "SizeInGiB" + ] + }, + "LinuxParameters": { "type": "object", + "additionalProperties": false, "properties": { - "Container": { - "$ref": "#/definitions/MultiNodeContainerProperties" + "Devices": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Device" + } }, - "TargetNodes": { - "type": "string" + "InitProcessEnabled": { + "type": "boolean" }, - "EcsProperties": { - "$ref": "#/definitions/MultiNodeEcsProperties" + "MaxSwap": { + "type": "integer" }, - "InstanceTypes": { + "Swappiness": { + "type": "integer" + }, + "SharedMemorySize": { + "type": "integer" + }, + "Tmpfs": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/Tmpfs" } + } + } + }, + "LogConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" }, - "EksProperties": { - "$ref": "#/definitions/EksProperties" + "Options": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "": { + "type": "string" + } + } }, - "ConsumableResourceProperties": { - "$ref": "#/definitions/ConsumableResourceProperties" + "SecretOptions": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + } } }, "required": [ - "TargetNodes" + "LogDriver" ] }, - "EksEmptyDir": { + "RuntimePlatform": { + "type": "object", + "additionalProperties": false, + "properties": { + "OperatingSystemFamily": { + "type": "string" + }, + "CpuArchitecture": { + "type": "string" + } + } + }, + "NetworkConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "type": "string" + } + } + }, + "RepositoryCredentials": { + "type": "object", + "additionalProperties": false, + "properties": { + "CredentialsParameter": { + "type": "string" + } + }, + "required": [ + "CredentialsParameter" + ] + }, + "Environment": { + "type": "object", "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + } + }, + "MountPoint": { "type": "object", + "additionalProperties": false, "properties": { - "Medium": { + "ContainerPath": { "type": "string" }, - "SizeLimit": { + "ReadOnly": { + "type": "boolean" + }, + "SourceVolume": { "type": "string" } } }, - "LogConfiguration": { - "additionalProperties": false, + "Ulimit": { "type": "object", + "additionalProperties": false, "properties": { - "SecretOptions": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Secret" - } - }, - "Options": { - "patternProperties": { - "": { - "type": "string" - } - }, - "additionalProperties": false, - "type": "object" + "HardLimit": { + "type": "integer" }, - "LogDriver": { + "Name": { "type": "string" + }, + "SoftLimit": { + "type": "integer" } }, "required": [ - "LogDriver" + "HardLimit", + "Name", + "SoftLimit" ] }, - "RuntimePlatform": { - "additionalProperties": false, + "Volume": { "type": "object", + "additionalProperties": false, "properties": { - "OperatingSystemFamily": { - "type": "string" + "Host": { + "$ref": "#/definitions/Host" }, - "CpuArchitecture": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/EFSVolumeConfiguration" + }, + "Name": { "type": "string" } } }, - "MultiNodeEcsTaskProperties": { + "Host": { + "type": "object", "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + } + }, + "EFSVolumeConfiguration": { "type": "object", + "additionalProperties": false, "properties": { - "ExecutionRoleArn": { + "FileSystemId": { "type": "string" }, - "TaskRoleArn": { + "RootDirectory": { "type": "string" }, - "IpcMode": { + "TransitEncryption": { "type": "string" }, - "Volumes": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } + "TransitEncryptionPort": { + "type": "integer" }, - "Containers": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/TaskContainerProperties" - } + "AuthorizationConfig": { + "$ref": "#/definitions/EFSAuthorizationConfig" + } + }, + "required": [ + "FileSystemId" + ] + }, + "EFSAuthorizationConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" }, - "PidMode": { + "Iam": { "type": "string" } } }, - "EksPersistentVolumeClaim": { - "additionalProperties": false, + "ResourceRequirement": { "type": "object", + "additionalProperties": false, "properties": { - "ReadOnly": { - "type": "boolean" + "Type": { + "type": "string" }, - "ClaimName": { + "Value": { "type": "string" } - }, - "required": [ - "ClaimName" - ] + } }, - "NodeProperties": { - "additionalProperties": false, + "Device": { "type": "object", + "additionalProperties": false, "properties": { - "MainNode": { - "type": "integer" + "HostPath": { + "type": "string" }, - "NodeRangeProperties": { - "uniqueItems": false, - "insertionOrder": false, + "ContainerPath": { + "type": "string" + }, + "Permissions": { "type": "array", + "insertionOrder": false, + "uniqueItems": false, "items": { - "$ref": "#/definitions/NodeRangeProperty" + "type": "string" } - }, - "NumNodes": { - "type": "integer" } - }, - "required": [ - "NumNodes", - "MainNode", - "NodeRangeProperties" - ] + } }, "Tmpfs": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { - "Size": { - "type": "integer" - }, "ContainerPath": { "type": "string" }, + "Size": { + "type": "integer" + }, "MountOptions": { - "uniqueItems": false, - "insertionOrder": false, "type": "array", + "insertionOrder": false, + "uniqueItems": false, "items": { "type": "string" } @@ -265,380 +497,251 @@ "Size" ] }, - "TaskContainerDependency": { - "additionalProperties": false, + "Secret": { "type": "object", + "additionalProperties": false, "properties": { - "Condition": { + "Name": { "type": "string" }, - "ContainerName": { + "ValueFrom": { "type": "string" } }, "required": [ - "ContainerName", - "Condition" + "Name", + "ValueFrom" ] }, - "ContainerProperties": { + "EksProperties": { + "type": "object", "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/EksPodProperties" + } + } + }, + "EksPodProperties": { "type": "object", + "additionalProperties": false, "properties": { - "RepositoryCredentials": { - "$ref": "#/definitions/RepositoryCredentials" + "ServiceAccountName": { + "type": "string" }, - "User": { + "HostNetwork": { + "type": "boolean" + }, + "DnsPolicy": { "type": "string" }, - "Secrets": { + "InitContainers": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/Secret" + "$ref": "#/definitions/EksContainer" } }, - "Memory": { - "type": "integer" - }, - "Privileged": { - "type": "boolean" - }, - "LinuxParameters": { - "$ref": "#/definitions/LinuxParameters" - }, - "FargatePlatformConfiguration": { - "additionalProperties": false, - "type": "object", - "properties": { - "PlatformVersion": { - "type": "string" - } + "Containers": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EksContainer" } }, - "JobRoleArn": { - "type": "string" - }, - "ReadonlyRootFilesystem": { - "type": "boolean" - }, - "Vcpus": { - "type": "integer" - }, - "Image": { - "type": "string" - }, - "ResourceRequirements": { + "Volumes": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/ResourceRequirement" + "$ref": "#/definitions/EksVolume" } }, - "LogConfiguration": { - "$ref": "#/definitions/LogConfiguration" - }, - "MountPoints": { + "ImagePullSecrets": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/MountPoint" + "$ref": "#/definitions/ImagePullSecret" } }, - "ExecutionRoleArn": { + "Metadata": { + "$ref": "#/definitions/EksMetadata" + }, + "ShareProcessNamespace": { + "type": "boolean" + } + } + }, + "EksContainer": { + "type": "object", + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Image": { "type": "string" }, - "RuntimePlatform": { - "$ref": "#/definitions/RuntimePlatform" + "ImagePullPolicy": { + "type": "string" }, - "Volumes": { - "uniqueItems": false, - "insertionOrder": false, + "Command": { "type": "array", + "insertionOrder": true, + "uniqueItems": false, "items": { - "$ref": "#/definitions/Volume" + "type": "string" } }, - "Command": { - "uniqueItems": false, - "insertionOrder": true, + "Args": { "type": "array", + "insertionOrder": true, + "uniqueItems": false, "items": { "type": "string" } }, - "Environment": { - "uniqueItems": false, - "insertionOrder": true, + "Env": { "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { - "$ref": "#/definitions/Environment" + "$ref": "#/definitions/EksContainerEnvironmentVariable" } }, - "Ulimits": { + "Resources": { + "$ref": "#/definitions/EksContainerResourceRequirements" + }, + "VolumeMounts": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/Ulimit" + "$ref": "#/definitions/EksContainerVolumeMount" } }, - "NetworkConfiguration": { - "$ref": "#/definitions/NetworkConfiguration" - }, - "EphemeralStorage": { - "$ref": "#/definitions/EphemeralStorage" + "SecurityContext": { + "$ref": "#/definitions/EksContainerSecurityContext" } }, "required": [ "Image" ] }, - "EcsProperties": { - "additionalProperties": false, + "EksContainerEnvironmentVariable": { "type": "object", + "additionalProperties": false, "properties": { - "TaskProperties": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/EcsTaskProperties" - } + "Name": { + "type": "string" + }, + "Value": { + "type": "string" } }, "required": [ - "TaskProperties" + "Name" ] }, "EksContainerResourceRequirements": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "Limits": { + "type": "object", + "additionalProperties": false, "patternProperties": { "": { "type": "string" } - }, - "additionalProperties": false, - "type": "object" + } }, "Requests": { + "type": "object", + "additionalProperties": false, "patternProperties": { "": { "type": "string" } - }, - "additionalProperties": false, - "type": "object" - } - } - }, - "NetworkConfiguration": { - "additionalProperties": false, - "type": "object", - "properties": { - "AssignPublicIp": { - "type": "string" - } - } - }, - "EcsTaskProperties": { - "additionalProperties": false, - "type": "object", - "properties": { - "PlatformVersion": { - "type": "string" - }, - "ExecutionRoleArn": { - "type": "string" - }, - "RuntimePlatform": { - "$ref": "#/definitions/RuntimePlatform" - }, - "TaskRoleArn": { - "type": "string" - }, - "IpcMode": { - "type": "string" - }, - "Volumes": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - }, - "Containers": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/TaskContainerProperties" } - }, - "NetworkConfiguration": { - "$ref": "#/definitions/NetworkConfiguration" - }, - "PidMode": { - "type": "string" - }, - "EphemeralStorage": { - "$ref": "#/definitions/EphemeralStorage" } } }, "EksContainerSecurityContext": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "RunAsUser": { "type": "integer" }, - "AllowPrivilegeEscalation": { - "type": "boolean" + "RunAsGroup": { + "type": "integer" }, - "RunAsNonRoot": { + "Privileged": { "type": "boolean" }, - "Privileged": { + "AllowPrivilegeEscalation": { "type": "boolean" }, "ReadOnlyRootFilesystem": { "type": "boolean" }, - "RunAsGroup": { - "type": "integer" + "RunAsNonRoot": { + "type": "boolean" } } }, - "TaskContainerProperties": { - "additionalProperties": false, + "EksVolume": { "type": "object", + "additionalProperties": false, "properties": { - "RepositoryCredentials": { - "$ref": "#/definitions/RepositoryCredentials" - }, - "User": { - "type": "string" - }, - "Secrets": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Secret" - } - }, - "Privileged": { - "type": "boolean" - }, - "LinuxParameters": { - "$ref": "#/definitions/LinuxParameters" - }, - "ReadonlyRootFilesystem": { - "type": "boolean" - }, - "Image": { - "type": "string" - }, - "LogConfiguration": { - "$ref": "#/definitions/LogConfiguration" - }, - "Essential": { - "type": "boolean" - }, - "ResourceRequirements": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/ResourceRequirement" - } - }, "Name": { "type": "string" }, - "MountPoints": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/MountPoint" - } - }, - "DependsOn": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/TaskContainerDependency" - } + "HostPath": { + "$ref": "#/definitions/EksHostPath" }, - "Command": { - "uniqueItems": false, - "insertionOrder": true, - "type": "array", - "items": { - "type": "string" - } + "EmptyDir": { + "$ref": "#/definitions/EksEmptyDir" }, - "Environment": { - "uniqueItems": false, - "insertionOrder": true, - "type": "array", - "items": { - "$ref": "#/definitions/Environment" - } + "Secret": { + "$ref": "#/definitions/EksSecret" }, - "Ulimits": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Ulimit" - } + "PersistentVolumeClaim": { + "$ref": "#/definitions/EksPersistentVolumeClaim" } }, "required": [ - "Image" + "Name" ] }, - "EksMetadata": { + "EksHostPath": { + "type": "object", "additionalProperties": false, + "properties": { + "Path": { + "type": "string" + } + } + }, + "EksEmptyDir": { "type": "object", + "additionalProperties": false, "properties": { - "Annotations": { - "patternProperties": { - "": { - "type": "string" - } - }, - "additionalProperties": false, - "type": "object" - }, - "Labels": { - "patternProperties": { - "": { - "type": "string" - } - }, - "additionalProperties": false, - "type": "object" + "Medium": { + "type": "string" }, - "Namespace": { + "SizeLimit": { "type": "string" } } }, "EksSecret": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "SecretName": { "type": "string" @@ -651,660 +754,563 @@ "SecretName" ] }, - "RepositoryCredentials": { - "additionalProperties": false, + "EksPersistentVolumeClaim": { "type": "object", + "additionalProperties": false, "properties": { - "CredentialsParameter": { + "ClaimName": { "type": "string" + }, + "ReadOnly": { + "type": "boolean" } }, "required": [ - "CredentialsParameter" + "ClaimName" ] }, - "EFSVolumeConfiguration": { - "additionalProperties": false, + "EksContainerVolumeMount": { "type": "object", + "additionalProperties": false, "properties": { - "TransitEncryption": { + "Name": { "type": "string" }, - "AuthorizationConfig": { - "$ref": "#/definitions/EFSAuthorizationConfig" - }, - "FileSystemId": { + "MountPath": { "type": "string" }, - "RootDirectory": { + "SubPath": { "type": "string" }, - "TransitEncryptionPort": { - "type": "integer" + "ReadOnly": { + "type": "boolean" } - }, - "required": [ - "FileSystemId" - ] + } }, - "ImagePullSecret": { - "additionalProperties": false, + "EksMetadata": { "type": "object", + "additionalProperties": false, "properties": { - "Name": { + "Labels": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "": { + "type": "string" + } + } + }, + "Annotations": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "": { + "type": "string" + } + } + }, + "Namespace": { "type": "string" } } }, - "EvaluateOnExit": { - "additionalProperties": false, + "ImagePullSecret": { "type": "object", + "additionalProperties": false, "properties": { - "Action": { - "type": "string" - }, - "OnExitCode": { - "type": "string" - }, - "OnReason": { - "type": "string" - }, - "OnStatusReason": { + "Name": { "type": "string" } - }, - "required": [ - "Action" - ] + } }, - "MultiNodeEcsProperties": { - "additionalProperties": false, + "RetryStrategy": { "type": "object", + "additionalProperties": false, "properties": { - "TaskProperties": { + "Attempts": { + "type": "integer" + }, + "EvaluateOnExit": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/MultiNodeEcsTaskProperties" + "$ref": "#/definitions/EvaluateOnExit" } } - }, - "required": [ - "TaskProperties" - ] + } }, - "Device": { - "additionalProperties": false, + "EvaluateOnExit": { "type": "object", + "additionalProperties": false, "properties": { - "HostPath": { + "OnExitCode": { "type": "string" }, - "Permissions": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "type": "string" - } + "OnStatusReason": { + "type": "string" }, - "ContainerPath": { + "OnReason": { + "type": "string" + }, + "Action": { "type": "string" } - } + }, + "required": [ + "Action" + ] }, - "LinuxParameters": { - "additionalProperties": false, + "NodeProperties": { "type": "object", + "additionalProperties": false, "properties": { - "Swappiness": { + "NumNodes": { "type": "integer" }, - "Tmpfs": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Tmpfs" - } - }, - "SharedMemorySize": { + "MainNode": { "type": "integer" }, - "Devices": { + "NodeRangeProperties": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/Device" + "$ref": "#/definitions/NodeRangeProperty" } - }, - "InitProcessEnabled": { - "type": "boolean" - }, - "MaxSwap": { - "type": "integer" - } - } - }, - "Ulimit": { - "additionalProperties": false, - "type": "object", - "properties": { - "SoftLimit": { - "type": "integer" - }, - "HardLimit": { - "type": "integer" - }, - "Name": { - "type": "string" } }, "required": [ - "HardLimit", - "Name", - "SoftLimit" + "NumNodes", + "MainNode", + "NodeRangeProperties" ] }, - "Host": { - "additionalProperties": false, + "NodeRangeProperty": { "type": "object", - "properties": { - "SourcePath": { - "type": "string" - } - } - }, - "EFSAuthorizationConfig": { "additionalProperties": false, - "type": "object", "properties": { - "Iam": { + "TargetNodes": { "type": "string" }, - "AccessPointId": { - "type": "string" - } - } - }, - "EksVolume": { - "additionalProperties": false, - "type": "object", - "properties": { - "Secret": { - "$ref": "#/definitions/EksSecret" + "Container": { + "$ref": "#/definitions/MultiNodeContainerProperties" }, - "EmptyDir": { - "$ref": "#/definitions/EksEmptyDir" + "EcsProperties": { + "$ref": "#/definitions/MultiNodeEcsProperties" }, - "HostPath": { - "$ref": "#/definitions/EksHostPath" + "EksProperties": { + "$ref": "#/definitions/EksProperties" }, - "PersistentVolumeClaim": { - "$ref": "#/definitions/EksPersistentVolumeClaim" + "ConsumableResourceProperties": { + "$ref": "#/definitions/ConsumableResourceProperties" }, - "Name": { - "type": "string" + "InstanceTypes": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "type": "string" + } } }, "required": [ - "Name" + "TargetNodes" ] }, - "EksContainerVolumeMount": { - "additionalProperties": false, + "JobTimeout": { "type": "object", - "properties": { - "MountPath": { - "type": "string" - }, - "ReadOnly": { - "type": "boolean" - }, - "SubPath": { - "type": "string" - }, - "Name": { - "type": "string" - } - } - }, - "EksProperties": { "additionalProperties": false, - "type": "object", "properties": { - "PodProperties": { - "$ref": "#/definitions/EksPodProperties" + "AttemptDurationSeconds": { + "type": "integer" } } }, - "ConsumableResourceProperties": { - "additionalProperties": false, + "EcsProperties": { "type": "object", + "additionalProperties": false, "properties": { - "ConsumableResourceList": { - "uniqueItems": true, - "insertionOrder": true, + "TaskProperties": { "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { - "$ref": "#/definitions/ConsumableResourceRequirement" + "$ref": "#/definitions/EcsTaskProperties" } } }, "required": [ - "ConsumableResourceList" + "TaskProperties" ] }, - "MultiNodeContainerProperties": { - "additionalProperties": false, + "EcsTaskProperties": { "type": "object", + "additionalProperties": false, "properties": { - "RepositoryCredentials": { - "$ref": "#/definitions/RepositoryCredentials" - }, - "User": { - "type": "string" - }, - "Secrets": { + "Containers": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/Secret" + "$ref": "#/definitions/TaskContainerProperties" } }, - "Memory": { - "type": "integer" - }, - "Privileged": { - "type": "boolean" - }, - "LinuxParameters": { - "$ref": "#/definitions/LinuxParameters" + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" }, - "JobRoleArn": { + "ExecutionRoleArn": { "type": "string" }, - "ReadonlyRootFilesystem": { - "type": "boolean" - }, - "Vcpus": { - "type": "integer" + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" }, - "Image": { - "type": "string" + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" }, - "ResourceRequirements": { + "Volumes": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/ResourceRequirement" + "$ref": "#/definitions/Volume" } }, - "LogConfiguration": { - "$ref": "#/definitions/LogConfiguration" + "PidMode": { + "type": "string" }, - "MountPoints": { + "IpcMode": { + "type": "string" + }, + "PlatformVersion": { + "type": "string" + }, + "TaskRoleArn": { + "type": "string" + } + } + }, + "MultiNodeEcsProperties": { + "type": "object", + "additionalProperties": false, + "properties": { + "TaskProperties": { + "type": "array", "uniqueItems": false, "insertionOrder": false, + "items": { + "$ref": "#/definitions/MultiNodeEcsTaskProperties" + } + } + }, + "required": [ + "TaskProperties" + ] + }, + "MultiNodeEcsTaskProperties": { + "type": "object", + "additionalProperties": false, + "properties": { + "Containers": { "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { - "$ref": "#/definitions/MountPoint" + "$ref": "#/definitions/TaskContainerProperties" } }, "ExecutionRoleArn": { "type": "string" }, - "RuntimePlatform": { - "$ref": "#/definitions/RuntimePlatform" - }, "Volumes": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/Volume" } }, + "PidMode": { + "type": "string" + }, + "IpcMode": { + "type": "string" + }, + "TaskRoleArn": { + "type": "string" + } + } + }, + "TaskContainerProperties": { + "type": "object", + "additionalProperties": false, + "properties": { "Command": { + "type": "array", "uniqueItems": false, "insertionOrder": true, - "type": "array", "items": { "type": "string" } }, "Environment": { + "type": "array", "uniqueItems": false, "insertionOrder": true, - "type": "array", "items": { "$ref": "#/definitions/Environment" } }, - "Ulimits": { + "DependsOn": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/Ulimit" + "$ref": "#/definitions/TaskContainerDependency" } }, - "InstanceType": { - "type": "string" - }, - "EphemeralStorage": { - "$ref": "#/definitions/EphemeralStorage" - } - }, - "required": [ - "Image" - ] - }, - "MountPoint": { - "additionalProperties": false, - "type": "object", - "properties": { - "ReadOnly": { - "type": "boolean" - }, - "SourceVolume": { - "type": "string" - }, - "ContainerPath": { - "type": "string" - } - } - }, - "Secret": { - "additionalProperties": false, - "type": "object", - "properties": { - "ValueFrom": { - "type": "string" - }, "Name": { "type": "string" - } - }, - "required": [ - "Name", - "ValueFrom" - ] - }, - "Volume": { - "additionalProperties": false, - "type": "object", - "properties": { - "Host": { - "$ref": "#/definitions/Host" - }, - "EfsVolumeConfiguration": { - "$ref": "#/definitions/EFSVolumeConfiguration" }, - "Name": { - "type": "string" - } - } - }, - "EksHostPath": { - "additionalProperties": false, - "type": "object", - "properties": { - "Path": { - "type": "string" - } - } - }, - "ConsumableResourceRequirement": { - "additionalProperties": false, - "type": "object", - "properties": { - "ConsumableResource": { - "pattern": "", - "description": "The ARN of the consumable resource the job definition should consume.", + "Image": { "type": "string" }, - "Quantity": { - "format": "int64", - "type": "integer" - } - }, - "required": [ - "ConsumableResource", - "Quantity" - ] - }, - "Environment": { - "additionalProperties": false, - "type": "object", - "properties": { - "Value": { - "type": "string" + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" }, - "Name": { - "type": "string" - } - } - }, - "ResourceRequirement": { - "additionalProperties": false, - "type": "object", - "properties": { - "Type": { - "type": "string" + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" }, - "Value": { - "type": "string" - } - } - }, - "EphemeralStorage": { - "additionalProperties": false, - "type": "object", - "properties": { - "SizeInGiB": { - "type": "integer" - } - }, - "required": [ - "SizeInGiB" - ] - }, - "EksContainer": { - "additionalProperties": false, - "type": "object", - "properties": { - "Args": { - "uniqueItems": false, - "insertionOrder": true, + "MountPoints": { "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { - "type": "string" + "$ref": "#/definitions/MountPoint" } }, - "VolumeMounts": { + "Essential": { + "type": "boolean" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "Ulimits": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/EksContainerVolumeMount" + "$ref": "#/definitions/Ulimit" } }, - "ImagePullPolicy": { + "User": { "type": "string" }, - "Command": { - "uniqueItems": false, - "insertionOrder": true, + "Secrets": { "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { - "type": "string" + "$ref": "#/definitions/Secret" } }, - "SecurityContext": { - "$ref": "#/definitions/EksContainerSecurityContext" - }, - "Resources": { - "$ref": "#/definitions/EksContainerResourceRequirements" - }, - "Image": { - "type": "string" + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" }, - "Env": { + "ResourceRequirements": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/EksContainerEnvironmentVariable" + "$ref": "#/definitions/ResourceRequirement" } - }, - "Name": { - "type": "string" } }, "required": [ "Image" ] }, - "RetryStrategy": { - "additionalProperties": false, + "TaskContainerDependency": { "type": "object", + "additionalProperties": false, "properties": { - "EvaluateOnExit": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/EvaluateOnExit" - } + "ContainerName": { + "type": "string" }, - "Attempts": { - "type": "integer" + "Condition": { + "type": "string" } - } + }, + "required": [ + "ContainerName", + "Condition" + ] }, - "EksPodProperties": { - "additionalProperties": false, + "ConsumableResourceRequirement": { "type": "object", + "additionalProperties": false, "properties": { - "InitContainers": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/EksContainer" - } - }, - "Volumes": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/EksVolume" - } - }, - "DnsPolicy": { - "type": "string" - }, - "Containers": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/EksContainer" - } - }, - "Metadata": { - "$ref": "#/definitions/EksMetadata" - }, - "ServiceAccountName": { - "type": "string" + "ConsumableResource": { + "type": "string", + "description": "The ARN of the consumable resource the job definition should consume.", + "pattern": "" }, - "ImagePullSecrets": { - "uniqueItems": false, - "insertionOrder": false, + "Quantity": { + "type": "integer", + "format": "int64" + } + }, + "required": [ + "ConsumableResource", + "Quantity" + ] + }, + "ConsumableResourceProperties": { + "type": "object", + "additionalProperties": false, + "properties": { + "ConsumableResourceList": { "type": "array", + "insertionOrder": true, + "uniqueItems": true, "items": { - "$ref": "#/definitions/ImagePullSecret" + "$ref": "#/definitions/ConsumableResourceRequirement" } - }, - "HostNetwork": { - "type": "boolean" - }, - "ShareProcessNamespace": { - "type": "boolean" } - } + }, + "required": [ + "ConsumableResourceList" + ] } }, "properties": { - "Parameters": { - "patternProperties": { - "": { - "type": "string" - } - }, - "additionalProperties": false, - "type": "object" + "ContainerProperties": { + "$ref": "#/definitions/ContainerProperties" }, - "Timeout": { - "$ref": "#/definitions/JobTimeout" + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "NodeProperties": { + "$ref": "#/definitions/NodeProperties" }, "JobDefinitionName": { "type": "string", "maxLength": 128 }, - "PropagateTags": { - "type": "boolean" + "JobDefinitionArn": { + "type": "string" + }, + "SchedulingPriority": { + "type": "integer" + }, + "Parameters": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "": { + "type": "string" + } + } }, "PlatformCapabilities": { - "uniqueItems": false, - "insertionOrder": true, "type": "array", + "insertionOrder": true, + "uniqueItems": false, "items": { "type": "string" } }, - "EksProperties": { - "$ref": "#/definitions/EksProperties" + "PropagateTags": { + "type": "boolean" }, - "ConsumableResourceProperties": { - "$ref": "#/definitions/ConsumableResourceProperties" + "RetryStrategy": { + "$ref": "#/definitions/RetryStrategy" + }, + "Timeout": { + "$ref": "#/definitions/JobTimeout" }, "Type": { "type": "string" }, - "NodeProperties": { - "$ref": "#/definitions/NodeProperties" - }, - "SchedulingPriority": { - "type": "integer" - }, - "ContainerProperties": { - "$ref": "#/definitions/ContainerProperties" - }, - "EcsProperties": { - "$ref": "#/definitions/EcsProperties" - }, - "RetryStrategy": { - "$ref": "#/definitions/RetryStrategy" - }, "Tags": { + "type": "object", + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", "patternProperties": { "": { "type": "string" } - }, - "description": "A key-value pair to associate with a resource.", - "additionalProperties": false, - "type": "object" + } + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, + "ConsumableResourceProperties": { + "$ref": "#/definitions/ConsumableResourceProperties" } }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "Batch:TagResource", + "Batch:UntagResource" + ] + }, + "additionalProperties": false, "required": [ "Type" - ] + ], + "createOnlyProperties": [ + "/properties/JobDefinitionName" + ], + "readOnlyProperties": [ + "/properties/JobDefinitionArn" + ], + "primaryIdentifier": [ + "/properties/JobDefinitionName" + ], + "handlers": { + "create": { + "permissions": [ + "Batch:RegisterJobDefinition", + "Batch:TagResource", + "Batch:DescribeJobDefinitions", + "Iam:PassRole" + ] + }, + "read": { + "permissions": [ + "Batch:DescribeJobDefinitions" + ] + }, + "update": { + "permissions": [ + "Batch:DescribeJobDefinitions", + "Batch:RegisterJobDefinition", + "Batch:DeregisterJobDefinition", + "Batch:TagResource", + "Batch:UntagResource", + "Iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "Batch:DescribeJobDefinitions", + "Batch:DeregisterJobDefinition", + "Iam:PassRole" + ] + }, + "list": { + "permissions": [ + "Batch:DescribeJobDefinitions" + ] + } + } } diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_Agent.json b/internal/service/cloudformation/schemas/AWS_Bedrock_Agent.json index 7a1ea39dc5..f77da36368 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_Agent.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_Agent.json @@ -84,6 +84,10 @@ "DISABLED" ] }, + "AdditionalModelRequestFields": { + "type": "object", + "description": "Additional Model Request Fields for Prompt Configuration" + }, "AgentActionGroup": { "type": "object", "description": "Contains the information of an Agent Action Group", @@ -481,6 +485,9 @@ }, "FoundationModel": { "$ref": "#/definitions/FoundationModel" + }, + "AdditionalModelRequestFields": { + "$ref": "#/definitions/AdditionalModelRequestFields" } }, "additionalProperties": false diff --git a/internal/service/cloudformation/schemas/AWS_Chatbot_CustomAction.json b/internal/service/cloudformation/schemas/AWS_Chatbot_CustomAction.json index 9add06a115..4b6694de7e 100644 --- a/internal/service/cloudformation/schemas/AWS_Chatbot_CustomAction.json +++ b/internal/service/cloudformation/schemas/AWS_Chatbot_CustomAction.json @@ -76,7 +76,7 @@ "properties": { "CommandText": { "type": "string", - "maxLength": 100, + "maxLength": 5000, "minLength": 1 } }, diff --git a/internal/service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json b/internal/service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json index 1e4d0ad0d7..b4f2200fc4 100644 --- a/internal/service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json +++ b/internal/service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json @@ -35,6 +35,13 @@ "minLength": 1, "maxLength": 256 }, + "TeamsChannelName": { + "description": "The name of the Microsoft Teams channel", + "type": "string", + "pattern": "^(.*)$", + "minLength": 1, + "maxLength": 256 + }, "TeamsTenantId": { "description": "The id of the Microsoft Teams tenant", "type": "string", diff --git a/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json b/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json index f808e73a56..0bb26841f2 100644 --- a/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json +++ b/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json @@ -1,222 +1,89 @@ { - "handlers": { - "read": { - "permissions": [ - "dynamodb:Describe*", - "dynamodb:GetResourcePolicy", - "application-autoscaling:Describe*", - "cloudwatch:PutMetricData", - "dynamodb:ListTagsOfResource", - "kms:DescribeKey" - ] - }, - "create": { - "permissions": [ - "dynamodb:CreateTable", - "dynamodb:CreateTableReplica", - "dynamodb:Describe*", - "dynamodb:UpdateTimeToLive", - "dynamodb:UpdateContributorInsights", - "dynamodb:UpdateContinuousBackups", - "dynamodb:ListTagsOfResource", - "dynamodb:Query", - "dynamodb:Scan", - "dynamodb:UpdateItem", - "dynamodb:PutItem", - "dynamodb:GetItem", - "dynamodb:DeleteItem", - "dynamodb:BatchWriteItem", - "dynamodb:TagResource", - "dynamodb:EnableKinesisStreamingDestination", - "dynamodb:DisableKinesisStreamingDestination", - "dynamodb:UpdateTableReplicaAutoScaling", - "dynamodb:TagResource", - "dynamodb:GetResourcePolicy", - "dynamodb:PutResourcePolicy", - "application-autoscaling:DeleteScalingPolicy", - "application-autoscaling:DeleteScheduledAction", - "application-autoscaling:DeregisterScalableTarget", - "application-autoscaling:Describe*", - "application-autoscaling:PutScalingPolicy", - "application-autoscaling:PutScheduledAction", - "application-autoscaling:RegisterScalableTarget", - "kinesis:ListStreams", - "kinesis:DescribeStream", - "kinesis:PutRecords", - "kms:CreateGrant", - "kms:DescribeKey", - "kms:ListAliases", - "kms:Decrypt", - "kms:RevokeGrant", - "cloudwatch:PutMetricData", - "iam:CreateServiceLinkedRole" - ] - }, - "update": { - "permissions": [ - "dynamodb:Describe*", - "dynamodb:CreateTableReplica", - "dynamodb:UpdateTable", - "dynamodb:UpdateTimeToLive", - "dynamodb:UpdateContinuousBackups", - "dynamodb:UpdateContributorInsights", - "dynamodb:ListTagsOfResource", - "dynamodb:Query", - "dynamodb:Scan", - "dynamodb:UpdateItem", - "dynamodb:PutItem", - "dynamodb:GetItem", - "dynamodb:DeleteItem", - "dynamodb:BatchWriteItem", - "dynamodb:DeleteTable", - "dynamodb:DeleteTableReplica", - "dynamodb:UpdateItem", - "dynamodb:TagResource", - "dynamodb:UntagResource", - "dynamodb:EnableKinesisStreamingDestination", - "dynamodb:DisableKinesisStreamingDestination", - "dynamodb:UpdateTableReplicaAutoScaling", - "dynamodb:UpdateKinesisStreamingDestination", - "dynamodb:GetResourcePolicy", - "dynamodb:PutResourcePolicy", - "dynamodb:DeleteResourcePolicy", - "application-autoscaling:DeleteScalingPolicy", - "application-autoscaling:DeleteScheduledAction", - "application-autoscaling:DeregisterScalableTarget", - "application-autoscaling:Describe*", - "application-autoscaling:PutScalingPolicy", - "application-autoscaling:PutScheduledAction", - "application-autoscaling:RegisterScalableTarget", - "kinesis:ListStreams", - "kinesis:DescribeStream", - "kinesis:PutRecords", - "kms:CreateGrant", - "kms:DescribeKey", - "kms:ListAliases", - "kms:RevokeGrant", - "cloudwatch:PutMetricData" - ], - "timeoutInMinutes": 1200 - }, - "list": { - "permissions": [ - "dynamodb:ListTables", - "cloudwatch:PutMetricData" - ] - }, - "delete": { - "permissions": [ - "dynamodb:Describe*", - "dynamodb:DeleteTable", - "application-autoscaling:DeleteScalingPolicy", - "application-autoscaling:DeleteScheduledAction", - "application-autoscaling:DeregisterScalableTarget", - "application-autoscaling:Describe*", - "application-autoscaling:PutScalingPolicy", - "application-autoscaling:PutScheduledAction", - "application-autoscaling:RegisterScalableTarget" - ] - } - }, "typeName": "AWS::DynamoDB::GlobalTable", - "readOnlyProperties": [ - "/properties/Arn", - "/properties/StreamArn", - "/properties/TableId" - ], "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", - "additionalIdentifiers": [ - [ - "/properties/Arn" - ], - [ - "/properties/StreamArn" - ] - ], - "writeOnlyProperties": [ - "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", - "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", - "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", - "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" - ], - "createOnlyProperties": [ - "/properties/LocalSecondaryIndexes", - "/properties/TableName", - "/properties/KeySchema" - ], "additionalProperties": false, - "primaryIdentifier": [ - "/properties/TableName" - ], - "definitions": { - "LocalSecondaryIndex": { - "additionalProperties": false, - "type": "object", - "properties": { - "IndexName": { - "minLength": 3, - "type": "string", - "maxLength": 255 - }, - "Projection": { - "$ref": "#/definitions/Projection" - }, - "KeySchema": { - "maxItems": 2, - "uniqueItems": true, - "type": "array", - "items": { - "$ref": "#/definitions/KeySchema" - } - } + "properties": { + "Arn": { + "type": "string" + }, + "StreamArn": { + "type": "string" + }, + "AttributeDefinitions": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" }, - "required": [ - "IndexName", - "Projection", - "KeySchema" - ] + "minItems": 1 }, - "SSESpecification": { - "additionalProperties": false, - "type": "object", - "properties": { - "SSEEnabled": { - "type": "boolean" - }, - "SSEType": { - "type": "string" - } + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + } + }, + "KeySchema": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/KeySchema" }, - "required": [ - "SSEEnabled" - ] + "minItems": 1, + "maxItems": 2 }, - "KinesisStreamSpecification": { - "additionalProperties": false, - "type": "object", - "properties": { - "ApproximateCreationDateTimePrecision": { - "type": "string", - "enum": [ - "MICROSECOND", - "MILLISECOND" - ] - }, - "StreamArn": { - "relationshipRef": { - "typeName": "AWS::Kinesis::Stream", - "propertyPath": "/properties/Arn" - }, - "type": "string" - } + "LocalSecondaryIndexes": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + } + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + }, + "WriteOnDemandThroughputSettings": { + "$ref": "#/definitions/WriteOnDemandThroughputSettings" + }, + "WarmThroughput": { + "$ref": "#/definitions/WarmThroughput" + }, + "Replicas": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" }, - "required": [ - "StreamArn" - ] + "minItems": 1 + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" }, "StreamSpecification": { - "additionalProperties": false, + "$ref": "#/definitions/StreamSpecification" + }, + "TableName": { + "type": "string" + }, + "TableId": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "definitions": { + "StreamSpecification": { "type": "object", + "additionalProperties": false, "properties": { "StreamViewType": { "type": "string" @@ -226,149 +93,82 @@ "StreamViewType" ] }, - "ContributorInsightsSpecification": { - "additionalProperties": false, + "ResourcePolicy": { "type": "object", + "additionalProperties": false, "properties": { - "Enabled": { - "type": "boolean" + "PolicyDocument": { + "type": "object" } }, "required": [ - "Enabled" + "PolicyDocument" ] }, - "ReplicaSpecification": { - "additionalProperties": false, + "ReplicaStreamSpecification": { "type": "object", + "additionalProperties": false, "properties": { - "SSESpecification": { - "$ref": "#/definitions/ReplicaSSESpecification" - }, - "KinesisStreamSpecification": { - "$ref": "#/definitions/KinesisStreamSpecification" - }, - "ContributorInsightsSpecification": { - "$ref": "#/definitions/ContributorInsightsSpecification" - }, - "PointInTimeRecoverySpecification": { - "$ref": "#/definitions/PointInTimeRecoverySpecification" - }, - "ReplicaStreamSpecification": { - "$ref": "#/definitions/ReplicaStreamSpecification" - }, - "GlobalSecondaryIndexes": { - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" - } - }, - "Region": { - "type": "string" - }, "ResourcePolicy": { "$ref": "#/definitions/ResourcePolicy" - }, - "ReadProvisionedThroughputSettings": { - "$ref": "#/definitions/ReadProvisionedThroughputSettings" - }, - "TableClass": { - "type": "string" - }, - "DeletionProtectionEnabled": { - "type": "boolean" - }, - "Tags": { - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Tag" - } - }, - "ReadOnDemandThroughputSettings": { - "$ref": "#/definitions/ReadOnDemandThroughputSettings" } }, "required": [ - "Region" + "ResourcePolicy" ] }, - "CapacityAutoScalingSettings": { - "additionalProperties": false, + "KinesisStreamSpecification": { "type": "object", + "additionalProperties": false, "properties": { - "MinCapacity": { - "type": "integer", - "minimum": 1 - }, - "SeedCapacity": { - "type": "integer", - "minimum": 1 - }, - "TargetTrackingScalingPolicyConfiguration": { - "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + "StreamArn": { + "type": "string", + "relationshipRef": { + "typeName": "AWS::Kinesis::Stream", + "propertyPath": "/properties/Arn" + } }, - "MaxCapacity": { - "type": "integer", - "minimum": 1 + "ApproximateCreationDateTimePrecision": { + "type": "string", + "enum": [ + "MICROSECOND", + "MILLISECOND" + ] } }, "required": [ - "MinCapacity", - "MaxCapacity", - "TargetTrackingScalingPolicyConfiguration" + "StreamArn" ] }, - "AttributeDefinition": { - "additionalProperties": false, + "KeySchema": { "type": "object", + "additionalProperties": false, "properties": { - "AttributeType": { - "type": "string" - }, "AttributeName": { - "minLength": 1, "type": "string", + "minLength": 1, "maxLength": 255 + }, + "KeyType": { + "type": "string" } }, "required": [ - "AttributeName", - "AttributeType" + "KeyType", + "AttributeName" ] }, - "Projection": { - "additionalProperties": false, - "type": "object", - "properties": { - "NonKeyAttributes": { - "maxItems": 20, - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "type": "string" - } - }, - "ProjectionType": { - "type": "string" - } - } - }, "PointInTimeRecoverySpecification": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "PointInTimeRecoveryEnabled": { "type": "boolean" }, "RecoveryPeriodInDays": { - "maximum": 35, "type": "integer", - "minimum": 1 + "minimum": 1, + "maximum": 35 } }, "dependencies": { @@ -377,108 +177,135 @@ ] } }, - "ReplicaGlobalSecondaryIndexSpecification": { - "additionalProperties": false, + "ReplicaSpecification": { "type": "object", + "additionalProperties": false, "properties": { - "IndexName": { - "minLength": 3, - "type": "string", - "maxLength": 255 + "Region": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + } }, "ContributorInsightsSpecification": { "$ref": "#/definitions/ContributorInsightsSpecification" }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "TableClass": { + "type": "string" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Tag" + } + }, "ReadProvisionedThroughputSettings": { "$ref": "#/definitions/ReadProvisionedThroughputSettings" }, "ReadOnDemandThroughputSettings": { "$ref": "#/definitions/ReadOnDemandThroughputSettings" + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" } }, "required": [ - "IndexName" + "Region" ] }, - "WarmThroughput": { - "anyOf": [ - { - "required": [ - "ReadUnitsPerSecond" - ] - }, - { - "required": [ - "WriteUnitsPerSecond" - ] - } - ], - "additionalProperties": false, + "TimeToLiveSpecification": { "type": "object", + "additionalProperties": false, "properties": { - "ReadUnitsPerSecond": { - "type": "integer", - "minimum": 1 + "AttributeName": { + "type": "string" }, - "WriteUnitsPerSecond": { - "type": "integer", - "minimum": 1 + "Enabled": { + "type": "boolean" } - } + }, + "required": [ + "Enabled" + ] }, - "TargetTrackingScalingPolicyConfiguration": { - "additionalProperties": false, + "LocalSecondaryIndex": { "type": "object", + "additionalProperties": false, "properties": { - "ScaleOutCooldown": { - "type": "integer", - "minimum": 0 - }, - "TargetValue": { - "format": "double", - "type": "number" + "IndexName": { + "type": "string", + "minLength": 3, + "maxLength": 255 }, - "DisableScaleIn": { - "type": "boolean" + "KeySchema": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2 }, - "ScaleInCooldown": { - "type": "integer", - "minimum": 0 + "Projection": { + "$ref": "#/definitions/Projection" } }, "required": [ - "TargetValue" + "IndexName", + "Projection", + "KeySchema" ] }, "GlobalSecondaryIndex": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "IndexName": { - "minLength": 3, "type": "string", + "minLength": 3, "maxLength": 255 }, - "Projection": { - "$ref": "#/definitions/Projection" - }, "KeySchema": { - "minItems": 1, - "maxItems": 2, - "uniqueItems": true, "type": "array", + "uniqueItems": true, "items": { "$ref": "#/definitions/KeySchema" - } + }, + "minItems": 1, + "maxItems": 2 }, - "WarmThroughput": { - "$ref": "#/definitions/WarmThroughput" + "Projection": { + "$ref": "#/definitions/Projection" }, "WriteProvisionedThroughputSettings": { "$ref": "#/definitions/WriteProvisionedThroughputSettings" }, "WriteOnDemandThroughputSettings": { "$ref": "#/definitions/WriteOnDemandThroughputSettings" + }, + "WarmThroughput": { + "$ref": "#/definitions/WarmThroughput" } }, "required": [ @@ -487,42 +314,27 @@ "KeySchema" ] }, - "WriteProvisionedThroughputSettings": { - "additionalProperties": false, - "type": "object", - "properties": { - "WriteCapacityAutoScalingSettings": { - "$ref": "#/definitions/CapacityAutoScalingSettings" - } - } - }, - "WriteOnDemandThroughputSettings": { - "additionalProperties": false, + "SSESpecification": { "type": "object", - "properties": { - "MaxWriteRequestUnits": { - "type": "integer", - "minimum": 1 - } - } - }, - "ReplicaStreamSpecification": { "additionalProperties": false, - "type": "object", "properties": { - "ResourcePolicy": { - "$ref": "#/definitions/ResourcePolicy" + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" } }, "required": [ - "ResourcePolicy" + "SSEEnabled" ] }, "ReplicaSSESpecification": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "KMSMasterKeyId": { + "type": "string", "anyOf": [ { "relationshipRef": { @@ -542,63 +354,103 @@ "propertyPath": "/properties/AliasName" } } - ], - "type": "string" + ] } }, "required": [ "KMSMasterKeyId" ] }, - "ResourcePolicy": { - "additionalProperties": false, + "AttributeDefinition": { "type": "object", + "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "AttributeName": { + "type": "string", + "minLength": 1, + "maxLength": 255 + }, + "AttributeType": { + "type": "string" } }, "required": [ - "PolicyDocument" + "AttributeName", + "AttributeType" ] }, - "KeySchema": { - "additionalProperties": false, + "Tag": { "type": "object", + "additionalProperties": false, "properties": { - "KeyType": { + "Key": { "type": "string" }, - "AttributeName": { - "minLength": 1, - "type": "string", - "maxLength": 255 + "Value": { + "type": "string" } }, "required": [ - "KeyType", - "AttributeName" + "Value", + "Key" ] }, - "Tag": { - "additionalProperties": false, + "Projection": { "type": "object", + "additionalProperties": false, "properties": { - "Value": { - "type": "string" + "NonKeyAttributes": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20 }, - "Key": { + "ProjectionType": { "type": "string" } + } + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "type": "object", + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string", + "minLength": 3, + "maxLength": 255 + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "ReadOnDemandThroughputSettings": { + "$ref": "#/definitions/ReadOnDemandThroughputSettings" + } }, "required": [ - "Value", - "Key" + "IndexName" ] }, - "ReadProvisionedThroughputSettings": { + "ContributorInsightsSpecification": { + "type": "object", "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ] + }, + "ReadProvisionedThroughputSettings": { "type": "object", + "additionalProperties": false, "properties": { "ReadCapacityUnits": { "type": "integer", @@ -609,30 +461,110 @@ } } }, - "TimeToLiveSpecification": { - "additionalProperties": false, + "WriteProvisionedThroughputSettings": { + "type": "object", + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + } + }, + "ReadOnDemandThroughputSettings": { + "type": "object", + "additionalProperties": false, + "properties": { + "MaxReadRequestUnits": { + "type": "integer", + "minimum": 1 + } + } + }, + "WriteOnDemandThroughputSettings": { + "type": "object", + "additionalProperties": false, + "properties": { + "MaxWriteRequestUnits": { + "type": "integer", + "minimum": 1 + } + } + }, + "CapacityAutoScalingSettings": { + "type": "object", + "additionalProperties": false, + "properties": { + "MinCapacity": { + "type": "integer", + "minimum": 1 + }, + "MaxCapacity": { + "type": "integer", + "minimum": 1 + }, + "SeedCapacity": { + "type": "integer", + "minimum": 1 + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ] + }, + "TargetTrackingScalingPolicyConfiguration": { "type": "object", + "additionalProperties": false, "properties": { - "Enabled": { + "DisableScaleIn": { "type": "boolean" }, - "AttributeName": { - "type": "string" + "ScaleInCooldown": { + "type": "integer", + "minimum": 0 + }, + "ScaleOutCooldown": { + "type": "integer", + "minimum": 0 + }, + "TargetValue": { + "type": "number", + "format": "double" } }, "required": [ - "Enabled" + "TargetValue" ] }, - "ReadOnDemandThroughputSettings": { - "additionalProperties": false, + "WarmThroughput": { "type": "object", + "additionalProperties": false, "properties": { - "MaxReadRequestUnits": { + "ReadUnitsPerSecond": { + "type": "integer", + "minimum": 1 + }, + "WriteUnitsPerSecond": { "type": "integer", "minimum": 1 } - } + }, + "anyOf": [ + { + "required": [ + "ReadUnitsPerSecond" + ] + }, + { + "required": [ + "WriteUnitsPerSecond" + ] + } + ] } }, "required": [ @@ -640,82 +572,150 @@ "AttributeDefinitions", "Replicas" ], - "properties": { - "TableId": { - "type": "string" - }, - "SSESpecification": { - "$ref": "#/definitions/SSESpecification" - }, - "StreamSpecification": { - "$ref": "#/definitions/StreamSpecification" - }, - "WarmThroughput": { - "$ref": "#/definitions/WarmThroughput" - }, - "Replicas": { - "minItems": 1, - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/ReplicaSpecification" - } - }, - "WriteProvisionedThroughputSettings": { - "$ref": "#/definitions/WriteProvisionedThroughputSettings" - }, - "WriteOnDemandThroughputSettings": { - "$ref": "#/definitions/WriteOnDemandThroughputSettings" - }, - "TableName": { - "type": "string" - }, - "AttributeDefinitions": { - "minItems": 1, - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/AttributeDefinition" - } - }, - "BillingMode": { - "type": "string" - }, - "GlobalSecondaryIndexes": { - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/GlobalSecondaryIndex" - } - }, - "KeySchema": { - "minItems": 1, - "maxItems": 2, - "uniqueItems": true, - "type": "array", - "items": { - "$ref": "#/definitions/KeySchema" - } + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "primaryIdentifier": [ + "/properties/TableName" + ], + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ], + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] }, - "LocalSecondaryIndexes": { - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/LocalSecondaryIndex" - } + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] }, - "Arn": { - "type": "string" + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 }, - "StreamArn": { - "type": "string" + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] }, - "TimeToLiveSpecification": { - "$ref": "#/definitions/TimeToLiveSpecification" + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] } } } diff --git a/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json b/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json index 8a5fa317b7..34d12e5d94 100644 --- a/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json +++ b/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json @@ -664,7 +664,7 @@ } }, "BillingMode": { - "description": "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual).\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand).\n \n If not specified, the default is ``PROVISIONED``.", + "description": "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for most DynamoDB workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-demand capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html). \n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for steady workloads with predictable growth where capacity requirements can be reliably forecasted. ``PROVISIONED`` sets the billing mode to [Provisioned capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html).\n \n If not specified, the default is ``PROVISIONED``.", "type": "string" }, "GlobalSecondaryIndexes": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpointService.json b/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpointService.json index ec3d7e1497..7e10f4b01f 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpointService.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpointService.json @@ -18,6 +18,13 @@ "Value", "Key" ] + }, + "IpAddressType": { + "type": "string", + "enum": [ + "ipv4", + "ipv6" + ] } }, "properties": { @@ -59,6 +66,15 @@ "items": { "$ref": "#/definitions/Tag" } + }, + "SupportedIpAddressTypes": { + "type": "array", + "description": "Specify which Ip Address types are supported for VPC endpoint service.", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/IpAddressType" + } } }, "primaryIdentifier": [ diff --git a/internal/service/cloudformation/schemas/AWS_ECR_PullThroughCacheRule.json b/internal/service/cloudformation/schemas/AWS_ECR_PullThroughCacheRule.json index 638efb43f6..6d33df35d4 100644 --- a/internal/service/cloudformation/schemas/AWS_ECR_PullThroughCacheRule.json +++ b/internal/service/cloudformation/schemas/AWS_ECR_PullThroughCacheRule.json @@ -22,6 +22,12 @@ }, "UpstreamRegistry": { "$ref": "#/definitions/UpstreamRegistry" + }, + "CustomRoleArn": { + "$ref": "#/definitions/CustomRoleArn" + }, + "UpstreamRepositoryPrefix": { + "$ref": "#/definitions/UpstreamRepositoryPrefix" } }, "required": [ @@ -41,7 +47,7 @@ "description": "The ECRRepositoryPrefix is a custom alias for upstream registry url.", "minLength": 2, "maxLength": 30, - "pattern": "(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*" + "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$" }, "UpstreamRegistryUrl": { "type": "string", @@ -57,30 +63,44 @@ "UpstreamRegistry": { "type": "string", "description": "The name of the upstream registry." + }, + "CustomRoleArn": { + "type": "string", + "description": "The ARN of the IAM role to be assumed by Amazon ECR to authenticate to ECR upstream registry. This role must be in the same account as the registry that you are configuring.", + "maxLength": 2048 + }, + "UpstreamRepositoryPrefix": { + "type": "string", + "description": "The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`.", + "minLength": 2, + "maxLength": 30, + "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$" } }, "properties": { "EcrRepositoryPrefix": { - "type": "string", - "description": "The Amazon ECR repository prefix associated with the pull through cache rule.", - "minLength": 2, - "maxLength": 30, - "pattern": "(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*" + "$ref": "#/definitions/EcrRepositoryPrefix", + "description": "The Amazon ECR repository prefix associated with the pull through cache rule." }, "UpstreamRegistryUrl": { - "type": "string", + "$ref": "#/definitions/UpstreamRegistryUrl", "description": "The upstream registry URL associated with the pull through cache rule." }, "CredentialArn": { - "type": "string", - "description": "The ARN of the Secrets Manager secret associated with the pull through cache rule.", - "minLength": 50, - "maxLength": 612, - "pattern": "^arn:aws:secretsmanager:[a-zA-Z0-9-:]+:secret:ecr\\-pullthroughcache\\/[a-zA-Z0-9\\/_+=.@-]+$" + "$ref": "#/definitions/CredentialArn", + "description": "The ARN of the Secrets Manager secret associated with the pull through cache rule." }, "UpstreamRegistry": { - "type": "string", + "$ref": "#/definitions/UpstreamRegistry", "description": "The name of the upstream source registry associated with the pull through cache rule." + }, + "CustomRoleArn": { + "$ref": "#/definitions/CustomRoleArn", + "description": "" + }, + "UpstreamRepositoryPrefix": { + "$ref": "#/definitions/UpstreamRepositoryPrefix", + "description": "" } }, "tagging": { @@ -93,11 +113,14 @@ "/properties/EcrRepositoryPrefix", "/properties/UpstreamRegistryUrl", "/properties/CredentialArn", - "/properties/UpstreamRegistry" + "/properties/UpstreamRegistry", + "/properties/CustomRoleArn", + "/properties/UpstreamRepositoryPrefix" ], "writeOnlyProperties": [ "/properties/CredentialArn", - "/properties/UpstreamRegistry" + "/properties/UpstreamRegistry", + "/properties/CustomRoleArn" ], "handlers": { "create": { @@ -106,7 +129,8 @@ "ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "iam:CreateServiceLinkedRole", - "secretsmanager:GetSecretValue" + "secretsmanager:GetSecretValue", + "iam:PassRole" ] }, "read": { @@ -120,7 +144,8 @@ "ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "iam:CreateServiceLinkedRole", - "secretsmanager:GetSecretValue" + "secretsmanager:GetSecretValue", + "iam:PassRole" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_ECS_Service.json b/internal/service/cloudformation/schemas/AWS_ECS_Service.json index 30ce36bacb..126abf9ea6 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_Service.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_Service.json @@ -356,7 +356,7 @@ } }, "AssignPublicIp": { - "description": "Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``.", + "description": "Whether the task's elastic network interface receives a public IP address. \n Consider the following when you set this value:\n + When you use ``create-service`` or ``update-service``, the default is ``DISABLED``. \n + When the service ``deploymentController`` is ``ECS``, the value must be ``DISABLED``. \n + When you use ``create-service`` or ``update-service``, the default is ``ENABLED``.", "type": "string", "enum": [ "DISABLED", @@ -511,7 +511,7 @@ } }, "Tag": { - "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", + "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.\n \n In order to tag a service that has the following ARN format, you need to migrate the service to the long ARN. You must use the API, CLI or console to migrate the service ARN. For more information, see [Migrate an short service ARN to a long ARN](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-arn-migration.html) in the *Developer Guide*.\n ``arn:aws:ecs:region:aws_account_id:service/service-name`` \n After the migration is complete, the following are true:\n + The service ARN is: ``arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name`` \n + You can use CFN to tag the service as you would a service with a long ARN format.\n + When the ``PhysicalResourceId`` in the CFN stack represents a service, the value does not change and will be the short service ARN.", "additionalProperties": false, "type": "object", "properties": { @@ -674,7 +674,7 @@ } }, "CapacityProviderStrategy": { - "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy may contain a maximum of 6 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", + "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", "type": "array", "items": { "$ref": "#/definitions/CapacityProviderStrategyItem" diff --git a/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json b/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json index 7cb144b9f0..f01fc42def 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json @@ -128,19 +128,19 @@ } }, "Timeout": { - "description": "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5.", + "description": "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``.", "type": "integer" }, "Retries": { - "description": "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3.", + "description": "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``.", "type": "integer" }, "Interval": { - "description": "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds.", + "description": "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``.", "type": "integer" }, "StartPeriod": { - "description": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off.\n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", + "description": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. \n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", "type": "integer" } } @@ -550,7 +550,7 @@ } }, "KernelCapabilities": { - "description": "The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page.", + "description": "The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page.\n The following describes how Docker processes the Linux capabilities specified in the ``add`` and ``drop`` request parameters. For information about the latest behavior, see [Docker Compose: order of cap_drop and cap_add](https://docs.aws.amazon.com/https://forums.docker.com/t/docker-compose-order-of-cap-drop-and-cap-add/97136/1) in the Docker Community Forum.\n + When the container is a privleged container, the container capabilities are all of the default Docker capabilities. The capabilities specified in the ``add`` request parameter, and the ``drop`` request parameter are ignored.\n + When the ``add`` request parameter is set to ALL, the container capabilities are all of the default Docker capabilities, excluding those specified in the ``drop`` request parameter.\n + When the ``drop`` request parameter is set to ALL, the container capabilities are the capabilities specified in the ``add`` request parameter.\n + When the ``add`` request parameter and the ``drop`` request parameter are both empty, the capabilities the container capabilities are all of the default Docker capabilities.\n + The default is to first drop the capabilities specified in the ``drop`` request parameter, and then add the capabilities specified in the ``add`` request parameter.", "additionalProperties": false, "type": "object", "properties": { @@ -1102,7 +1102,7 @@ } }, "Cpu": { - "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you use the EC2 launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``10240`` CPU units (``10`` vCPUs).\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", + "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``196608`` CPU units (``192`` vCPUs). The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", "type": "string" }, "RequiresCompatibilities": { diff --git a/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_Listener.json b/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_Listener.json index ab55256ca0..93719a8ab2 100644 --- a/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_Listener.json +++ b/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_Listener.json @@ -88,7 +88,7 @@ "additionalProperties": false, "definitions": { "MutualAuthentication": { - "description": "Specifies the configuration information for mutual authentication.", + "description": "The mutual authentication configuration information.", "additionalProperties": false, "type": "object", "properties": { @@ -97,7 +97,7 @@ "type": "boolean" }, "Mode": { - "description": "The client certificate handling method. Options are ``off``, ``passthrough`` or ``verify``. The default value is ``off``.", + "description": "The client certificate handling method. The possible values are ``off``, ``passthrough``, and ``verify``. The default value is ``off``.", "type": "string" }, "TrustStoreArn": { @@ -105,7 +105,7 @@ "type": "string" }, "AdvertiseTrustStoreCaNames": { - "description": "", + "description": "Indicates whether trust store CA certificate names are advertised. The default value is ``off``.", "type": "string" } } diff --git a/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_LoadBalancer.json b/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_LoadBalancer.json index f9ff3f11d1..05a6e9f640 100644 --- a/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_LoadBalancer.json +++ b/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_LoadBalancer.json @@ -98,7 +98,11 @@ }, "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", - "description": "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink." + "description": "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. The default is ``on``." + }, + "Ipv4IpamPoolId": { + "type": "string", + "description": "" } }, "definitions": { @@ -213,7 +217,8 @@ "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:ModifyLoadBalancerAttributes", - "elasticloadbalancing:AddTags" + "elasticloadbalancing:AddTags", + "ec2:DescribeIpamPools" ], "timeoutInMinutes": 30 }, @@ -242,6 +247,7 @@ "elasticloadbalancing:ModifyCapacityReservation", "elasticloadbalancing:SetSubnets", "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:ModifyIpPools", "elasticloadbalancing:SetSecurityGroups", "elasticloadbalancing:AddTags", "elasticloadbalancing:RemoveTags" diff --git a/internal/service/cloudformation/schemas/AWS_EventSchemas_Discoverer.json b/internal/service/cloudformation/schemas/AWS_EventSchemas_Discoverer.json index f58129c450..6b261ed396 100644 --- a/internal/service/cloudformation/schemas/AWS_EventSchemas_Discoverer.json +++ b/internal/service/cloudformation/schemas/AWS_EventSchemas_Discoverer.json @@ -74,7 +74,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "schemas:TagResource", + "schemas:UntagResource", + "schemas:ListTagsForResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_EventSchemas_Registry.json b/internal/service/cloudformation/schemas/AWS_EventSchemas_Registry.json index f84ff25ce7..33fc1cd595 100644 --- a/internal/service/cloudformation/schemas/AWS_EventSchemas_Registry.json +++ b/internal/service/cloudformation/schemas/AWS_EventSchemas_Registry.json @@ -56,7 +56,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "schemas:TagResource", + "schemas:UntagResource", + "schemas:ListTagsForResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_EventSchemas_Schema.json b/internal/service/cloudformation/schemas/AWS_EventSchemas_Schema.json index 69295e60ea..7416d509f1 100644 --- a/internal/service/cloudformation/schemas/AWS_EventSchemas_Schema.json +++ b/internal/service/cloudformation/schemas/AWS_EventSchemas_Schema.json @@ -90,7 +90,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "schemas:TagResource", + "schemas:UntagResource", + "schemas:ListTagsForResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Component.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Component.json index 1a160cc32f..3fa5dcc235 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Component.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Component.json @@ -121,7 +121,15 @@ "/properties/Tags" ], "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UnTagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_ContainerRecipe.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_ContainerRecipe.json index e53282ead7..f7c5f75058 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_ContainerRecipe.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_ContainerRecipe.json @@ -296,7 +296,15 @@ "/properties/InstanceConfiguration/BlockDeviceMappings/*/Ebs/VolumeType": "$uppercase(VolumeType)" }, "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UnTagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_DistributionConfiguration.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_DistributionConfiguration.json index 32b48b08a6..81bffbbe77 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_DistributionConfiguration.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_DistributionConfiguration.json @@ -295,7 +295,11 @@ "/properties/Name" ], "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Image.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Image.json index 9cc90f9ada..2934b0805e 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Image.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Image.json @@ -1,7 +1,15 @@ { "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", "tagging": { - "taggable": false + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UnTagResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true }, "oneOf": [ { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImagePipeline.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImagePipeline.json index d405bb6184..0f3e7ff15b 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImagePipeline.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImagePipeline.json @@ -229,7 +229,11 @@ "/properties/Name" ], "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImageRecipe.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImageRecipe.json index 89f2424330..5d8d8a3296 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImageRecipe.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImageRecipe.json @@ -226,7 +226,15 @@ "/properties/BlockDeviceMappings/*/Ebs/VolumeType": "$uppercase(VolumeType)" }, "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UnTagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_InfrastructureConfiguration.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_InfrastructureConfiguration.json index 6c1670b4f7..7e2261b2c4 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_InfrastructureConfiguration.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_InfrastructureConfiguration.json @@ -191,7 +191,11 @@ "/properties/Name" ], "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_LifecyclePolicy.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_LifecyclePolicy.json index b93b2a0a50..706237fc7d 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_LifecyclePolicy.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_LifecyclePolicy.json @@ -303,7 +303,11 @@ "/properties/Name" ], "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Workflow.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Workflow.json index 63b007f79a..f369d99eaf 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Workflow.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Workflow.json @@ -97,7 +97,15 @@ "/properties/Tags" ], "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UnTagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackage.json b/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackage.json index 09bd9f0fc6..231cfdbd27 100644 --- a/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackage.json +++ b/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackage.json @@ -58,8 +58,13 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] }, "readOnlyProperties": [ "/properties/PackageArn" diff --git a/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackageVersion.json b/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackageVersion.json index 53a9e117b7..06613d89ae 100644 --- a/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackageVersion.json +++ b/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackageVersion.json @@ -1,5 +1,6 @@ { "typeName": "AWS::IoT::SoftwarePackageVersion", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iot", "description": "resource definition", "definitions": { "PackageVersionStatus": { @@ -10,6 +11,19 @@ "DEPRECATED" ] }, + "PackageVersionArtifact": { + "description": "The artifact location of the package version", + "type": "object", + "properties": { + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "required": [ + "S3Location" + ], + "additionalProperties": false + }, "ResourceAttributes": { "type": "object", "patternProperties": { @@ -44,12 +58,64 @@ "Value" ], "additionalProperties": false + }, + "Sbom": { + "description": "The sbom zip archive location of the package version", + "type": "object", + "properties": { + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "required": [ + "S3Location" + ], + "additionalProperties": false + }, + "S3Location": { + "description": "The Amazon S3 location", + "type": "object", + "properties": { + "Bucket": { + "type": "string", + "description": "The S3 bucket", + "minLength": 1 + }, + "Key": { + "type": "string", + "description": "The S3 key", + "minLength": 1 + }, + "Version": { + "type": "string", + "description": "The S3 version" + } + }, + "required": [ + "Bucket", + "Key", + "Version" + ], + "additionalProperties": false + }, + "SbomValidationStatus": { + "description": "The validation status of the Sbom file", + "type": "string", + "enum": [ + "IN_PROGRESS", + "FAILED", + "SUCCEEDED", + "" + ] } }, "properties": { "Attributes": { "$ref": "#/definitions/ResourceAttributes" }, + "Artifact": { + "$ref": "#/definitions/PackageVersionArtifact" + }, "Description": { "type": "string", "maxLength": 1024, @@ -69,6 +135,16 @@ "type": "string", "pattern": "^arn:[!-~]+$" }, + "Recipe": { + "description": "The inline json job document associated with a software package version", + "type": "string" + }, + "Sbom": { + "$ref": "#/definitions/Sbom" + }, + "SbomValidationStatus": { + "$ref": "#/definitions/SbomValidationStatus" + }, "Status": { "$ref": "#/definitions/PackageVersionStatus" }, @@ -93,7 +169,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "iot:TagResource", @@ -107,7 +183,8 @@ "readOnlyProperties": [ "/properties/ErrorReason", "/properties/PackageVersionArn", - "/properties/Status" + "/properties/Status", + "/properties/SbomValidationStatus" ], "createOnlyProperties": [ "/properties/PackageName", @@ -122,8 +199,11 @@ "permissions": [ "iot:CreatePackageVersion", "iot:GetPackageVersion", + "iot:ListTagsForResource", "iot:TagResource", - "iot:GetIndexingConfiguration" + "iot:GetIndexingConfiguration", + "s3:GetObjectVersion", + "iot:AssociateSbomWithPackageVersion" ] }, "read": { @@ -139,7 +219,10 @@ "iot:ListTagsForResource", "iot:TagResource", "iot:UntagResource", - "iot:GetIndexingConfiguration" + "iot:GetIndexingConfiguration", + "s3:GetObjectVersion", + "iot:AssociateSbomWithPackageVersion", + "iot:DisassociateSbomFromPackageVersion" ] }, "delete": { @@ -151,6 +234,16 @@ ] }, "list": { + "handlerSchema": { + "properties": { + "PackageName": { + "$ref": "resource-schema.json#/properties/PackageName" + } + }, + "required": [ + "PackageName" + ] + }, "permissions": [ "iot:ListPackageVersions" ] diff --git a/internal/service/cloudformation/schemas/AWS_MSK_Replicator.json b/internal/service/cloudformation/schemas/AWS_MSK_Replicator.json index 231f8e532f..e3cf428d75 100644 --- a/internal/service/cloudformation/schemas/AWS_MSK_Replicator.json +++ b/internal/service/cloudformation/schemas/AWS_MSK_Replicator.json @@ -352,7 +352,8 @@ ] ], "readOnlyProperties": [ - "/properties/ReplicatorArn" + "/properties/ReplicatorArn", + "/properties/CurrentVersion" ], "createOnlyProperties": [ "/properties/ReplicatorName", diff --git a/internal/service/cloudformation/schemas/AWS_Omics_ReferenceStore.json b/internal/service/cloudformation/schemas/AWS_Omics_ReferenceStore.json index af6fefdca7..4b4075ec8d 100644 --- a/internal/service/cloudformation/schemas/AWS_Omics_ReferenceStore.json +++ b/internal/service/cloudformation/schemas/AWS_Omics_ReferenceStore.json @@ -88,9 +88,6 @@ "/properties/CreationTime", "/properties/ReferenceStoreId" ], - "writeOnlyProperties": [ - "/properties/Tags" - ], "createOnlyProperties": [ "/properties/Description", "/properties/Name", diff --git a/internal/service/cloudformation/schemas/AWS_Omics_SequenceStore.json b/internal/service/cloudformation/schemas/AWS_Omics_SequenceStore.json index d0728b3919..35f8b8abf4 100644 --- a/internal/service/cloudformation/schemas/AWS_Omics_SequenceStore.json +++ b/internal/service/cloudformation/schemas/AWS_Omics_SequenceStore.json @@ -94,9 +94,6 @@ "/properties/CreationTime", "/properties/SequenceStoreId" ], - "writeOnlyProperties": [ - "/properties/Tags" - ], "createOnlyProperties": [ "/properties/Description", "/properties/Name", diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json index a9f023f18d..e325eac08b 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json @@ -55,7 +55,7 @@ "type": "boolean" }, "DatabaseInsightsMode": { - "description": "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters only", + "description": "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", "type": "string" }, "DatabaseName": { diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json index a1ea48ca8c..354246316b 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json @@ -229,7 +229,7 @@ }, "DBSubnetGroupName": { "type": "string", - "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If there's no DB subnet group, then the DB instance isn't a VPC DB instance.\n For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting." + "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If you don't specify a DB subnet group, RDS uses the default DB subnet group if one exists. If a default DB subnet group does not exist, and you don't specify a ``DBSubnetGroupName``, the DB instance fails to launch. \n For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting." }, "DBSystemId": { "type": "string", diff --git a/internal/service/cloudformation/schemas/AWS_RUM_AppMonitor.json b/internal/service/cloudformation/schemas/AWS_RUM_AppMonitor.json index d0258f25d8..788dafe273 100644 --- a/internal/service/cloudformation/schemas/AWS_RUM_AppMonitor.json +++ b/internal/service/cloudformation/schemas/AWS_RUM_AppMonitor.json @@ -233,6 +233,26 @@ "Name" ] }, + "ResourcePolicy": { + "description": "A structure that defines resource policy attached to your app monitor.", + "additionalProperties": false, + "type": "object", + "properties": { + "PolicyDocument": { + "type": "string", + "description": "The JSON to use as the resource policy. The document can be up to 4 KB in size. " + }, + "PolicyRevisionId": { + "type": "string", + "description": "A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. \n\n When you assign a policy revision ID, then later requests about that policy will be rejected with an InvalidPolicyRevisionIdException error if they don't provide the correct current revision ID.", + "minLength": 1, + "maxLength": 255 + } + }, + "required": [ + "PolicyDocument" + ] + }, "CustomEventsStatus": { "type": "string", "enum": [ @@ -286,6 +306,9 @@ }, "CustomEvents": { "$ref": "#/definitions/CustomEvents" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" } }, "additionalProperties": false, @@ -347,7 +370,9 @@ "rum:PutRumMetricsDestination", "rum:BatchCreateRumMetricDefinitions", "rum:ListRumMetricsDestinations", - "rum:BatchGetRumMetricDefinitions" + "rum:BatchGetRumMetricDefinitions", + "rum:GetResourcePolicy", + "rum:PutResourcePolicy" ] }, "read": { @@ -359,7 +384,8 @@ "s3:GetObjectAcl", "rum:ListTagsForResource", "rum:ListRumMetricsDestinations", - "rum:BatchGetRumMetricDefinitions" + "rum:BatchGetRumMetricDefinitions", + "rum:GetResourcePolicy" ] }, "update": { @@ -394,7 +420,10 @@ "rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", - "rum:UpdateRumMetricDefinition" + "rum:UpdateRumMetricDefinition", + "rum:GetResourcePolicy", + "rum:PutResourcePolicy", + "rum:DeleteResourcePolicy" ] }, "delete": { @@ -411,7 +440,10 @@ "rum:DeleteRumMetricsDestination", "rum:BatchDeleteRumMetricDefinitions", "rum:ListRumMetricsDestinations", - "rum:BatchGetRumMetricDefinitions" + "rum:BatchGetRumMetricDefinitions", + "rum:GetResourcePolicy", + "rum:PutResourcePolicy", + "rum:DeleteResourcePolicy" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_InferenceComponent.json b/internal/service/cloudformation/schemas/AWS_SageMaker_InferenceComponent.json index 217250e429..ea4ba44bdd 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_InferenceComponent.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_InferenceComponent.json @@ -26,6 +26,9 @@ "RuntimeConfig": { "$ref": "#/definitions/InferenceComponentRuntimeConfig" }, + "DeploymentConfig": { + "$ref": "#/definitions/InferenceComponentDeploymentConfig" + }, "InferenceComponentStatus": { "$ref": "#/definitions/InferenceComponentStatus" }, @@ -246,6 +249,108 @@ } } }, + "InferenceComponentDeploymentConfig": { + "description": "The deployment config for the inference component", + "type": "object", + "additionalProperties": false, + "properties": { + "RollingUpdatePolicy": { + "$ref": "#/definitions/InferenceComponentRollingUpdatePolicy" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + } + } + }, + "AutoRollbackConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "Alarms": { + "type": "array", + "minItems": 1, + "maxItems": 10, + "items": { + "$ref": "#/definitions/Alarm" + } + } + }, + "required": [ + "Alarms" + ] + }, + "Alarm": { + "type": "object", + "additionalProperties": false, + "properties": { + "AlarmName": { + "type": "string", + "minLength": 1, + "maxLength": 255, + "pattern": "" + } + }, + "required": [ + "AlarmName" + ] + }, + "InferenceComponentRollingUpdatePolicy": { + "description": "The rolling update policy for the inference component", + "type": "object", + "additionalProperties": false, + "properties": { + "MaximumBatchSize": { + "$ref": "#/definitions/InferenceComponentCapacitySize" + }, + "WaitIntervalInSeconds": { + "$ref": "#/definitions/WaitIntervalInSeconds" + }, + "RollbackMaximumBatchSize": { + "$ref": "#/definitions/InferenceComponentCapacitySize" + }, + "MaximumExecutionTimeoutInSeconds": { + "$ref": "#/definitions/MaximumExecutionTimeoutInSeconds" + } + } + }, + "WaitIntervalInSeconds": { + "type": "integer", + "minimum": 0, + "maximum": 3600 + }, + "MaximumExecutionTimeoutInSeconds": { + "type": "integer", + "minimum": 600, + "maximum": 28800 + }, + "InferenceComponentCapacitySize": { + "type": "object", + "description": "Capacity size configuration for the inference component", + "required": [ + "Type", + "Value" + ], + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/InferenceComponentCapacitySizeType" + }, + "Value": { + "$ref": "#/definitions/CapacitySizeValue" + } + } + }, + "InferenceComponentCapacitySizeType": { + "type": "string", + "enum": [ + "COPY_COUNT", + "CAPACITY_PERCENT" + ] + }, + "CapacitySizeValue": { + "description": "The number of copies for the inference component", + "type": "integer" + }, "InferenceComponentStatus": { "type": "string", "enum": [ @@ -293,7 +398,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "sagemaker:AddTags", + "sagemaker:ListTags", + "sagemaker:DeleteTags" + ] }, "primaryIdentifier": [ "/properties/InferenceComponentArn" @@ -350,6 +460,7 @@ ], "writeOnlyProperties": [ "/properties/Specification/Container/Image", - "/properties/RuntimeConfig/CopyCount" + "/properties/RuntimeConfig/CopyCount", + "/properties/DeploymentConfig" ] } diff --git a/internal/service/cloudformation/schemas/AWS_Shield_Protection.json b/internal/service/cloudformation/schemas/AWS_Shield_Protection.json index 0c61e88040..af5c9e00e7 100644 --- a/internal/service/cloudformation/schemas/AWS_Shield_Protection.json +++ b/internal/service/cloudformation/schemas/AWS_Shield_Protection.json @@ -16,8 +16,15 @@ "replacementStrategy": "delete_then_create", "tagging": { "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": false + "cloudFormationSystemTags": false, + "permissions": [ + "shield:ListTagsForResource", + "shield:UntagResource", + "shield:TagResource" + ] }, "additionalProperties": false, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_Shield_ProtectionGroup.json b/internal/service/cloudformation/schemas/AWS_Shield_ProtectionGroup.json index 2d7ef15fa6..46c489c55b 100644 --- a/internal/service/cloudformation/schemas/AWS_Shield_ProtectionGroup.json +++ b/internal/service/cloudformation/schemas/AWS_Shield_ProtectionGroup.json @@ -14,6 +14,8 @@ "replacementStrategy": "delete_then_create", "tagging": { "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, "tagProperty": "/properties/Tags", "cloudFormationSystemTags": false, "permissions": [ From a33e8b0df9254696d7aaf38a373f69a4ef24fb88 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 13 Mar 2025 11:20:29 -0400 Subject: [PATCH 2/6] 2025/03/12 CloudFormation schemas in us-east-1; New schemas. --- internal/provider/all_schemas.hcl | 10 +- .../available_schemas.2025-03-12.hcl | 4887 +++++++++++++++++ internal/provider/import_examples_gen.json | 10 + internal/provider/plural_data_sources.go | 2 + internal/provider/resources.go | 2 + internal/provider/singular_data_sources.go | 2 + .../AWS_ApplicationSignals_Discovery.json | 59 + .../AWS_XRay_TransactionSearchConfig.json | 77 + 8 files changed, 5048 insertions(+), 1 deletion(-) create mode 100644 internal/provider/generators/allschemas/available_schemas.2025-03-12.hcl create mode 100644 internal/service/cloudformation/schemas/AWS_ApplicationSignals_Discovery.json create mode 100644 internal/service/cloudformation/schemas/AWS_XRay_TransactionSearchConfig.json diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index 009a84304b..ca6335120a 100644 --- a/internal/provider/all_schemas.hcl +++ b/internal/provider/all_schemas.hcl @@ -10,7 +10,7 @@ meta_schema { path = "../service/cloudformation/meta-schemas/provider.definition.schema.v1.json" } -# 1133 CloudFormation resource types schemas are available for use with the Cloud Control API. +# 1149 CloudFormation resource types schemas are available for use with the Cloud Control API. resource_schema "aws_acmpca_certificate" { cloudformation_type_name = "AWS::ACMPCA::Certificate" @@ -461,6 +461,10 @@ resource_schema "aws_applicationsignals_service_level_objective" { cloudformation_type_name = "AWS::ApplicationSignals::ServiceLevelObjective" } +resource_schema "aws_applicationsignals_discovery" { + cloudformation_type_name = "AWS::ApplicationSignals::Discovery" +} + resource_schema "aws_athena_capacity_reservation" { cloudformation_type_name = "AWS::Athena::CapacityReservation" } @@ -5193,3 +5197,7 @@ resource_schema "aws_xray_resource_policy" { resource_schema "aws_xray_sampling_rule" { cloudformation_type_name = "AWS::XRay::SamplingRule" } + +resource_schema "aws_xray_transaction_search_config" { + cloudformation_type_name = "AWS::XRay::TransactionSearchConfig" +} \ No newline at end of file diff --git a/internal/provider/generators/allschemas/available_schemas.2025-03-12.hcl b/internal/provider/generators/allschemas/available_schemas.2025-03-12.hcl new file mode 100644 index 0000000000..a66f99b107 --- /dev/null +++ b/internal/provider/generators/allschemas/available_schemas.2025-03-12.hcl @@ -0,0 +1,4887 @@ +# 1149 CloudFormation resource types schemas are available for use with the Cloud Control API. + +resource_schema "aws_acmpca_certificate" { + cloudformation_type_name = "AWS::ACMPCA::Certificate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_certificate_authority" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthority" +} + +resource_schema "aws_acmpca_certificate_authority_activation" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthorityActivation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_permission" { + cloudformation_type_name = "AWS::ACMPCA::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_rule_groups_namespace" { + cloudformation_type_name = "AWS::APS::RuleGroupsNamespace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_scraper" { + cloudformation_type_name = "AWS::APS::Scraper" +} + +resource_schema "aws_aps_workspace" { + cloudformation_type_name = "AWS::APS::Workspace" +} + +resource_schema "aws_arczonalshift_autoshift_observer_notification_status" { + cloudformation_type_name = "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus" +} + +resource_schema "aws_arczonalshift_zonal_autoshift_configuration" { + cloudformation_type_name = "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} + +resource_schema "aws_accessanalyzer_analyzer" { + cloudformation_type_name = "AWS::AccessAnalyzer::Analyzer" +} + +resource_schema "aws_amazonmq_configuration" { + cloudformation_type_name = "AWS::AmazonMQ::Configuration" +} + +resource_schema "aws_amplify_app" { + cloudformation_type_name = "AWS::Amplify::App" +} + +resource_schema "aws_amplify_branch" { + cloudformation_type_name = "AWS::Amplify::Branch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplify_domain" { + cloudformation_type_name = "AWS::Amplify::Domain" +} + +resource_schema "aws_amplifyuibuilder_component" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_form" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Form" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_theme" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_account" { + cloudformation_type_name = "AWS::ApiGateway::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_api_key" { + cloudformation_type_name = "AWS::ApiGateway::ApiKey" +} + +resource_schema "aws_apigateway_authorizer" { + cloudformation_type_name = "AWS::ApiGateway::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_base_path_mapping" { + cloudformation_type_name = "AWS::ApiGateway::BasePathMapping" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_base_path_mapping_v2" { + cloudformation_type_name = "AWS::ApiGateway::BasePathMappingV2" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_client_certificate" { + cloudformation_type_name = "AWS::ApiGateway::ClientCertificate" +} + +resource_schema "aws_apigateway_deployment" { + cloudformation_type_name = "AWS::ApiGateway::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_part" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationPart" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_version" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_domain_name" { + cloudformation_type_name = "AWS::ApiGateway::DomainName" +} + +resource_schema "aws_apigateway_domain_name_access_association" { + cloudformation_type_name = "AWS::ApiGateway::DomainNameAccessAssociation" +} + +resource_schema "aws_apigateway_domain_name_v2" { + cloudformation_type_name = "AWS::ApiGateway::DomainNameV2" +} + +resource_schema "aws_apigateway_gateway_response" { + cloudformation_type_name = "AWS::ApiGateway::GatewayResponse" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_method" { + cloudformation_type_name = "AWS::ApiGateway::Method" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_model" { + cloudformation_type_name = "AWS::ApiGateway::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_request_validator" { + cloudformation_type_name = "AWS::ApiGateway::RequestValidator" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_resource" { + cloudformation_type_name = "AWS::ApiGateway::Resource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_rest_api" { + cloudformation_type_name = "AWS::ApiGateway::RestApi" +} + +resource_schema "aws_apigateway_stage" { + cloudformation_type_name = "AWS::ApiGateway::Stage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_usage_plan" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlan" +} + +resource_schema "aws_apigateway_usage_plan_key" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlanKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_vpc_link" { + cloudformation_type_name = "AWS::ApiGateway::VpcLink" +} + +resource_schema "aws_apigatewayv2_api" { + cloudformation_type_name = "AWS::ApiGatewayV2::Api" +} + +resource_schema "aws_apigatewayv2_api_mapping" { + cloudformation_type_name = "AWS::ApiGatewayV2::ApiMapping" +} + +resource_schema "aws_apigatewayv2_authorizer" { + cloudformation_type_name = "AWS::ApiGatewayV2::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_deployment" { + cloudformation_type_name = "AWS::ApiGatewayV2::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_domain_name" { + cloudformation_type_name = "AWS::ApiGatewayV2::DomainName" +} + +resource_schema "aws_apigatewayv2_integration" { + cloudformation_type_name = "AWS::ApiGatewayV2::Integration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_integration_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::IntegrationResponse" +} + +resource_schema "aws_apigatewayv2_model" { + cloudformation_type_name = "AWS::ApiGatewayV2::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route" { + cloudformation_type_name = "AWS::ApiGatewayV2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::RouteResponse" +} + +resource_schema "aws_apigatewayv2_vpc_link" { + cloudformation_type_name = "AWS::ApiGatewayV2::VpcLink" +} + +resource_schema "aws_appconfig_application" { + cloudformation_type_name = "AWS::AppConfig::Application" +} + +resource_schema "aws_appconfig_configuration_profile" { + cloudformation_type_name = "AWS::AppConfig::ConfigurationProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_deployment" { + cloudformation_type_name = "AWS::AppConfig::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_deployment_strategy" { + cloudformation_type_name = "AWS::AppConfig::DeploymentStrategy" +} + +resource_schema "aws_appconfig_environment" { + cloudformation_type_name = "AWS::AppConfig::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_extension" { + cloudformation_type_name = "AWS::AppConfig::Extension" +} + +resource_schema "aws_appconfig_extension_association" { + cloudformation_type_name = "AWS::AppConfig::ExtensionAssociation" +} + +resource_schema "aws_appconfig_hosted_configuration_version" { + cloudformation_type_name = "AWS::AppConfig::HostedConfigurationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appflow_connector" { + cloudformation_type_name = "AWS::AppFlow::Connector" +} + +resource_schema "aws_appflow_connector_profile" { + cloudformation_type_name = "AWS::AppFlow::ConnectorProfile" +} + +resource_schema "aws_appflow_flow" { + cloudformation_type_name = "AWS::AppFlow::Flow" +} + +resource_schema "aws_appintegrations_application" { + cloudformation_type_name = "AWS::AppIntegrations::Application" +} + +resource_schema "aws_appintegrations_data_integration" { + cloudformation_type_name = "AWS::AppIntegrations::DataIntegration" +} + +resource_schema "aws_appintegrations_event_integration" { + cloudformation_type_name = "AWS::AppIntegrations::EventIntegration" +} + +resource_schema "aws_apprunner_auto_scaling_configuration" { + cloudformation_type_name = "AWS::AppRunner::AutoScalingConfiguration" +} + +resource_schema "aws_apprunner_observability_configuration" { + cloudformation_type_name = "AWS::AppRunner::ObservabilityConfiguration" +} + +resource_schema "aws_apprunner_service" { + cloudformation_type_name = "AWS::AppRunner::Service" +} + +resource_schema "aws_apprunner_vpc_connector" { + cloudformation_type_name = "AWS::AppRunner::VpcConnector" +} + +resource_schema "aws_apprunner_vpc_ingress_connection" { + cloudformation_type_name = "AWS::AppRunner::VpcIngressConnection" +} + +resource_schema "aws_appstream_app_block" { + cloudformation_type_name = "AWS::AppStream::AppBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_app_block_builder" { + cloudformation_type_name = "AWS::AppStream::AppBlockBuilder" +} + +resource_schema "aws_appstream_application" { + cloudformation_type_name = "AWS::AppStream::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_entitlement_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationEntitlementAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_fleet_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_directory_config" { + cloudformation_type_name = "AWS::AppStream::DirectoryConfig" +} + +resource_schema "aws_appstream_entitlement" { + cloudformation_type_name = "AWS::AppStream::Entitlement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_image_builder" { + cloudformation_type_name = "AWS::AppStream::ImageBuilder" +} + +resource_schema "aws_appsync_api" { + cloudformation_type_name = "AWS::AppSync::Api" +} + +resource_schema "aws_appsync_channel_namespace" { + cloudformation_type_name = "AWS::AppSync::ChannelNamespace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_data_source" { + cloudformation_type_name = "AWS::AppSync::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_domain_name" { + cloudformation_type_name = "AWS::AppSync::DomainName" +} + +resource_schema "aws_appsync_domain_name_api_association" { + cloudformation_type_name = "AWS::AppSync::DomainNameApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_function_configuration" { + cloudformation_type_name = "AWS::AppSync::FunctionConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_graph_ql_api" { + cloudformation_type_name = "AWS::AppSync::GraphQLApi" +} + +resource_schema "aws_appsync_resolver" { + cloudformation_type_name = "AWS::AppSync::Resolver" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_source_api_association" { + cloudformation_type_name = "AWS::AppSync::SourceApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apptest_test_case" { + cloudformation_type_name = "AWS::AppTest::TestCase" +} + +resource_schema "aws_applicationautoscaling_scalable_target" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalableTarget" +} + +resource_schema "aws_applicationautoscaling_scaling_policy" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalingPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_applicationinsights_application" { + cloudformation_type_name = "AWS::ApplicationInsights::Application" +} + +resource_schema "aws_applicationsignals_discovery" { + cloudformation_type_name = "AWS::ApplicationSignals::Discovery" +} + +resource_schema "aws_applicationsignals_service_level_objective" { + cloudformation_type_name = "AWS::ApplicationSignals::ServiceLevelObjective" +} + +resource_schema "aws_athena_capacity_reservation" { + cloudformation_type_name = "AWS::Athena::CapacityReservation" +} + +resource_schema "aws_athena_data_catalog" { + cloudformation_type_name = "AWS::Athena::DataCatalog" +} + +resource_schema "aws_athena_named_query" { + cloudformation_type_name = "AWS::Athena::NamedQuery" +} + +resource_schema "aws_athena_prepared_statement" { + cloudformation_type_name = "AWS::Athena::PreparedStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_athena_work_group" { + cloudformation_type_name = "AWS::Athena::WorkGroup" +} + +resource_schema "aws_auditmanager_assessment" { + cloudformation_type_name = "AWS::AuditManager::Assessment" +} + +resource_schema "aws_autoscaling_auto_scaling_group" { + cloudformation_type_name = "AWS::AutoScaling::AutoScalingGroup" +} + +resource_schema "aws_autoscaling_launch_configuration" { + cloudformation_type_name = "AWS::AutoScaling::LaunchConfiguration" +} + +resource_schema "aws_autoscaling_lifecycle_hook" { + cloudformation_type_name = "AWS::AutoScaling::LifecycleHook" +} + +resource_schema "aws_autoscaling_scaling_policy" { + cloudformation_type_name = "AWS::AutoScaling::ScalingPolicy" +} + +resource_schema "aws_autoscaling_scheduled_action" { + cloudformation_type_name = "AWS::AutoScaling::ScheduledAction" +} + +resource_schema "aws_autoscaling_warm_pool" { + cloudformation_type_name = "AWS::AutoScaling::WarmPool" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_b2bi_capability" { + cloudformation_type_name = "AWS::B2BI::Capability" +} + +resource_schema "aws_b2bi_partnership" { + cloudformation_type_name = "AWS::B2BI::Partnership" +} + +resource_schema "aws_b2bi_profile" { + cloudformation_type_name = "AWS::B2BI::Profile" +} + +resource_schema "aws_b2bi_transformer" { + cloudformation_type_name = "AWS::B2BI::Transformer" +} + +resource_schema "aws_bcmdataexports_export" { + cloudformation_type_name = "AWS::BCMDataExports::Export" +} + +resource_schema "aws_backup_backup_plan" { + cloudformation_type_name = "AWS::Backup::BackupPlan" +} + +resource_schema "aws_backup_backup_selection" { + cloudformation_type_name = "AWS::Backup::BackupSelection" +} + +resource_schema "aws_backup_backup_vault" { + cloudformation_type_name = "AWS::Backup::BackupVault" +} + +resource_schema "aws_backup_framework" { + cloudformation_type_name = "AWS::Backup::Framework" +} + +resource_schema "aws_backup_logically_air_gapped_backup_vault" { + cloudformation_type_name = "AWS::Backup::LogicallyAirGappedBackupVault" +} + +resource_schema "aws_backup_report_plan" { + cloudformation_type_name = "AWS::Backup::ReportPlan" +} + +resource_schema "aws_backup_restore_testing_plan" { + cloudformation_type_name = "AWS::Backup::RestoreTestingPlan" +} + +resource_schema "aws_backup_restore_testing_selection" { + cloudformation_type_name = "AWS::Backup::RestoreTestingSelection" +} + +resource_schema "aws_backupgateway_hypervisor" { + cloudformation_type_name = "AWS::BackupGateway::Hypervisor" +} + +resource_schema "aws_batch_compute_environment" { + cloudformation_type_name = "AWS::Batch::ComputeEnvironment" +} + +resource_schema "aws_batch_consumable_resource" { + cloudformation_type_name = "AWS::Batch::ConsumableResource" +} + +resource_schema "aws_batch_job_definition" { + cloudformation_type_name = "AWS::Batch::JobDefinition" +} + +resource_schema "aws_batch_job_queue" { + cloudformation_type_name = "AWS::Batch::JobQueue" +} + +resource_schema "aws_batch_scheduling_policy" { + cloudformation_type_name = "AWS::Batch::SchedulingPolicy" +} + +resource_schema "aws_bedrock_agent" { + cloudformation_type_name = "AWS::Bedrock::Agent" +} + +resource_schema "aws_bedrock_agent_alias" { + cloudformation_type_name = "AWS::Bedrock::AgentAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_application_inference_profile" { + cloudformation_type_name = "AWS::Bedrock::ApplicationInferenceProfile" +} + +resource_schema "aws_bedrock_blueprint" { + cloudformation_type_name = "AWS::Bedrock::Blueprint" +} + +resource_schema "aws_bedrock_data_automation_project" { + cloudformation_type_name = "AWS::Bedrock::DataAutomationProject" +} + +resource_schema "aws_bedrock_data_source" { + cloudformation_type_name = "AWS::Bedrock::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow" { + cloudformation_type_name = "AWS::Bedrock::Flow" +} + +resource_schema "aws_bedrock_flow_alias" { + cloudformation_type_name = "AWS::Bedrock::FlowAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow_version" { + cloudformation_type_name = "AWS::Bedrock::FlowVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_guardrail" { + cloudformation_type_name = "AWS::Bedrock::Guardrail" +} + +resource_schema "aws_bedrock_guardrail_version" { + cloudformation_type_name = "AWS::Bedrock::GuardrailVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_knowledge_base" { + cloudformation_type_name = "AWS::Bedrock::KnowledgeBase" +} + +resource_schema "aws_bedrock_prompt" { + cloudformation_type_name = "AWS::Bedrock::Prompt" +} + +resource_schema "aws_bedrock_prompt_version" { + cloudformation_type_name = "AWS::Bedrock::PromptVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_billingconductor_billing_group" { + cloudformation_type_name = "AWS::BillingConductor::BillingGroup" +} + +resource_schema "aws_billingconductor_custom_line_item" { + cloudformation_type_name = "AWS::BillingConductor::CustomLineItem" +} + +resource_schema "aws_billingconductor_pricing_plan" { + cloudformation_type_name = "AWS::BillingConductor::PricingPlan" +} + +resource_schema "aws_billingconductor_pricing_rule" { + cloudformation_type_name = "AWS::BillingConductor::PricingRule" +} + +resource_schema "aws_budgets_budgets_action" { + cloudformation_type_name = "AWS::Budgets::BudgetsAction" +} + +resource_schema "aws_ce_anomaly_monitor" { + cloudformation_type_name = "AWS::CE::AnomalyMonitor" +} + +resource_schema "aws_ce_anomaly_subscription" { + cloudformation_type_name = "AWS::CE::AnomalySubscription" +} + +resource_schema "aws_ce_cost_category" { + cloudformation_type_name = "AWS::CE::CostCategory" +} + +resource_schema "aws_cur_report_definition" { + cloudformation_type_name = "AWS::CUR::ReportDefinition" +} + +resource_schema "aws_cassandra_keyspace" { + cloudformation_type_name = "AWS::Cassandra::Keyspace" +} + +resource_schema "aws_cassandra_table" { + cloudformation_type_name = "AWS::Cassandra::Table" +} + +resource_schema "aws_cassandra_type" { + cloudformation_type_name = "AWS::Cassandra::Type" +} + +resource_schema "aws_certificatemanager_account" { + cloudformation_type_name = "AWS::CertificateManager::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_chatbot_custom_action" { + cloudformation_type_name = "AWS::Chatbot::CustomAction" +} + +resource_schema "aws_chatbot_microsoft_teams_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::MicrosoftTeamsChannelConfiguration" +} + +resource_schema "aws_chatbot_slack_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::SlackChannelConfiguration" +} + +resource_schema "aws_cleanrooms_analysis_template" { + cloudformation_type_name = "AWS::CleanRooms::AnalysisTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_collaboration" { + cloudformation_type_name = "AWS::CleanRooms::Collaboration" +} + +resource_schema "aws_cleanrooms_configured_table" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTable" +} + +resource_schema "aws_cleanrooms_configured_table_association" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_id_mapping_table" { + cloudformation_type_name = "AWS::CleanRooms::IdMappingTable" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_id_namespace_association" { + cloudformation_type_name = "AWS::CleanRooms::IdNamespaceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_membership" { + cloudformation_type_name = "AWS::CleanRooms::Membership" +} + +resource_schema "aws_cleanrooms_privacy_budget_template" { + cloudformation_type_name = "AWS::CleanRooms::PrivacyBudgetTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanroomsml_training_dataset" { + cloudformation_type_name = "AWS::CleanRoomsML::TrainingDataset" +} + +resource_schema "aws_cloudformation_guard_hook" { + cloudformation_type_name = "AWS::CloudFormation::GuardHook" +} + +resource_schema "aws_cloudformation_hook_default_version" { + cloudformation_type_name = "AWS::CloudFormation::HookDefaultVersion" +} + +resource_schema "aws_cloudformation_hook_type_config" { + cloudformation_type_name = "AWS::CloudFormation::HookTypeConfig" +} + +resource_schema "aws_cloudformation_hook_version" { + cloudformation_type_name = "AWS::CloudFormation::HookVersion" +} + +resource_schema "aws_cloudformation_lambda_hook" { + cloudformation_type_name = "AWS::CloudFormation::LambdaHook" +} + +resource_schema "aws_cloudformation_module_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleDefaultVersion" +} + +resource_schema "aws_cloudformation_module_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_public_type_version" { + cloudformation_type_name = "AWS::CloudFormation::PublicTypeVersion" +} + +resource_schema "aws_cloudformation_publisher" { + cloudformation_type_name = "AWS::CloudFormation::Publisher" +} + +resource_schema "aws_cloudformation_resource_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceDefaultVersion" +} + +resource_schema "aws_cloudformation_resource_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceVersion" +} + +resource_schema "aws_cloudformation_stack" { + cloudformation_type_name = "AWS::CloudFormation::Stack" +} + +resource_schema "aws_cloudformation_stack_set" { + cloudformation_type_name = "AWS::CloudFormation::StackSet" +} + +resource_schema "aws_cloudformation_type_activation" { + cloudformation_type_name = "AWS::CloudFormation::TypeActivation" +} + +resource_schema "aws_cloudfront_anycast_ip_list" { + cloudformation_type_name = "AWS::CloudFront::AnycastIpList" +} + +resource_schema "aws_cloudfront_cache_policy" { + cloudformation_type_name = "AWS::CloudFront::CachePolicy" +} + +resource_schema "aws_cloudfront_cloudfront_origin_access_identity" { + cloudformation_type_name = "AWS::CloudFront::CloudFrontOriginAccessIdentity" +} + +resource_schema "aws_cloudfront_continuous_deployment_policy" { + cloudformation_type_name = "AWS::CloudFront::ContinuousDeploymentPolicy" +} + +resource_schema "aws_cloudfront_distribution" { + cloudformation_type_name = "AWS::CloudFront::Distribution" +} + +resource_schema "aws_cloudfront_function" { + cloudformation_type_name = "AWS::CloudFront::Function" +} + +resource_schema "aws_cloudfront_key_group" { + cloudformation_type_name = "AWS::CloudFront::KeyGroup" +} + +resource_schema "aws_cloudfront_key_value_store" { + cloudformation_type_name = "AWS::CloudFront::KeyValueStore" +} + +resource_schema "aws_cloudfront_monitoring_subscription" { + cloudformation_type_name = "AWS::CloudFront::MonitoringSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudfront_origin_access_control" { + cloudformation_type_name = "AWS::CloudFront::OriginAccessControl" +} + +resource_schema "aws_cloudfront_origin_request_policy" { + cloudformation_type_name = "AWS::CloudFront::OriginRequestPolicy" +} + +resource_schema "aws_cloudfront_public_key" { + cloudformation_type_name = "AWS::CloudFront::PublicKey" +} + +resource_schema "aws_cloudfront_realtime_log_config" { + cloudformation_type_name = "AWS::CloudFront::RealtimeLogConfig" +} + +resource_schema "aws_cloudfront_response_headers_policy" { + cloudformation_type_name = "AWS::CloudFront::ResponseHeadersPolicy" +} + +resource_schema "aws_cloudfront_vpc_origin" { + cloudformation_type_name = "AWS::CloudFront::VpcOrigin" +} + +resource_schema "aws_cloudtrail_channel" { + cloudformation_type_name = "AWS::CloudTrail::Channel" +} + +resource_schema "aws_cloudtrail_dashboard" { + cloudformation_type_name = "AWS::CloudTrail::Dashboard" +} + +resource_schema "aws_cloudtrail_event_data_store" { + cloudformation_type_name = "AWS::CloudTrail::EventDataStore" +} + +resource_schema "aws_cloudtrail_resource_policy" { + cloudformation_type_name = "AWS::CloudTrail::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudtrail_trail" { + cloudformation_type_name = "AWS::CloudTrail::Trail" +} + +resource_schema "aws_cloudwatch_alarm" { + cloudformation_type_name = "AWS::CloudWatch::Alarm" +} + +resource_schema "aws_cloudwatch_composite_alarm" { + cloudformation_type_name = "AWS::CloudWatch::CompositeAlarm" +} + +resource_schema "aws_cloudwatch_dashboard" { + cloudformation_type_name = "AWS::CloudWatch::Dashboard" +} + +resource_schema "aws_cloudwatch_metric_stream" { + cloudformation_type_name = "AWS::CloudWatch::MetricStream" +} + +resource_schema "aws_codeartifact_domain" { + cloudformation_type_name = "AWS::CodeArtifact::Domain" +} + +resource_schema "aws_codeartifact_package_group" { + cloudformation_type_name = "AWS::CodeArtifact::PackageGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_codeartifact_repository" { + cloudformation_type_name = "AWS::CodeArtifact::Repository" +} + +resource_schema "aws_codebuild_fleet" { + cloudformation_type_name = "AWS::CodeBuild::Fleet" +} + +resource_schema "aws_codeconnections_connection" { + cloudformation_type_name = "AWS::CodeConnections::Connection" +} + +resource_schema "aws_codedeploy_application" { + cloudformation_type_name = "AWS::CodeDeploy::Application" +} + +resource_schema "aws_codedeploy_deployment_config" { + cloudformation_type_name = "AWS::CodeDeploy::DeploymentConfig" +} + +resource_schema "aws_codeguruprofiler_profiling_group" { + cloudformation_type_name = "AWS::CodeGuruProfiler::ProfilingGroup" +} + +resource_schema "aws_codegurureviewer_repository_association" { + cloudformation_type_name = "AWS::CodeGuruReviewer::RepositoryAssociation" +} + +resource_schema "aws_codepipeline_custom_action_type" { + cloudformation_type_name = "AWS::CodePipeline::CustomActionType" +} + +resource_schema "aws_codepipeline_pipeline" { + cloudformation_type_name = "AWS::CodePipeline::Pipeline" +} + +resource_schema "aws_codestarconnections_connection" { + cloudformation_type_name = "AWS::CodeStarConnections::Connection" +} + +resource_schema "aws_codestarconnections_repository_link" { + cloudformation_type_name = "AWS::CodeStarConnections::RepositoryLink" +} + +resource_schema "aws_codestarconnections_sync_configuration" { + cloudformation_type_name = "AWS::CodeStarConnections::SyncConfiguration" +} + +resource_schema "aws_codestarnotifications_notification_rule" { + cloudformation_type_name = "AWS::CodeStarNotifications::NotificationRule" +} + +resource_schema "aws_cognito_identity_pool" { + cloudformation_type_name = "AWS::Cognito::IdentityPool" +} + +resource_schema "aws_cognito_identity_pool_principal_tag" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolPrincipalTag" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_identity_pool_role_attachment" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolRoleAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_log_delivery_configuration" { + cloudformation_type_name = "AWS::Cognito::LogDeliveryConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_managed_login_branding" { + cloudformation_type_name = "AWS::Cognito::ManagedLoginBranding" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool" { + cloudformation_type_name = "AWS::Cognito::UserPool" +} + +resource_schema "aws_cognito_user_pool_client" { + cloudformation_type_name = "AWS::Cognito::UserPoolClient" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_domain" { + cloudformation_type_name = "AWS::Cognito::UserPoolDomain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_group" { + cloudformation_type_name = "AWS::Cognito::UserPoolGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_identity_provider" { + cloudformation_type_name = "AWS::Cognito::UserPoolIdentityProvider" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_resource_server" { + cloudformation_type_name = "AWS::Cognito::UserPoolResourceServer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_risk_configuration_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolRiskConfigurationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_ui_customization_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUICustomizationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user" { + cloudformation_type_name = "AWS::Cognito::UserPoolUser" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user_to_group_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUserToGroupAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_comprehend_document_classifier" { + cloudformation_type_name = "AWS::Comprehend::DocumentClassifier" +} + +resource_schema "aws_comprehend_flywheel" { + cloudformation_type_name = "AWS::Comprehend::Flywheel" +} + +resource_schema "aws_config_aggregation_authorization" { + cloudformation_type_name = "AWS::Config::AggregationAuthorization" +} + +resource_schema "aws_config_config_rule" { + cloudformation_type_name = "AWS::Config::ConfigRule" +} + +resource_schema "aws_config_configuration_aggregator" { + cloudformation_type_name = "AWS::Config::ConfigurationAggregator" +} + +resource_schema "aws_config_conformance_pack" { + cloudformation_type_name = "AWS::Config::ConformancePack" +} + +resource_schema "aws_config_organization_conformance_pack" { + cloudformation_type_name = "AWS::Config::OrganizationConformancePack" +} + +resource_schema "aws_config_stored_query" { + cloudformation_type_name = "AWS::Config::StoredQuery" +} + +resource_schema "aws_connect_agent_status" { + cloudformation_type_name = "AWS::Connect::AgentStatus" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_approved_origin" { + cloudformation_type_name = "AWS::Connect::ApprovedOrigin" +} + +resource_schema "aws_connect_contact_flow" { + cloudformation_type_name = "AWS::Connect::ContactFlow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_contact_flow_module" { + cloudformation_type_name = "AWS::Connect::ContactFlowModule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_contact_flow_version" { + cloudformation_type_name = "AWS::Connect::ContactFlowVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_email_address" { + cloudformation_type_name = "AWS::Connect::EmailAddress" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_evaluation_form" { + cloudformation_type_name = "AWS::Connect::EvaluationForm" +} + +resource_schema "aws_connect_hours_of_operation" { + cloudformation_type_name = "AWS::Connect::HoursOfOperation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_instance" { + cloudformation_type_name = "AWS::Connect::Instance" +} + +resource_schema "aws_connect_instance_storage_config" { + cloudformation_type_name = "AWS::Connect::InstanceStorageConfig" +} + +resource_schema "aws_connect_integration_association" { + cloudformation_type_name = "AWS::Connect::IntegrationAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_phone_number" { + cloudformation_type_name = "AWS::Connect::PhoneNumber" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_predefined_attribute" { + cloudformation_type_name = "AWS::Connect::PredefinedAttribute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_prompt" { + cloudformation_type_name = "AWS::Connect::Prompt" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_queue" { + cloudformation_type_name = "AWS::Connect::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_quick_connect" { + cloudformation_type_name = "AWS::Connect::QuickConnect" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_routing_profile" { + cloudformation_type_name = "AWS::Connect::RoutingProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_rule" { + cloudformation_type_name = "AWS::Connect::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_security_key" { + cloudformation_type_name = "AWS::Connect::SecurityKey" +} + +resource_schema "aws_connect_security_profile" { + cloudformation_type_name = "AWS::Connect::SecurityProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_task_template" { + cloudformation_type_name = "AWS::Connect::TaskTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_traffic_distribution_group" { + cloudformation_type_name = "AWS::Connect::TrafficDistributionGroup" +} + +resource_schema "aws_connect_user" { + cloudformation_type_name = "AWS::Connect::User" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_user_hierarchy_group" { + cloudformation_type_name = "AWS::Connect::UserHierarchyGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_user_hierarchy_structure" { + cloudformation_type_name = "AWS::Connect::UserHierarchyStructure" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view" { + cloudformation_type_name = "AWS::Connect::View" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view_version" { + cloudformation_type_name = "AWS::Connect::ViewVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connectcampaigns_campaign" { + cloudformation_type_name = "AWS::ConnectCampaigns::Campaign" +} + +resource_schema "aws_connectcampaignsv2_campaign" { + cloudformation_type_name = "AWS::ConnectCampaignsV2::Campaign" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_controltower_enabled_baseline" { + cloudformation_type_name = "AWS::ControlTower::EnabledBaseline" +} + +resource_schema "aws_controltower_enabled_control" { + cloudformation_type_name = "AWS::ControlTower::EnabledControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_controltower_landing_zone" { + cloudformation_type_name = "AWS::ControlTower::LandingZone" +} + +resource_schema "aws_customerprofiles_calculated_attribute_definition" { + cloudformation_type_name = "AWS::CustomerProfiles::CalculatedAttributeDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_domain" { + cloudformation_type_name = "AWS::CustomerProfiles::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_event_stream" { + cloudformation_type_name = "AWS::CustomerProfiles::EventStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_event_trigger" { + cloudformation_type_name = "AWS::CustomerProfiles::EventTrigger" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_integration" { + cloudformation_type_name = "AWS::CustomerProfiles::Integration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_object_type" { + cloudformation_type_name = "AWS::CustomerProfiles::ObjectType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_segment_definition" { + cloudformation_type_name = "AWS::CustomerProfiles::SegmentDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_dms_data_migration" { + cloudformation_type_name = "AWS::DMS::DataMigration" +} + +resource_schema "aws_dms_data_provider" { + cloudformation_type_name = "AWS::DMS::DataProvider" +} + +resource_schema "aws_dms_instance_profile" { + cloudformation_type_name = "AWS::DMS::InstanceProfile" +} + +resource_schema "aws_dms_migration_project" { + cloudformation_type_name = "AWS::DMS::MigrationProject" +} + +resource_schema "aws_dms_replication_config" { + cloudformation_type_name = "AWS::DMS::ReplicationConfig" +} + +resource_schema "aws_databrew_dataset" { + cloudformation_type_name = "AWS::DataBrew::Dataset" +} + +resource_schema "aws_databrew_job" { + cloudformation_type_name = "AWS::DataBrew::Job" +} + +resource_schema "aws_databrew_project" { + cloudformation_type_name = "AWS::DataBrew::Project" +} + +resource_schema "aws_databrew_recipe" { + cloudformation_type_name = "AWS::DataBrew::Recipe" +} + +resource_schema "aws_databrew_ruleset" { + cloudformation_type_name = "AWS::DataBrew::Ruleset" +} + +resource_schema "aws_databrew_schedule" { + cloudformation_type_name = "AWS::DataBrew::Schedule" +} + +resource_schema "aws_datapipeline_pipeline" { + cloudformation_type_name = "AWS::DataPipeline::Pipeline" +} + +resource_schema "aws_datasync_agent" { + cloudformation_type_name = "AWS::DataSync::Agent" +} + +resource_schema "aws_datasync_location_azure_blob" { + cloudformation_type_name = "AWS::DataSync::LocationAzureBlob" +} + +resource_schema "aws_datasync_location_efs" { + cloudformation_type_name = "AWS::DataSync::LocationEFS" +} + +resource_schema "aws_datasync_location_fsx_lustre" { + cloudformation_type_name = "AWS::DataSync::LocationFSxLustre" +} + +resource_schema "aws_datasync_location_fsx_ontap" { + cloudformation_type_name = "AWS::DataSync::LocationFSxONTAP" +} + +resource_schema "aws_datasync_location_fsx_open_zfs" { + cloudformation_type_name = "AWS::DataSync::LocationFSxOpenZFS" +} + +resource_schema "aws_datasync_location_fsx_windows" { + cloudformation_type_name = "AWS::DataSync::LocationFSxWindows" +} + +resource_schema "aws_datasync_location_hdfs" { + cloudformation_type_name = "AWS::DataSync::LocationHDFS" +} + +resource_schema "aws_datasync_location_nfs" { + cloudformation_type_name = "AWS::DataSync::LocationNFS" +} + +resource_schema "aws_datasync_location_object_storage" { + cloudformation_type_name = "AWS::DataSync::LocationObjectStorage" +} + +resource_schema "aws_datasync_location_s3" { + cloudformation_type_name = "AWS::DataSync::LocationS3" +} + +resource_schema "aws_datasync_location_smb" { + cloudformation_type_name = "AWS::DataSync::LocationSMB" +} + +resource_schema "aws_datasync_storage_system" { + cloudformation_type_name = "AWS::DataSync::StorageSystem" +} + +resource_schema "aws_datasync_task" { + cloudformation_type_name = "AWS::DataSync::Task" +} + +resource_schema "aws_datazone_data_source" { + cloudformation_type_name = "AWS::DataZone::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_domain" { + cloudformation_type_name = "AWS::DataZone::Domain" +} + +resource_schema "aws_datazone_environment" { + cloudformation_type_name = "AWS::DataZone::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_actions" { + cloudformation_type_name = "AWS::DataZone::EnvironmentActions" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_blueprint_configuration" { + cloudformation_type_name = "AWS::DataZone::EnvironmentBlueprintConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_profile" { + cloudformation_type_name = "AWS::DataZone::EnvironmentProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_group_profile" { + cloudformation_type_name = "AWS::DataZone::GroupProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project" { + cloudformation_type_name = "AWS::DataZone::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project_membership" { + cloudformation_type_name = "AWS::DataZone::ProjectMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_subscription_target" { + cloudformation_type_name = "AWS::DataZone::SubscriptionTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_user_profile" { + cloudformation_type_name = "AWS::DataZone::UserProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_farm" { + cloudformation_type_name = "AWS::Deadline::Farm" +} + +resource_schema "aws_deadline_fleet" { + cloudformation_type_name = "AWS::Deadline::Fleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_license_endpoint" { + cloudformation_type_name = "AWS::Deadline::LicenseEndpoint" +} + +resource_schema "aws_deadline_limit" { + cloudformation_type_name = "AWS::Deadline::Limit" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_metered_product" { + cloudformation_type_name = "AWS::Deadline::MeteredProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_monitor" { + cloudformation_type_name = "AWS::Deadline::Monitor" +} + +resource_schema "aws_deadline_queue" { + cloudformation_type_name = "AWS::Deadline::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_environment" { + cloudformation_type_name = "AWS::Deadline::QueueEnvironment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_fleet_association" { + cloudformation_type_name = "AWS::Deadline::QueueFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_limit_association" { + cloudformation_type_name = "AWS::Deadline::QueueLimitAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_storage_profile" { + cloudformation_type_name = "AWS::Deadline::StorageProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_detective_graph" { + cloudformation_type_name = "AWS::Detective::Graph" +} + +resource_schema "aws_detective_member_invitation" { + cloudformation_type_name = "AWS::Detective::MemberInvitation" +} + +resource_schema "aws_detective_organization_admin" { + cloudformation_type_name = "AWS::Detective::OrganizationAdmin" +} + +resource_schema "aws_devopsguru_log_anomaly_detection_integration" { + cloudformation_type_name = "AWS::DevOpsGuru::LogAnomalyDetectionIntegration" +} + +resource_schema "aws_devopsguru_notification_channel" { + cloudformation_type_name = "AWS::DevOpsGuru::NotificationChannel" +} + +resource_schema "aws_devopsguru_resource_collection" { + cloudformation_type_name = "AWS::DevOpsGuru::ResourceCollection" +} + +resource_schema "aws_directoryservice_simple_ad" { + cloudformation_type_name = "AWS::DirectoryService::SimpleAD" +} + +resource_schema "aws_docdbelastic_cluster" { + cloudformation_type_name = "AWS::DocDBElastic::Cluster" +} + +resource_schema "aws_dynamodb_global_table" { + cloudformation_type_name = "AWS::DynamoDB::GlobalTable" +} + +resource_schema "aws_dynamodb_table" { + cloudformation_type_name = "AWS::DynamoDB::Table" +} + +resource_schema "aws_ec2_capacity_reservation" { + cloudformation_type_name = "AWS::EC2::CapacityReservation" +} + +resource_schema "aws_ec2_capacity_reservation_fleet" { + cloudformation_type_name = "AWS::EC2::CapacityReservationFleet" +} + +resource_schema "aws_ec2_carrier_gateway" { + cloudformation_type_name = "AWS::EC2::CarrierGateway" +} + +resource_schema "aws_ec2_customer_gateway" { + cloudformation_type_name = "AWS::EC2::CustomerGateway" +} + +resource_schema "aws_ec2_dhcp_options" { + cloudformation_type_name = "AWS::EC2::DHCPOptions" +} + +resource_schema "aws_ec2_ec2_fleet" { + cloudformation_type_name = "AWS::EC2::EC2Fleet" +} + +resource_schema "aws_ec2_eip" { + cloudformation_type_name = "AWS::EC2::EIP" +} + +resource_schema "aws_ec2_eip_association" { + cloudformation_type_name = "AWS::EC2::EIPAssociation" +} + +resource_schema "aws_ec2_egress_only_internet_gateway" { + cloudformation_type_name = "AWS::EC2::EgressOnlyInternetGateway" +} + +resource_schema "aws_ec2_enclave_certificate_iam_role_association" { + cloudformation_type_name = "AWS::EC2::EnclaveCertificateIamRoleAssociation" +} + +resource_schema "aws_ec2_flow_log" { + cloudformation_type_name = "AWS::EC2::FlowLog" +} + +resource_schema "aws_ec2_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::GatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_host" { + cloudformation_type_name = "AWS::EC2::Host" +} + +resource_schema "aws_ec2_ipam" { + cloudformation_type_name = "AWS::EC2::IPAM" +} + +resource_schema "aws_ec2_ipam_allocation" { + cloudformation_type_name = "AWS::EC2::IPAMAllocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_pool" { + cloudformation_type_name = "AWS::EC2::IPAMPool" +} + +resource_schema "aws_ec2_ipam_pool_cidr" { + cloudformation_type_name = "AWS::EC2::IPAMPoolCidr" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_resource_discovery" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscovery" +} + +resource_schema "aws_ec2_ipam_resource_discovery_association" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscoveryAssociation" +} + +resource_schema "aws_ec2_ipam_scope" { + cloudformation_type_name = "AWS::EC2::IPAMScope" +} + +resource_schema "aws_ec2_instance" { + cloudformation_type_name = "AWS::EC2::Instance" +} + +resource_schema "aws_ec2_instance_connect_endpoint" { + cloudformation_type_name = "AWS::EC2::InstanceConnectEndpoint" +} + +resource_schema "aws_ec2_internet_gateway" { + cloudformation_type_name = "AWS::EC2::InternetGateway" +} + +resource_schema "aws_ec2_key_pair" { + cloudformation_type_name = "AWS::EC2::KeyPair" +} + +resource_schema "aws_ec2_launch_template" { + cloudformation_type_name = "AWS::EC2::LaunchTemplate" +} + +resource_schema "aws_ec2_local_gateway_route" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRoute" +} + +resource_schema "aws_ec2_local_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTable" +} + +resource_schema "aws_ec2_local_gateway_route_table_vpc_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVPCAssociation" +} + +resource_schema "aws_ec2_local_gateway_route_table_virtual_interface_group_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation" +} + +resource_schema "aws_ec2_nat_gateway" { + cloudformation_type_name = "AWS::EC2::NatGateway" +} + +resource_schema "aws_ec2_network_acl" { + cloudformation_type_name = "AWS::EC2::NetworkAcl" +} + +resource_schema "aws_ec2_network_insights_access_scope" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScope" +} + +resource_schema "aws_ec2_network_insights_access_scope_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScopeAnalysis" +} + +resource_schema "aws_ec2_network_insights_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAnalysis" +} + +resource_schema "aws_ec2_network_insights_path" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsPath" +} + +resource_schema "aws_ec2_network_interface" { + cloudformation_type_name = "AWS::EC2::NetworkInterface" +} + +resource_schema "aws_ec2_network_interface_attachment" { + cloudformation_type_name = "AWS::EC2::NetworkInterfaceAttachment" +} + +resource_schema "aws_ec2_network_performance_metric_subscription" { + cloudformation_type_name = "AWS::EC2::NetworkPerformanceMetricSubscription" +} + +resource_schema "aws_ec2_placement_group" { + cloudformation_type_name = "AWS::EC2::PlacementGroup" +} + +resource_schema "aws_ec2_prefix_list" { + cloudformation_type_name = "AWS::EC2::PrefixList" +} + +resource_schema "aws_ec2_route" { + cloudformation_type_name = "AWS::EC2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_route_table" { + cloudformation_type_name = "AWS::EC2::RouteTable" +} + +resource_schema "aws_ec2_security_group" { + cloudformation_type_name = "AWS::EC2::SecurityGroup" +} + +resource_schema "aws_ec2_security_group_egress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupEgress" +} + +resource_schema "aws_ec2_security_group_ingress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupIngress" +} + +resource_schema "aws_ec2_security_group_vpc_association" { + cloudformation_type_name = "AWS::EC2::SecurityGroupVpcAssociation" +} + +resource_schema "aws_ec2_snapshot_block_public_access" { + cloudformation_type_name = "AWS::EC2::SnapshotBlockPublicAccess" +} + +resource_schema "aws_ec2_spot_fleet" { + cloudformation_type_name = "AWS::EC2::SpotFleet" +} + +resource_schema "aws_ec2_subnet" { + cloudformation_type_name = "AWS::EC2::Subnet" +} + +resource_schema "aws_ec2_subnet_cidr_block" { + cloudformation_type_name = "AWS::EC2::SubnetCidrBlock" +} + +resource_schema "aws_ec2_subnet_network_acl_association" { + cloudformation_type_name = "AWS::EC2::SubnetNetworkAclAssociation" +} + +resource_schema "aws_ec2_subnet_route_table_association" { + cloudformation_type_name = "AWS::EC2::SubnetRouteTableAssociation" +} + +resource_schema "aws_ec2_transit_gateway" { + cloudformation_type_name = "AWS::EC2::TransitGateway" +} + +resource_schema "aws_ec2_transit_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayAttachment" +} + +resource_schema "aws_ec2_transit_gateway_connect" { + cloudformation_type_name = "AWS::EC2::TransitGatewayConnect" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomain" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomainAssociation" +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_member" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupMember" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_source" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_peering_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayPeeringAttachment" +} + +resource_schema "aws_ec2_transit_gateway_route" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRoute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTable" +} + +resource_schema "aws_ec2_transit_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table_propagation" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTablePropagation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_vpc_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayVpcAttachment" +} + +resource_schema "aws_ec2_vpc" { + cloudformation_type_name = "AWS::EC2::VPC" +} + +resource_schema "aws_ec2_vpc_block_public_access_exclusion" { + cloudformation_type_name = "AWS::EC2::VPCBlockPublicAccessExclusion" +} + +resource_schema "aws_ec2_vpc_block_public_access_options" { + cloudformation_type_name = "AWS::EC2::VPCBlockPublicAccessOptions" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_vpc_cidr_block" { + cloudformation_type_name = "AWS::EC2::VPCCidrBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_vpcdhcp_options_association" { + cloudformation_type_name = "AWS::EC2::VPCDHCPOptionsAssociation" +} + +resource_schema "aws_ec2_vpc_endpoint" { + cloudformation_type_name = "AWS::EC2::VPCEndpoint" +} + +resource_schema "aws_ec2_vpc_endpoint_connection_notification" { + cloudformation_type_name = "AWS::EC2::VPCEndpointConnectionNotification" +} + +resource_schema "aws_ec2_vpc_endpoint_service" { + cloudformation_type_name = "AWS::EC2::VPCEndpointService" +} + +resource_schema "aws_ec2_vpc_endpoint_service_permissions" { + cloudformation_type_name = "AWS::EC2::VPCEndpointServicePermissions" +} + +resource_schema "aws_ec2_vpc_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::VPCGatewayAttachment" +} + +resource_schema "aws_ec2_vpc_peering_connection" { + cloudformation_type_name = "AWS::EC2::VPCPeeringConnection" +} + +resource_schema "aws_ec2_vpn_connection" { + cloudformation_type_name = "AWS::EC2::VPNConnection" +} + +resource_schema "aws_ec2_vpn_connection_route" { + cloudformation_type_name = "AWS::EC2::VPNConnectionRoute" +} + +resource_schema "aws_ec2_vpn_gateway" { + cloudformation_type_name = "AWS::EC2::VPNGateway" +} + +resource_schema "aws_ec2_verified_access_endpoint" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessEndpoint" +} + +resource_schema "aws_ec2_verified_access_group" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessGroup" +} + +resource_schema "aws_ec2_verified_access_instance" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessInstance" +} + +resource_schema "aws_ec2_verified_access_trust_provider" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessTrustProvider" +} + +resource_schema "aws_ec2_volume" { + cloudformation_type_name = "AWS::EC2::Volume" +} + +resource_schema "aws_ec2_volume_attachment" { + cloudformation_type_name = "AWS::EC2::VolumeAttachment" +} + +resource_schema "aws_ecr_public_repository" { + cloudformation_type_name = "AWS::ECR::PublicRepository" +} + +resource_schema "aws_ecr_pull_through_cache_rule" { + cloudformation_type_name = "AWS::ECR::PullThroughCacheRule" +} + +resource_schema "aws_ecr_registry_policy" { + cloudformation_type_name = "AWS::ECR::RegistryPolicy" +} + +resource_schema "aws_ecr_replication_configuration" { + cloudformation_type_name = "AWS::ECR::ReplicationConfiguration" +} + +resource_schema "aws_ecr_repository" { + cloudformation_type_name = "AWS::ECR::Repository" +} + +resource_schema "aws_ecr_repository_creation_template" { + cloudformation_type_name = "AWS::ECR::RepositoryCreationTemplate" +} + +resource_schema "aws_ecs_capacity_provider" { + cloudformation_type_name = "AWS::ECS::CapacityProvider" +} + +resource_schema "aws_ecs_cluster" { + cloudformation_type_name = "AWS::ECS::Cluster" +} + +resource_schema "aws_ecs_cluster_capacity_provider_associations" { + cloudformation_type_name = "AWS::ECS::ClusterCapacityProviderAssociations" +} + +resource_schema "aws_ecs_primary_task_set" { + cloudformation_type_name = "AWS::ECS::PrimaryTaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ecs_service" { + cloudformation_type_name = "AWS::ECS::Service" +} + +resource_schema "aws_ecs_task_definition" { + cloudformation_type_name = "AWS::ECS::TaskDefinition" +} + +resource_schema "aws_ecs_task_set" { + cloudformation_type_name = "AWS::ECS::TaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_efs_access_point" { + cloudformation_type_name = "AWS::EFS::AccessPoint" +} + +resource_schema "aws_efs_file_system" { + cloudformation_type_name = "AWS::EFS::FileSystem" +} + +resource_schema "aws_efs_mount_target" { + cloudformation_type_name = "AWS::EFS::MountTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_access_entry" { + cloudformation_type_name = "AWS::EKS::AccessEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_addon" { + cloudformation_type_name = "AWS::EKS::Addon" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_cluster" { + cloudformation_type_name = "AWS::EKS::Cluster" +} + +resource_schema "aws_eks_fargate_profile" { + cloudformation_type_name = "AWS::EKS::FargateProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_identity_provider_config" { + cloudformation_type_name = "AWS::EKS::IdentityProviderConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_nodegroup" { + cloudformation_type_name = "AWS::EKS::Nodegroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_pod_identity_association" { + cloudformation_type_name = "AWS::EKS::PodIdentityAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_emr_security_configuration" { + cloudformation_type_name = "AWS::EMR::SecurityConfiguration" +} + +resource_schema "aws_emr_studio" { + cloudformation_type_name = "AWS::EMR::Studio" +} + +resource_schema "aws_emr_studio_session_mapping" { + cloudformation_type_name = "AWS::EMR::StudioSessionMapping" +} + +resource_schema "aws_emr_wal_workspace" { + cloudformation_type_name = "AWS::EMR::WALWorkspace" +} + +resource_schema "aws_emrcontainers_virtual_cluster" { + cloudformation_type_name = "AWS::EMRContainers::VirtualCluster" +} + +resource_schema "aws_emrserverless_application" { + cloudformation_type_name = "AWS::EMRServerless::Application" +} + +resource_schema "aws_elasticache_global_replication_group" { + cloudformation_type_name = "AWS::ElastiCache::GlobalReplicationGroup" +} + +resource_schema "aws_elasticache_parameter_group" { + cloudformation_type_name = "AWS::ElastiCache::ParameterGroup" +} + +resource_schema "aws_elasticache_serverless_cache" { + cloudformation_type_name = "AWS::ElastiCache::ServerlessCache" +} + +resource_schema "aws_elasticache_subnet_group" { + cloudformation_type_name = "AWS::ElastiCache::SubnetGroup" +} + +resource_schema "aws_elasticache_user" { + cloudformation_type_name = "AWS::ElastiCache::User" +} + +resource_schema "aws_elasticache_user_group" { + cloudformation_type_name = "AWS::ElastiCache::UserGroup" +} + +resource_schema "aws_elasticbeanstalk_application" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Application" +} + +resource_schema "aws_elasticbeanstalk_application_version" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ApplicationVersion" +} + +resource_schema "aws_elasticbeanstalk_configuration_template" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ConfigurationTemplate" +} + +resource_schema "aws_elasticbeanstalk_environment" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Environment" +} + +resource_schema "aws_elasticloadbalancingv2_listener" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_listener_rule" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::ListenerRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_load_balancer" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::LoadBalancer" +} + +resource_schema "aws_elasticloadbalancingv2_target_group" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TargetGroup" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStore" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store_revocation" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStoreRevocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_id_mapping_workflow" { + cloudformation_type_name = "AWS::EntityResolution::IdMappingWorkflow" +} + +resource_schema "aws_entityresolution_id_namespace" { + cloudformation_type_name = "AWS::EntityResolution::IdNamespace" +} + +resource_schema "aws_entityresolution_matching_workflow" { + cloudformation_type_name = "AWS::EntityResolution::MatchingWorkflow" +} + +resource_schema "aws_entityresolution_policy_statement" { + cloudformation_type_name = "AWS::EntityResolution::PolicyStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_schema_mapping" { + cloudformation_type_name = "AWS::EntityResolution::SchemaMapping" +} + +resource_schema "aws_eventschemas_discoverer" { + cloudformation_type_name = "AWS::EventSchemas::Discoverer" +} + +resource_schema "aws_eventschemas_registry" { + cloudformation_type_name = "AWS::EventSchemas::Registry" +} + +resource_schema "aws_eventschemas_registry_policy" { + cloudformation_type_name = "AWS::EventSchemas::RegistryPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eventschemas_schema" { + cloudformation_type_name = "AWS::EventSchemas::Schema" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_events_api_destination" { + cloudformation_type_name = "AWS::Events::ApiDestination" +} + +resource_schema "aws_events_archive" { + cloudformation_type_name = "AWS::Events::Archive" +} + +resource_schema "aws_events_connection" { + cloudformation_type_name = "AWS::Events::Connection" +} + +resource_schema "aws_events_endpoint" { + cloudformation_type_name = "AWS::Events::Endpoint" +} + +resource_schema "aws_events_event_bus" { + cloudformation_type_name = "AWS::Events::EventBus" +} + +resource_schema "aws_events_rule" { + cloudformation_type_name = "AWS::Events::Rule" +} + +resource_schema "aws_evidently_experiment" { + cloudformation_type_name = "AWS::Evidently::Experiment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_feature" { + cloudformation_type_name = "AWS::Evidently::Feature" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_launch" { + cloudformation_type_name = "AWS::Evidently::Launch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_project" { + cloudformation_type_name = "AWS::Evidently::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_segment" { + cloudformation_type_name = "AWS::Evidently::Segment" +} + +resource_schema "aws_fis_experiment_template" { + cloudformation_type_name = "AWS::FIS::ExperimentTemplate" +} + +resource_schema "aws_fis_target_account_configuration" { + cloudformation_type_name = "AWS::FIS::TargetAccountConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fms_notification_channel" { + cloudformation_type_name = "AWS::FMS::NotificationChannel" +} + +resource_schema "aws_fms_policy" { + cloudformation_type_name = "AWS::FMS::Policy" +} + +resource_schema "aws_fms_resource_set" { + cloudformation_type_name = "AWS::FMS::ResourceSet" +} + +resource_schema "aws_fsx_data_repository_association" { + cloudformation_type_name = "AWS::FSx::DataRepositoryAssociation" +} + +resource_schema "aws_finspace_environment" { + cloudformation_type_name = "AWS::FinSpace::Environment" +} + +resource_schema "aws_forecast_dataset" { + cloudformation_type_name = "AWS::Forecast::Dataset" +} + +resource_schema "aws_forecast_dataset_group" { + cloudformation_type_name = "AWS::Forecast::DatasetGroup" +} + +resource_schema "aws_frauddetector_detector" { + cloudformation_type_name = "AWS::FraudDetector::Detector" +} + +resource_schema "aws_frauddetector_entity_type" { + cloudformation_type_name = "AWS::FraudDetector::EntityType" +} + +resource_schema "aws_frauddetector_event_type" { + cloudformation_type_name = "AWS::FraudDetector::EventType" +} + +resource_schema "aws_frauddetector_label" { + cloudformation_type_name = "AWS::FraudDetector::Label" +} + +resource_schema "aws_frauddetector_list" { + cloudformation_type_name = "AWS::FraudDetector::List" +} + +resource_schema "aws_frauddetector_outcome" { + cloudformation_type_name = "AWS::FraudDetector::Outcome" +} + +resource_schema "aws_frauddetector_variable" { + cloudformation_type_name = "AWS::FraudDetector::Variable" +} + +resource_schema "aws_gamelift_alias" { + cloudformation_type_name = "AWS::GameLift::Alias" +} + +resource_schema "aws_gamelift_build" { + cloudformation_type_name = "AWS::GameLift::Build" +} + +resource_schema "aws_gamelift_container_fleet" { + cloudformation_type_name = "AWS::GameLift::ContainerFleet" +} + +resource_schema "aws_gamelift_container_group_definition" { + cloudformation_type_name = "AWS::GameLift::ContainerGroupDefinition" +} + +resource_schema "aws_gamelift_fleet" { + cloudformation_type_name = "AWS::GameLift::Fleet" +} + +resource_schema "aws_gamelift_game_server_group" { + cloudformation_type_name = "AWS::GameLift::GameServerGroup" +} + +resource_schema "aws_gamelift_game_session_queue" { + cloudformation_type_name = "AWS::GameLift::GameSessionQueue" +} + +resource_schema "aws_gamelift_location" { + cloudformation_type_name = "AWS::GameLift::Location" +} + +resource_schema "aws_gamelift_matchmaking_configuration" { + cloudformation_type_name = "AWS::GameLift::MatchmakingConfiguration" +} + +resource_schema "aws_gamelift_matchmaking_rule_set" { + cloudformation_type_name = "AWS::GameLift::MatchmakingRuleSet" +} + +resource_schema "aws_gamelift_script" { + cloudformation_type_name = "AWS::GameLift::Script" +} + +resource_schema "aws_globalaccelerator_accelerator" { + cloudformation_type_name = "AWS::GlobalAccelerator::Accelerator" +} + +resource_schema "aws_globalaccelerator_cross_account_attachment" { + cloudformation_type_name = "AWS::GlobalAccelerator::CrossAccountAttachment" +} + +resource_schema "aws_globalaccelerator_endpoint_group" { + cloudformation_type_name = "AWS::GlobalAccelerator::EndpointGroup" +} + +resource_schema "aws_globalaccelerator_listener" { + cloudformation_type_name = "AWS::GlobalAccelerator::Listener" +} + +resource_schema "aws_glue_crawler" { + cloudformation_type_name = "AWS::Glue::Crawler" +} + +resource_schema "aws_glue_database" { + cloudformation_type_name = "AWS::Glue::Database" +} + +resource_schema "aws_glue_job" { + cloudformation_type_name = "AWS::Glue::Job" +} + +resource_schema "aws_glue_registry" { + cloudformation_type_name = "AWS::Glue::Registry" +} + +resource_schema "aws_glue_schema" { + cloudformation_type_name = "AWS::Glue::Schema" +} + +resource_schema "aws_glue_schema_version" { + cloudformation_type_name = "AWS::Glue::SchemaVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_schema_version_metadata" { + cloudformation_type_name = "AWS::Glue::SchemaVersionMetadata" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_trigger" { + cloudformation_type_name = "AWS::Glue::Trigger" +} + +resource_schema "aws_glue_usage_profile" { + cloudformation_type_name = "AWS::Glue::UsageProfile" +} + +resource_schema "aws_grafana_workspace" { + cloudformation_type_name = "AWS::Grafana::Workspace" +} + +resource_schema "aws_greengrassv2_component_version" { + cloudformation_type_name = "AWS::GreengrassV2::ComponentVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_greengrassv2_deployment" { + cloudformation_type_name = "AWS::GreengrassV2::Deployment" +} + +resource_schema "aws_groundstation_config" { + cloudformation_type_name = "AWS::GroundStation::Config" +} + +resource_schema "aws_groundstation_dataflow_endpoint_group" { + cloudformation_type_name = "AWS::GroundStation::DataflowEndpointGroup" +} + +resource_schema "aws_groundstation_mission_profile" { + cloudformation_type_name = "AWS::GroundStation::MissionProfile" +} + +resource_schema "aws_guardduty_detector" { + cloudformation_type_name = "AWS::GuardDuty::Detector" +} + +resource_schema "aws_guardduty_filter" { + cloudformation_type_name = "AWS::GuardDuty::Filter" +} + +resource_schema "aws_guardduty_ip_set" { + cloudformation_type_name = "AWS::GuardDuty::IPSet" +} + +resource_schema "aws_guardduty_malware_protection_plan" { + cloudformation_type_name = "AWS::GuardDuty::MalwareProtectionPlan" +} + +resource_schema "aws_guardduty_master" { + cloudformation_type_name = "AWS::GuardDuty::Master" +} + +resource_schema "aws_guardduty_member" { + cloudformation_type_name = "AWS::GuardDuty::Member" +} + +resource_schema "aws_guardduty_publishing_destination" { + cloudformation_type_name = "AWS::GuardDuty::PublishingDestination" +} + +resource_schema "aws_guardduty_threat_intel_set" { + cloudformation_type_name = "AWS::GuardDuty::ThreatIntelSet" +} + +resource_schema "aws_healthimaging_datastore" { + cloudformation_type_name = "AWS::HealthImaging::Datastore" +} + +resource_schema "aws_healthlake_fhir_datastore" { + cloudformation_type_name = "AWS::HealthLake::FHIRDatastore" +} + +resource_schema "aws_iam_group" { + cloudformation_type_name = "AWS::IAM::Group" +} + +resource_schema "aws_iam_group_policy" { + cloudformation_type_name = "AWS::IAM::GroupPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_instance_profile" { + cloudformation_type_name = "AWS::IAM::InstanceProfile" +} + +resource_schema "aws_iam_managed_policy" { + cloudformation_type_name = "AWS::IAM::ManagedPolicy" +} + +resource_schema "aws_iam_oidc_provider" { + cloudformation_type_name = "AWS::IAM::OIDCProvider" +} + +resource_schema "aws_iam_role" { + cloudformation_type_name = "AWS::IAM::Role" +} + +resource_schema "aws_iam_role_policy" { + cloudformation_type_name = "AWS::IAM::RolePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_saml_provider" { + cloudformation_type_name = "AWS::IAM::SAMLProvider" +} + +resource_schema "aws_iam_server_certificate" { + cloudformation_type_name = "AWS::IAM::ServerCertificate" +} + +resource_schema "aws_iam_service_linked_role" { + cloudformation_type_name = "AWS::IAM::ServiceLinkedRole" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_user" { + cloudformation_type_name = "AWS::IAM::User" +} + +resource_schema "aws_iam_user_policy" { + cloudformation_type_name = "AWS::IAM::UserPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_virtual_mfa_device" { + cloudformation_type_name = "AWS::IAM::VirtualMFADevice" +} + +resource_schema "aws_ivs_channel" { + cloudformation_type_name = "AWS::IVS::Channel" +} + +resource_schema "aws_ivs_encoder_configuration" { + cloudformation_type_name = "AWS::IVS::EncoderConfiguration" +} + +resource_schema "aws_ivs_ingest_configuration" { + cloudformation_type_name = "AWS::IVS::IngestConfiguration" +} + +resource_schema "aws_ivs_playback_key_pair" { + cloudformation_type_name = "AWS::IVS::PlaybackKeyPair" +} + +resource_schema "aws_ivs_playback_restriction_policy" { + cloudformation_type_name = "AWS::IVS::PlaybackRestrictionPolicy" +} + +resource_schema "aws_ivs_public_key" { + cloudformation_type_name = "AWS::IVS::PublicKey" +} + +resource_schema "aws_ivs_recording_configuration" { + cloudformation_type_name = "AWS::IVS::RecordingConfiguration" +} + +resource_schema "aws_ivs_stage" { + cloudformation_type_name = "AWS::IVS::Stage" +} + +resource_schema "aws_ivs_storage_configuration" { + cloudformation_type_name = "AWS::IVS::StorageConfiguration" +} + +resource_schema "aws_ivs_stream_key" { + cloudformation_type_name = "AWS::IVS::StreamKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ivschat_logging_configuration" { + cloudformation_type_name = "AWS::IVSChat::LoggingConfiguration" +} + +resource_schema "aws_ivschat_room" { + cloudformation_type_name = "AWS::IVSChat::Room" +} + +resource_schema "aws_identitystore_group" { + cloudformation_type_name = "AWS::IdentityStore::Group" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_identitystore_group_membership" { + cloudformation_type_name = "AWS::IdentityStore::GroupMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_component" { + cloudformation_type_name = "AWS::ImageBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_container_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ContainerRecipe" +} + +resource_schema "aws_imagebuilder_distribution_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::DistributionConfiguration" +} + +resource_schema "aws_imagebuilder_image" { + cloudformation_type_name = "AWS::ImageBuilder::Image" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_image_pipeline" { + cloudformation_type_name = "AWS::ImageBuilder::ImagePipeline" +} + +resource_schema "aws_imagebuilder_image_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ImageRecipe" +} + +resource_schema "aws_imagebuilder_infrastructure_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::InfrastructureConfiguration" +} + +resource_schema "aws_imagebuilder_lifecycle_policy" { + cloudformation_type_name = "AWS::ImageBuilder::LifecyclePolicy" +} + +resource_schema "aws_imagebuilder_workflow" { + cloudformation_type_name = "AWS::ImageBuilder::Workflow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspector_assessment_target" { + cloudformation_type_name = "AWS::Inspector::AssessmentTarget" +} + +resource_schema "aws_inspector_assessment_template" { + cloudformation_type_name = "AWS::Inspector::AssessmentTemplate" +} + +resource_schema "aws_inspector_resource_group" { + cloudformation_type_name = "AWS::Inspector::ResourceGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspectorv2_cis_scan_configuration" { + cloudformation_type_name = "AWS::InspectorV2::CisScanConfiguration" +} + +resource_schema "aws_inspectorv2_filter" { + cloudformation_type_name = "AWS::InspectorV2::Filter" +} + +resource_schema "aws_internetmonitor_monitor" { + cloudformation_type_name = "AWS::InternetMonitor::Monitor" +} + +resource_schema "aws_invoicing_invoice_unit" { + cloudformation_type_name = "AWS::Invoicing::InvoiceUnit" +} + +resource_schema "aws_iot_account_audit_configuration" { + cloudformation_type_name = "AWS::IoT::AccountAuditConfiguration" +} + +resource_schema "aws_iot_authorizer" { + cloudformation_type_name = "AWS::IoT::Authorizer" +} + +resource_schema "aws_iot_billing_group" { + cloudformation_type_name = "AWS::IoT::BillingGroup" +} + +resource_schema "aws_iot_ca_certificate" { + cloudformation_type_name = "AWS::IoT::CACertificate" +} + +resource_schema "aws_iot_certificate" { + cloudformation_type_name = "AWS::IoT::Certificate" +} + +resource_schema "aws_iot_certificate_provider" { + cloudformation_type_name = "AWS::IoT::CertificateProvider" +} + +resource_schema "aws_iot_command" { + cloudformation_type_name = "AWS::IoT::Command" +} + +resource_schema "aws_iot_custom_metric" { + cloudformation_type_name = "AWS::IoT::CustomMetric" +} + +resource_schema "aws_iot_dimension" { + cloudformation_type_name = "AWS::IoT::Dimension" +} + +resource_schema "aws_iot_domain_configuration" { + cloudformation_type_name = "AWS::IoT::DomainConfiguration" +} + +resource_schema "aws_iot_fleet_metric" { + cloudformation_type_name = "AWS::IoT::FleetMetric" +} + +resource_schema "aws_iot_job_template" { + cloudformation_type_name = "AWS::IoT::JobTemplate" +} + +resource_schema "aws_iot_logging" { + cloudformation_type_name = "AWS::IoT::Logging" +} + +resource_schema "aws_iot_mitigation_action" { + cloudformation_type_name = "AWS::IoT::MitigationAction" +} + +resource_schema "aws_iot_policy" { + cloudformation_type_name = "AWS::IoT::Policy" +} + +resource_schema "aws_iot_provisioning_template" { + cloudformation_type_name = "AWS::IoT::ProvisioningTemplate" +} + +resource_schema "aws_iot_resource_specific_logging" { + cloudformation_type_name = "AWS::IoT::ResourceSpecificLogging" +} + +resource_schema "aws_iot_role_alias" { + cloudformation_type_name = "AWS::IoT::RoleAlias" +} + +resource_schema "aws_iot_scheduled_audit" { + cloudformation_type_name = "AWS::IoT::ScheduledAudit" +} + +resource_schema "aws_iot_security_profile" { + cloudformation_type_name = "AWS::IoT::SecurityProfile" +} + +resource_schema "aws_iot_software_package" { + cloudformation_type_name = "AWS::IoT::SoftwarePackage" +} + +resource_schema "aws_iot_software_package_version" { + cloudformation_type_name = "AWS::IoT::SoftwarePackageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iot_thing" { + cloudformation_type_name = "AWS::IoT::Thing" +} + +resource_schema "aws_iot_thing_group" { + cloudformation_type_name = "AWS::IoT::ThingGroup" +} + +resource_schema "aws_iot_thing_type" { + cloudformation_type_name = "AWS::IoT::ThingType" +} + +resource_schema "aws_iot_topic_rule" { + cloudformation_type_name = "AWS::IoT::TopicRule" +} + +resource_schema "aws_iot_topic_rule_destination" { + cloudformation_type_name = "AWS::IoT::TopicRuleDestination" +} + +resource_schema "aws_iotanalytics_channel" { + cloudformation_type_name = "AWS::IoTAnalytics::Channel" +} + +resource_schema "aws_iotanalytics_dataset" { + cloudformation_type_name = "AWS::IoTAnalytics::Dataset" +} + +resource_schema "aws_iotanalytics_datastore" { + cloudformation_type_name = "AWS::IoTAnalytics::Datastore" +} + +resource_schema "aws_iotanalytics_pipeline" { + cloudformation_type_name = "AWS::IoTAnalytics::Pipeline" +} + +resource_schema "aws_iotcoredeviceadvisor_suite_definition" { + cloudformation_type_name = "AWS::IoTCoreDeviceAdvisor::SuiteDefinition" +} + +resource_schema "aws_iotevents_alarm_model" { + cloudformation_type_name = "AWS::IoTEvents::AlarmModel" +} + +resource_schema "aws_iotevents_detector_model" { + cloudformation_type_name = "AWS::IoTEvents::DetectorModel" +} + +resource_schema "aws_iotevents_input" { + cloudformation_type_name = "AWS::IoTEvents::Input" +} + +resource_schema "aws_iotfleethub_application" { + cloudformation_type_name = "AWS::IoTFleetHub::Application" +} + +resource_schema "aws_iotfleetwise_campaign" { + cloudformation_type_name = "AWS::IoTFleetWise::Campaign" +} + +resource_schema "aws_iotfleetwise_decoder_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::DecoderManifest" +} + +resource_schema "aws_iotfleetwise_fleet" { + cloudformation_type_name = "AWS::IoTFleetWise::Fleet" +} + +resource_schema "aws_iotfleetwise_model_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::ModelManifest" +} + +resource_schema "aws_iotfleetwise_signal_catalog" { + cloudformation_type_name = "AWS::IoTFleetWise::SignalCatalog" +} + +resource_schema "aws_iotfleetwise_state_template" { + cloudformation_type_name = "AWS::IoTFleetWise::StateTemplate" +} + +resource_schema "aws_iotfleetwise_vehicle" { + cloudformation_type_name = "AWS::IoTFleetWise::Vehicle" +} + +resource_schema "aws_iotsitewise_access_policy" { + cloudformation_type_name = "AWS::IoTSiteWise::AccessPolicy" +} + +resource_schema "aws_iotsitewise_asset" { + cloudformation_type_name = "AWS::IoTSiteWise::Asset" +} + +resource_schema "aws_iotsitewise_asset_model" { + cloudformation_type_name = "AWS::IoTSiteWise::AssetModel" +} + +resource_schema "aws_iotsitewise_dashboard" { + cloudformation_type_name = "AWS::IoTSiteWise::Dashboard" +} + +resource_schema "aws_iotsitewise_gateway" { + cloudformation_type_name = "AWS::IoTSiteWise::Gateway" +} + +resource_schema "aws_iotsitewise_portal" { + cloudformation_type_name = "AWS::IoTSiteWise::Portal" +} + +resource_schema "aws_iotsitewise_project" { + cloudformation_type_name = "AWS::IoTSiteWise::Project" +} + +resource_schema "aws_iottwinmaker_component_type" { + cloudformation_type_name = "AWS::IoTTwinMaker::ComponentType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_entity" { + cloudformation_type_name = "AWS::IoTTwinMaker::Entity" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_scene" { + cloudformation_type_name = "AWS::IoTTwinMaker::Scene" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_sync_job" { + cloudformation_type_name = "AWS::IoTTwinMaker::SyncJob" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_workspace" { + cloudformation_type_name = "AWS::IoTTwinMaker::Workspace" +} + +resource_schema "aws_iotwireless_destination" { + cloudformation_type_name = "AWS::IoTWireless::Destination" +} + +resource_schema "aws_iotwireless_device_profile" { + cloudformation_type_name = "AWS::IoTWireless::DeviceProfile" +} + +resource_schema "aws_iotwireless_fuota_task" { + cloudformation_type_name = "AWS::IoTWireless::FuotaTask" +} + +resource_schema "aws_iotwireless_multicast_group" { + cloudformation_type_name = "AWS::IoTWireless::MulticastGroup" +} + +resource_schema "aws_iotwireless_network_analyzer_configuration" { + cloudformation_type_name = "AWS::IoTWireless::NetworkAnalyzerConfiguration" +} + +resource_schema "aws_iotwireless_partner_account" { + cloudformation_type_name = "AWS::IoTWireless::PartnerAccount" +} + +resource_schema "aws_iotwireless_service_profile" { + cloudformation_type_name = "AWS::IoTWireless::ServiceProfile" +} + +resource_schema "aws_iotwireless_task_definition" { + cloudformation_type_name = "AWS::IoTWireless::TaskDefinition" +} + +resource_schema "aws_iotwireless_wireless_device" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDevice" +} + +resource_schema "aws_iotwireless_wireless_device_import_task" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDeviceImportTask" +} + +resource_schema "aws_iotwireless_wireless_gateway" { + cloudformation_type_name = "AWS::IoTWireless::WirelessGateway" +} + +resource_schema "aws_kms_alias" { + cloudformation_type_name = "AWS::KMS::Alias" +} + +resource_schema "aws_kms_key" { + cloudformation_type_name = "AWS::KMS::Key" +} + +resource_schema "aws_kms_replica_key" { + cloudformation_type_name = "AWS::KMS::ReplicaKey" +} + +resource_schema "aws_kafkaconnect_connector" { + cloudformation_type_name = "AWS::KafkaConnect::Connector" +} + +resource_schema "aws_kafkaconnect_custom_plugin" { + cloudformation_type_name = "AWS::KafkaConnect::CustomPlugin" +} + +resource_schema "aws_kafkaconnect_worker_configuration" { + cloudformation_type_name = "AWS::KafkaConnect::WorkerConfiguration" +} + +resource_schema "aws_kendra_data_source" { + cloudformation_type_name = "AWS::Kendra::DataSource" +} + +resource_schema "aws_kendra_faq" { + cloudformation_type_name = "AWS::Kendra::Faq" +} + +resource_schema "aws_kendra_index" { + cloudformation_type_name = "AWS::Kendra::Index" +} + +resource_schema "aws_kendraranking_execution_plan" { + cloudformation_type_name = "AWS::KendraRanking::ExecutionPlan" +} + +resource_schema "aws_kinesis_resource_policy" { + cloudformation_type_name = "AWS::Kinesis::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kinesis_stream" { + cloudformation_type_name = "AWS::Kinesis::Stream" +} + +resource_schema "aws_kinesisanalyticsv2_application" { + cloudformation_type_name = "AWS::KinesisAnalyticsV2::Application" +} + +resource_schema "aws_kinesisfirehose_delivery_stream" { + cloudformation_type_name = "AWS::KinesisFirehose::DeliveryStream" +} + +resource_schema "aws_kinesisvideo_signaling_channel" { + cloudformation_type_name = "AWS::KinesisVideo::SignalingChannel" +} + +resource_schema "aws_kinesisvideo_stream" { + cloudformation_type_name = "AWS::KinesisVideo::Stream" +} + +resource_schema "aws_lakeformation_data_cells_filter" { + cloudformation_type_name = "AWS::LakeFormation::DataCellsFilter" +} + +resource_schema "aws_lakeformation_principal_permissions" { + cloudformation_type_name = "AWS::LakeFormation::PrincipalPermissions" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_tag" { + cloudformation_type_name = "AWS::LakeFormation::Tag" +} + +resource_schema "aws_lakeformation_tag_association" { + cloudformation_type_name = "AWS::LakeFormation::TagAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_alias" { + cloudformation_type_name = "AWS::Lambda::Alias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_code_signing_config" { + cloudformation_type_name = "AWS::Lambda::CodeSigningConfig" +} + +resource_schema "aws_lambda_event_invoke_config" { + cloudformation_type_name = "AWS::Lambda::EventInvokeConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_event_source_mapping" { + cloudformation_type_name = "AWS::Lambda::EventSourceMapping" +} + +resource_schema "aws_lambda_function" { + cloudformation_type_name = "AWS::Lambda::Function" +} + +resource_schema "aws_lambda_layer_version" { + cloudformation_type_name = "AWS::Lambda::LayerVersion" +} + +resource_schema "aws_lambda_layer_version_permission" { + cloudformation_type_name = "AWS::Lambda::LayerVersionPermission" +} + +resource_schema "aws_lambda_permission" { + cloudformation_type_name = "AWS::Lambda::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_url" { + cloudformation_type_name = "AWS::Lambda::Url" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_version" { + cloudformation_type_name = "AWS::Lambda::Version" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_launchwizard_deployment" { + cloudformation_type_name = "AWS::LaunchWizard::Deployment" +} + +resource_schema "aws_lex_bot" { + cloudformation_type_name = "AWS::Lex::Bot" +} + +resource_schema "aws_lex_bot_alias" { + cloudformation_type_name = "AWS::Lex::BotAlias" +} + +resource_schema "aws_lex_bot_version" { + cloudformation_type_name = "AWS::Lex::BotVersion" +} + +resource_schema "aws_lex_resource_policy" { + cloudformation_type_name = "AWS::Lex::ResourcePolicy" +} + +resource_schema "aws_licensemanager_grant" { + cloudformation_type_name = "AWS::LicenseManager::Grant" +} + +resource_schema "aws_licensemanager_license" { + cloudformation_type_name = "AWS::LicenseManager::License" +} + +resource_schema "aws_lightsail_alarm" { + cloudformation_type_name = "AWS::Lightsail::Alarm" +} + +resource_schema "aws_lightsail_bucket" { + cloudformation_type_name = "AWS::Lightsail::Bucket" +} + +resource_schema "aws_lightsail_certificate" { + cloudformation_type_name = "AWS::Lightsail::Certificate" +} + +resource_schema "aws_lightsail_container" { + cloudformation_type_name = "AWS::Lightsail::Container" +} + +resource_schema "aws_lightsail_database" { + cloudformation_type_name = "AWS::Lightsail::Database" +} + +resource_schema "aws_lightsail_disk" { + cloudformation_type_name = "AWS::Lightsail::Disk" +} + +resource_schema "aws_lightsail_distribution" { + cloudformation_type_name = "AWS::Lightsail::Distribution" +} + +resource_schema "aws_lightsail_instance" { + cloudformation_type_name = "AWS::Lightsail::Instance" +} + +resource_schema "aws_lightsail_load_balancer" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancer" +} + +resource_schema "aws_lightsail_load_balancer_tls_certificate" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancerTlsCertificate" +} + +resource_schema "aws_lightsail_static_ip" { + cloudformation_type_name = "AWS::Lightsail::StaticIp" +} + +resource_schema "aws_location_api_key" { + cloudformation_type_name = "AWS::Location::APIKey" +} + +resource_schema "aws_location_geofence_collection" { + cloudformation_type_name = "AWS::Location::GeofenceCollection" +} + +resource_schema "aws_location_map" { + cloudformation_type_name = "AWS::Location::Map" +} + +resource_schema "aws_location_place_index" { + cloudformation_type_name = "AWS::Location::PlaceIndex" +} + +resource_schema "aws_location_route_calculator" { + cloudformation_type_name = "AWS::Location::RouteCalculator" +} + +resource_schema "aws_location_tracker" { + cloudformation_type_name = "AWS::Location::Tracker" +} + +resource_schema "aws_location_tracker_consumer" { + cloudformation_type_name = "AWS::Location::TrackerConsumer" +} + +resource_schema "aws_logs_account_policy" { + cloudformation_type_name = "AWS::Logs::AccountPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_delivery" { + cloudformation_type_name = "AWS::Logs::Delivery" +} + +resource_schema "aws_logs_delivery_destination" { + cloudformation_type_name = "AWS::Logs::DeliveryDestination" +} + +resource_schema "aws_logs_delivery_source" { + cloudformation_type_name = "AWS::Logs::DeliverySource" +} + +resource_schema "aws_logs_destination" { + cloudformation_type_name = "AWS::Logs::Destination" +} + +resource_schema "aws_logs_integration" { + cloudformation_type_name = "AWS::Logs::Integration" +} + +resource_schema "aws_logs_log_anomaly_detector" { + cloudformation_type_name = "AWS::Logs::LogAnomalyDetector" +} + +resource_schema "aws_logs_log_group" { + cloudformation_type_name = "AWS::Logs::LogGroup" +} + +resource_schema "aws_logs_log_stream" { + cloudformation_type_name = "AWS::Logs::LogStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_metric_filter" { + cloudformation_type_name = "AWS::Logs::MetricFilter" +} + +resource_schema "aws_logs_query_definition" { + cloudformation_type_name = "AWS::Logs::QueryDefinition" +} + +resource_schema "aws_logs_resource_policy" { + cloudformation_type_name = "AWS::Logs::ResourcePolicy" +} + +resource_schema "aws_logs_subscription_filter" { + cloudformation_type_name = "AWS::Logs::SubscriptionFilter" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_transformer" { + cloudformation_type_name = "AWS::Logs::Transformer" +} + +resource_schema "aws_lookoutequipment_inference_scheduler" { + cloudformation_type_name = "AWS::LookoutEquipment::InferenceScheduler" +} + +resource_schema "aws_lookoutmetrics_alert" { + cloudformation_type_name = "AWS::LookoutMetrics::Alert" +} + +resource_schema "aws_lookoutmetrics_anomaly_detector" { + cloudformation_type_name = "AWS::LookoutMetrics::AnomalyDetector" +} + +resource_schema "aws_lookoutvision_project" { + cloudformation_type_name = "AWS::LookoutVision::Project" +} + +resource_schema "aws_m2_application" { + cloudformation_type_name = "AWS::M2::Application" +} + +resource_schema "aws_m2_deployment" { + cloudformation_type_name = "AWS::M2::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_m2_environment" { + cloudformation_type_name = "AWS::M2::Environment" +} + +resource_schema "aws_msk_batch_scram_secret" { + cloudformation_type_name = "AWS::MSK::BatchScramSecret" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_cluster" { + cloudformation_type_name = "AWS::MSK::Cluster" +} + +resource_schema "aws_msk_cluster_policy" { + cloudformation_type_name = "AWS::MSK::ClusterPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_configuration" { + cloudformation_type_name = "AWS::MSK::Configuration" +} + +resource_schema "aws_msk_replicator" { + cloudformation_type_name = "AWS::MSK::Replicator" +} + +resource_schema "aws_msk_serverless_cluster" { + cloudformation_type_name = "AWS::MSK::ServerlessCluster" +} + +resource_schema "aws_msk_vpc_connection" { + cloudformation_type_name = "AWS::MSK::VpcConnection" +} + +resource_schema "aws_mwaa_environment" { + cloudformation_type_name = "AWS::MWAA::Environment" +} + +resource_schema "aws_macie_allow_list" { + cloudformation_type_name = "AWS::Macie::AllowList" +} + +resource_schema "aws_macie_custom_data_identifier" { + cloudformation_type_name = "AWS::Macie::CustomDataIdentifier" +} + +resource_schema "aws_macie_findings_filter" { + cloudformation_type_name = "AWS::Macie::FindingsFilter" +} + +resource_schema "aws_macie_session" { + cloudformation_type_name = "AWS::Macie::Session" +} + +resource_schema "aws_managedblockchain_accessor" { + cloudformation_type_name = "AWS::ManagedBlockchain::Accessor" +} + +resource_schema "aws_mediaconnect_bridge" { + cloudformation_type_name = "AWS::MediaConnect::Bridge" +} + +resource_schema "aws_mediaconnect_bridge_output" { + cloudformation_type_name = "AWS::MediaConnect::BridgeOutput" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_bridge_source" { + cloudformation_type_name = "AWS::MediaConnect::BridgeSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow" { + cloudformation_type_name = "AWS::MediaConnect::Flow" +} + +resource_schema "aws_mediaconnect_flow_entitlement" { + cloudformation_type_name = "AWS::MediaConnect::FlowEntitlement" +} + +resource_schema "aws_mediaconnect_flow_output" { + cloudformation_type_name = "AWS::MediaConnect::FlowOutput" +} + +resource_schema "aws_mediaconnect_flow_source" { + cloudformation_type_name = "AWS::MediaConnect::FlowSource" +} + +resource_schema "aws_mediaconnect_flow_vpc_interface" { + cloudformation_type_name = "AWS::MediaConnect::FlowVpcInterface" +} + +resource_schema "aws_mediaconnect_gateway" { + cloudformation_type_name = "AWS::MediaConnect::Gateway" +} + +resource_schema "aws_medialive_channel_placement_group" { + cloudformation_type_name = "AWS::MediaLive::ChannelPlacementGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_medialive_cloudwatch_alarm_template" { + cloudformation_type_name = "AWS::MediaLive::CloudWatchAlarmTemplate" +} + +resource_schema "aws_medialive_cloudwatch_alarm_template_group" { + cloudformation_type_name = "AWS::MediaLive::CloudWatchAlarmTemplateGroup" +} + +resource_schema "aws_medialive_cluster" { + cloudformation_type_name = "AWS::MediaLive::Cluster" +} + +resource_schema "aws_medialive_event_bridge_rule_template" { + cloudformation_type_name = "AWS::MediaLive::EventBridgeRuleTemplate" +} + +resource_schema "aws_medialive_event_bridge_rule_template_group" { + cloudformation_type_name = "AWS::MediaLive::EventBridgeRuleTemplateGroup" +} + +resource_schema "aws_medialive_multiplex" { + cloudformation_type_name = "AWS::MediaLive::Multiplex" +} + +resource_schema "aws_medialive_multiplexprogram" { + cloudformation_type_name = "AWS::MediaLive::Multiplexprogram" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_medialive_network" { + cloudformation_type_name = "AWS::MediaLive::Network" +} + +resource_schema "aws_medialive_sdi_source" { + cloudformation_type_name = "AWS::MediaLive::SdiSource" +} + +resource_schema "aws_medialive_signal_map" { + cloudformation_type_name = "AWS::MediaLive::SignalMap" +} + +resource_schema "aws_mediapackage_asset" { + cloudformation_type_name = "AWS::MediaPackage::Asset" +} + +resource_schema "aws_mediapackage_channel" { + cloudformation_type_name = "AWS::MediaPackage::Channel" +} + +resource_schema "aws_mediapackage_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackage::OriginEndpoint" +} + +resource_schema "aws_mediapackage_packaging_configuration" { + cloudformation_type_name = "AWS::MediaPackage::PackagingConfiguration" +} + +resource_schema "aws_mediapackage_packaging_group" { + cloudformation_type_name = "AWS::MediaPackage::PackagingGroup" +} + +resource_schema "aws_mediapackagev2_channel" { + cloudformation_type_name = "AWS::MediaPackageV2::Channel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_channel_group" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelGroup" +} + +resource_schema "aws_mediapackagev2_channel_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpoint" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_channel" { + cloudformation_type_name = "AWS::MediaTailor::Channel" +} + +resource_schema "aws_mediatailor_channel_policy" { + cloudformation_type_name = "AWS::MediaTailor::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_live_source" { + cloudformation_type_name = "AWS::MediaTailor::LiveSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_playback_configuration" { + cloudformation_type_name = "AWS::MediaTailor::PlaybackConfiguration" +} + +resource_schema "aws_mediatailor_source_location" { + cloudformation_type_name = "AWS::MediaTailor::SourceLocation" +} + +resource_schema "aws_mediatailor_vod_source" { + cloudformation_type_name = "AWS::MediaTailor::VodSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_memorydb_acl" { + cloudformation_type_name = "AWS::MemoryDB::ACL" +} + +resource_schema "aws_memorydb_cluster" { + cloudformation_type_name = "AWS::MemoryDB::Cluster" +} + +resource_schema "aws_memorydb_multi_region_cluster" { + cloudformation_type_name = "AWS::MemoryDB::MultiRegionCluster" +} + +resource_schema "aws_memorydb_parameter_group" { + cloudformation_type_name = "AWS::MemoryDB::ParameterGroup" +} + +resource_schema "aws_memorydb_subnet_group" { + cloudformation_type_name = "AWS::MemoryDB::SubnetGroup" +} + +resource_schema "aws_memorydb_user" { + cloudformation_type_name = "AWS::MemoryDB::User" +} + +resource_schema "aws_neptune_db_cluster" { + cloudformation_type_name = "AWS::Neptune::DBCluster" +} + +resource_schema "aws_neptunegraph_graph" { + cloudformation_type_name = "AWS::NeptuneGraph::Graph" +} + +resource_schema "aws_neptunegraph_private_graph_endpoint" { + cloudformation_type_name = "AWS::NeptuneGraph::PrivateGraphEndpoint" +} + +resource_schema "aws_networkfirewall_firewall" { + cloudformation_type_name = "AWS::NetworkFirewall::Firewall" +} + +resource_schema "aws_networkfirewall_firewall_policy" { + cloudformation_type_name = "AWS::NetworkFirewall::FirewallPolicy" +} + +resource_schema "aws_networkfirewall_logging_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::LoggingConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkfirewall_rule_group" { + cloudformation_type_name = "AWS::NetworkFirewall::RuleGroup" +} + +resource_schema "aws_networkfirewall_tls_inspection_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::TLSInspectionConfiguration" +} + +resource_schema "aws_networkmanager_connect_attachment" { + cloudformation_type_name = "AWS::NetworkManager::ConnectAttachment" +} + +resource_schema "aws_networkmanager_connect_peer" { + cloudformation_type_name = "AWS::NetworkManager::ConnectPeer" +} + +resource_schema "aws_networkmanager_core_network" { + cloudformation_type_name = "AWS::NetworkManager::CoreNetwork" +} + +resource_schema "aws_networkmanager_customer_gateway_association" { + cloudformation_type_name = "AWS::NetworkManager::CustomerGatewayAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_device" { + cloudformation_type_name = "AWS::NetworkManager::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_direct_connect_gateway_attachment" { + cloudformation_type_name = "AWS::NetworkManager::DirectConnectGatewayAttachment" +} + +resource_schema "aws_networkmanager_global_network" { + cloudformation_type_name = "AWS::NetworkManager::GlobalNetwork" +} + +resource_schema "aws_networkmanager_link" { + cloudformation_type_name = "AWS::NetworkManager::Link" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_link_association" { + cloudformation_type_name = "AWS::NetworkManager::LinkAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site" { + cloudformation_type_name = "AWS::NetworkManager::Site" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site_to_site_vpn_attachment" { + cloudformation_type_name = "AWS::NetworkManager::SiteToSiteVpnAttachment" +} + +resource_schema "aws_networkmanager_transit_gateway_peering" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayPeering" +} + +resource_schema "aws_networkmanager_transit_gateway_registration" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRegistration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_transit_gateway_route_table_attachment" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRouteTableAttachment" +} + +resource_schema "aws_networkmanager_vpc_attachment" { + cloudformation_type_name = "AWS::NetworkManager::VpcAttachment" +} + +resource_schema "aws_notifications_channel_association" { + cloudformation_type_name = "AWS::Notifications::ChannelAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_notifications_event_rule" { + cloudformation_type_name = "AWS::Notifications::EventRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_notifications_managed_notification_account_contact_association" { + cloudformation_type_name = "AWS::Notifications::ManagedNotificationAccountContactAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_notifications_managed_notification_additional_channel_association" { + cloudformation_type_name = "AWS::Notifications::ManagedNotificationAdditionalChannelAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_notifications_notification_configuration" { + cloudformation_type_name = "AWS::Notifications::NotificationConfiguration" +} + +resource_schema "aws_notifications_notification_hub" { + cloudformation_type_name = "AWS::Notifications::NotificationHub" +} + +resource_schema "aws_notificationscontacts_email_contact" { + cloudformation_type_name = "AWS::NotificationsContacts::EmailContact" +} + +resource_schema "aws_osis_pipeline" { + cloudformation_type_name = "AWS::OSIS::Pipeline" +} + +resource_schema "aws_oam_link" { + cloudformation_type_name = "AWS::Oam::Link" +} + +resource_schema "aws_oam_sink" { + cloudformation_type_name = "AWS::Oam::Sink" +} + +resource_schema "aws_omics_annotation_store" { + cloudformation_type_name = "AWS::Omics::AnnotationStore" +} + +resource_schema "aws_omics_reference_store" { + cloudformation_type_name = "AWS::Omics::ReferenceStore" +} + +resource_schema "aws_omics_run_group" { + cloudformation_type_name = "AWS::Omics::RunGroup" +} + +resource_schema "aws_omics_sequence_store" { + cloudformation_type_name = "AWS::Omics::SequenceStore" +} + +resource_schema "aws_omics_variant_store" { + cloudformation_type_name = "AWS::Omics::VariantStore" +} + +resource_schema "aws_omics_workflow" { + cloudformation_type_name = "AWS::Omics::Workflow" +} + +resource_schema "aws_opensearchserverless_access_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::AccessPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_collection" { + cloudformation_type_name = "AWS::OpenSearchServerless::Collection" +} + +resource_schema "aws_opensearchserverless_index" { + cloudformation_type_name = "AWS::OpenSearchServerless::Index" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_lifecycle_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::LifecyclePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_config" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_vpc_endpoint" { + cloudformation_type_name = "AWS::OpenSearchServerless::VpcEndpoint" +} + +resource_schema "aws_opensearchservice_application" { + cloudformation_type_name = "AWS::OpenSearchService::Application" +} + +resource_schema "aws_opensearchservice_domain" { + cloudformation_type_name = "AWS::OpenSearchService::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opsworkscm_server" { + cloudformation_type_name = "AWS::OpsWorksCM::Server" +} + +resource_schema "aws_organizations_account" { + cloudformation_type_name = "AWS::Organizations::Account" +} + +resource_schema "aws_organizations_organization" { + cloudformation_type_name = "AWS::Organizations::Organization" +} + +resource_schema "aws_organizations_organizational_unit" { + cloudformation_type_name = "AWS::Organizations::OrganizationalUnit" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_policy" { + cloudformation_type_name = "AWS::Organizations::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_resource_policy" { + cloudformation_type_name = "AWS::Organizations::ResourcePolicy" +} + +resource_schema "aws_pcaconnectorad_connector" { + cloudformation_type_name = "AWS::PCAConnectorAD::Connector" +} + +resource_schema "aws_pcaconnectorad_directory_registration" { + cloudformation_type_name = "AWS::PCAConnectorAD::DirectoryRegistration" +} + +resource_schema "aws_pcaconnectorad_service_principal_name" { + cloudformation_type_name = "AWS::PCAConnectorAD::ServicePrincipalName" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template" { + cloudformation_type_name = "AWS::PCAConnectorAD::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template_group_access_control_entry" { + cloudformation_type_name = "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorscep_challenge" { + cloudformation_type_name = "AWS::PCAConnectorSCEP::Challenge" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorscep_connector" { + cloudformation_type_name = "AWS::PCAConnectorSCEP::Connector" +} + +resource_schema "aws_pcs_cluster" { + cloudformation_type_name = "AWS::PCS::Cluster" +} + +resource_schema "aws_pcs_compute_node_group" { + cloudformation_type_name = "AWS::PCS::ComputeNodeGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcs_queue" { + cloudformation_type_name = "AWS::PCS::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_panorama_application_instance" { + cloudformation_type_name = "AWS::Panorama::ApplicationInstance" +} + +resource_schema "aws_panorama_package" { + cloudformation_type_name = "AWS::Panorama::Package" +} + +resource_schema "aws_panorama_package_version" { + cloudformation_type_name = "AWS::Panorama::PackageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_paymentcryptography_alias" { + cloudformation_type_name = "AWS::PaymentCryptography::Alias" +} + +resource_schema "aws_paymentcryptography_key" { + cloudformation_type_name = "AWS::PaymentCryptography::Key" +} + +resource_schema "aws_personalize_dataset" { + cloudformation_type_name = "AWS::Personalize::Dataset" +} + +resource_schema "aws_personalize_dataset_group" { + cloudformation_type_name = "AWS::Personalize::DatasetGroup" +} + +resource_schema "aws_personalize_schema" { + cloudformation_type_name = "AWS::Personalize::Schema" +} + +resource_schema "aws_personalize_solution" { + cloudformation_type_name = "AWS::Personalize::Solution" +} + +resource_schema "aws_pinpoint_in_app_template" { + cloudformation_type_name = "AWS::Pinpoint::InAppTemplate" +} + +resource_schema "aws_pipes_pipe" { + cloudformation_type_name = "AWS::Pipes::Pipe" +} + +resource_schema "aws_proton_environment_account_connection" { + cloudformation_type_name = "AWS::Proton::EnvironmentAccountConnection" +} + +resource_schema "aws_proton_environment_template" { + cloudformation_type_name = "AWS::Proton::EnvironmentTemplate" +} + +resource_schema "aws_proton_service_template" { + cloudformation_type_name = "AWS::Proton::ServiceTemplate" +} + +resource_schema "aws_qbusiness_application" { + cloudformation_type_name = "AWS::QBusiness::Application" +} + +resource_schema "aws_qbusiness_data_accessor" { + cloudformation_type_name = "AWS::QBusiness::DataAccessor" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_data_source" { + cloudformation_type_name = "AWS::QBusiness::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_index" { + cloudformation_type_name = "AWS::QBusiness::Index" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_permission" { + cloudformation_type_name = "AWS::QBusiness::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_plugin" { + cloudformation_type_name = "AWS::QBusiness::Plugin" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_retriever" { + cloudformation_type_name = "AWS::QBusiness::Retriever" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_web_experience" { + cloudformation_type_name = "AWS::QBusiness::WebExperience" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qldb_stream" { + cloudformation_type_name = "AWS::QLDB::Stream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_analysis" { + cloudformation_type_name = "AWS::QuickSight::Analysis" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_custom_permissions" { + cloudformation_type_name = "AWS::QuickSight::CustomPermissions" +} + +resource_schema "aws_quicksight_dashboard" { + cloudformation_type_name = "AWS::QuickSight::Dashboard" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_data_set" { + cloudformation_type_name = "AWS::QuickSight::DataSet" +} + +resource_schema "aws_quicksight_data_source" { + cloudformation_type_name = "AWS::QuickSight::DataSource" +} + +resource_schema "aws_quicksight_folder" { + cloudformation_type_name = "AWS::QuickSight::Folder" +} + +resource_schema "aws_quicksight_refresh_schedule" { + cloudformation_type_name = "AWS::QuickSight::RefreshSchedule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_template" { + cloudformation_type_name = "AWS::QuickSight::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_theme" { + cloudformation_type_name = "AWS::QuickSight::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_topic" { + cloudformation_type_name = "AWS::QuickSight::Topic" +} + +resource_schema "aws_quicksight_vpc_connection" { + cloudformation_type_name = "AWS::QuickSight::VPCConnection" +} + +resource_schema "aws_ram_permission" { + cloudformation_type_name = "AWS::RAM::Permission" +} + +resource_schema "aws_ram_resource_share" { + cloudformation_type_name = "AWS::RAM::ResourceShare" +} + +resource_schema "aws_rds_custom_db_engine_version" { + cloudformation_type_name = "AWS::RDS::CustomDBEngineVersion" +} + +resource_schema "aws_rds_db_cluster" { + cloudformation_type_name = "AWS::RDS::DBCluster" +} + +resource_schema "aws_rds_db_cluster_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBClusterParameterGroup" +} + +resource_schema "aws_rds_db_instance" { + cloudformation_type_name = "AWS::RDS::DBInstance" +} + +resource_schema "aws_rds_db_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBParameterGroup" +} + +resource_schema "aws_rds_db_proxy" { + cloudformation_type_name = "AWS::RDS::DBProxy" +} + +resource_schema "aws_rds_db_proxy_endpoint" { + cloudformation_type_name = "AWS::RDS::DBProxyEndpoint" +} + +resource_schema "aws_rds_db_proxy_target_group" { + cloudformation_type_name = "AWS::RDS::DBProxyTargetGroup" +} + +resource_schema "aws_rds_db_shard_group" { + cloudformation_type_name = "AWS::RDS::DBShardGroup" +} + +resource_schema "aws_rds_db_subnet_group" { + cloudformation_type_name = "AWS::RDS::DBSubnetGroup" +} + +resource_schema "aws_rds_event_subscription" { + cloudformation_type_name = "AWS::RDS::EventSubscription" +} + +resource_schema "aws_rds_global_cluster" { + cloudformation_type_name = "AWS::RDS::GlobalCluster" +} + +resource_schema "aws_rds_integration" { + cloudformation_type_name = "AWS::RDS::Integration" +} + +resource_schema "aws_rds_option_group" { + cloudformation_type_name = "AWS::RDS::OptionGroup" +} + +resource_schema "aws_rum_app_monitor" { + cloudformation_type_name = "AWS::RUM::AppMonitor" +} + +resource_schema "aws_rbin_rule" { + cloudformation_type_name = "AWS::Rbin::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_redshift_cluster" { + cloudformation_type_name = "AWS::Redshift::Cluster" +} + +resource_schema "aws_redshift_cluster_parameter_group" { + cloudformation_type_name = "AWS::Redshift::ClusterParameterGroup" +} + +resource_schema "aws_redshift_cluster_subnet_group" { + cloudformation_type_name = "AWS::Redshift::ClusterSubnetGroup" +} + +resource_schema "aws_redshift_endpoint_access" { + cloudformation_type_name = "AWS::Redshift::EndpointAccess" +} + +resource_schema "aws_redshift_endpoint_authorization" { + cloudformation_type_name = "AWS::Redshift::EndpointAuthorization" +} + +resource_schema "aws_redshift_event_subscription" { + cloudformation_type_name = "AWS::Redshift::EventSubscription" +} + +resource_schema "aws_redshift_integration" { + cloudformation_type_name = "AWS::Redshift::Integration" +} + +resource_schema "aws_redshift_scheduled_action" { + cloudformation_type_name = "AWS::Redshift::ScheduledAction" +} + +resource_schema "aws_redshiftserverless_namespace" { + cloudformation_type_name = "AWS::RedshiftServerless::Namespace" +} + +resource_schema "aws_redshiftserverless_workgroup" { + cloudformation_type_name = "AWS::RedshiftServerless::Workgroup" +} + +resource_schema "aws_refactorspaces_application" { + cloudformation_type_name = "AWS::RefactorSpaces::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_environment" { + cloudformation_type_name = "AWS::RefactorSpaces::Environment" +} + +resource_schema "aws_refactorspaces_route" { + cloudformation_type_name = "AWS::RefactorSpaces::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_service" { + cloudformation_type_name = "AWS::RefactorSpaces::Service" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rekognition_collection" { + cloudformation_type_name = "AWS::Rekognition::Collection" +} + +resource_schema "aws_rekognition_project" { + cloudformation_type_name = "AWS::Rekognition::Project" +} + +resource_schema "aws_rekognition_stream_processor" { + cloudformation_type_name = "AWS::Rekognition::StreamProcessor" +} + +resource_schema "aws_resiliencehub_app" { + cloudformation_type_name = "AWS::ResilienceHub::App" +} + +resource_schema "aws_resiliencehub_resiliency_policy" { + cloudformation_type_name = "AWS::ResilienceHub::ResiliencyPolicy" +} + +resource_schema "aws_resourceexplorer2_default_view_association" { + cloudformation_type_name = "AWS::ResourceExplorer2::DefaultViewAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_resourceexplorer2_index" { + cloudformation_type_name = "AWS::ResourceExplorer2::Index" +} + +resource_schema "aws_resourceexplorer2_view" { + cloudformation_type_name = "AWS::ResourceExplorer2::View" +} + +resource_schema "aws_resourcegroups_group" { + cloudformation_type_name = "AWS::ResourceGroups::Group" +} + +resource_schema "aws_resourcegroups_tag_sync_task" { + cloudformation_type_name = "AWS::ResourceGroups::TagSyncTask" +} + +resource_schema "aws_robomaker_fleet" { + cloudformation_type_name = "AWS::RoboMaker::Fleet" +} + +resource_schema "aws_robomaker_robot" { + cloudformation_type_name = "AWS::RoboMaker::Robot" +} + +resource_schema "aws_robomaker_robot_application" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplication" +} + +resource_schema "aws_robomaker_robot_application_version" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_robomaker_simulation_application" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplication" +} + +resource_schema "aws_robomaker_simulation_application_version" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rolesanywhere_crl" { + cloudformation_type_name = "AWS::RolesAnywhere::CRL" +} + +resource_schema "aws_rolesanywhere_profile" { + cloudformation_type_name = "AWS::RolesAnywhere::Profile" +} + +resource_schema "aws_rolesanywhere_trust_anchor" { + cloudformation_type_name = "AWS::RolesAnywhere::TrustAnchor" +} + +resource_schema "aws_route53_cidr_collection" { + cloudformation_type_name = "AWS::Route53::CidrCollection" +} + +resource_schema "aws_route53_dnssec" { + cloudformation_type_name = "AWS::Route53::DNSSEC" +} + +resource_schema "aws_route53_health_check" { + cloudformation_type_name = "AWS::Route53::HealthCheck" +} + +resource_schema "aws_route53_hosted_zone" { + cloudformation_type_name = "AWS::Route53::HostedZone" +} + +resource_schema "aws_route53_key_signing_key" { + cloudformation_type_name = "AWS::Route53::KeySigningKey" +} + +resource_schema "aws_route53profiles_profile" { + cloudformation_type_name = "AWS::Route53Profiles::Profile" +} + +resource_schema "aws_route53profiles_profile_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileAssociation" +} + +resource_schema "aws_route53profiles_profile_resource_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_cluster" { + cloudformation_type_name = "AWS::Route53RecoveryControl::Cluster" +} + +resource_schema "aws_route53recoverycontrol_control_panel" { + cloudformation_type_name = "AWS::Route53RecoveryControl::ControlPanel" +} + +resource_schema "aws_route53recoverycontrol_routing_control" { + cloudformation_type_name = "AWS::Route53RecoveryControl::RoutingControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_safety_rule" { + cloudformation_type_name = "AWS::Route53RecoveryControl::SafetyRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoveryreadiness_cell" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::Cell" +} + +resource_schema "aws_route53recoveryreadiness_readiness_check" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ReadinessCheck" +} + +resource_schema "aws_route53recoveryreadiness_recovery_group" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::RecoveryGroup" +} + +resource_schema "aws_route53recoveryreadiness_resource_set" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ResourceSet" +} + +resource_schema "aws_route53resolver_firewall_domain_list" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallDomainList" +} + +resource_schema "aws_route53resolver_firewall_rule_group" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroup" +} + +resource_schema "aws_route53resolver_firewall_rule_group_association" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroupAssociation" +} + +resource_schema "aws_route53resolver_outpost_resolver" { + cloudformation_type_name = "AWS::Route53Resolver::OutpostResolver" +} + +resource_schema "aws_route53resolver_resolver_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverConfig" +} + +resource_schema "aws_route53resolver_resolver_dnssec_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverDNSSECConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation" +} + +resource_schema "aws_route53resolver_resolver_rule" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRule" +} + +resource_schema "aws_route53resolver_resolver_rule_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRuleAssociation" +} + +resource_schema "aws_s3_access_grant" { + cloudformation_type_name = "AWS::S3::AccessGrant" +} + +resource_schema "aws_s3_access_grants_instance" { + cloudformation_type_name = "AWS::S3::AccessGrantsInstance" +} + +resource_schema "aws_s3_access_grants_location" { + cloudformation_type_name = "AWS::S3::AccessGrantsLocation" +} + +resource_schema "aws_s3_access_point" { + cloudformation_type_name = "AWS::S3::AccessPoint" +} + +resource_schema "aws_s3_bucket" { + cloudformation_type_name = "AWS::S3::Bucket" +} + +resource_schema "aws_s3_bucket_policy" { + cloudformation_type_name = "AWS::S3::BucketPolicy" +} + +resource_schema "aws_s3_multi_region_access_point" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPoint" +} + +resource_schema "aws_s3_multi_region_access_point_policy" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPointPolicy" +} + +resource_schema "aws_s3_storage_lens" { + cloudformation_type_name = "AWS::S3::StorageLens" +} + +resource_schema "aws_s3_storage_lens_group" { + cloudformation_type_name = "AWS::S3::StorageLensGroup" +} + +resource_schema "aws_s3express_bucket_policy" { + cloudformation_type_name = "AWS::S3Express::BucketPolicy" +} + +resource_schema "aws_s3express_directory_bucket" { + cloudformation_type_name = "AWS::S3Express::DirectoryBucket" +} + +resource_schema "aws_s3objectlambda_access_point" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPoint" +} + +resource_schema "aws_s3objectlambda_access_point_policy" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_access_point" { + cloudformation_type_name = "AWS::S3Outposts::AccessPoint" +} + +resource_schema "aws_s3outposts_bucket" { + cloudformation_type_name = "AWS::S3Outposts::Bucket" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_bucket_policy" { + cloudformation_type_name = "AWS::S3Outposts::BucketPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_endpoint" { + cloudformation_type_name = "AWS::S3Outposts::Endpoint" +} + +resource_schema "aws_s3tables_table_bucket" { + cloudformation_type_name = "AWS::S3Tables::TableBucket" +} + +resource_schema "aws_s3tables_table_bucket_policy" { + cloudformation_type_name = "AWS::S3Tables::TableBucketPolicy" +} + +resource_schema "aws_ses_configuration_set" { + cloudformation_type_name = "AWS::SES::ConfigurationSet" +} + +resource_schema "aws_ses_configuration_set_event_destination" { + cloudformation_type_name = "AWS::SES::ConfigurationSetEventDestination" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ses_contact_list" { + cloudformation_type_name = "AWS::SES::ContactList" +} + +resource_schema "aws_ses_dedicated_ip_pool" { + cloudformation_type_name = "AWS::SES::DedicatedIpPool" +} + +resource_schema "aws_ses_email_identity" { + cloudformation_type_name = "AWS::SES::EmailIdentity" +} + +resource_schema "aws_ses_mail_manager_addon_instance" { + cloudformation_type_name = "AWS::SES::MailManagerAddonInstance" +} + +resource_schema "aws_ses_mail_manager_addon_subscription" { + cloudformation_type_name = "AWS::SES::MailManagerAddonSubscription" +} + +resource_schema "aws_ses_mail_manager_archive" { + cloudformation_type_name = "AWS::SES::MailManagerArchive" +} + +resource_schema "aws_ses_mail_manager_ingress_point" { + cloudformation_type_name = "AWS::SES::MailManagerIngressPoint" +} + +resource_schema "aws_ses_mail_manager_relay" { + cloudformation_type_name = "AWS::SES::MailManagerRelay" +} + +resource_schema "aws_ses_mail_manager_rule_set" { + cloudformation_type_name = "AWS::SES::MailManagerRuleSet" +} + +resource_schema "aws_ses_mail_manager_traffic_policy" { + cloudformation_type_name = "AWS::SES::MailManagerTrafficPolicy" +} + +resource_schema "aws_ses_template" { + cloudformation_type_name = "AWS::SES::Template" +} + +resource_schema "aws_ses_vdm_attributes" { + cloudformation_type_name = "AWS::SES::VdmAttributes" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sns_subscription" { + cloudformation_type_name = "AWS::SNS::Subscription" +} + +resource_schema "aws_sns_topic" { + cloudformation_type_name = "AWS::SNS::Topic" +} + +resource_schema "aws_sns_topic_inline_policy" { + cloudformation_type_name = "AWS::SNS::TopicInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sqs_queue" { + cloudformation_type_name = "AWS::SQS::Queue" +} + +resource_schema "aws_sqs_queue_inline_policy" { + cloudformation_type_name = "AWS::SQS::QueueInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssm_association" { + cloudformation_type_name = "AWS::SSM::Association" +} + +resource_schema "aws_ssm_document" { + cloudformation_type_name = "AWS::SSM::Document" +} + +resource_schema "aws_ssm_parameter" { + cloudformation_type_name = "AWS::SSM::Parameter" +} + +resource_schema "aws_ssm_patch_baseline" { + cloudformation_type_name = "AWS::SSM::PatchBaseline" +} + +resource_schema "aws_ssm_resource_data_sync" { + cloudformation_type_name = "AWS::SSM::ResourceDataSync" +} + +resource_schema "aws_ssm_resource_policy" { + cloudformation_type_name = "AWS::SSM::ResourcePolicy" +} + +resource_schema "aws_ssmcontacts_contact" { + cloudformation_type_name = "AWS::SSMContacts::Contact" +} + +resource_schema "aws_ssmcontacts_contact_channel" { + cloudformation_type_name = "AWS::SSMContacts::ContactChannel" +} + +resource_schema "aws_ssmcontacts_plan" { + cloudformation_type_name = "AWS::SSMContacts::Plan" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssmcontacts_rotation" { + cloudformation_type_name = "AWS::SSMContacts::Rotation" +} + +resource_schema "aws_ssmincidents_replication_set" { + cloudformation_type_name = "AWS::SSMIncidents::ReplicationSet" +} + +resource_schema "aws_ssmincidents_response_plan" { + cloudformation_type_name = "AWS::SSMIncidents::ResponsePlan" +} + +resource_schema "aws_ssmquicksetup_configuration_manager" { + cloudformation_type_name = "AWS::SSMQuickSetup::ConfigurationManager" +} + +resource_schema "aws_sso_application" { + cloudformation_type_name = "AWS::SSO::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sso_application_assignment" { + cloudformation_type_name = "AWS::SSO::ApplicationAssignment" +} + +resource_schema "aws_sso_assignment" { + cloudformation_type_name = "AWS::SSO::Assignment" +} + +resource_schema "aws_sso_instance" { + cloudformation_type_name = "AWS::SSO::Instance" +} + +resource_schema "aws_sso_instance_access_control_attribute_configuration" { + cloudformation_type_name = "AWS::SSO::InstanceAccessControlAttributeConfiguration" +} + +resource_schema "aws_sso_permission_set" { + cloudformation_type_name = "AWS::SSO::PermissionSet" +} + +resource_schema "aws_sagemaker_app" { + cloudformation_type_name = "AWS::SageMaker::App" +} + +resource_schema "aws_sagemaker_app_image_config" { + cloudformation_type_name = "AWS::SageMaker::AppImageConfig" +} + +resource_schema "aws_sagemaker_cluster" { + cloudformation_type_name = "AWS::SageMaker::Cluster" +} + +resource_schema "aws_sagemaker_data_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::DataQualityJobDefinition" +} + +resource_schema "aws_sagemaker_device" { + cloudformation_type_name = "AWS::SageMaker::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_device_fleet" { + cloudformation_type_name = "AWS::SageMaker::DeviceFleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_domain" { + cloudformation_type_name = "AWS::SageMaker::Domain" +} + +resource_schema "aws_sagemaker_endpoint" { + cloudformation_type_name = "AWS::SageMaker::Endpoint" +} + +resource_schema "aws_sagemaker_feature_group" { + cloudformation_type_name = "AWS::SageMaker::FeatureGroup" +} + +resource_schema "aws_sagemaker_image" { + cloudformation_type_name = "AWS::SageMaker::Image" +} + +resource_schema "aws_sagemaker_image_version" { + cloudformation_type_name = "AWS::SageMaker::ImageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_inference_component" { + cloudformation_type_name = "AWS::SageMaker::InferenceComponent" +} + +resource_schema "aws_sagemaker_inference_experiment" { + cloudformation_type_name = "AWS::SageMaker::InferenceExperiment" +} + +resource_schema "aws_sagemaker_mlflow_tracking_server" { + cloudformation_type_name = "AWS::SageMaker::MlflowTrackingServer" +} + +resource_schema "aws_sagemaker_model_bias_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelBiasJobDefinition" +} + +resource_schema "aws_sagemaker_model_card" { + cloudformation_type_name = "AWS::SageMaker::ModelCard" +} + +resource_schema "aws_sagemaker_model_explainability_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelExplainabilityJobDefinition" +} + +resource_schema "aws_sagemaker_model_package" { + cloudformation_type_name = "AWS::SageMaker::ModelPackage" +} + +resource_schema "aws_sagemaker_model_package_group" { + cloudformation_type_name = "AWS::SageMaker::ModelPackageGroup" +} + +resource_schema "aws_sagemaker_model_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelQualityJobDefinition" +} + +resource_schema "aws_sagemaker_monitoring_schedule" { + cloudformation_type_name = "AWS::SageMaker::MonitoringSchedule" +} + +resource_schema "aws_sagemaker_partner_app" { + cloudformation_type_name = "AWS::SageMaker::PartnerApp" +} + +resource_schema "aws_sagemaker_pipeline" { + cloudformation_type_name = "AWS::SageMaker::Pipeline" +} + +resource_schema "aws_sagemaker_project" { + cloudformation_type_name = "AWS::SageMaker::Project" +} + +resource_schema "aws_sagemaker_space" { + cloudformation_type_name = "AWS::SageMaker::Space" +} + +resource_schema "aws_sagemaker_studio_lifecycle_config" { + cloudformation_type_name = "AWS::SageMaker::StudioLifecycleConfig" +} + +resource_schema "aws_sagemaker_user_profile" { + cloudformation_type_name = "AWS::SageMaker::UserProfile" +} + +resource_schema "aws_scheduler_schedule" { + cloudformation_type_name = "AWS::Scheduler::Schedule" +} + +resource_schema "aws_scheduler_schedule_group" { + cloudformation_type_name = "AWS::Scheduler::ScheduleGroup" +} + +resource_schema "aws_secretsmanager_resource_policy" { + cloudformation_type_name = "AWS::SecretsManager::ResourcePolicy" +} + +resource_schema "aws_secretsmanager_rotation_schedule" { + cloudformation_type_name = "AWS::SecretsManager::RotationSchedule" +} + +resource_schema "aws_secretsmanager_secret" { + cloudformation_type_name = "AWS::SecretsManager::Secret" +} + +resource_schema "aws_secretsmanager_secret_target_attachment" { + cloudformation_type_name = "AWS::SecretsManager::SecretTargetAttachment" +} + +resource_schema "aws_securityhub_automation_rule" { + cloudformation_type_name = "AWS::SecurityHub::AutomationRule" +} + +resource_schema "aws_securityhub_configuration_policy" { + cloudformation_type_name = "AWS::SecurityHub::ConfigurationPolicy" +} + +resource_schema "aws_securityhub_delegated_admin" { + cloudformation_type_name = "AWS::SecurityHub::DelegatedAdmin" +} + +resource_schema "aws_securityhub_finding_aggregator" { + cloudformation_type_name = "AWS::SecurityHub::FindingAggregator" +} + +resource_schema "aws_securityhub_hub" { + cloudformation_type_name = "AWS::SecurityHub::Hub" +} + +resource_schema "aws_securityhub_insight" { + cloudformation_type_name = "AWS::SecurityHub::Insight" +} + +resource_schema "aws_securityhub_organization_configuration" { + cloudformation_type_name = "AWS::SecurityHub::OrganizationConfiguration" +} + +resource_schema "aws_securityhub_policy_association" { + cloudformation_type_name = "AWS::SecurityHub::PolicyAssociation" +} + +resource_schema "aws_securityhub_product_subscription" { + cloudformation_type_name = "AWS::SecurityHub::ProductSubscription" +} + +resource_schema "aws_securityhub_security_control" { + cloudformation_type_name = "AWS::SecurityHub::SecurityControl" +} + +resource_schema "aws_securityhub_standard" { + cloudformation_type_name = "AWS::SecurityHub::Standard" +} + +resource_schema "aws_securitylake_aws_log_source" { + cloudformation_type_name = "AWS::SecurityLake::AwsLogSource" +} + +resource_schema "aws_securitylake_data_lake" { + cloudformation_type_name = "AWS::SecurityLake::DataLake" +} + +resource_schema "aws_securitylake_subscriber" { + cloudformation_type_name = "AWS::SecurityLake::Subscriber" +} + +resource_schema "aws_securitylake_subscriber_notification" { + cloudformation_type_name = "AWS::SecurityLake::SubscriberNotification" +} + +resource_schema "aws_servicecatalog_cloudformation_provisioned_product" { + cloudformation_type_name = "AWS::ServiceCatalog::CloudFormationProvisionedProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalog_service_action" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceAction" +} + +resource_schema "aws_servicecatalog_service_action_association" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceActionAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_application" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::Application" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroup" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_resource_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::ResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_shield_drt_access" { + cloudformation_type_name = "AWS::Shield::DRTAccess" +} + +resource_schema "aws_shield_proactive_engagement" { + cloudformation_type_name = "AWS::Shield::ProactiveEngagement" +} + +resource_schema "aws_shield_protection" { + cloudformation_type_name = "AWS::Shield::Protection" +} + +resource_schema "aws_shield_protection_group" { + cloudformation_type_name = "AWS::Shield::ProtectionGroup" +} + +resource_schema "aws_signer_profile_permission" { + cloudformation_type_name = "AWS::Signer::ProfilePermission" +} + +resource_schema "aws_signer_signing_profile" { + cloudformation_type_name = "AWS::Signer::SigningProfile" +} + +resource_schema "aws_simspaceweaver_simulation" { + cloudformation_type_name = "AWS::SimSpaceWeaver::Simulation" +} + +resource_schema "aws_stepfunctions_activity" { + cloudformation_type_name = "AWS::StepFunctions::Activity" +} + +resource_schema "aws_stepfunctions_state_machine" { + cloudformation_type_name = "AWS::StepFunctions::StateMachine" +} + +resource_schema "aws_stepfunctions_state_machine_alias" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_stepfunctions_state_machine_version" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_supportapp_account_alias" { + cloudformation_type_name = "AWS::SupportApp::AccountAlias" +} + +resource_schema "aws_supportapp_slack_channel_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackChannelConfiguration" +} + +resource_schema "aws_supportapp_slack_workspace_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackWorkspaceConfiguration" +} + +resource_schema "aws_synthetics_canary" { + cloudformation_type_name = "AWS::Synthetics::Canary" +} + +resource_schema "aws_synthetics_group" { + cloudformation_type_name = "AWS::Synthetics::Group" +} + +resource_schema "aws_systemsmanagersap_application" { + cloudformation_type_name = "AWS::SystemsManagerSAP::Application" +} + +resource_schema "aws_timestream_database" { + cloudformation_type_name = "AWS::Timestream::Database" +} + +resource_schema "aws_timestream_influx_db_instance" { + cloudformation_type_name = "AWS::Timestream::InfluxDBInstance" +} + +resource_schema "aws_timestream_scheduled_query" { + cloudformation_type_name = "AWS::Timestream::ScheduledQuery" +} + +resource_schema "aws_timestream_table" { + cloudformation_type_name = "AWS::Timestream::Table" +} + +resource_schema "aws_transfer_agreement" { + cloudformation_type_name = "AWS::Transfer::Agreement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_transfer_certificate" { + cloudformation_type_name = "AWS::Transfer::Certificate" +} + +resource_schema "aws_transfer_connector" { + cloudformation_type_name = "AWS::Transfer::Connector" +} + +resource_schema "aws_transfer_profile" { + cloudformation_type_name = "AWS::Transfer::Profile" +} + +resource_schema "aws_transfer_server" { + cloudformation_type_name = "AWS::Transfer::Server" +} + +resource_schema "aws_transfer_user" { + cloudformation_type_name = "AWS::Transfer::User" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_transfer_web_app" { + cloudformation_type_name = "AWS::Transfer::WebApp" +} + +resource_schema "aws_transfer_workflow" { + cloudformation_type_name = "AWS::Transfer::Workflow" +} + +resource_schema "aws_verifiedpermissions_identity_source" { + cloudformation_type_name = "AWS::VerifiedPermissions::IdentitySource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy" { + cloudformation_type_name = "AWS::VerifiedPermissions::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy_store" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyStore" +} + +resource_schema "aws_verifiedpermissions_policy_template" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_voiceid_domain" { + cloudformation_type_name = "AWS::VoiceID::Domain" +} + +resource_schema "aws_vpclattice_access_log_subscription" { + cloudformation_type_name = "AWS::VpcLattice::AccessLogSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_auth_policy" { + cloudformation_type_name = "AWS::VpcLattice::AuthPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_listener" { + cloudformation_type_name = "AWS::VpcLattice::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_resource_configuration" { + cloudformation_type_name = "AWS::VpcLattice::ResourceConfiguration" +} + +resource_schema "aws_vpclattice_resource_gateway" { + cloudformation_type_name = "AWS::VpcLattice::ResourceGateway" +} + +resource_schema "aws_vpclattice_resource_policy" { + cloudformation_type_name = "AWS::VpcLattice::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_rule" { + cloudformation_type_name = "AWS::VpcLattice::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_service" { + cloudformation_type_name = "AWS::VpcLattice::Service" +} + +resource_schema "aws_vpclattice_service_network" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetwork" +} + +resource_schema "aws_vpclattice_service_network_resource_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkResourceAssociation" +} + +resource_schema "aws_vpclattice_service_network_service_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkServiceAssociation" +} + +resource_schema "aws_vpclattice_service_network_vpc_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkVpcAssociation" +} + +resource_schema "aws_vpclattice_target_group" { + cloudformation_type_name = "AWS::VpcLattice::TargetGroup" +} + +resource_schema "aws_wafv2_ip_set" { + cloudformation_type_name = "AWS::WAFv2::IPSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_logging_configuration" { + cloudformation_type_name = "AWS::WAFv2::LoggingConfiguration" +} + +resource_schema "aws_wafv2_regex_pattern_set" { + cloudformation_type_name = "AWS::WAFv2::RegexPatternSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_rule_group" { + cloudformation_type_name = "AWS::WAFv2::RuleGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl" { + cloudformation_type_name = "AWS::WAFv2::WebACL" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl_association" { + cloudformation_type_name = "AWS::WAFv2::WebACLAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_agent" { + cloudformation_type_name = "AWS::Wisdom::AIAgent" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_agent_version" { + cloudformation_type_name = "AWS::Wisdom::AIAgentVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_guardrail" { + cloudformation_type_name = "AWS::Wisdom::AIGuardrail" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_guardrail_version" { + cloudformation_type_name = "AWS::Wisdom::AIGuardrailVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_prompt" { + cloudformation_type_name = "AWS::Wisdom::AIPrompt" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_prompt_version" { + cloudformation_type_name = "AWS::Wisdom::AIPromptVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_assistant" { + cloudformation_type_name = "AWS::Wisdom::Assistant" +} + +resource_schema "aws_wisdom_assistant_association" { + cloudformation_type_name = "AWS::Wisdom::AssistantAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_knowledge_base" { + cloudformation_type_name = "AWS::Wisdom::KnowledgeBase" +} + +resource_schema "aws_wisdom_message_template" { + cloudformation_type_name = "AWS::Wisdom::MessageTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_message_template_version" { + cloudformation_type_name = "AWS::Wisdom::MessageTemplateVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspaces_connection_alias" { + cloudformation_type_name = "AWS::WorkSpaces::ConnectionAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspaces_workspaces_pool" { + cloudformation_type_name = "AWS::WorkSpaces::WorkspacesPool" +} + +resource_schema "aws_workspacesthinclient_environment" { + cloudformation_type_name = "AWS::WorkSpacesThinClient::Environment" +} + +resource_schema "aws_workspacesweb_browser_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::BrowserSettings" +} + +resource_schema "aws_workspacesweb_data_protection_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::DataProtectionSettings" +} + +resource_schema "aws_workspacesweb_identity_provider" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IdentityProvider" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspacesweb_ip_access_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IpAccessSettings" +} + +resource_schema "aws_workspacesweb_network_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::NetworkSettings" +} + +resource_schema "aws_workspacesweb_portal" { + cloudformation_type_name = "AWS::WorkSpacesWeb::Portal" +} + +resource_schema "aws_workspacesweb_trust_store" { + cloudformation_type_name = "AWS::WorkSpacesWeb::TrustStore" +} + +resource_schema "aws_workspacesweb_user_access_logging_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserAccessLoggingSettings" +} + +resource_schema "aws_workspacesweb_user_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserSettings" +} + +resource_schema "aws_xray_group" { + cloudformation_type_name = "AWS::XRay::Group" +} + +resource_schema "aws_xray_resource_policy" { + cloudformation_type_name = "AWS::XRay::ResourcePolicy" +} + +resource_schema "aws_xray_sampling_rule" { + cloudformation_type_name = "AWS::XRay::SamplingRule" +} + +resource_schema "aws_xray_transaction_search_config" { + cloudformation_type_name = "AWS::XRay::TransactionSearchConfig" +} diff --git a/internal/provider/import_examples_gen.json b/internal/provider/import_examples_gen.json index 032200d593..e319992420 100644 --- a/internal/provider/import_examples_gen.json +++ b/internal/provider/import_examples_gen.json @@ -424,6 +424,11 @@ "identifier": ["Arn"], "path": "./examples/resources/awscc_applicationsignals_service_level_objective/import.sh" }, + { + "resource": "awscc_applicationsignals_discovery", + "identifier": ["AccountId"], + "path": "./examples/resources/awscc_applicationsignals_discovery/import.sh" + }, { "resource": "awscc_athena_capacity_reservation", "identifier": ["Arn"], @@ -5598,5 +5603,10 @@ "resource": "awscc_xray_sampling_rule", "identifier": ["RuleARN"], "path": "./examples/resources/awscc_xray_sampling_rule/import.sh" + }, + { + "resource": "awscc_xray_transaction_search_config", + "identifier": ["AccountId"], + "path": "./examples/resources/awscc_xray_transaction_search_config/import.sh" } ] diff --git a/internal/provider/plural_data_sources.go b/internal/provider/plural_data_sources.go index a37a802723..fa79258180 100644 --- a/internal/provider/plural_data_sources.go +++ b/internal/provider/plural_data_sources.go @@ -48,6 +48,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_applicationautoscaling_scalable_targets -cftype AWS::ApplicationAutoScaling::ScalableTarget -package applicationautoscaling ../aws/applicationautoscaling/scalable_target_plural_data_source_gen.go ../aws/applicationautoscaling/scalable_target_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_applicationinsights_applications -cftype AWS::ApplicationInsights::Application -package applicationinsights ../aws/applicationinsights/application_plural_data_source_gen.go ../aws/applicationinsights/application_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_applicationsignals_service_level_objectives -cftype AWS::ApplicationSignals::ServiceLevelObjective -package applicationsignals ../aws/applicationsignals/service_level_objective_plural_data_source_gen.go ../aws/applicationsignals/service_level_objective_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_applicationsignals_discoveries -cftype AWS::ApplicationSignals::Discovery -package applicationsignals ../aws/applicationsignals/discovery_plural_data_source_gen.go ../aws/applicationsignals/discovery_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_athena_capacity_reservations -cftype AWS::Athena::CapacityReservation -package athena ../aws/athena/capacity_reservation_plural_data_source_gen.go ../aws/athena/capacity_reservation_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_athena_data_catalogs -cftype AWS::Athena::DataCatalog -package athena ../aws/athena/data_catalog_plural_data_source_gen.go ../aws/athena/data_catalog_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_athena_named_queries -cftype AWS::Athena::NamedQuery -package athena ../aws/athena/named_query_plural_data_source_gen.go ../aws/athena/named_query_plural_data_source_gen_test.go @@ -849,6 +850,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_xray_groups -cftype AWS::XRay::Group -package xray ../aws/xray/group_plural_data_source_gen.go ../aws/xray/group_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_xray_resource_policies -cftype AWS::XRay::ResourcePolicy -package xray ../aws/xray/resource_policy_plural_data_source_gen.go ../aws/xray/resource_policy_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_xray_sampling_rules -cftype AWS::XRay::SamplingRule -package xray ../aws/xray/sampling_rule_plural_data_source_gen.go ../aws/xray/sampling_rule_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_xray_transaction_search_configs -cftype AWS::XRay::TransactionSearchConfig -package xray ../aws/xray/transaction_search_config_plural_data_source_gen.go ../aws/xray/transaction_search_config_plural_data_source_gen_test.go package provider diff --git a/internal/provider/resources.go b/internal/provider/resources.go index bde93610ee..c10f5403da 100644 --- a/internal/provider/resources.go +++ b/internal/provider/resources.go @@ -87,6 +87,7 @@ //go:generate go run generators/resource/main.go -resource awscc_applicationautoscaling_scaling_policy -cfschema ../service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json -package applicationautoscaling -- ../aws/applicationautoscaling/scaling_policy_resource_gen.go ../aws/applicationautoscaling/scaling_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_applicationinsights_application -cfschema ../service/cloudformation/schemas/AWS_ApplicationInsights_Application.json -package applicationinsights -- ../aws/applicationinsights/application_resource_gen.go ../aws/applicationinsights/application_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_applicationsignals_service_level_objective -cfschema ../service/cloudformation/schemas/AWS_ApplicationSignals_ServiceLevelObjective.json -package applicationsignals -- ../aws/applicationsignals/service_level_objective_resource_gen.go ../aws/applicationsignals/service_level_objective_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_applicationsignals_discovery -cfschema ../service/cloudformation/schemas/AWS_ApplicationSignals_Discovery.json -package applicationsignals -- ../aws/applicationsignals/discovery_resource_gen.go ../aws/applicationsignals/discovery_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_athena_capacity_reservation -cfschema ../service/cloudformation/schemas/AWS_Athena_CapacityReservation.json -package athena -- ../aws/athena/capacity_reservation_resource_gen.go ../aws/athena/capacity_reservation_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_athena_data_catalog -cfschema ../service/cloudformation/schemas/AWS_Athena_DataCatalog.json -package athena -- ../aws/athena/data_catalog_resource_gen.go ../aws/athena/data_catalog_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_athena_named_query -cfschema ../service/cloudformation/schemas/AWS_Athena_NamedQuery.json -package athena -- ../aws/athena/named_query_resource_gen.go ../aws/athena/named_query_resource_gen_test.go @@ -1122,6 +1123,7 @@ //go:generate go run generators/resource/main.go -resource awscc_xray_group -cfschema ../service/cloudformation/schemas/AWS_XRay_Group.json -package xray -- ../aws/xray/group_resource_gen.go ../aws/xray/group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_xray_resource_policy -cfschema ../service/cloudformation/schemas/AWS_XRay_ResourcePolicy.json -package xray -- ../aws/xray/resource_policy_resource_gen.go ../aws/xray/resource_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_xray_sampling_rule -cfschema ../service/cloudformation/schemas/AWS_XRay_SamplingRule.json -package xray -- ../aws/xray/sampling_rule_resource_gen.go ../aws/xray/sampling_rule_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_xray_transaction_search_config -cfschema ../service/cloudformation/schemas/AWS_XRay_TransactionSearchConfig.json -package xray -- ../aws/xray/transaction_search_config_resource_gen.go ../aws/xray/transaction_search_config_resource_gen_test.go package provider diff --git a/internal/provider/singular_data_sources.go b/internal/provider/singular_data_sources.go index 889cb4c8ff..5ea79be02a 100644 --- a/internal/provider/singular_data_sources.go +++ b/internal/provider/singular_data_sources.go @@ -87,6 +87,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_applicationautoscaling_scaling_policy -cfschema ../service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json -package applicationautoscaling ../aws/applicationautoscaling/scaling_policy_singular_data_source_gen.go ../aws/applicationautoscaling/scaling_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_applicationinsights_application -cfschema ../service/cloudformation/schemas/AWS_ApplicationInsights_Application.json -package applicationinsights ../aws/applicationinsights/application_singular_data_source_gen.go ../aws/applicationinsights/application_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_applicationsignals_service_level_objective -cfschema ../service/cloudformation/schemas/AWS_ApplicationSignals_ServiceLevelObjective.json -package applicationsignals ../aws/applicationsignals/service_level_objective_singular_data_source_gen.go ../aws/applicationsignals/service_level_objective_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_applicationsignals_discovery -cfschema ../service/cloudformation/schemas/AWS_ApplicationSignals_Discovery.json -package applicationsignals ../aws/applicationsignals/discovery_singular_data_source_gen.go ../aws/applicationsignals/discovery_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_athena_capacity_reservation -cfschema ../service/cloudformation/schemas/AWS_Athena_CapacityReservation.json -package athena ../aws/athena/capacity_reservation_singular_data_source_gen.go ../aws/athena/capacity_reservation_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_athena_data_catalog -cfschema ../service/cloudformation/schemas/AWS_Athena_DataCatalog.json -package athena ../aws/athena/data_catalog_singular_data_source_gen.go ../aws/athena/data_catalog_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_athena_named_query -cfschema ../service/cloudformation/schemas/AWS_Athena_NamedQuery.json -package athena ../aws/athena/named_query_singular_data_source_gen.go ../aws/athena/named_query_singular_data_source_gen_test.go @@ -1122,6 +1123,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_xray_group -cfschema ../service/cloudformation/schemas/AWS_XRay_Group.json -package xray ../aws/xray/group_singular_data_source_gen.go ../aws/xray/group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_xray_resource_policy -cfschema ../service/cloudformation/schemas/AWS_XRay_ResourcePolicy.json -package xray ../aws/xray/resource_policy_singular_data_source_gen.go ../aws/xray/resource_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_xray_sampling_rule -cfschema ../service/cloudformation/schemas/AWS_XRay_SamplingRule.json -package xray ../aws/xray/sampling_rule_singular_data_source_gen.go ../aws/xray/sampling_rule_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_xray_transaction_search_config -cfschema ../service/cloudformation/schemas/AWS_XRay_TransactionSearchConfig.json -package xray ../aws/xray/transaction_search_config_singular_data_source_gen.go ../aws/xray/transaction_search_config_singular_data_source_gen_test.go package provider diff --git a/internal/service/cloudformation/schemas/AWS_ApplicationSignals_Discovery.json b/internal/service/cloudformation/schemas/AWS_ApplicationSignals_Discovery.json new file mode 100644 index 0000000000..81ae5af3cb --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_ApplicationSignals_Discovery.json @@ -0,0 +1,59 @@ +{ + "typeName": "AWS::ApplicationSignals::Discovery", + "description": "Resource Type definition for AWS::ApplicationSignals::Discovery", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-applicationsignals", + "definitions": { + "AccountId": { + "description": "The identifier for the specified AWS account.", + "type": "string", + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$" + } + }, + "properties": { + "AccountId": { + "$ref": "#/definitions/AccountId" + } + }, + "additionalProperties": false, + "required": [], + "readOnlyProperties": [ + "/properties/AccountId" + ], + "primaryIdentifier": [ + "/properties/AccountId" + ], + "handlers": { + "create": { + "permissions": [ + "application-signals:StartDiscovery", + "application-signals:ListServices", + "iam:CreateServiceLinkedRole" + ] + }, + "read": { + "permissions": [ + "application-signals:ListServices" + ] + }, + "update": { + "permissions": [ + "application-signals:ListServices" + ] + }, + "delete": { + "permissions": [ + "application-signals:ListServices" + ] + }, + "list": { + "permissions": [ + "application-signals:ListServices" + ] + } + }, + "tagging": { + "taggable": false + } +} diff --git a/internal/service/cloudformation/schemas/AWS_XRay_TransactionSearchConfig.json b/internal/service/cloudformation/schemas/AWS_XRay_TransactionSearchConfig.json new file mode 100644 index 0000000000..3e684cd192 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_XRay_TransactionSearchConfig.json @@ -0,0 +1,77 @@ +{ + "typeName": "AWS::XRay::TransactionSearchConfig", + "description": "This schema provides construct and validation rules for AWS-XRay TransactionSearchConfig resource parameters.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "properties": { + "AccountId": { + "$ref": "#/definitions/AccountId" + }, + "IndexingPercentage": { + "$ref": "#/definitions/IndexingPercentage" + } + }, + "definitions": { + "AccountId": { + "description": "User account id, used as the primary identifier for the resource", + "type": "string", + "pattern": "^\\d{12}$" + }, + "IndexingPercentage": { + "description": "Determines the percentage of traces indexed from CloudWatch Logs to X-Ray", + "type": "number", + "minimum": 0, + "maximum": 100 + } + }, + "tagging": { + "taggable": false + }, + "handlers": { + "create": { + "permissions": [ + "application-signals:StartDiscovery", + "iam:CreateServiceLinkedRole", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutRetentionPolicy", + "xray:GetIndexingRules", + "xray:GetTraceSegmentDestination", + "xray:UpdateIndexingRule", + "xray:UpdateTraceSegmentDestination" + ] + }, + "read": { + "permissions": [ + "xray:GetTraceSegmentDestination", + "xray:GetIndexingRules" + ] + }, + "list": { + "permissions": [ + "xray:GetTraceSegmentDestination", + "xray:GetIndexingRules" + ] + }, + "update": { + "permissions": [ + "xray:GetIndexingRules", + "xray:GetTraceSegmentDestination", + "xray:UpdateIndexingRule" + ] + }, + "delete": { + "permissions": [ + "xray:GetTraceSegmentDestination", + "xray:UpdateTraceSegmentDestination", + "xray:UpdateIndexingRule" + ] + } + }, + "additionalProperties": false, + "readOnlyProperties": [ + "/properties/AccountId" + ], + "primaryIdentifier": [ + "/properties/AccountId" + ] +} From d560c2f947bc58798ec43b1d9819212e597d6386 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 13 Mar 2025 11:33:35 -0400 Subject: [PATCH 3/6] 2025/03/12 CloudFormation schemas in us-east-1; Generate Terraform resource schemas. --- .../discovery_resource_gen.go | 80 ++++++ .../discovery_resource_gen_test.go | 46 +++ .../aws/athena/data_catalog_resource_gen.go | 94 +++++- .../aws/batch/job_definition_resource_gen.go | 13 + internal/aws/bedrock/agent_resource_gen.go | 16 ++ .../aws/chatbot/custom_action_resource_gen.go | 4 +- ...eams_channel_configuration_resource_gen.go | 23 ++ internal/aws/dynamodb/table_resource_gen.go | 4 +- .../ec2/vpc_endpoint_service_resource_gen.go | 37 +++ .../pull_through_cache_rule_resource_gen.go | 59 +++- internal/aws/ecs/service_resource_gen.go | 12 +- .../aws/ecs/task_definition_resource_gen.go | 20 +- .../load_balancer_resource_gen.go | 20 +- .../software_package_version_resource_gen.go | 265 ++++++++++++++++- internal/aws/msk/replicator_resource_gen.go | 1 - .../aws/omics/reference_store_resource_gen.go | 4 - .../aws/omics/sequence_store_resource_gen.go | 4 - internal/aws/rds/db_cluster_resource_gen.go | 4 +- internal/aws/rds/db_instance_resource_gen.go | 4 +- internal/aws/rum/app_monitor_resource_gen.go | 60 ++++ .../inference_component_resource_gen.go | 269 ++++++++++++++++++ .../transaction_search_config_resource_gen.go | 102 +++++++ ...saction_search_config_resource_gen_test.go | 46 +++ 23 files changed, 1126 insertions(+), 61 deletions(-) create mode 100644 internal/aws/applicationsignals/discovery_resource_gen.go create mode 100644 internal/aws/applicationsignals/discovery_resource_gen_test.go create mode 100644 internal/aws/xray/transaction_search_config_resource_gen.go create mode 100644 internal/aws/xray/transaction_search_config_resource_gen_test.go diff --git a/internal/aws/applicationsignals/discovery_resource_gen.go b/internal/aws/applicationsignals/discovery_resource_gen.go new file mode 100644 index 0000000000..51bbe57d8c --- /dev/null +++ b/internal/aws/applicationsignals/discovery_resource_gen.go @@ -0,0 +1,80 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package applicationsignals + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_applicationsignals_discovery", discoveryResource) +} + +// discoveryResource returns the Terraform awscc_applicationsignals_discovery resource. +// This Terraform resource corresponds to the CloudFormation AWS::ApplicationSignals::Discovery resource. +func discoveryResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccountId + // CloudFormation resource type schema: + // + // { + // "description": "The identifier for the specified AWS account.", + // "maxLength": 12, + // "minLength": 12, + // "pattern": "^[0-9]{12}$", + // "type": "string" + // } + "account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier for the specified AWS account.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Resource Type definition for AWS::ApplicationSignals::Discovery", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::ApplicationSignals::Discovery").WithTerraformTypeName("awscc_applicationsignals_discovery") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "account_id": "AccountId", + }) + + opts = opts.IsImmutableType(true) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/applicationsignals/discovery_resource_gen_test.go b/internal/aws/applicationsignals/discovery_resource_gen_test.go new file mode 100644 index 0000000000..eb3a113ffc --- /dev/null +++ b/internal/aws/applicationsignals/discovery_resource_gen_test.go @@ -0,0 +1,46 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package applicationsignals_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSApplicationSignalsDiscovery_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::ApplicationSignals::Discovery", "awscc_applicationsignals_discovery", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSApplicationSignalsDiscovery_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::ApplicationSignals::Discovery", "awscc_applicationsignals_discovery", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} diff --git a/internal/aws/athena/data_catalog_resource_gen.go b/internal/aws/athena/data_catalog_resource_gen.go index 469b0cf6f3..cb94bf25d4 100644 --- a/internal/aws/athena/data_catalog_resource_gen.go +++ b/internal/aws/athena/data_catalog_resource_gen.go @@ -30,6 +30,21 @@ func init() { // This Terraform resource corresponds to the CloudFormation AWS::Athena::DataCatalog resource. func dataCatalogResource(ctx context.Context) (resource.Resource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConnectionType + // CloudFormation resource type schema: + // + // { + // "description": "The type of connection for a FEDERATED data catalog", + // "type": "string" + // } + "connection_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of connection for a FEDERATED data catalog", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // @@ -50,6 +65,21 @@ func dataCatalogResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Error + // CloudFormation resource type schema: + // + // { + // "description": "Text of the error that occurred during data catalog creation or deletion.", + // "type": "string" + // } + "error": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Text of the error that occurred during data catalog creation or deletion.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // @@ -93,6 +123,45 @@ func dataCatalogResource(ctx context.Context) (resource.Resource, error) { mapplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "The status of the creation or deletion of the data catalog. LAMBDA, GLUE, and HIVE data catalog types are created synchronously. Their status is either CREATE_COMPLETE or CREATE_FAILED. The FEDERATED data catalog type is created asynchronously.", + // "enum": [ + // "CREATE_IN_PROGRESS", + // "CREATE_COMPLETE", + // "CREATE_FAILED", + // "CREATE_FAILED_CLEANUP_IN_PROGRESS", + // "CREATE_FAILED_CLEANUP_COMPLETE", + // "CREATE_FAILED_CLEANUP_FAILED", + // "DELETE_IN_PROGRESS", + // "DELETE_COMPLETE", + // "DELETE_FAILED" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The status of the creation or deletion of the data catalog. LAMBDA, GLUE, and HIVE data catalog types are created synchronously. Their status is either CREATE_COMPLETE or CREATE_FAILED. The FEDERATED data catalog type is created asynchronously.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "CREATE_IN_PROGRESS", + "CREATE_COMPLETE", + "CREATE_FAILED", + "CREATE_FAILED_CLEANUP_IN_PROGRESS", + "CREATE_FAILED_CLEANUP_COMPLETE", + "CREATE_FAILED_CLEANUP_FAILED", + "DELETE_IN_PROGRESS", + "DELETE_COMPLETE", + "DELETE_FAILED", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -162,22 +231,24 @@ func dataCatalogResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. ", + // "description": "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. FEDERATED is a federated catalog for which Athena creates the connection and the Lambda function for you based on the parameters that you pass.", // "enum": [ // "LAMBDA", // "GLUE", - // "HIVE" + // "HIVE", + // "FEDERATED" // ], // "type": "string" // } "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. ", + Description: "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. FEDERATED is a federated catalog for which Athena creates the connection and the Lambda function for you based on the parameters that you pass.", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( "LAMBDA", "GLUE", "HIVE", + "FEDERATED", ), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ @@ -203,13 +274,16 @@ func dataCatalogResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::Athena::DataCatalog").WithTerraformTypeName("awscc_athena_data_catalog") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "description": "Description", - "key": "Key", - "name": "Name", - "parameters": "Parameters", - "tags": "Tags", - "type": "Type", - "value": "Value", + "connection_type": "ConnectionType", + "description": "Description", + "error": "Error", + "key": "Key", + "name": "Name", + "parameters": "Parameters", + "status": "Status", + "tags": "Tags", + "type": "Type", + "value": "Value", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/batch/job_definition_resource_gen.go b/internal/aws/batch/job_definition_resource_gen.go index 34f716487d..ec115ab80b 100644 --- a/internal/aws/batch/job_definition_resource_gen.go +++ b/internal/aws/batch/job_definition_resource_gen.go @@ -3380,6 +3380,18 @@ func jobDefinitionResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: JobDefinitionArn + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "job_definition_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: JobDefinitionName // CloudFormation resource type schema: // @@ -6999,6 +7011,7 @@ func jobDefinitionResource(ctx context.Context) (resource.Resource, error) { "instance_type": "InstanceType", "instance_types": "InstanceTypes", "ipc_mode": "IpcMode", + "job_definition_arn": "JobDefinitionArn", "job_definition_name": "JobDefinitionName", "job_role_arn": "JobRoleArn", "labels": "Labels", diff --git a/internal/aws/bedrock/agent_resource_gen.go b/internal/aws/bedrock/agent_resource_gen.go index 8a446f04aa..8bb98d1211 100644 --- a/internal/aws/bedrock/agent_resource_gen.go +++ b/internal/aws/bedrock/agent_resource_gen.go @@ -9,6 +9,7 @@ import ( "context" "regexp" + "github.com/hashicorp/terraform-plugin-framework-jsontypes/jsontypes" "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" "github.com/hashicorp/terraform-plugin-framework-validators/float64validator" "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" @@ -1297,6 +1298,10 @@ func agentResource(ctx context.Context) (resource.Resource, error) { // "additionalProperties": false, // "description": "BasePromptConfiguration per Prompt Type.", // "properties": { + // "AdditionalModelRequestFields": { + // "description": "Additional Model Request Fields for Prompt Configuration", + // "type": "object" + // }, // "BasePromptTemplate": { // "description": "Base Prompt Template.", // "maxLength": 100000, @@ -1418,6 +1423,16 @@ func agentResource(ctx context.Context) (resource.Resource, error) { "prompt_configurations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AdditionalModelRequestFields + "additional_model_request_fields": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Additional Model Request Fields for Prompt Configuration", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: BasePromptTemplate "base_prompt_template": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "Base Prompt Template.", @@ -1739,6 +1754,7 @@ func agentResource(ctx context.Context) (resource.Resource, error) { "action_group_name": "ActionGroupName", "action_group_state": "ActionGroupState", "action_groups": "ActionGroups", + "additional_model_request_fields": "AdditionalModelRequestFields", "agent_arn": "AgentArn", "agent_collaboration": "AgentCollaboration", "agent_collaborators": "AgentCollaborators", diff --git a/internal/aws/chatbot/custom_action_resource_gen.go b/internal/aws/chatbot/custom_action_resource_gen.go index 20b1b54708..a46bc08eed 100644 --- a/internal/aws/chatbot/custom_action_resource_gen.go +++ b/internal/aws/chatbot/custom_action_resource_gen.go @@ -257,7 +257,7 @@ func customActionResource(ctx context.Context) (resource.Resource, error) { // "additionalProperties": false, // "properties": { // "CommandText": { - // "maxLength": 100, + // "maxLength": 5000, // "minLength": 1, // "type": "string" // } @@ -273,7 +273,7 @@ func customActionResource(ctx context.Context) (resource.Resource, error) { "command_text": schema.StringAttribute{ /*START ATTRIBUTE*/ Required: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 100), + stringvalidator.LengthBetween(1, 5000), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ diff --git a/internal/aws/chatbot/microsoft_teams_channel_configuration_resource_gen.go b/internal/aws/chatbot/microsoft_teams_channel_configuration_resource_gen.go index 840d4d7e3a..77660703e4 100644 --- a/internal/aws/chatbot/microsoft_teams_channel_configuration_resource_gen.go +++ b/internal/aws/chatbot/microsoft_teams_channel_configuration_resource_gen.go @@ -273,6 +273,28 @@ func microsoftTeamsChannelConfigurationResource(ctx context.Context) (resource.R stringvalidator.RegexMatches(regexp.MustCompile("^([a-zA-Z0-9-_=+/.,])*%3[aA]([a-zA-Z0-9-_=+/.,])*%40([a-zA-Z0-9-_=+/.,])*$"), ""), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ + // Property: TeamsChannelName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the Microsoft Teams channel", + // "maxLength": 256, + // "minLength": 1, + // "pattern": "^(.*)$", + // "type": "string" + // } + "teams_channel_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the Microsoft Teams channel", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + stringvalidator.RegexMatches(regexp.MustCompile("^(.*)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: TeamsTenantId // CloudFormation resource type schema: // @@ -344,6 +366,7 @@ func microsoftTeamsChannelConfigurationResource(ctx context.Context) (resource.R "tags": "Tags", "team_id": "TeamId", "teams_channel_id": "TeamsChannelId", + "teams_channel_name": "TeamsChannelName", "teams_tenant_id": "TeamsTenantId", "user_role_required": "UserRoleRequired", "value": "Value", diff --git a/internal/aws/dynamodb/table_resource_gen.go b/internal/aws/dynamodb/table_resource_gen.go index 96ad3b3249..7e0a4776de 100644 --- a/internal/aws/dynamodb/table_resource_gen.go +++ b/internal/aws/dynamodb/table_resource_gen.go @@ -119,11 +119,11 @@ func tableResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual).\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand).\n \n If not specified, the default is ``PROVISIONED``.", + // "description": "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for most DynamoDB workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-demand capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html). \n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for steady workloads with predictable growth where capacity requirements can be reliably forecasted. ``PROVISIONED`` sets the billing mode to [Provisioned capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html).\n \n If not specified, the default is ``PROVISIONED``.", // "type": "string" // } "billing_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual).\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand).\n \n If not specified, the default is ``PROVISIONED``.", + Description: "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for most DynamoDB workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-demand capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html). \n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for steady workloads with predictable growth where capacity requirements can be reliably forecasted. ``PROVISIONED`` sets the billing mode to [Provisioned capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html).\n \n If not specified, the default is ``PROVISIONED``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/ec2/vpc_endpoint_service_resource_gen.go b/internal/aws/ec2/vpc_endpoint_service_resource_gen.go index dba31d98e0..f8e20eeffe 100644 --- a/internal/aws/ec2/vpc_endpoint_service_resource_gen.go +++ b/internal/aws/ec2/vpc_endpoint_service_resource_gen.go @@ -8,6 +8,8 @@ package ec2 import ( "context" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" @@ -121,6 +123,40 @@ func vPCEndpointServiceResource(ctx context.Context) (resource.Resource, error) stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: SupportedIpAddressTypes + // CloudFormation resource type schema: + // + // { + // "description": "Specify which Ip Address types are supported for VPC endpoint service.", + // "insertionOrder": false, + // "items": { + // "enum": [ + // "ipv4", + // "ipv6" + // ], + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + "supported_ip_address_types": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "Specify which Ip Address types are supported for VPC endpoint service.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.ValueStringsAre( + stringvalidator.OneOf( + "ipv4", + "ipv6", + ), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -210,6 +246,7 @@ func vPCEndpointServiceResource(ctx context.Context) (resource.Resource, error) "network_load_balancer_arns": "NetworkLoadBalancerArns", "payer_responsibility": "PayerResponsibility", "service_id": "ServiceId", + "supported_ip_address_types": "SupportedIpAddressTypes", "tags": "Tags", "value": "Value", }) diff --git a/internal/aws/ecr/pull_through_cache_rule_resource_gen.go b/internal/aws/ecr/pull_through_cache_rule_resource_gen.go index 9147e22837..f9414ddbd4 100644 --- a/internal/aws/ecr/pull_through_cache_rule_resource_gen.go +++ b/internal/aws/ecr/pull_through_cache_rule_resource_gen.go @@ -51,6 +51,27 @@ func pullThroughCacheRuleResource(ctx context.Context) (resource.Resource, error }, /*END PLAN MODIFIERS*/ // CredentialArn is a write-only property. }, /*END ATTRIBUTE*/ + // Property: CustomRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the IAM role to be assumed by Amazon ECR to authenticate to ECR upstream registry. This role must be in the same account as the registry that you are configuring.", + // "maxLength": 2048, + // "type": "string" + // } + "custom_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the IAM role to be assumed by Amazon ECR to authenticate to ECR upstream registry. This role must be in the same account as the registry that you are configuring.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + // CustomRoleArn is a write-only property. + }, /*END ATTRIBUTE*/ // Property: EcrRepositoryPrefix // CloudFormation resource type schema: // @@ -58,7 +79,7 @@ func pullThroughCacheRuleResource(ctx context.Context) (resource.Resource, error // "description": "The Amazon ECR repository prefix associated with the pull through cache rule.", // "maxLength": 30, // "minLength": 2, - // "pattern": "(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*", + // "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$", // "type": "string" // } "ecr_repository_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -67,7 +88,7 @@ func pullThroughCacheRuleResource(ctx context.Context) (resource.Resource, error Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(2, 30), - stringvalidator.RegexMatches(regexp.MustCompile("(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -107,6 +128,29 @@ func pullThroughCacheRuleResource(ctx context.Context) (resource.Resource, error stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: UpstreamRepositoryPrefix + // CloudFormation resource type schema: + // + // { + // "description": "The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`.", + // "maxLength": 30, + // "minLength": 2, + // "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$", + // "type": "string" + // } + "upstream_repository_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(2, 30), + stringvalidator.RegexMatches(regexp.MustCompile("^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ // Corresponds to CloudFormation primaryIdentifier. @@ -129,10 +173,12 @@ func pullThroughCacheRuleResource(ctx context.Context) (resource.Resource, error opts = opts.WithCloudFormationTypeName("AWS::ECR::PullThroughCacheRule").WithTerraformTypeName("awscc_ecr_pull_through_cache_rule") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "credential_arn": "CredentialArn", - "ecr_repository_prefix": "EcrRepositoryPrefix", - "upstream_registry": "UpstreamRegistry", - "upstream_registry_url": "UpstreamRegistryUrl", + "credential_arn": "CredentialArn", + "custom_role_arn": "CustomRoleArn", + "ecr_repository_prefix": "EcrRepositoryPrefix", + "upstream_registry": "UpstreamRegistry", + "upstream_registry_url": "UpstreamRegistryUrl", + "upstream_repository_prefix": "UpstreamRepositoryPrefix", }) opts = opts.IsImmutableType(true) @@ -140,6 +186,7 @@ func pullThroughCacheRuleResource(ctx context.Context) (resource.Resource, error opts = opts.WithWriteOnlyPropertyPaths([]string{ "/properties/CredentialArn", "/properties/UpstreamRegistry", + "/properties/CustomRoleArn", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/ecs/service_resource_gen.go b/internal/aws/ecs/service_resource_gen.go index f340761ccf..bbf215c415 100644 --- a/internal/aws/ecs/service_resource_gen.go +++ b/internal/aws/ecs/service_resource_gen.go @@ -65,7 +65,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy may contain a maximum of 6 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", + // "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", // "items": { // "additionalProperties": false, // "description": "The details of a capacity provider strategy. A capacity provider strategy can be set when using the ``RunTask`` or ``CreateService`` APIs or as the default capacity provider strategy for a cluster with the ``CreateCluster`` API.\n Only capacity providers that are already associated with a cluster and have an ``ACTIVE`` or ``UPDATING`` status can be used in a capacity provider strategy. The ``PutClusterCapacityProviders`` API is used to associate a capacity provider with a cluster.\n If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the ``CreateCapacityProvider`` API operation.\n To use an FARGATElong capacity provider, specify either the ``FARGATE`` or ``FARGATE_SPOT`` capacity providers. The FARGATElong capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.", @@ -119,7 +119,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy may contain a maximum of 6 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", + Description: "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -555,7 +555,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // "description": "The VPC subnets and security groups that are associated with a task.\n All specified subnets and security groups must be from the same VPC.", // "properties": { // "AssignPublicIp": { - // "description": "Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``.", + // "description": "Whether the task's elastic network interface receives a public IP address. \n Consider the following when you set this value:\n + When you use ``create-service`` or ``update-service``, the default is ``DISABLED``. \n + When the service ``deploymentController`` is ``ECS``, the value must be ``DISABLED``. \n + When you use ``create-service`` or ``update-service``, the default is ``ENABLED``.", // "enum": [ // "DISABLED", // "ENABLED" @@ -589,7 +589,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: AssignPublicIp "assign_public_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``.", + Description: "Whether the task's elastic network interface receives a public IP address. \n Consider the following when you set this value:\n + When you use ``create-service`` or ``update-service``, the default is ``DISABLED``. \n + When the service ``deploymentController`` is ``ECS``, the value must be ``DISABLED``. \n + When you use ``create-service`` or ``update-service``, the default is ``ENABLED``.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -1388,7 +1388,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // "description": "The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. When a service is deleted, the tags are deleted as well.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", // "items": { // "additionalProperties": false, - // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", + // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.\n \n In order to tag a service that has the following ARN format, you need to migrate the service to the long ARN. You must use the API, CLI or console to migrate the service ARN. For more information, see [Migrate an short service ARN to a long ARN](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-arn-migration.html) in the *Developer Guide*.\n ``arn:aws:ecs:region:aws_account_id:service/service-name`` \n After the migration is complete, the following are true:\n + The service ARN is: ``arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name`` \n + You can use CFN to tag the service as you would a service with a long ARN format.\n + When the ``PhysicalResourceId`` in the CFN stack represents a service, the value does not change and will be the short service ARN.", // "properties": { // "Key": { // "description": "One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values.", @@ -1511,7 +1511,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // "description": "The tags applied to this Amazon EBS volume. ``AmazonECSCreated`` and ``AmazonECSManaged`` are reserved tags that can't be used.", // "items": { // "additionalProperties": false, - // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", + // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.\n \n In order to tag a service that has the following ARN format, you need to migrate the service to the long ARN. You must use the API, CLI or console to migrate the service ARN. For more information, see [Migrate an short service ARN to a long ARN](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-arn-migration.html) in the *Developer Guide*.\n ``arn:aws:ecs:region:aws_account_id:service/service-name`` \n After the migration is complete, the following are true:\n + The service ARN is: ``arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name`` \n + You can use CFN to tag the service as you would a service with a long ARN format.\n + When the ``PhysicalResourceId`` in the CFN stack represents a service, the value does not change and will be the short service ARN.", // "properties": { // "Key": { // "description": "One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values.", diff --git a/internal/aws/ecs/task_definition_resource_gen.go b/internal/aws/ecs/task_definition_resource_gen.go index 4bf6ef7958..06bb98a78b 100644 --- a/internal/aws/ecs/task_definition_resource_gen.go +++ b/internal/aws/ecs/task_definition_resource_gen.go @@ -231,19 +231,19 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { // "type": "array" // }, // "Interval": { - // "description": "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds.", + // "description": "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``.", // "type": "integer" // }, // "Retries": { - // "description": "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3.", + // "description": "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``.", // "type": "integer" // }, // "StartPeriod": { - // "description": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off.\n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", + // "description": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. \n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", // "type": "integer" // }, // "Timeout": { - // "description": "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5.", + // "description": "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``.", // "type": "integer" // } // }, @@ -979,7 +979,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Interval "interval": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds.", + Description: "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -988,7 +988,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Retries "retries": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3.", + Description: "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -997,7 +997,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: StartPeriod "start_period": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off.\n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", + Description: "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. \n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -1006,7 +1006,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Timeout "timeout": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5.", + Description: "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -1790,11 +1790,11 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you use the EC2 launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``10240`` CPU units (``10`` vCPUs).\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", + // "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``196608`` CPU units (``192`` vCPUs). The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", // "type": "string" // } "cpu": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you use the EC2 launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``10240`` CPU units (``10`` vCPUs).\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", + Description: "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``196608`` CPU units (``192`` vCPUs). The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/elasticloadbalancingv2/load_balancer_resource_gen.go b/internal/aws/elasticloadbalancingv2/load_balancer_resource_gen.go index e28ee95cc2..305277a5db 100644 --- a/internal/aws/elasticloadbalancingv2/load_balancer_resource_gen.go +++ b/internal/aws/elasticloadbalancingv2/load_balancer_resource_gen.go @@ -78,11 +78,11 @@ func loadBalancerResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink.", + // "description": "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. The default is ``on``.", // "type": "string" // } "enforce_security_group_inbound_rules_on_private_link_traffic": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink.", + Description: "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. The default is ``on``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -104,6 +104,21 @@ func loadBalancerResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Ipv4IpamPoolId + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "string" + // } + "ipv_4_ipam_pool_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: LoadBalancerArn // CloudFormation resource type schema: // @@ -520,6 +535,7 @@ func loadBalancerResource(ctx context.Context) (resource.Resource, error) { "enforce_security_group_inbound_rules_on_private_link_traffic": "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic", "i_pv_6_address": "IPv6Address", "ip_address_type": "IpAddressType", + "ipv_4_ipam_pool_id": "Ipv4IpamPoolId", "key": "Key", "load_balancer_arn": "LoadBalancerArn", "load_balancer_attributes": "LoadBalancerAttributes", diff --git a/internal/aws/iot/software_package_version_resource_gen.go b/internal/aws/iot/software_package_version_resource_gen.go index 9b30459f63..6fd4a3ed48 100644 --- a/internal/aws/iot/software_package_version_resource_gen.go +++ b/internal/aws/iot/software_package_version_resource_gen.go @@ -14,6 +14,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" @@ -32,6 +33,107 @@ func init() { // This Terraform resource corresponds to the CloudFormation AWS::IoT::SoftwarePackageVersion resource. func softwarePackageVersionResource(ctx context.Context) (resource.Resource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Artifact + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The artifact location of the package version", + // "properties": { + // "S3Location": { + // "additionalProperties": false, + // "description": "The Amazon S3 location", + // "properties": { + // "Bucket": { + // "description": "The S3 bucket", + // "minLength": 1, + // "type": "string" + // }, + // "Key": { + // "description": "The S3 key", + // "minLength": 1, + // "type": "string" + // }, + // "Version": { + // "description": "The S3 version", + // "type": "string" + // } + // }, + // "required": [ + // "Bucket", + // "Key", + // "Version" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "S3Location" + // ], + // "type": "object" + // } + "artifact": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3Location + "s3_location": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Bucket + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 bucket", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 key", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 version", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The Amazon S3 location", + Optional: true, + Computed: true, + Validators: []validator.Object{ /*START VALIDATORS*/ + fwvalidators.NotNullObject(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The artifact location of the package version", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Attributes // CloudFormation resource type schema: // @@ -119,6 +221,142 @@ func softwarePackageVersionResource(ctx context.Context) (resource.Resource, err stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Recipe + // CloudFormation resource type schema: + // + // { + // "description": "The inline json job document associated with a software package version", + // "type": "string" + // } + "recipe": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The inline json job document associated with a software package version", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Sbom + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The sbom zip archive location of the package version", + // "properties": { + // "S3Location": { + // "additionalProperties": false, + // "description": "The Amazon S3 location", + // "properties": { + // "Bucket": { + // "description": "The S3 bucket", + // "minLength": 1, + // "type": "string" + // }, + // "Key": { + // "description": "The S3 key", + // "minLength": 1, + // "type": "string" + // }, + // "Version": { + // "description": "The S3 version", + // "type": "string" + // } + // }, + // "required": [ + // "Bucket", + // "Key", + // "Version" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "S3Location" + // ], + // "type": "object" + // } + "sbom": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3Location + "s3_location": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Bucket + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 bucket", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 key", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 version", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The Amazon S3 location", + Optional: true, + Computed: true, + Validators: []validator.Object{ /*START VALIDATORS*/ + fwvalidators.NotNullObject(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The sbom zip archive location of the package version", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SbomValidationStatus + // CloudFormation resource type schema: + // + // { + // "description": "The validation status of the Sbom file", + // "enum": [ + // "IN_PROGRESS", + // "FAILED", + // "SUCCEEDED", + // "" + // ], + // "type": "string" + // } + "sbom_validation_status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The validation status of the Sbom file", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Status // CloudFormation resource type schema: // @@ -255,16 +493,23 @@ func softwarePackageVersionResource(ctx context.Context) (resource.Resource, err opts = opts.WithCloudFormationTypeName("AWS::IoT::SoftwarePackageVersion").WithTerraformTypeName("awscc_iot_software_package_version") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "attributes": "Attributes", - "description": "Description", - "error_reason": "ErrorReason", - "key": "Key", - "package_name": "PackageName", - "package_version_arn": "PackageVersionArn", - "status": "Status", - "tags": "Tags", - "value": "Value", - "version_name": "VersionName", + "artifact": "Artifact", + "attributes": "Attributes", + "bucket": "Bucket", + "description": "Description", + "error_reason": "ErrorReason", + "key": "Key", + "package_name": "PackageName", + "package_version_arn": "PackageVersionArn", + "recipe": "Recipe", + "s3_location": "S3Location", + "sbom": "Sbom", + "sbom_validation_status": "SbomValidationStatus", + "status": "Status", + "tags": "Tags", + "value": "Value", + "version": "Version", + "version_name": "VersionName", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/msk/replicator_resource_gen.go b/internal/aws/msk/replicator_resource_gen.go index a027db938f..fe4f3aed84 100644 --- a/internal/aws/msk/replicator_resource_gen.go +++ b/internal/aws/msk/replicator_resource_gen.go @@ -42,7 +42,6 @@ func replicatorResource(ctx context.Context) (resource.Resource, error) { // } "current_version": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The current version of the MSK replicator.", - Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/omics/reference_store_resource_gen.go b/internal/aws/omics/reference_store_resource_gen.go index a6598a8bf8..1836a00561 100644 --- a/internal/aws/omics/reference_store_resource_gen.go +++ b/internal/aws/omics/reference_store_resource_gen.go @@ -211,7 +211,6 @@ func referenceStoreResource(ctx context.Context) (resource.Resource, error) { mapplanmodifier.UseStateForUnknown(), mapplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ - // Tags is a write-only property. }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ @@ -246,9 +245,6 @@ func referenceStoreResource(ctx context.Context) (resource.Resource, error) { "type": "Type", }) - opts = opts.WithWriteOnlyPropertyPaths([]string{ - "/properties/Tags", - }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) opts = opts.WithUpdateTimeoutInMinutes(0) diff --git a/internal/aws/omics/sequence_store_resource_gen.go b/internal/aws/omics/sequence_store_resource_gen.go index 47a0d25daa..eda22bddfa 100644 --- a/internal/aws/omics/sequence_store_resource_gen.go +++ b/internal/aws/omics/sequence_store_resource_gen.go @@ -232,7 +232,6 @@ func sequenceStoreResource(ctx context.Context) (resource.Resource, error) { mapplanmodifier.UseStateForUnknown(), mapplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ - // Tags is a write-only property. }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ @@ -268,9 +267,6 @@ func sequenceStoreResource(ctx context.Context) (resource.Resource, error) { "type": "Type", }) - opts = opts.WithWriteOnlyPropertyPaths([]string{ - "/properties/Tags", - }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) opts = opts.WithUpdateTimeoutInMinutes(0) diff --git a/internal/aws/rds/db_cluster_resource_gen.go b/internal/aws/rds/db_cluster_resource_gen.go index 689a42d36b..5b97e0f8b5 100644 --- a/internal/aws/rds/db_cluster_resource_gen.go +++ b/internal/aws/rds/db_cluster_resource_gen.go @@ -360,11 +360,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters only", + // "description": "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", // "type": "string" // } "database_insights_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters only", + Description: "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/rds/db_instance_resource_gen.go b/internal/aws/rds/db_instance_resource_gen.go index dc3faaf886..ce287bd722 100644 --- a/internal/aws/rds/db_instance_resource_gen.go +++ b/internal/aws/rds/db_instance_resource_gen.go @@ -510,11 +510,11 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If there's no DB subnet group, then the DB instance isn't a VPC DB instance.\n For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", + // "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If you don't specify a DB subnet group, RDS uses the default DB subnet group if one exists. If a default DB subnet group does not exist, and you don't specify a ``DBSubnetGroupName``, the DB instance fails to launch. \n For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", // "type": "string" // } "db_subnet_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If there's no DB subnet group, then the DB instance isn't a VPC DB instance.\n For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", + Description: "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If you don't specify a DB subnet group, RDS uses the default DB subnet group if one exists. If a default DB subnet group does not exist, and you don't specify a ``DBSubnetGroupName``, the DB instance fails to launch. \n For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/rum/app_monitor_resource_gen.go b/internal/aws/rum/app_monitor_resource_gen.go index 72e932d1ba..c71592afaf 100644 --- a/internal/aws/rum/app_monitor_resource_gen.go +++ b/internal/aws/rum/app_monitor_resource_gen.go @@ -618,6 +618,63 @@ func appMonitorResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ResourcePolicy + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A structure that defines resource policy attached to your app monitor.", + // "properties": { + // "PolicyDocument": { + // "description": "The JSON to use as the resource policy. The document can be up to 4 KB in size. ", + // "type": "string" + // }, + // "PolicyRevisionId": { + // "description": "A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. \n\n When you assign a policy revision ID, then later requests about that policy will be rejected with an InvalidPolicyRevisionIdException error if they don't provide the correct current revision ID.", + // "maxLength": 255, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "PolicyDocument" + // ], + // "type": "object" + // } + "resource_policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PolicyDocument + "policy_document": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The JSON to use as the resource policy. The document can be up to 4 KB in size. ", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PolicyRevisionId + "policy_revision_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. \n\n When you assign a policy revision ID, then later requests about that policy will be rejected with an InvalidPolicyRevisionIdException error if they don't provide the correct current revision ID.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 255), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A structure that defines resource policy attached to your app monitor.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -733,6 +790,9 @@ func appMonitorResource(ctx context.Context) (resource.Resource, error) { "metric_destinations": "MetricDestinations", "name": "Name", "namespace": "Namespace", + "policy_document": "PolicyDocument", + "policy_revision_id": "PolicyRevisionId", + "resource_policy": "ResourcePolicy", "session_sample_rate": "SessionSampleRate", "status": "Status", "tags": "Tags", diff --git a/internal/aws/sagemaker/inference_component_resource_gen.go b/internal/aws/sagemaker/inference_component_resource_gen.go index 88f7415485..ec08876e3f 100644 --- a/internal/aws/sagemaker/inference_component_resource_gen.go +++ b/internal/aws/sagemaker/inference_component_resource_gen.go @@ -49,6 +49,264 @@ func inferenceComponentResource(ctx context.Context) (resource.Resource, error) stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: DeploymentConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The deployment config for the inference component", + // "properties": { + // "AutoRollbackConfiguration": { + // "additionalProperties": false, + // "properties": { + // "Alarms": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "AlarmName": { + // "maxLength": 255, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + // }, + // "required": [ + // "AlarmName" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Alarms" + // ], + // "type": "object" + // }, + // "RollingUpdatePolicy": { + // "additionalProperties": false, + // "description": "The rolling update policy for the inference component", + // "properties": { + // "MaximumBatchSize": { + // "additionalProperties": false, + // "description": "Capacity size configuration for the inference component", + // "properties": { + // "Type": { + // "enum": [ + // "COPY_COUNT", + // "CAPACITY_PERCENT" + // ], + // "type": "string" + // }, + // "Value": { + // "description": "The number of copies for the inference component", + // "type": "integer" + // } + // }, + // "required": [ + // "Type", + // "Value" + // ], + // "type": "object" + // }, + // "MaximumExecutionTimeoutInSeconds": { + // "maximum": 28800, + // "minimum": 600, + // "type": "integer" + // }, + // "RollbackMaximumBatchSize": { + // "additionalProperties": false, + // "description": "Capacity size configuration for the inference component", + // "properties": { + // "Type": { + // "enum": [ + // "COPY_COUNT", + // "CAPACITY_PERCENT" + // ], + // "type": "string" + // }, + // "Value": { + // "description": "The number of copies for the inference component", + // "type": "integer" + // } + // }, + // "required": [ + // "Type", + // "Value" + // ], + // "type": "object" + // }, + // "WaitIntervalInSeconds": { + // "maximum": 3600, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // } + "deployment_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AutoRollbackConfiguration + "auto_rollback_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Alarms + "alarms": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AlarmName + "alarm_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 255), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 10), + fwvalidators.NotNullList(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RollingUpdatePolicy + "rolling_update_policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaximumBatchSize + "maximum_batch_size": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "COPY_COUNT", + "CAPACITY_PERCENT", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of copies for the inference component", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Capacity size configuration for the inference component", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MaximumExecutionTimeoutInSeconds + "maximum_execution_timeout_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(600, 28800), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RollbackMaximumBatchSize + "rollback_maximum_batch_size": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "COPY_COUNT", + "CAPACITY_PERCENT", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of copies for the inference component", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Capacity size configuration for the inference component", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: WaitIntervalInSeconds + "wait_interval_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(0, 3600), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The rolling update policy for the inference component", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The deployment config for the inference component", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // DeploymentConfig is a write-only property. + }, /*END ATTRIBUTE*/ // Property: EndpointArn // CloudFormation resource type schema: // @@ -654,7 +912,10 @@ func inferenceComponentResource(ctx context.Context) (resource.Resource, error) opts = opts.WithCloudFormationTypeName("AWS::SageMaker::InferenceComponent").WithTerraformTypeName("awscc_sagemaker_inference_component") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "alarm_name": "AlarmName", + "alarms": "Alarms", "artifact_url": "ArtifactUrl", + "auto_rollback_configuration": "AutoRollbackConfiguration", "base_inference_component_name": "BaseInferenceComponentName", "compute_resource_requirements": "ComputeResourceRequirements", "container": "Container", @@ -663,6 +924,7 @@ func inferenceComponentResource(ctx context.Context) (resource.Resource, error) "creation_time": "CreationTime", "current_copy_count": "CurrentCopyCount", "deployed_image": "DeployedImage", + "deployment_config": "DeploymentConfig", "desired_copy_count": "DesiredCopyCount", "endpoint_arn": "EndpointArn", "endpoint_name": "EndpointName", @@ -675,6 +937,8 @@ func inferenceComponentResource(ctx context.Context) (resource.Resource, error) "key": "Key", "last_modified_time": "LastModifiedTime", "max_memory_required_in_mb": "MaxMemoryRequiredInMb", + "maximum_batch_size": "MaximumBatchSize", + "maximum_execution_timeout_in_seconds": "MaximumExecutionTimeoutInSeconds", "min_memory_required_in_mb": "MinMemoryRequiredInMb", "model_data_download_timeout_in_seconds": "ModelDataDownloadTimeoutInSeconds", "model_name": "ModelName", @@ -682,18 +946,23 @@ func inferenceComponentResource(ctx context.Context) (resource.Resource, error) "number_of_cpu_cores_required": "NumberOfCpuCoresRequired", "resolution_time": "ResolutionTime", "resolved_image": "ResolvedImage", + "rollback_maximum_batch_size": "RollbackMaximumBatchSize", + "rolling_update_policy": "RollingUpdatePolicy", "runtime_config": "RuntimeConfig", "specification": "Specification", "specified_image": "SpecifiedImage", "startup_parameters": "StartupParameters", "tags": "Tags", + "type": "Type", "value": "Value", "variant_name": "VariantName", + "wait_interval_in_seconds": "WaitIntervalInSeconds", }) opts = opts.WithWriteOnlyPropertyPaths([]string{ "/properties/Specification/Container/Image", "/properties/RuntimeConfig/CopyCount", + "/properties/DeploymentConfig", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/xray/transaction_search_config_resource_gen.go b/internal/aws/xray/transaction_search_config_resource_gen.go new file mode 100644 index 0000000000..a097298a4f --- /dev/null +++ b/internal/aws/xray/transaction_search_config_resource_gen.go @@ -0,0 +1,102 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package xray + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-validators/float64validator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_xray_transaction_search_config", transactionSearchConfigResource) +} + +// transactionSearchConfigResource returns the Terraform awscc_xray_transaction_search_config resource. +// This Terraform resource corresponds to the CloudFormation AWS::XRay::TransactionSearchConfig resource. +func transactionSearchConfigResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccountId + // CloudFormation resource type schema: + // + // { + // "description": "User account id, used as the primary identifier for the resource", + // "pattern": "^\\d{12}$", + // "type": "string" + // } + "account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "User account id, used as the primary identifier for the resource", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: IndexingPercentage + // CloudFormation resource type schema: + // + // { + // "description": "Determines the percentage of traces indexed from CloudWatch Logs to X-Ray", + // "maximum": 100, + // "minimum": 0, + // "type": "number" + // } + "indexing_percentage": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Determines the percentage of traces indexed from CloudWatch Logs to X-Ray", + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(0.000000, 100.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "This schema provides construct and validation rules for AWS-XRay TransactionSearchConfig resource parameters.", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::XRay::TransactionSearchConfig").WithTerraformTypeName("awscc_xray_transaction_search_config") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "account_id": "AccountId", + "indexing_percentage": "IndexingPercentage", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/xray/transaction_search_config_resource_gen_test.go b/internal/aws/xray/transaction_search_config_resource_gen_test.go new file mode 100644 index 0000000000..2e0f438d0d --- /dev/null +++ b/internal/aws/xray/transaction_search_config_resource_gen_test.go @@ -0,0 +1,46 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package xray_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSXRayTransactionSearchConfig_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::XRay::TransactionSearchConfig", "awscc_xray_transaction_search_config", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSXRayTransactionSearchConfig_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::XRay::TransactionSearchConfig", "awscc_xray_transaction_search_config", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} From ca072f4e20565332339df8fe8c7c293e0f64a11c Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 13 Mar 2025 11:54:58 -0400 Subject: [PATCH 4/6] 2025/03/12 CloudFormation schemas in us-east-1; Generate Terraform data source schemas. --- .../discovery_plural_data_source_gen.go | 54 +++++ .../discovery_plural_data_source_gen_test.go | 27 +++ .../discovery_singular_data_source_gen.go | 66 ++++++ ...discovery_singular_data_source_gen_test.go | 40 ++++ .../data_catalog_singular_data_source_gen.go | 68 ++++++- ...job_definition_singular_data_source_gen.go | 10 + .../bedrock/agent_singular_data_source_gen.go | 12 ++ .../custom_action_singular_data_source_gen.go | 2 +- ..._configuration_singular_data_source_gen.go | 15 ++ .../table_singular_data_source_gen.go | 4 +- ...dpoint_service_singular_data_source_gen.go | 22 ++ ...ugh_cache_rule_singular_data_source_gen.go | 38 +++- .../ecs/service_singular_data_source_gen.go | 12 +- ...ask_definition_singular_data_source_gen.go | 20 +- .../load_balancer_singular_data_source_gen.go | 16 +- ...ackage_version_singular_data_source_gen.go | 189 +++++++++++++++++- .../db_cluster_singular_data_source_gen.go | 4 +- .../db_instance_singular_data_source_gen.go | 4 +- .../app_monitor_singular_data_source_gen.go | 42 ++++ ...ence_component_singular_data_source_gen.go | 181 +++++++++++++++++ ...on_search_config_plural_data_source_gen.go | 54 +++++ ...arch_config_plural_data_source_gen_test.go | 27 +++ ..._search_config_singular_data_source_gen.go | 78 ++++++++ ...ch_config_singular_data_source_gen_test.go | 40 ++++ 24 files changed, 975 insertions(+), 50 deletions(-) create mode 100644 internal/aws/applicationsignals/discovery_plural_data_source_gen.go create mode 100644 internal/aws/applicationsignals/discovery_plural_data_source_gen_test.go create mode 100644 internal/aws/applicationsignals/discovery_singular_data_source_gen.go create mode 100644 internal/aws/applicationsignals/discovery_singular_data_source_gen_test.go create mode 100644 internal/aws/xray/transaction_search_config_plural_data_source_gen.go create mode 100644 internal/aws/xray/transaction_search_config_plural_data_source_gen_test.go create mode 100644 internal/aws/xray/transaction_search_config_singular_data_source_gen.go create mode 100644 internal/aws/xray/transaction_search_config_singular_data_source_gen_test.go diff --git a/internal/aws/applicationsignals/discovery_plural_data_source_gen.go b/internal/aws/applicationsignals/discovery_plural_data_source_gen.go new file mode 100644 index 0000000000..659ab05855 --- /dev/null +++ b/internal/aws/applicationsignals/discovery_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package applicationsignals + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_applicationsignals_discoveries", discoveriesDataSource) +} + +// discoveriesDataSource returns the Terraform awscc_applicationsignals_discoveries data source. +// This Terraform data source corresponds to the CloudFormation AWS::ApplicationSignals::Discovery resource. +func discoveriesDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ + "id": schema.StringAttribute{ + Description: "Uniquely identifies the data source.", + Computed: true, + }, + "ids": schema.SetAttribute{ + Description: "Set of Resource Identifiers.", + ElementType: types.StringType, + Computed: true, + }, + } + + schema := schema.Schema{ + Description: "Plural Data Source schema for AWS::ApplicationSignals::Discovery", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::ApplicationSignals::Discovery").WithTerraformTypeName("awscc_applicationsignals_discoveries") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/applicationsignals/discovery_plural_data_source_gen_test.go b/internal/aws/applicationsignals/discovery_plural_data_source_gen_test.go new file mode 100644 index 0000000000..39cde008f7 --- /dev/null +++ b/internal/aws/applicationsignals/discovery_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package applicationsignals_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSApplicationSignalsDiscoveriesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::ApplicationSignals::Discovery", "awscc_applicationsignals_discoveries", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/applicationsignals/discovery_singular_data_source_gen.go b/internal/aws/applicationsignals/discovery_singular_data_source_gen.go new file mode 100644 index 0000000000..5ec1184c59 --- /dev/null +++ b/internal/aws/applicationsignals/discovery_singular_data_source_gen.go @@ -0,0 +1,66 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package applicationsignals + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_applicationsignals_discovery", discoveryDataSource) +} + +// discoveryDataSource returns the Terraform awscc_applicationsignals_discovery data source. +// This Terraform data source corresponds to the CloudFormation AWS::ApplicationSignals::Discovery resource. +func discoveryDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccountId + // CloudFormation resource type schema: + // + // { + // "description": "The identifier for the specified AWS account.", + // "maxLength": 12, + // "minLength": 12, + // "pattern": "^[0-9]{12}$", + // "type": "string" + // } + "account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier for the specified AWS account.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::ApplicationSignals::Discovery", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::ApplicationSignals::Discovery").WithTerraformTypeName("awscc_applicationsignals_discovery") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "account_id": "AccountId", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/applicationsignals/discovery_singular_data_source_gen_test.go b/internal/aws/applicationsignals/discovery_singular_data_source_gen_test.go new file mode 100644 index 0000000000..fe298f24b7 --- /dev/null +++ b/internal/aws/applicationsignals/discovery_singular_data_source_gen_test.go @@ -0,0 +1,40 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package applicationsignals_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSApplicationSignalsDiscoveryDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::ApplicationSignals::Discovery", "awscc_applicationsignals_discovery", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithEmptyResourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "id", td.ResourceName, "id"), + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "arn", td.ResourceName, "arn"), + ), + }, + }) +} + +func TestAccAWSApplicationSignalsDiscoveryDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::ApplicationSignals::Discovery", "awscc_applicationsignals_discovery", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/athena/data_catalog_singular_data_source_gen.go b/internal/aws/athena/data_catalog_singular_data_source_gen.go index 194f4cef6b..577e5cde2b 100644 --- a/internal/aws/athena/data_catalog_singular_data_source_gen.go +++ b/internal/aws/athena/data_catalog_singular_data_source_gen.go @@ -23,6 +23,17 @@ func init() { // This Terraform data source corresponds to the CloudFormation AWS::Athena::DataCatalog resource. func dataCatalogDataSource(ctx context.Context) (datasource.DataSource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConnectionType + // CloudFormation resource type schema: + // + // { + // "description": "The type of connection for a FEDERATED data catalog", + // "type": "string" + // } + "connection_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of connection for a FEDERATED data catalog", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // @@ -36,6 +47,17 @@ func dataCatalogDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "A description of the data catalog to be created. ", Computed: true, }, /*END ATTRIBUTE*/ + // Property: Error + // CloudFormation resource type schema: + // + // { + // "description": "Text of the error that occurred during data catalog creation or deletion.", + // "type": "string" + // } + "error": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Text of the error that occurred during data catalog creation or deletion.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // @@ -69,6 +91,28 @@ func dataCatalogDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "Specifies the Lambda function or functions to use for creating the data catalog. This is a mapping whose values depend on the catalog type. ", Computed: true, }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "The status of the creation or deletion of the data catalog. LAMBDA, GLUE, and HIVE data catalog types are created synchronously. Their status is either CREATE_COMPLETE or CREATE_FAILED. The FEDERATED data catalog type is created asynchronously.", + // "enum": [ + // "CREATE_IN_PROGRESS", + // "CREATE_COMPLETE", + // "CREATE_FAILED", + // "CREATE_FAILED_CLEANUP_IN_PROGRESS", + // "CREATE_FAILED_CLEANUP_COMPLETE", + // "CREATE_FAILED_CLEANUP_FAILED", + // "DELETE_IN_PROGRESS", + // "DELETE_COMPLETE", + // "DELETE_FAILED" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The status of the creation or deletion of the data catalog. LAMBDA, GLUE, and HIVE data catalog types are created synchronously. Their status is either CREATE_COMPLETE or CREATE_FAILED. The FEDERATED data catalog type is created asynchronously.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -117,16 +161,17 @@ func dataCatalogDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. ", + // "description": "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. FEDERATED is a federated catalog for which Athena creates the connection and the Lambda function for you based on the parameters that you pass.", // "enum": [ // "LAMBDA", // "GLUE", - // "HIVE" + // "HIVE", + // "FEDERATED" // ], // "type": "string" // } "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. ", + Description: "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. FEDERATED is a federated catalog for which Athena creates the connection and the Lambda function for you based on the parameters that you pass.", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ @@ -146,13 +191,16 @@ func dataCatalogDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithCloudFormationTypeName("AWS::Athena::DataCatalog").WithTerraformTypeName("awscc_athena_data_catalog") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "description": "Description", - "key": "Key", - "name": "Name", - "parameters": "Parameters", - "tags": "Tags", - "type": "Type", - "value": "Value", + "connection_type": "ConnectionType", + "description": "Description", + "error": "Error", + "key": "Key", + "name": "Name", + "parameters": "Parameters", + "status": "Status", + "tags": "Tags", + "type": "Type", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/batch/job_definition_singular_data_source_gen.go b/internal/aws/batch/job_definition_singular_data_source_gen.go index acdc98d3b6..eda3ceff48 100644 --- a/internal/aws/batch/job_definition_singular_data_source_gen.go +++ b/internal/aws/batch/job_definition_singular_data_source_gen.go @@ -2330,6 +2330,15 @@ func jobDefinitionDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: JobDefinitionArn + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "job_definition_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: JobDefinitionName // CloudFormation resource type schema: // @@ -4846,6 +4855,7 @@ func jobDefinitionDataSource(ctx context.Context) (datasource.DataSource, error) "instance_type": "InstanceType", "instance_types": "InstanceTypes", "ipc_mode": "IpcMode", + "job_definition_arn": "JobDefinitionArn", "job_definition_name": "JobDefinitionName", "job_role_arn": "JobRoleArn", "labels": "Labels", diff --git a/internal/aws/bedrock/agent_singular_data_source_gen.go b/internal/aws/bedrock/agent_singular_data_source_gen.go index 2d774694b1..fd3f2eaf5f 100644 --- a/internal/aws/bedrock/agent_singular_data_source_gen.go +++ b/internal/aws/bedrock/agent_singular_data_source_gen.go @@ -8,6 +8,7 @@ package bedrock import ( "context" + "github.com/hashicorp/terraform-plugin-framework-jsontypes/jsontypes" "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" "github.com/hashicorp/terraform-plugin-framework/datasource" "github.com/hashicorp/terraform-plugin-framework/datasource/schema" @@ -890,6 +891,10 @@ func agentDataSource(ctx context.Context) (datasource.DataSource, error) { // "additionalProperties": false, // "description": "BasePromptConfiguration per Prompt Type.", // "properties": { + // "AdditionalModelRequestFields": { + // "description": "Additional Model Request Fields for Prompt Configuration", + // "type": "object" + // }, // "BasePromptTemplate": { // "description": "Base Prompt Template.", // "maxLength": 100000, @@ -1003,6 +1008,12 @@ func agentDataSource(ctx context.Context) (datasource.DataSource, error) { "prompt_configurations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AdditionalModelRequestFields + "additional_model_request_fields": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Additional Model Request Fields for Prompt Configuration", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: BasePromptTemplate "base_prompt_template": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "Base Prompt Template.", @@ -1186,6 +1197,7 @@ func agentDataSource(ctx context.Context) (datasource.DataSource, error) { "action_group_name": "ActionGroupName", "action_group_state": "ActionGroupState", "action_groups": "ActionGroups", + "additional_model_request_fields": "AdditionalModelRequestFields", "agent_arn": "AgentArn", "agent_collaboration": "AgentCollaboration", "agent_collaborators": "AgentCollaborators", diff --git a/internal/aws/chatbot/custom_action_singular_data_source_gen.go b/internal/aws/chatbot/custom_action_singular_data_source_gen.go index 5b8c5cdaeb..057496d68e 100644 --- a/internal/aws/chatbot/custom_action_singular_data_source_gen.go +++ b/internal/aws/chatbot/custom_action_singular_data_source_gen.go @@ -172,7 +172,7 @@ func customActionDataSource(ctx context.Context) (datasource.DataSource, error) // "additionalProperties": false, // "properties": { // "CommandText": { - // "maxLength": 100, + // "maxLength": 5000, // "minLength": 1, // "type": "string" // } diff --git a/internal/aws/chatbot/microsoft_teams_channel_configuration_singular_data_source_gen.go b/internal/aws/chatbot/microsoft_teams_channel_configuration_singular_data_source_gen.go index 9dedc3cbe1..de8c9a532a 100644 --- a/internal/aws/chatbot/microsoft_teams_channel_configuration_singular_data_source_gen.go +++ b/internal/aws/chatbot/microsoft_teams_channel_configuration_singular_data_source_gen.go @@ -194,6 +194,20 @@ func microsoftTeamsChannelConfigurationDataSource(ctx context.Context) (datasour Description: "The id of the Microsoft Teams channel", Computed: true, }, /*END ATTRIBUTE*/ + // Property: TeamsChannelName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the Microsoft Teams channel", + // "maxLength": 256, + // "minLength": 1, + // "pattern": "^(.*)$", + // "type": "string" + // } + "teams_channel_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the Microsoft Teams channel", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: TeamsTenantId // CloudFormation resource type schema: // @@ -248,6 +262,7 @@ func microsoftTeamsChannelConfigurationDataSource(ctx context.Context) (datasour "tags": "Tags", "team_id": "TeamId", "teams_channel_id": "TeamsChannelId", + "teams_channel_name": "TeamsChannelName", "teams_tenant_id": "TeamsTenantId", "user_role_required": "UserRoleRequired", "value": "Value", diff --git a/internal/aws/dynamodb/table_singular_data_source_gen.go b/internal/aws/dynamodb/table_singular_data_source_gen.go index 0029d3dbca..3742d198a5 100644 --- a/internal/aws/dynamodb/table_singular_data_source_gen.go +++ b/internal/aws/dynamodb/table_singular_data_source_gen.go @@ -84,11 +84,11 @@ func tableDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual).\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand).\n \n If not specified, the default is ``PROVISIONED``.", + // "description": "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for most DynamoDB workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-demand capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html). \n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for steady workloads with predictable growth where capacity requirements can be reliably forecasted. ``PROVISIONED`` sets the billing mode to [Provisioned capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html).\n \n If not specified, the default is ``PROVISIONED``.", // "type": "string" // } "billing_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual).\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand).\n \n If not specified, the default is ``PROVISIONED``.", + Description: "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for most DynamoDB workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-demand capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html). \n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for steady workloads with predictable growth where capacity requirements can be reliably forecasted. ``PROVISIONED`` sets the billing mode to [Provisioned capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html).\n \n If not specified, the default is ``PROVISIONED``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ContributorInsightsSpecification diff --git a/internal/aws/ec2/vpc_endpoint_service_singular_data_source_gen.go b/internal/aws/ec2/vpc_endpoint_service_singular_data_source_gen.go index 8fb09c8983..51147e42ac 100644 --- a/internal/aws/ec2/vpc_endpoint_service_singular_data_source_gen.go +++ b/internal/aws/ec2/vpc_endpoint_service_singular_data_source_gen.go @@ -91,6 +91,27 @@ func vPCEndpointServiceDataSource(ctx context.Context) (datasource.DataSource, e "service_id": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: SupportedIpAddressTypes + // CloudFormation resource type schema: + // + // { + // "description": "Specify which Ip Address types are supported for VPC endpoint service.", + // "insertionOrder": false, + // "items": { + // "enum": [ + // "ipv4", + // "ipv6" + // ], + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + "supported_ip_address_types": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "Specify which Ip Address types are supported for VPC endpoint service.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -156,6 +177,7 @@ func vPCEndpointServiceDataSource(ctx context.Context) (datasource.DataSource, e "network_load_balancer_arns": "NetworkLoadBalancerArns", "payer_responsibility": "PayerResponsibility", "service_id": "ServiceId", + "supported_ip_address_types": "SupportedIpAddressTypes", "tags": "Tags", "value": "Value", }) diff --git a/internal/aws/ecr/pull_through_cache_rule_singular_data_source_gen.go b/internal/aws/ecr/pull_through_cache_rule_singular_data_source_gen.go index bb518d506d..e95cf531c1 100644 --- a/internal/aws/ecr/pull_through_cache_rule_singular_data_source_gen.go +++ b/internal/aws/ecr/pull_through_cache_rule_singular_data_source_gen.go @@ -36,6 +36,18 @@ func pullThroughCacheRuleDataSource(ctx context.Context) (datasource.DataSource, Description: "The ARN of the Secrets Manager secret associated with the pull through cache rule.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: CustomRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the IAM role to be assumed by Amazon ECR to authenticate to ECR upstream registry. This role must be in the same account as the registry that you are configuring.", + // "maxLength": 2048, + // "type": "string" + // } + "custom_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the IAM role to be assumed by Amazon ECR to authenticate to ECR upstream registry. This role must be in the same account as the registry that you are configuring.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: EcrRepositoryPrefix // CloudFormation resource type schema: // @@ -43,7 +55,7 @@ func pullThroughCacheRuleDataSource(ctx context.Context) (datasource.DataSource, // "description": "The Amazon ECR repository prefix associated with the pull through cache rule.", // "maxLength": 30, // "minLength": 2, - // "pattern": "(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*", + // "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$", // "type": "string" // } "ecr_repository_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -72,6 +84,20 @@ func pullThroughCacheRuleDataSource(ctx context.Context) (datasource.DataSource, Description: "The upstream registry URL associated with the pull through cache rule.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: UpstreamRepositoryPrefix + // CloudFormation resource type schema: + // + // { + // "description": "The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`.", + // "maxLength": 30, + // "minLength": 2, + // "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$", + // "type": "string" + // } + "upstream_repository_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`.", + Computed: true, + }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ attributes["id"] = schema.StringAttribute{ @@ -89,10 +115,12 @@ func pullThroughCacheRuleDataSource(ctx context.Context) (datasource.DataSource, opts = opts.WithCloudFormationTypeName("AWS::ECR::PullThroughCacheRule").WithTerraformTypeName("awscc_ecr_pull_through_cache_rule") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "credential_arn": "CredentialArn", - "ecr_repository_prefix": "EcrRepositoryPrefix", - "upstream_registry": "UpstreamRegistry", - "upstream_registry_url": "UpstreamRegistryUrl", + "credential_arn": "CredentialArn", + "custom_role_arn": "CustomRoleArn", + "ecr_repository_prefix": "EcrRepositoryPrefix", + "upstream_registry": "UpstreamRegistry", + "upstream_registry_url": "UpstreamRegistryUrl", + "upstream_repository_prefix": "UpstreamRepositoryPrefix", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/ecs/service_singular_data_source_gen.go b/internal/aws/ecs/service_singular_data_source_gen.go index 6f57d3ace0..c89da4b491 100644 --- a/internal/aws/ecs/service_singular_data_source_gen.go +++ b/internal/aws/ecs/service_singular_data_source_gen.go @@ -43,7 +43,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy may contain a maximum of 6 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", + // "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", // "items": { // "additionalProperties": false, // "description": "The details of a capacity provider strategy. A capacity provider strategy can be set when using the ``RunTask`` or ``CreateService`` APIs or as the default capacity provider strategy for a cluster with the ``CreateCluster`` API.\n Only capacity providers that are already associated with a cluster and have an ``ACTIVE`` or ``UPDATING`` status can be used in a capacity provider strategy. The ``PutClusterCapacityProviders`` API is used to associate a capacity provider with a cluster.\n If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the ``CreateCapacityProvider`` API operation.\n To use an FARGATElong capacity provider, specify either the ``FARGATE`` or ``FARGATE_SPOT`` capacity providers. The FARGATElong capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.", @@ -85,7 +85,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy may contain a maximum of 6 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", + Description: "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Cluster @@ -390,7 +390,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "The VPC subnets and security groups that are associated with a task.\n All specified subnets and security groups must be from the same VPC.", // "properties": { // "AssignPublicIp": { - // "description": "Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``.", + // "description": "Whether the task's elastic network interface receives a public IP address. \n Consider the following when you set this value:\n + When you use ``create-service`` or ``update-service``, the default is ``DISABLED``. \n + When the service ``deploymentController`` is ``ECS``, the value must be ``DISABLED``. \n + When you use ``create-service`` or ``update-service``, the default is ``ENABLED``.", // "enum": [ // "DISABLED", // "ENABLED" @@ -424,7 +424,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: AssignPublicIp "assign_public_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``.", + Description: "Whether the task's elastic network interface receives a public IP address. \n Consider the following when you set this value:\n + When you use ``create-service`` or ``update-service``, the default is ``DISABLED``. \n + When the service ``deploymentController`` is ``ECS``, the value must be ``DISABLED``. \n + When you use ``create-service`` or ``update-service``, the default is ``ENABLED``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: SecurityGroups @@ -983,7 +983,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. When a service is deleted, the tags are deleted as well.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", // "items": { // "additionalProperties": false, - // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", + // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.\n \n In order to tag a service that has the following ARN format, you need to migrate the service to the long ARN. You must use the API, CLI or console to migrate the service ARN. For more information, see [Migrate an short service ARN to a long ARN](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-arn-migration.html) in the *Developer Guide*.\n ``arn:aws:ecs:region:aws_account_id:service/service-name`` \n After the migration is complete, the following are true:\n + The service ARN is: ``arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name`` \n + You can use CFN to tag the service as you would a service with a long ARN format.\n + When the ``PhysicalResourceId`` in the CFN stack represents a service, the value does not change and will be the short service ARN.", // "properties": { // "Key": { // "description": "One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values.", @@ -1090,7 +1090,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "The tags applied to this Amazon EBS volume. ``AmazonECSCreated`` and ``AmazonECSManaged`` are reserved tags that can't be used.", // "items": { // "additionalProperties": false, - // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", + // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.\n \n In order to tag a service that has the following ARN format, you need to migrate the service to the long ARN. You must use the API, CLI or console to migrate the service ARN. For more information, see [Migrate an short service ARN to a long ARN](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-arn-migration.html) in the *Developer Guide*.\n ``arn:aws:ecs:region:aws_account_id:service/service-name`` \n After the migration is complete, the following are true:\n + The service ARN is: ``arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name`` \n + You can use CFN to tag the service as you would a service with a long ARN format.\n + When the ``PhysicalResourceId`` in the CFN stack represents a service, the value does not change and will be the short service ARN.", // "properties": { // "Key": { // "description": "One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values.", diff --git a/internal/aws/ecs/task_definition_singular_data_source_gen.go b/internal/aws/ecs/task_definition_singular_data_source_gen.go index 134e836a21..529c9abf58 100644 --- a/internal/aws/ecs/task_definition_singular_data_source_gen.go +++ b/internal/aws/ecs/task_definition_singular_data_source_gen.go @@ -218,19 +218,19 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error // "type": "array" // }, // "Interval": { - // "description": "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds.", + // "description": "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``.", // "type": "integer" // }, // "Retries": { - // "description": "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3.", + // "description": "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``.", // "type": "integer" // }, // "StartPeriod": { - // "description": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off.\n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", + // "description": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. \n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", // "type": "integer" // }, // "Timeout": { - // "description": "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5.", + // "description": "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``.", // "type": "integer" // } // }, @@ -856,22 +856,22 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: Interval "interval": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds.", + Description: "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Retries "retries": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3.", + Description: "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: StartPeriod "start_period": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off.\n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", + Description: "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. \n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Timeout "timeout": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5.", + Description: "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -1295,11 +1295,11 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error // CloudFormation resource type schema: // // { - // "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you use the EC2 launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``10240`` CPU units (``10`` vCPUs).\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", + // "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``196608`` CPU units (``192`` vCPUs). The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", // "type": "string" // } "cpu": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you use the EC2 launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``10240`` CPU units (``10`` vCPUs).\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", + Description: "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``196608`` CPU units (``192`` vCPUs). The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", Computed: true, }, /*END ATTRIBUTE*/ // Property: EnableFaultInjection diff --git a/internal/aws/elasticloadbalancingv2/load_balancer_singular_data_source_gen.go b/internal/aws/elasticloadbalancingv2/load_balancer_singular_data_source_gen.go index 8233f04e53..c3189ac6e9 100644 --- a/internal/aws/elasticloadbalancingv2/load_balancer_singular_data_source_gen.go +++ b/internal/aws/elasticloadbalancingv2/load_balancer_singular_data_source_gen.go @@ -60,11 +60,11 @@ func loadBalancerDataSource(ctx context.Context) (datasource.DataSource, error) // CloudFormation resource type schema: // // { - // "description": "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink.", + // "description": "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. The default is ``on``.", // "type": "string" // } "enforce_security_group_inbound_rules_on_private_link_traffic": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink.", + Description: "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. The default is ``on``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: IpAddressType @@ -78,6 +78,17 @@ func loadBalancerDataSource(ctx context.Context) (datasource.DataSource, error) Description: "The IP address type. Internal load balancers must use ``ipv4``.\n [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses).\n Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors.\n [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses).", Computed: true, }, /*END ATTRIBUTE*/ + // Property: Ipv4IpamPoolId + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "string" + // } + "ipv_4_ipam_pool_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: LoadBalancerArn // CloudFormation resource type schema: // @@ -391,6 +402,7 @@ func loadBalancerDataSource(ctx context.Context) (datasource.DataSource, error) "enforce_security_group_inbound_rules_on_private_link_traffic": "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic", "i_pv_6_address": "IPv6Address", "ip_address_type": "IpAddressType", + "ipv_4_ipam_pool_id": "Ipv4IpamPoolId", "key": "Key", "load_balancer_arn": "LoadBalancerArn", "load_balancer_attributes": "LoadBalancerAttributes", diff --git a/internal/aws/iot/software_package_version_singular_data_source_gen.go b/internal/aws/iot/software_package_version_singular_data_source_gen.go index cc67332b78..1ff91a8dd1 100644 --- a/internal/aws/iot/software_package_version_singular_data_source_gen.go +++ b/internal/aws/iot/software_package_version_singular_data_source_gen.go @@ -23,6 +23,73 @@ func init() { // This Terraform data source corresponds to the CloudFormation AWS::IoT::SoftwarePackageVersion resource. func softwarePackageVersionDataSource(ctx context.Context) (datasource.DataSource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Artifact + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The artifact location of the package version", + // "properties": { + // "S3Location": { + // "additionalProperties": false, + // "description": "The Amazon S3 location", + // "properties": { + // "Bucket": { + // "description": "The S3 bucket", + // "minLength": 1, + // "type": "string" + // }, + // "Key": { + // "description": "The S3 key", + // "minLength": 1, + // "type": "string" + // }, + // "Version": { + // "description": "The S3 version", + // "type": "string" + // } + // }, + // "required": [ + // "Bucket", + // "Key", + // "Version" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "S3Location" + // ], + // "type": "object" + // } + "artifact": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3Location + "s3_location": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Bucket + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 bucket", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 key", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 version", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The Amazon S3 location", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The artifact location of the package version", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Attributes // CloudFormation resource type schema: // @@ -85,6 +152,101 @@ func softwarePackageVersionDataSource(ctx context.Context) (datasource.DataSourc "package_version_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: Recipe + // CloudFormation resource type schema: + // + // { + // "description": "The inline json job document associated with a software package version", + // "type": "string" + // } + "recipe": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The inline json job document associated with a software package version", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Sbom + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The sbom zip archive location of the package version", + // "properties": { + // "S3Location": { + // "additionalProperties": false, + // "description": "The Amazon S3 location", + // "properties": { + // "Bucket": { + // "description": "The S3 bucket", + // "minLength": 1, + // "type": "string" + // }, + // "Key": { + // "description": "The S3 key", + // "minLength": 1, + // "type": "string" + // }, + // "Version": { + // "description": "The S3 version", + // "type": "string" + // } + // }, + // "required": [ + // "Bucket", + // "Key", + // "Version" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "S3Location" + // ], + // "type": "object" + // } + "sbom": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3Location + "s3_location": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Bucket + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 bucket", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 key", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 version", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The Amazon S3 location", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The sbom zip archive location of the package version", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SbomValidationStatus + // CloudFormation resource type schema: + // + // { + // "description": "The validation status of the Sbom file", + // "enum": [ + // "IN_PROGRESS", + // "FAILED", + // "SUCCEEDED", + // "" + // ], + // "type": "string" + // } + "sbom_validation_status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The validation status of the Sbom file", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Status // CloudFormation resource type schema: // @@ -180,16 +342,23 @@ func softwarePackageVersionDataSource(ctx context.Context) (datasource.DataSourc opts = opts.WithCloudFormationTypeName("AWS::IoT::SoftwarePackageVersion").WithTerraformTypeName("awscc_iot_software_package_version") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "attributes": "Attributes", - "description": "Description", - "error_reason": "ErrorReason", - "key": "Key", - "package_name": "PackageName", - "package_version_arn": "PackageVersionArn", - "status": "Status", - "tags": "Tags", - "value": "Value", - "version_name": "VersionName", + "artifact": "Artifact", + "attributes": "Attributes", + "bucket": "Bucket", + "description": "Description", + "error_reason": "ErrorReason", + "key": "Key", + "package_name": "PackageName", + "package_version_arn": "PackageVersionArn", + "recipe": "Recipe", + "s3_location": "S3Location", + "sbom": "Sbom", + "sbom_validation_status": "SbomValidationStatus", + "status": "Status", + "tags": "Tags", + "value": "Value", + "version": "Version", + "version_name": "VersionName", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/rds/db_cluster_singular_data_source_gen.go b/internal/aws/rds/db_cluster_singular_data_source_gen.go index bbb976cb49..1a54b7df50 100644 --- a/internal/aws/rds/db_cluster_singular_data_source_gen.go +++ b/internal/aws/rds/db_cluster_singular_data_source_gen.go @@ -247,11 +247,11 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters only", + // "description": "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", // "type": "string" // } "database_insights_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters only", + Description: "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", Computed: true, }, /*END ATTRIBUTE*/ // Property: DatabaseName diff --git a/internal/aws/rds/db_instance_singular_data_source_gen.go b/internal/aws/rds/db_instance_singular_data_source_gen.go index dbafbe0384..bbfb4e132c 100644 --- a/internal/aws/rds/db_instance_singular_data_source_gen.go +++ b/internal/aws/rds/db_instance_singular_data_source_gen.go @@ -360,11 +360,11 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If there's no DB subnet group, then the DB instance isn't a VPC DB instance.\n For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", + // "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If you don't specify a DB subnet group, RDS uses the default DB subnet group if one exists. If a default DB subnet group does not exist, and you don't specify a ``DBSubnetGroupName``, the DB instance fails to launch. \n For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", // "type": "string" // } "db_subnet_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If there's no DB subnet group, then the DB instance isn't a VPC DB instance.\n For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", + Description: "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If you don't specify a DB subnet group, RDS uses the default DB subnet group if one exists. If a default DB subnet group does not exist, and you don't specify a ``DBSubnetGroupName``, the DB instance fails to launch. \n For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DBSystemId diff --git a/internal/aws/rum/app_monitor_singular_data_source_gen.go b/internal/aws/rum/app_monitor_singular_data_source_gen.go index 13761acd26..27965d22c5 100644 --- a/internal/aws/rum/app_monitor_singular_data_source_gen.go +++ b/internal/aws/rum/app_monitor_singular_data_source_gen.go @@ -411,6 +411,45 @@ func appMonitorDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "A name for the app monitor", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ResourcePolicy + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A structure that defines resource policy attached to your app monitor.", + // "properties": { + // "PolicyDocument": { + // "description": "The JSON to use as the resource policy. The document can be up to 4 KB in size. ", + // "type": "string" + // }, + // "PolicyRevisionId": { + // "description": "A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. \n\n When you assign a policy revision ID, then later requests about that policy will be rejected with an InvalidPolicyRevisionIdException error if they don't provide the correct current revision ID.", + // "maxLength": 255, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "PolicyDocument" + // ], + // "type": "object" + // } + "resource_policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PolicyDocument + "policy_document": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The JSON to use as the resource policy. The document can be up to 4 KB in size. ", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PolicyRevisionId + "policy_revision_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. \n\n When you assign a policy revision ID, then later requests about that policy will be rejected with an InvalidPolicyRevisionIdException error if they don't provide the correct current revision ID.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A structure that defines resource policy attached to your app monitor.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -501,6 +540,9 @@ func appMonitorDataSource(ctx context.Context) (datasource.DataSource, error) { "metric_destinations": "MetricDestinations", "name": "Name", "namespace": "Namespace", + "policy_document": "PolicyDocument", + "policy_revision_id": "PolicyRevisionId", + "resource_policy": "ResourcePolicy", "session_sample_rate": "SessionSampleRate", "status": "Status", "tags": "Tags", diff --git a/internal/aws/sagemaker/inference_component_singular_data_source_gen.go b/internal/aws/sagemaker/inference_component_singular_data_source_gen.go index 380776b7a0..2dd02c4609 100644 --- a/internal/aws/sagemaker/inference_component_singular_data_source_gen.go +++ b/internal/aws/sagemaker/inference_component_singular_data_source_gen.go @@ -32,6 +32,177 @@ func inferenceComponentDataSource(ctx context.Context) (datasource.DataSource, e "creation_time": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: DeploymentConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The deployment config for the inference component", + // "properties": { + // "AutoRollbackConfiguration": { + // "additionalProperties": false, + // "properties": { + // "Alarms": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "AlarmName": { + // "maxLength": 255, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + // }, + // "required": [ + // "AlarmName" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Alarms" + // ], + // "type": "object" + // }, + // "RollingUpdatePolicy": { + // "additionalProperties": false, + // "description": "The rolling update policy for the inference component", + // "properties": { + // "MaximumBatchSize": { + // "additionalProperties": false, + // "description": "Capacity size configuration for the inference component", + // "properties": { + // "Type": { + // "enum": [ + // "COPY_COUNT", + // "CAPACITY_PERCENT" + // ], + // "type": "string" + // }, + // "Value": { + // "description": "The number of copies for the inference component", + // "type": "integer" + // } + // }, + // "required": [ + // "Type", + // "Value" + // ], + // "type": "object" + // }, + // "MaximumExecutionTimeoutInSeconds": { + // "maximum": 28800, + // "minimum": 600, + // "type": "integer" + // }, + // "RollbackMaximumBatchSize": { + // "additionalProperties": false, + // "description": "Capacity size configuration for the inference component", + // "properties": { + // "Type": { + // "enum": [ + // "COPY_COUNT", + // "CAPACITY_PERCENT" + // ], + // "type": "string" + // }, + // "Value": { + // "description": "The number of copies for the inference component", + // "type": "integer" + // } + // }, + // "required": [ + // "Type", + // "Value" + // ], + // "type": "object" + // }, + // "WaitIntervalInSeconds": { + // "maximum": 3600, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // } + "deployment_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AutoRollbackConfiguration + "auto_rollback_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Alarms + "alarms": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AlarmName + "alarm_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RollingUpdatePolicy + "rolling_update_policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaximumBatchSize + "maximum_batch_size": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of copies for the inference component", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Capacity size configuration for the inference component", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MaximumExecutionTimeoutInSeconds + "maximum_execution_timeout_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RollbackMaximumBatchSize + "rollback_maximum_batch_size": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of copies for the inference component", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Capacity size configuration for the inference component", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: WaitIntervalInSeconds + "wait_interval_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The rolling update policy for the inference component", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The deployment config for the inference component", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: EndpointArn // CloudFormation resource type schema: // @@ -458,7 +629,10 @@ func inferenceComponentDataSource(ctx context.Context) (datasource.DataSource, e opts = opts.WithCloudFormationTypeName("AWS::SageMaker::InferenceComponent").WithTerraformTypeName("awscc_sagemaker_inference_component") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "alarm_name": "AlarmName", + "alarms": "Alarms", "artifact_url": "ArtifactUrl", + "auto_rollback_configuration": "AutoRollbackConfiguration", "base_inference_component_name": "BaseInferenceComponentName", "compute_resource_requirements": "ComputeResourceRequirements", "container": "Container", @@ -467,6 +641,7 @@ func inferenceComponentDataSource(ctx context.Context) (datasource.DataSource, e "creation_time": "CreationTime", "current_copy_count": "CurrentCopyCount", "deployed_image": "DeployedImage", + "deployment_config": "DeploymentConfig", "desired_copy_count": "DesiredCopyCount", "endpoint_arn": "EndpointArn", "endpoint_name": "EndpointName", @@ -479,6 +654,8 @@ func inferenceComponentDataSource(ctx context.Context) (datasource.DataSource, e "key": "Key", "last_modified_time": "LastModifiedTime", "max_memory_required_in_mb": "MaxMemoryRequiredInMb", + "maximum_batch_size": "MaximumBatchSize", + "maximum_execution_timeout_in_seconds": "MaximumExecutionTimeoutInSeconds", "min_memory_required_in_mb": "MinMemoryRequiredInMb", "model_data_download_timeout_in_seconds": "ModelDataDownloadTimeoutInSeconds", "model_name": "ModelName", @@ -486,13 +663,17 @@ func inferenceComponentDataSource(ctx context.Context) (datasource.DataSource, e "number_of_cpu_cores_required": "NumberOfCpuCoresRequired", "resolution_time": "ResolutionTime", "resolved_image": "ResolvedImage", + "rollback_maximum_batch_size": "RollbackMaximumBatchSize", + "rolling_update_policy": "RollingUpdatePolicy", "runtime_config": "RuntimeConfig", "specification": "Specification", "specified_image": "SpecifiedImage", "startup_parameters": "StartupParameters", "tags": "Tags", + "type": "Type", "value": "Value", "variant_name": "VariantName", + "wait_interval_in_seconds": "WaitIntervalInSeconds", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/xray/transaction_search_config_plural_data_source_gen.go b/internal/aws/xray/transaction_search_config_plural_data_source_gen.go new file mode 100644 index 0000000000..1d14038a5f --- /dev/null +++ b/internal/aws/xray/transaction_search_config_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package xray + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_xray_transaction_search_configs", transactionSearchConfigsDataSource) +} + +// transactionSearchConfigsDataSource returns the Terraform awscc_xray_transaction_search_configs data source. +// This Terraform data source corresponds to the CloudFormation AWS::XRay::TransactionSearchConfig resource. +func transactionSearchConfigsDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ + "id": schema.StringAttribute{ + Description: "Uniquely identifies the data source.", + Computed: true, + }, + "ids": schema.SetAttribute{ + Description: "Set of Resource Identifiers.", + ElementType: types.StringType, + Computed: true, + }, + } + + schema := schema.Schema{ + Description: "Plural Data Source schema for AWS::XRay::TransactionSearchConfig", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::XRay::TransactionSearchConfig").WithTerraformTypeName("awscc_xray_transaction_search_configs") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/xray/transaction_search_config_plural_data_source_gen_test.go b/internal/aws/xray/transaction_search_config_plural_data_source_gen_test.go new file mode 100644 index 0000000000..ff2abab96a --- /dev/null +++ b/internal/aws/xray/transaction_search_config_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package xray_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSXRayTransactionSearchConfigsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::XRay::TransactionSearchConfig", "awscc_xray_transaction_search_configs", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/xray/transaction_search_config_singular_data_source_gen.go b/internal/aws/xray/transaction_search_config_singular_data_source_gen.go new file mode 100644 index 0000000000..99f58449a7 --- /dev/null +++ b/internal/aws/xray/transaction_search_config_singular_data_source_gen.go @@ -0,0 +1,78 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package xray + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_xray_transaction_search_config", transactionSearchConfigDataSource) +} + +// transactionSearchConfigDataSource returns the Terraform awscc_xray_transaction_search_config data source. +// This Terraform data source corresponds to the CloudFormation AWS::XRay::TransactionSearchConfig resource. +func transactionSearchConfigDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccountId + // CloudFormation resource type schema: + // + // { + // "description": "User account id, used as the primary identifier for the resource", + // "pattern": "^\\d{12}$", + // "type": "string" + // } + "account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "User account id, used as the primary identifier for the resource", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IndexingPercentage + // CloudFormation resource type schema: + // + // { + // "description": "Determines the percentage of traces indexed from CloudWatch Logs to X-Ray", + // "maximum": 100, + // "minimum": 0, + // "type": "number" + // } + "indexing_percentage": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Determines the percentage of traces indexed from CloudWatch Logs to X-Ray", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::XRay::TransactionSearchConfig", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::XRay::TransactionSearchConfig").WithTerraformTypeName("awscc_xray_transaction_search_config") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "account_id": "AccountId", + "indexing_percentage": "IndexingPercentage", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/xray/transaction_search_config_singular_data_source_gen_test.go b/internal/aws/xray/transaction_search_config_singular_data_source_gen_test.go new file mode 100644 index 0000000000..bc98cf87cb --- /dev/null +++ b/internal/aws/xray/transaction_search_config_singular_data_source_gen_test.go @@ -0,0 +1,40 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package xray_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSXRayTransactionSearchConfigDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::XRay::TransactionSearchConfig", "awscc_xray_transaction_search_config", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithEmptyResourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "id", td.ResourceName, "id"), + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "arn", td.ResourceName, "arn"), + ), + }, + }) +} + +func TestAccAWSXRayTransactionSearchConfigDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::XRay::TransactionSearchConfig", "awscc_xray_transaction_search_config", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} From 15f27a54080f5b6febaac14911666b369ffead3f Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 13 Mar 2025 11:58:47 -0400 Subject: [PATCH 5/6] 2025/03/12 Run 'make docs-all'. --- .../applicationsignals_discoveries.md | 21 +++++++ .../applicationsignals_discovery.md | 24 ++++++++ docs/data-sources/athena_data_catalog.md | 5 +- docs/data-sources/batch_job_definition.md | 1 + docs/data-sources/bedrock_agent.md | 1 + ...t_microsoft_teams_channel_configuration.md | 1 + docs/data-sources/dynamodb_table.md | 4 +- docs/data-sources/ec2_vpc_endpoint_service.md | 1 + .../ecr_pull_through_cache_rule.md | 2 + docs/data-sources/ecs_service.md | 8 ++- docs/data-sources/ecs_task_definition.md | 11 ++-- .../elasticloadbalancingv2_load_balancer.md | 3 +- .../iot_software_package_version.md | 40 ++++++++++++++ docs/data-sources/rds_db_cluster.md | 2 +- docs/data-sources/rds_db_instance.md | 2 +- docs/data-sources/rum_app_monitor.md | 12 ++++ .../sagemaker_inference_component.md | 55 +++++++++++++++++++ .../xray_transaction_search_config.md | 25 +++++++++ .../xray_transaction_search_configs.md | 21 +++++++ .../resources/applicationsignals_discovery.md | 29 ++++++++++ docs/resources/athena_data_catalog.md | 5 +- docs/resources/batch_job_definition.md | 1 + docs/resources/bedrock_agent.md | 1 + ...t_microsoft_teams_channel_configuration.md | 1 + docs/resources/dynamodb_table.md | 4 +- docs/resources/ec2_vpc_endpoint_service.md | 1 + docs/resources/ecr_pull_through_cache_rule.md | 2 + docs/resources/ecs_service.md | 8 ++- docs/resources/ecs_task_definition.md | 11 ++-- .../elasticloadbalancingv2_load_balancer.md | 3 +- .../resources/iot_software_package_version.md | 40 ++++++++++++++ docs/resources/msk_replicator.md | 2 +- docs/resources/rds_db_cluster.md | 2 +- docs/resources/rds_db_instance.md | 2 +- docs/resources/rum_app_monitor.md | 12 ++++ .../sagemaker_inference_component.md | 55 +++++++++++++++++++ .../xray_transaction_search_config.md | 33 +++++++++++ .../import.sh | 1 + .../import.sh | 1 + 39 files changed, 424 insertions(+), 29 deletions(-) create mode 100644 docs/data-sources/applicationsignals_discoveries.md create mode 100644 docs/data-sources/applicationsignals_discovery.md create mode 100644 docs/data-sources/xray_transaction_search_config.md create mode 100644 docs/data-sources/xray_transaction_search_configs.md create mode 100644 docs/resources/applicationsignals_discovery.md create mode 100644 docs/resources/xray_transaction_search_config.md create mode 100644 examples/resources/awscc_applicationsignals_discovery/import.sh create mode 100644 examples/resources/awscc_xray_transaction_search_config/import.sh diff --git a/docs/data-sources/applicationsignals_discoveries.md b/docs/data-sources/applicationsignals_discoveries.md new file mode 100644 index 0000000000..bf400a51e6 --- /dev/null +++ b/docs/data-sources/applicationsignals_discoveries.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_applicationsignals_discoveries Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::ApplicationSignals::Discovery +--- + +# awscc_applicationsignals_discoveries (Data Source) + +Plural Data Source schema for AWS::ApplicationSignals::Discovery + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/applicationsignals_discovery.md b/docs/data-sources/applicationsignals_discovery.md new file mode 100644 index 0000000000..c5471c540e --- /dev/null +++ b/docs/data-sources/applicationsignals_discovery.md @@ -0,0 +1,24 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_applicationsignals_discovery Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::ApplicationSignals::Discovery +--- + +# awscc_applicationsignals_discovery (Data Source) + +Data Source schema for AWS::ApplicationSignals::Discovery + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `account_id` (String) The identifier for the specified AWS account. diff --git a/docs/data-sources/athena_data_catalog.md b/docs/data-sources/athena_data_catalog.md index 5fc4578b47..3d236a5c6e 100644 --- a/docs/data-sources/athena_data_catalog.md +++ b/docs/data-sources/athena_data_catalog.md @@ -21,11 +21,14 @@ Data Source schema for AWS::Athena::DataCatalog ### Read-Only +- `connection_type` (String) The type of connection for a FEDERATED data catalog - `description` (String) A description of the data catalog to be created. +- `error` (String) Text of the error that occurred during data catalog creation or deletion. - `name` (String) The name of the data catalog to create. The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters. - `parameters` (Map of String) Specifies the Lambda function or functions to use for creating the data catalog. This is a mapping whose values depend on the catalog type. +- `status` (String) The status of the creation or deletion of the data catalog. LAMBDA, GLUE, and HIVE data catalog types are created synchronously. Their status is either CREATE_COMPLETE or CREATE_FAILED. The FEDERATED data catalog type is created asynchronously. - `tags` (Attributes List) A list of comma separated tags to add to the data catalog that is created. (see [below for nested schema](#nestedatt--tags)) -- `type` (String) The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. +- `type` (String) The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. FEDERATED is a federated catalog for which Athena creates the connection and the Lambda function for you based on the parameters that you pass. ### Nested Schema for `tags` diff --git a/docs/data-sources/batch_job_definition.md b/docs/data-sources/batch_job_definition.md index 0631b8200a..796ccdd8d7 100644 --- a/docs/data-sources/batch_job_definition.md +++ b/docs/data-sources/batch_job_definition.md @@ -25,6 +25,7 @@ Data Source schema for AWS::Batch::JobDefinition - `container_properties` (Attributes) (see [below for nested schema](#nestedatt--container_properties)) - `ecs_properties` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties)) - `eks_properties` (Attributes) (see [below for nested schema](#nestedatt--eks_properties)) +- `job_definition_arn` (String) - `job_definition_name` (String) - `node_properties` (Attributes) (see [below for nested schema](#nestedatt--node_properties)) - `parameters` (Map of String) diff --git a/docs/data-sources/bedrock_agent.md b/docs/data-sources/bedrock_agent.md index 5ff6886205..4926599a3c 100644 --- a/docs/data-sources/bedrock_agent.md +++ b/docs/data-sources/bedrock_agent.md @@ -207,6 +207,7 @@ Read-Only: Read-Only: +- `additional_model_request_fields` (String) Additional Model Request Fields for Prompt Configuration - `base_prompt_template` (String) Base Prompt Template. - `foundation_model` (String) ARN or name of a Bedrock model. - `inference_configuration` (Attributes) Configuration for inference in prompt configuration (see [below for nested schema](#nestedatt--prompt_override_configuration--prompt_configurations--inference_configuration)) diff --git a/docs/data-sources/chatbot_microsoft_teams_channel_configuration.md b/docs/data-sources/chatbot_microsoft_teams_channel_configuration.md index 3842b69eec..6a13121d46 100644 --- a/docs/data-sources/chatbot_microsoft_teams_channel_configuration.md +++ b/docs/data-sources/chatbot_microsoft_teams_channel_configuration.md @@ -31,6 +31,7 @@ Data Source schema for AWS::Chatbot::MicrosoftTeamsChannelConfiguration - `tags` (Attributes List) The tags to add to the configuration (see [below for nested schema](#nestedatt--tags)) - `team_id` (String) The id of the Microsoft Teams team - `teams_channel_id` (String) The id of the Microsoft Teams channel +- `teams_channel_name` (String) The name of the Microsoft Teams channel - `teams_tenant_id` (String) The id of the Microsoft Teams tenant - `user_role_required` (Boolean) Enables use of a user role requirement in your chat configuration diff --git a/docs/data-sources/dynamodb_table.md b/docs/data-sources/dynamodb_table.md index ce2c34ffb5..1e360dcf1e 100644 --- a/docs/data-sources/dynamodb_table.md +++ b/docs/data-sources/dynamodb_table.md @@ -27,8 +27,8 @@ Data Source schema for AWS::DynamoDB::Table Update requires: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt). Replacement if you edit an existing AttributeDefinition. (see [below for nested schema](#nestedatt--attribute_definitions)) - `billing_mode` (String) Specify how you are charged for read and write throughput and how you manage capacity. Valid values include: - + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual). - + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand). + + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for most DynamoDB workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-demand capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html). + + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for steady workloads with predictable growth where capacity requirements can be reliably forecasted. ``PROVISIONED`` sets the billing mode to [Provisioned capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html). If not specified, the default is ``PROVISIONED``. - `contributor_insights_specification` (Attributes) The settings used to enable or disable CloudWatch Contributor Insights for the specified table. (see [below for nested schema](#nestedatt--contributor_insights_specification)) diff --git a/docs/data-sources/ec2_vpc_endpoint_service.md b/docs/data-sources/ec2_vpc_endpoint_service.md index ba1eb66149..6d61942a4a 100644 --- a/docs/data-sources/ec2_vpc_endpoint_service.md +++ b/docs/data-sources/ec2_vpc_endpoint_service.md @@ -27,6 +27,7 @@ Data Source schema for AWS::EC2::VPCEndpointService - `network_load_balancer_arns` (List of String) - `payer_responsibility` (String) - `service_id` (String) +- `supported_ip_address_types` (List of String) Specify which Ip Address types are supported for VPC endpoint service. - `tags` (Attributes List) The tags to add to the VPC endpoint service. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/data-sources/ecr_pull_through_cache_rule.md b/docs/data-sources/ecr_pull_through_cache_rule.md index 211bbedb16..3a54032786 100644 --- a/docs/data-sources/ecr_pull_through_cache_rule.md +++ b/docs/data-sources/ecr_pull_through_cache_rule.md @@ -22,6 +22,8 @@ Data Source schema for AWS::ECR::PullThroughCacheRule ### Read-Only - `credential_arn` (String) The ARN of the Secrets Manager secret associated with the pull through cache rule. +- `custom_role_arn` (String) The ARN of the IAM role to be assumed by Amazon ECR to authenticate to ECR upstream registry. This role must be in the same account as the registry that you are configuring. - `ecr_repository_prefix` (String) The Amazon ECR repository prefix associated with the pull through cache rule. - `upstream_registry` (String) The name of the upstream source registry associated with the pull through cache rule. - `upstream_registry_url` (String) The upstream registry URL associated with the pull through cache rule. +- `upstream_repository_prefix` (String) The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`. diff --git a/docs/data-sources/ecs_service.md b/docs/data-sources/ecs_service.md index f74ea54472..4265d5e990 100644 --- a/docs/data-sources/ecs_service.md +++ b/docs/data-sources/ecs_service.md @@ -25,7 +25,7 @@ Data Source schema for AWS::ECS::Service For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide*. - `capacity_provider_strategy` (Attributes List) The capacity provider strategy to use for the service. If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. - A capacity provider strategy may contain a maximum of 6 capacity providers. + A capacity provider strategy can contain a maximum of 20 capacity providers. To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array. (see [below for nested schema](#nestedatt--capacity_provider_strategy)) - `cluster` (String) The short name or full Amazon Resource Name (ARN) of the cluster that you run your service on. If you do not specify a cluster, the default cluster is assumed. - `deployment_configuration` (Attributes) Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks. (see [below for nested schema](#nestedatt--deployment_configuration)) @@ -184,7 +184,11 @@ Read-Only: Read-Only: -- `assign_public_ip` (String) Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``. +- `assign_public_ip` (String) Whether the task's elastic network interface receives a public IP address. + Consider the following when you set this value: + + When you use ``create-service`` or ``update-service``, the default is ``DISABLED``. + + When the service ``deploymentController`` is ``ECS``, the value must be ``DISABLED``. + + When you use ``create-service`` or ``update-service``, the default is ``ENABLED``. - `security_groups` (List of String) The IDs of the security groups associated with the task or service. If you don't specify a security group, the default security group for the VPC is used. There's a limit of 5 security groups that can be specified. All specified security groups must be from the same VPC. - `subnets` (List of String) The IDs of the subnets associated with the task or service. There's a limit of 16 subnets that can be specified. diff --git a/docs/data-sources/ecs_task_definition.md b/docs/data-sources/ecs_task_definition.md index bec93df8e0..4df41cab3b 100644 --- a/docs/data-sources/ecs_task_definition.md +++ b/docs/data-sources/ecs_task_definition.md @@ -23,8 +23,7 @@ Data Source schema for AWS::ECS::TaskDefinition - `container_definitions` (Attributes Set) A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--container_definitions)) - `cpu` (String) The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter. - If you use the EC2 launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``10240`` CPU units (``10`` vCPUs). - The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. + If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``196608`` CPU units (``192`` vCPUs). The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) @@ -294,11 +293,11 @@ Read-Only: You don't include the double quotes and brackets when you use the AWS Management Console. ``CMD-SHELL, curl -f http://localhost/ || exit 1`` An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. -- `interval` (Number) The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. -- `retries` (Number) The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. -- `start_period` (Number) The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. +- `interval` (Number) The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``. +- `retries` (Number) The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``. +- `start_period` (Number) The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries. -- `timeout` (Number) The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. +- `timeout` (Number) The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``. diff --git a/docs/data-sources/elasticloadbalancingv2_load_balancer.md b/docs/data-sources/elasticloadbalancingv2_load_balancer.md index fe59d2162f..0ef514893e 100644 --- a/docs/data-sources/elasticloadbalancingv2_load_balancer.md +++ b/docs/data-sources/elasticloadbalancingv2_load_balancer.md @@ -24,11 +24,12 @@ Data Source schema for AWS::ElasticLoadBalancingV2::LoadBalancer - `canonical_hosted_zone_id` (String) - `dns_name` (String) - `enable_prefix_for_ipv_6_source_nat` (String) [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. -- `enforce_security_group_inbound_rules_on_private_link_traffic` (String) Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. +- `enforce_security_group_inbound_rules_on_private_link_traffic` (String) Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. The default is ``on``. - `ip_address_type` (String) The IP address type. Internal load balancers must use ``ipv4``. [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). +- `ipv_4_ipam_pool_id` (String) - `load_balancer_arn` (String) - `load_balancer_attributes` (Attributes Set) The load balancer attributes. (see [below for nested schema](#nestedatt--load_balancer_attributes)) - `load_balancer_full_name` (String) diff --git a/docs/data-sources/iot_software_package_version.md b/docs/data-sources/iot_software_package_version.md index 8689ea9928..535ae15de5 100644 --- a/docs/data-sources/iot_software_package_version.md +++ b/docs/data-sources/iot_software_package_version.md @@ -21,15 +21,55 @@ Data Source schema for AWS::IoT::SoftwarePackageVersion ### Read-Only +- `artifact` (Attributes) The artifact location of the package version (see [below for nested schema](#nestedatt--artifact)) - `attributes` (Map of String) - `description` (String) - `error_reason` (String) - `package_name` (String) - `package_version_arn` (String) +- `recipe` (String) The inline json job document associated with a software package version +- `sbom` (Attributes) The sbom zip archive location of the package version (see [below for nested schema](#nestedatt--sbom)) +- `sbom_validation_status` (String) The validation status of the Sbom file - `status` (String) - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) - `version_name` (String) + +### Nested Schema for `artifact` + +Read-Only: + +- `s3_location` (Attributes) The Amazon S3 location (see [below for nested schema](#nestedatt--artifact--s3_location)) + + +### Nested Schema for `artifact.s3_location` + +Read-Only: + +- `bucket` (String) The S3 bucket +- `key` (String) The S3 key +- `version` (String) The S3 version + + + + +### Nested Schema for `sbom` + +Read-Only: + +- `s3_location` (Attributes) The Amazon S3 location (see [below for nested schema](#nestedatt--sbom--s3_location)) + + +### Nested Schema for `sbom.s3_location` + +Read-Only: + +- `bucket` (String) The S3 bucket +- `key` (String) The S3 key +- `version` (String) The S3 version + + + ### Nested Schema for `tags` diff --git a/docs/data-sources/rds_db_cluster.md b/docs/data-sources/rds_db_cluster.md index 4ddedf85ea..220c733732 100644 --- a/docs/data-sources/rds_db_cluster.md +++ b/docs/data-sources/rds_db_cluster.md @@ -46,7 +46,7 @@ Data Source schema for AWS::RDS::DBCluster Valid for: Aurora DB clusters and Multi-AZ DB clusters - `database_insights_mode` (String) The mode of Database Insights to enable for the DB cluster. If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465. - Valid for Cluster Type: Aurora DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters - `database_name` (String) The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `db_cluster_arn` (String) diff --git a/docs/data-sources/rds_db_instance.md b/docs/data-sources/rds_db_instance.md index 6c6f0e1d53..1f51c94a2e 100644 --- a/docs/data-sources/rds_db_instance.md +++ b/docs/data-sources/rds_db_instance.md @@ -221,7 +221,7 @@ Data Source schema for AWS::RDS::DBInstance *Amazon Aurora* Not applicable. Snapshot restore is managed by the DB cluster. - `db_subnet_group_name` (String) A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. - If there's no DB subnet group, then the DB instance isn't a VPC DB instance. + If you don't specify a DB subnet group, RDS uses the default DB subnet group if one exists. If a default DB subnet group does not exist, and you don't specify a ``DBSubnetGroupName``, the DB instance fails to launch. For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting. - `db_system_id` (String) The Oracle system identifier (SID), which is the name of the Oracle database instance that manages your database files. In this context, the term "Oracle database instance" refers exclusively to the system global area (SGA) and Oracle background processes. If you don't specify a SID, the value defaults to ``RDSCDB``. The Oracle SID is also the name of your CDB. diff --git a/docs/data-sources/rum_app_monitor.md b/docs/data-sources/rum_app_monitor.md index af1ac55a7e..6e41ad48c7 100644 --- a/docs/data-sources/rum_app_monitor.md +++ b/docs/data-sources/rum_app_monitor.md @@ -27,6 +27,7 @@ Data Source schema for AWS::RUM::AppMonitor - `cw_log_enabled` (Boolean) Data collected by RUM is kept by RUM for 30 days and then deleted. This parameter specifies whether RUM sends a copy of this telemetry data to CWLlong in your account. This enables you to keep the telemetry data for more than 30 days, but it does incur CWLlong charges. If you omit this parameter, the default is false - `domain` (String) The top-level internet domain name for which your application has administrative authority. - `name` (String) A name for the app monitor +- `resource_policy` (Attributes) A structure that defines resource policy attached to your app monitor. (see [below for nested schema](#nestedatt--resource_policy)) - `tags` (Attributes Set) Assigns one or more tags (key-value pairs) to the app monitor. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters.You can associate as many as 50 tags with an app monitor. (see [below for nested schema](#nestedatt--tags)) @@ -134,6 +135,17 @@ Read-Only: - `status` (String) Indicates whether AppMonitor accepts custom events. + +### Nested Schema for `resource_policy` + +Read-Only: + +- `policy_document` (String) The JSON to use as the resource policy. The document can be up to 4 KB in size. +- `policy_revision_id` (String) A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. + + When you assign a policy revision ID, then later requests about that policy will be rejected with an InvalidPolicyRevisionIdException error if they don't provide the correct current revision ID. + + ### Nested Schema for `tags` diff --git a/docs/data-sources/sagemaker_inference_component.md b/docs/data-sources/sagemaker_inference_component.md index de4fbc193c..4092d2182b 100644 --- a/docs/data-sources/sagemaker_inference_component.md +++ b/docs/data-sources/sagemaker_inference_component.md @@ -22,6 +22,7 @@ Data Source schema for AWS::SageMaker::InferenceComponent ### Read-Only - `creation_time` (String) +- `deployment_config` (Attributes) The deployment config for the inference component (see [below for nested schema](#nestedatt--deployment_config)) - `endpoint_arn` (String) The Amazon Resource Name (ARN) of the endpoint the inference component is associated with - `endpoint_name` (String) The name of the endpoint the inference component is associated with - `failure_reason` (String) The failure reason if the inference component is in a failed state @@ -34,6 +35,60 @@ Data Source schema for AWS::SageMaker::InferenceComponent - `tags` (Attributes List) An array of tags to apply to the resource (see [below for nested schema](#nestedatt--tags)) - `variant_name` (String) The name of the endpoint variant the inference component is associated with + +### Nested Schema for `deployment_config` + +Read-Only: + +- `auto_rollback_configuration` (Attributes) (see [below for nested schema](#nestedatt--deployment_config--auto_rollback_configuration)) +- `rolling_update_policy` (Attributes) The rolling update policy for the inference component (see [below for nested schema](#nestedatt--deployment_config--rolling_update_policy)) + + +### Nested Schema for `deployment_config.auto_rollback_configuration` + +Read-Only: + +- `alarms` (Attributes List) (see [below for nested schema](#nestedatt--deployment_config--auto_rollback_configuration--alarms)) + + +### Nested Schema for `deployment_config.auto_rollback_configuration.alarms` + +Read-Only: + +- `alarm_name` (String) + + + + +### Nested Schema for `deployment_config.rolling_update_policy` + +Read-Only: + +- `maximum_batch_size` (Attributes) Capacity size configuration for the inference component (see [below for nested schema](#nestedatt--deployment_config--rolling_update_policy--maximum_batch_size)) +- `maximum_execution_timeout_in_seconds` (Number) +- `rollback_maximum_batch_size` (Attributes) Capacity size configuration for the inference component (see [below for nested schema](#nestedatt--deployment_config--rolling_update_policy--rollback_maximum_batch_size)) +- `wait_interval_in_seconds` (Number) + + +### Nested Schema for `deployment_config.rolling_update_policy.maximum_batch_size` + +Read-Only: + +- `type` (String) +- `value` (Number) The number of copies for the inference component + + + +### Nested Schema for `deployment_config.rolling_update_policy.rollback_maximum_batch_size` + +Read-Only: + +- `type` (String) +- `value` (Number) The number of copies for the inference component + + + + ### Nested Schema for `runtime_config` diff --git a/docs/data-sources/xray_transaction_search_config.md b/docs/data-sources/xray_transaction_search_config.md new file mode 100644 index 0000000000..a9b5590a1a --- /dev/null +++ b/docs/data-sources/xray_transaction_search_config.md @@ -0,0 +1,25 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_xray_transaction_search_config Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::XRay::TransactionSearchConfig +--- + +# awscc_xray_transaction_search_config (Data Source) + +Data Source schema for AWS::XRay::TransactionSearchConfig + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `account_id` (String) User account id, used as the primary identifier for the resource +- `indexing_percentage` (Number) Determines the percentage of traces indexed from CloudWatch Logs to X-Ray diff --git a/docs/data-sources/xray_transaction_search_configs.md b/docs/data-sources/xray_transaction_search_configs.md new file mode 100644 index 0000000000..abb7565ab0 --- /dev/null +++ b/docs/data-sources/xray_transaction_search_configs.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_xray_transaction_search_configs Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::XRay::TransactionSearchConfig +--- + +# awscc_xray_transaction_search_configs (Data Source) + +Plural Data Source schema for AWS::XRay::TransactionSearchConfig + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/resources/applicationsignals_discovery.md b/docs/resources/applicationsignals_discovery.md new file mode 100644 index 0000000000..64a7299f11 --- /dev/null +++ b/docs/resources/applicationsignals_discovery.md @@ -0,0 +1,29 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_applicationsignals_discovery Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::ApplicationSignals::Discovery +--- + +# awscc_applicationsignals_discovery (Resource) + +Resource Type definition for AWS::ApplicationSignals::Discovery + + + + +## Schema + +### Read-Only + +- `account_id` (String) The identifier for the specified AWS account. +- `id` (String) Uniquely identifies the resource. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_applicationsignals_discovery.example "account_id" +``` diff --git a/docs/resources/athena_data_catalog.md b/docs/resources/athena_data_catalog.md index 9c6172f328..ee5d806d33 100644 --- a/docs/resources/athena_data_catalog.md +++ b/docs/resources/athena_data_catalog.md @@ -31,12 +31,15 @@ resource "awscc_athena_data_catalog" "this" { ### Required - `name` (String) The name of the data catalog to create. The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters. -- `type` (String) The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. +- `type` (String) The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. FEDERATED is a federated catalog for which Athena creates the connection and the Lambda function for you based on the parameters that you pass. ### Optional +- `connection_type` (String) The type of connection for a FEDERATED data catalog - `description` (String) A description of the data catalog to be created. +- `error` (String) Text of the error that occurred during data catalog creation or deletion. - `parameters` (Map of String) Specifies the Lambda function or functions to use for creating the data catalog. This is a mapping whose values depend on the catalog type. +- `status` (String) The status of the creation or deletion of the data catalog. LAMBDA, GLUE, and HIVE data catalog types are created synchronously. Their status is either CREATE_COMPLETE or CREATE_FAILED. The FEDERATED data catalog type is created asynchronously. - `tags` (Attributes List) A list of comma separated tags to add to the data catalog that is created. (see [below for nested schema](#nestedatt--tags)) ### Read-Only diff --git a/docs/resources/batch_job_definition.md b/docs/resources/batch_job_definition.md index ebe004e881..8dee362179 100644 --- a/docs/resources/batch_job_definition.md +++ b/docs/resources/batch_job_definition.md @@ -108,6 +108,7 @@ resource "awscc_batch_job_definition" "example" { ### Read-Only - `id` (String) Uniquely identifies the resource. +- `job_definition_arn` (String) ### Nested Schema for `consumable_resource_properties` diff --git a/docs/resources/bedrock_agent.md b/docs/resources/bedrock_agent.md index 8adda8a32e..aba2732acc 100644 --- a/docs/resources/bedrock_agent.md +++ b/docs/resources/bedrock_agent.md @@ -274,6 +274,7 @@ Optional: Optional: +- `additional_model_request_fields` (String) Additional Model Request Fields for Prompt Configuration - `base_prompt_template` (String) Base Prompt Template. - `foundation_model` (String) ARN or name of a Bedrock model. - `inference_configuration` (Attributes) Configuration for inference in prompt configuration (see [below for nested schema](#nestedatt--prompt_override_configuration--prompt_configurations--inference_configuration)) diff --git a/docs/resources/chatbot_microsoft_teams_channel_configuration.md b/docs/resources/chatbot_microsoft_teams_channel_configuration.md index b95890fce9..4e2ae9eb88 100644 --- a/docs/resources/chatbot_microsoft_teams_channel_configuration.md +++ b/docs/resources/chatbot_microsoft_teams_channel_configuration.md @@ -30,6 +30,7 @@ Resource schema for AWS::Chatbot::MicrosoftTeamsChannelConfiguration. - `logging_level` (String) Specifies the logging level for this configuration:ERROR,INFO or NONE. This property affects the log entries pushed to Amazon CloudWatch logs - `sns_topic_arns` (List of String) ARNs of SNS topics which delivers notifications to AWS Chatbot, for example CloudWatch alarm notifications. - `tags` (Attributes List) The tags to add to the configuration (see [below for nested schema](#nestedatt--tags)) +- `teams_channel_name` (String) The name of the Microsoft Teams channel - `user_role_required` (Boolean) Enables use of a user role requirement in your chat configuration ### Read-Only diff --git a/docs/resources/dynamodb_table.md b/docs/resources/dynamodb_table.md index 9dfcb2d7bd..2ae3661d2f 100644 --- a/docs/resources/dynamodb_table.md +++ b/docs/resources/dynamodb_table.md @@ -149,8 +149,8 @@ resource "awscc_dynamodb_table" "example" { Update requires: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt). Replacement if you edit an existing AttributeDefinition. (see [below for nested schema](#nestedatt--attribute_definitions)) - `billing_mode` (String) Specify how you are charged for read and write throughput and how you manage capacity. Valid values include: - + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual). - + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand). + + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for most DynamoDB workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-demand capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html). + + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for steady workloads with predictable growth where capacity requirements can be reliably forecasted. ``PROVISIONED`` sets the billing mode to [Provisioned capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html). If not specified, the default is ``PROVISIONED``. - `contributor_insights_specification` (Attributes) The settings used to enable or disable CloudWatch Contributor Insights for the specified table. (see [below for nested schema](#nestedatt--contributor_insights_specification)) diff --git a/docs/resources/ec2_vpc_endpoint_service.md b/docs/resources/ec2_vpc_endpoint_service.md index cf5a5e9faa..429d30b145 100644 --- a/docs/resources/ec2_vpc_endpoint_service.md +++ b/docs/resources/ec2_vpc_endpoint_service.md @@ -72,6 +72,7 @@ resource "awscc_ec2_vpc_endpoint_service" "example" { - `gateway_load_balancer_arns` (List of String) - `network_load_balancer_arns` (List of String) - `payer_responsibility` (String) +- `supported_ip_address_types` (List of String) Specify which Ip Address types are supported for VPC endpoint service. - `tags` (Attributes List) The tags to add to the VPC endpoint service. (see [below for nested schema](#nestedatt--tags)) ### Read-Only diff --git a/docs/resources/ecr_pull_through_cache_rule.md b/docs/resources/ecr_pull_through_cache_rule.md index 08e4ab9fc8..ca9be36790 100644 --- a/docs/resources/ecr_pull_through_cache_rule.md +++ b/docs/resources/ecr_pull_through_cache_rule.md @@ -27,9 +27,11 @@ resource "awscc_ecr_pull_through_cache_rule" "ecr_pull_through_cache_rule_exampl ### Optional - `credential_arn` (String) The ARN of the Secrets Manager secret associated with the pull through cache rule. +- `custom_role_arn` (String) The ARN of the IAM role to be assumed by Amazon ECR to authenticate to ECR upstream registry. This role must be in the same account as the registry that you are configuring. - `ecr_repository_prefix` (String) The Amazon ECR repository prefix associated with the pull through cache rule. - `upstream_registry` (String) The name of the upstream source registry associated with the pull through cache rule. - `upstream_registry_url` (String) The upstream registry URL associated with the pull through cache rule. +- `upstream_repository_prefix` (String) The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`. ### Read-Only diff --git a/docs/resources/ecs_service.md b/docs/resources/ecs_service.md index c414d642d5..9f5c242261 100644 --- a/docs/resources/ecs_service.md +++ b/docs/resources/ecs_service.md @@ -73,7 +73,7 @@ resource "awscc_ecs_service" "nginx" { For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide*. - `capacity_provider_strategy` (Attributes List) The capacity provider strategy to use for the service. If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. - A capacity provider strategy may contain a maximum of 6 capacity providers. + A capacity provider strategy can contain a maximum of 20 capacity providers. To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array. (see [below for nested schema](#nestedatt--capacity_provider_strategy)) - `cluster` (String) The short name or full Amazon Resource Name (ARN) of the cluster that you run your service on. If you do not specify a cluster, the default cluster is assumed. - `deployment_configuration` (Attributes) Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks. (see [below for nested schema](#nestedatt--deployment_configuration)) @@ -236,7 +236,11 @@ Optional: Optional: -- `assign_public_ip` (String) Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``. +- `assign_public_ip` (String) Whether the task's elastic network interface receives a public IP address. + Consider the following when you set this value: + + When you use ``create-service`` or ``update-service``, the default is ``DISABLED``. + + When the service ``deploymentController`` is ``ECS``, the value must be ``DISABLED``. + + When you use ``create-service`` or ``update-service``, the default is ``ENABLED``. - `security_groups` (List of String) The IDs of the security groups associated with the task or service. If you don't specify a security group, the default security group for the VPC is used. There's a limit of 5 security groups that can be specified. All specified security groups must be from the same VPC. - `subnets` (List of String) The IDs of the subnets associated with the task or service. There's a limit of 16 subnets that can be specified. diff --git a/docs/resources/ecs_task_definition.md b/docs/resources/ecs_task_definition.md index 09b767ea99..d0f7e00c0c 100644 --- a/docs/resources/ecs_task_definition.md +++ b/docs/resources/ecs_task_definition.md @@ -143,8 +143,7 @@ resource "awscc_ecs_task_definition" "example" { - `container_definitions` (Attributes Set) A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--container_definitions)) - `cpu` (String) The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter. - If you use the EC2 launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``10240`` CPU units (``10`` vCPUs). - The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. + If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``196608`` CPU units (``192`` vCPUs). The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) @@ -418,11 +417,11 @@ Optional: You don't include the double quotes and brackets when you use the AWS Management Console. ``CMD-SHELL, curl -f http://localhost/ || exit 1`` An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. -- `interval` (Number) The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. -- `retries` (Number) The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. -- `start_period` (Number) The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. +- `interval` (Number) The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``. +- `retries` (Number) The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``. +- `start_period` (Number) The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries. -- `timeout` (Number) The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. +- `timeout` (Number) The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``. diff --git a/docs/resources/elasticloadbalancingv2_load_balancer.md b/docs/resources/elasticloadbalancingv2_load_balancer.md index 0db40e8eec..9fa2281706 100644 --- a/docs/resources/elasticloadbalancingv2_load_balancer.md +++ b/docs/resources/elasticloadbalancingv2_load_balancer.md @@ -154,11 +154,12 @@ resource "awscc_elasticloadbalancingv2_load_balancer" "example" { ### Optional - `enable_prefix_for_ipv_6_source_nat` (String) [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. -- `enforce_security_group_inbound_rules_on_private_link_traffic` (String) Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. +- `enforce_security_group_inbound_rules_on_private_link_traffic` (String) Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. The default is ``on``. - `ip_address_type` (String) The IP address type. Internal load balancers must use ``ipv4``. [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). +- `ipv_4_ipam_pool_id` (String) - `load_balancer_attributes` (Attributes Set) The load balancer attributes. (see [below for nested schema](#nestedatt--load_balancer_attributes)) - `minimum_load_balancer_capacity` (Attributes) The minimum capacity for a load balancer. (see [below for nested schema](#nestedatt--minimum_load_balancer_capacity)) - `name` (String) The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-". diff --git a/docs/resources/iot_software_package_version.md b/docs/resources/iot_software_package_version.md index 10396e4bf3..2ba9c52734 100644 --- a/docs/resources/iot_software_package_version.md +++ b/docs/resources/iot_software_package_version.md @@ -21,8 +21,11 @@ resource definition ### Optional +- `artifact` (Attributes) The artifact location of the package version (see [below for nested schema](#nestedatt--artifact)) - `attributes` (Map of String) - `description` (String) +- `recipe` (String) The inline json job document associated with a software package version +- `sbom` (Attributes) The sbom zip archive location of the package version (see [below for nested schema](#nestedatt--sbom)) - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) - `version_name` (String) @@ -31,8 +34,45 @@ resource definition - `error_reason` (String) - `id` (String) Uniquely identifies the resource. - `package_version_arn` (String) +- `sbom_validation_status` (String) The validation status of the Sbom file - `status` (String) + +### Nested Schema for `artifact` + +Optional: + +- `s3_location` (Attributes) The Amazon S3 location (see [below for nested schema](#nestedatt--artifact--s3_location)) + + +### Nested Schema for `artifact.s3_location` + +Optional: + +- `bucket` (String) The S3 bucket +- `key` (String) The S3 key +- `version` (String) The S3 version + + + + +### Nested Schema for `sbom` + +Optional: + +- `s3_location` (Attributes) The Amazon S3 location (see [below for nested schema](#nestedatt--sbom--s3_location)) + + +### Nested Schema for `sbom.s3_location` + +Optional: + +- `bucket` (String) The S3 bucket +- `key` (String) The S3 key +- `version` (String) The S3 version + + + ### Nested Schema for `tags` diff --git a/docs/resources/msk_replicator.md b/docs/resources/msk_replicator.md index bbde53fd07..ee24c288b4 100644 --- a/docs/resources/msk_replicator.md +++ b/docs/resources/msk_replicator.md @@ -24,12 +24,12 @@ Resource Type definition for AWS::MSK::Replicator ### Optional -- `current_version` (String) The current version of the MSK replicator. - `description` (String) A summary description of the replicator. - `tags` (Attributes Set) A collection of tags associated with a resource (see [below for nested schema](#nestedatt--tags)) ### Read-Only +- `current_version` (String) The current version of the MSK replicator. - `id` (String) Uniquely identifies the resource. - `replicator_arn` (String) Amazon Resource Name for the created replicator. diff --git a/docs/resources/rds_db_cluster.md b/docs/resources/rds_db_cluster.md index 13a86de5ac..a3fc80cb9b 100644 --- a/docs/resources/rds_db_cluster.md +++ b/docs/resources/rds_db_cluster.md @@ -81,7 +81,7 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { Valid for: Aurora DB clusters and Multi-AZ DB clusters - `database_insights_mode` (String) The mode of Database Insights to enable for the DB cluster. If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465. - Valid for Cluster Type: Aurora DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters - `database_name` (String) The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `db_cluster_identifier` (String) The DB cluster identifier. This parameter is stored as a lowercase string. diff --git a/docs/resources/rds_db_instance.md b/docs/resources/rds_db_instance.md index eafd4afd57..81795d8662 100644 --- a/docs/resources/rds_db_instance.md +++ b/docs/resources/rds_db_instance.md @@ -343,7 +343,7 @@ resource "awscc_rds_db_instance" "this" { *Amazon Aurora* Not applicable. Snapshot restore is managed by the DB cluster. - `db_subnet_group_name` (String) A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. - If there's no DB subnet group, then the DB instance isn't a VPC DB instance. + If you don't specify a DB subnet group, RDS uses the default DB subnet group if one exists. If a default DB subnet group does not exist, and you don't specify a ``DBSubnetGroupName``, the DB instance fails to launch. For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting. - `db_system_id` (String) The Oracle system identifier (SID), which is the name of the Oracle database instance that manages your database files. In this context, the term "Oracle database instance" refers exclusively to the system global area (SGA) and Oracle background processes. If you don't specify a SID, the value defaults to ``RDSCDB``. The Oracle SID is also the name of your CDB. diff --git a/docs/resources/rum_app_monitor.md b/docs/resources/rum_app_monitor.md index 01996937cf..000ddc65b9 100644 --- a/docs/resources/rum_app_monitor.md +++ b/docs/resources/rum_app_monitor.md @@ -118,6 +118,7 @@ resource "awscc_rum_app_monitor" "example" { - `app_monitor_configuration` (Attributes) AppMonitor configuration (see [below for nested schema](#nestedatt--app_monitor_configuration)) - `custom_events` (Attributes) AppMonitor custom events configuration (see [below for nested schema](#nestedatt--custom_events)) - `cw_log_enabled` (Boolean) Data collected by RUM is kept by RUM for 30 days and then deleted. This parameter specifies whether RUM sends a copy of this telemetry data to CWLlong in your account. This enables you to keep the telemetry data for more than 30 days, but it does incur CWLlong charges. If you omit this parameter, the default is false +- `resource_policy` (Attributes) A structure that defines resource policy attached to your app monitor. (see [below for nested schema](#nestedatt--resource_policy)) - `tags` (Attributes Set) Assigns one or more tags (key-value pairs) to the app monitor. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters.You can associate as many as 50 tags with an app monitor. (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -230,6 +231,17 @@ Optional: - `status` (String) Indicates whether AppMonitor accepts custom events. + +### Nested Schema for `resource_policy` + +Optional: + +- `policy_document` (String) The JSON to use as the resource policy. The document can be up to 4 KB in size. +- `policy_revision_id` (String) A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. + + When you assign a policy revision ID, then later requests about that policy will be rejected with an InvalidPolicyRevisionIdException error if they don't provide the correct current revision ID. + + ### Nested Schema for `tags` diff --git a/docs/resources/sagemaker_inference_component.md b/docs/resources/sagemaker_inference_component.md index 4ac3a30e36..a5f716f8bc 100644 --- a/docs/resources/sagemaker_inference_component.md +++ b/docs/resources/sagemaker_inference_component.md @@ -22,6 +22,7 @@ Resource Type definition for AWS::SageMaker::InferenceComponent ### Optional +- `deployment_config` (Attributes) The deployment config for the inference component (see [below for nested schema](#nestedatt--deployment_config)) - `endpoint_arn` (String) The Amazon Resource Name (ARN) of the endpoint the inference component is associated with - `inference_component_name` (String) The name of the inference component - `runtime_config` (Attributes) The runtime config for the inference component (see [below for nested schema](#nestedatt--runtime_config)) @@ -93,6 +94,60 @@ Optional: + +### Nested Schema for `deployment_config` + +Optional: + +- `auto_rollback_configuration` (Attributes) (see [below for nested schema](#nestedatt--deployment_config--auto_rollback_configuration)) +- `rolling_update_policy` (Attributes) The rolling update policy for the inference component (see [below for nested schema](#nestedatt--deployment_config--rolling_update_policy)) + + +### Nested Schema for `deployment_config.auto_rollback_configuration` + +Optional: + +- `alarms` (Attributes List) (see [below for nested schema](#nestedatt--deployment_config--auto_rollback_configuration--alarms)) + + +### Nested Schema for `deployment_config.auto_rollback_configuration.alarms` + +Optional: + +- `alarm_name` (String) + + + + +### Nested Schema for `deployment_config.rolling_update_policy` + +Optional: + +- `maximum_batch_size` (Attributes) Capacity size configuration for the inference component (see [below for nested schema](#nestedatt--deployment_config--rolling_update_policy--maximum_batch_size)) +- `maximum_execution_timeout_in_seconds` (Number) +- `rollback_maximum_batch_size` (Attributes) Capacity size configuration for the inference component (see [below for nested schema](#nestedatt--deployment_config--rolling_update_policy--rollback_maximum_batch_size)) +- `wait_interval_in_seconds` (Number) + + +### Nested Schema for `deployment_config.rolling_update_policy.maximum_batch_size` + +Optional: + +- `type` (String) +- `value` (Number) The number of copies for the inference component + + + +### Nested Schema for `deployment_config.rolling_update_policy.rollback_maximum_batch_size` + +Optional: + +- `type` (String) +- `value` (Number) The number of copies for the inference component + + + + ### Nested Schema for `runtime_config` diff --git a/docs/resources/xray_transaction_search_config.md b/docs/resources/xray_transaction_search_config.md new file mode 100644 index 0000000000..93885d83c5 --- /dev/null +++ b/docs/resources/xray_transaction_search_config.md @@ -0,0 +1,33 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_xray_transaction_search_config Resource - terraform-provider-awscc" +subcategory: "" +description: |- + This schema provides construct and validation rules for AWS-XRay TransactionSearchConfig resource parameters. +--- + +# awscc_xray_transaction_search_config (Resource) + +This schema provides construct and validation rules for AWS-XRay TransactionSearchConfig resource parameters. + + + + +## Schema + +### Optional + +- `indexing_percentage` (Number) Determines the percentage of traces indexed from CloudWatch Logs to X-Ray + +### Read-Only + +- `account_id` (String) User account id, used as the primary identifier for the resource +- `id` (String) Uniquely identifies the resource. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_xray_transaction_search_config.example "account_id" +``` diff --git a/examples/resources/awscc_applicationsignals_discovery/import.sh b/examples/resources/awscc_applicationsignals_discovery/import.sh new file mode 100644 index 0000000000..0a91b2c0de --- /dev/null +++ b/examples/resources/awscc_applicationsignals_discovery/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_applicationsignals_discovery.example "account_id" \ No newline at end of file diff --git a/examples/resources/awscc_xray_transaction_search_config/import.sh b/examples/resources/awscc_xray_transaction_search_config/import.sh new file mode 100644 index 0000000000..d50f6affea --- /dev/null +++ b/examples/resources/awscc_xray_transaction_search_config/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_xray_transaction_search_config.example "account_id" \ No newline at end of file From 8f6bd569d52ff29fbf6596e87c514378740d18a3 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 13 Mar 2025 12:01:24 -0400 Subject: [PATCH 6/6] Add CHANGELOG entries. --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1db89fec54..e0629694be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,14 @@ ## 1.33.0 (Unreleased) + +FEATURES: + +* **New Data Source:** `awscc_applicationsignals_discoveries` +* **New Data Source:** `awscc_applicationsignals_discovery` +* **New Data Source:** `awscc_xray_transaction_search_config` +* **New Data Source:** `awscc_xray_transaction_search_configs` +* **New Resource:** `awscc_applicationsignals_discovery` +* **New Resource:** `awscc_xray_transaction_search_config` + ## 1.32.0 (March 6, 2025) FEATURES: