From 408b4341bc049ab72feed7c011640a7c7699c014 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 13 Jan 2022 14:07:06 -0500 Subject: [PATCH 1/6] 01/12/2022 CloudFormation schemas in us-east-1; Refresh existing schemas. --- .../schemas/AWS_ApiGateway_DomainName.json | 6 - .../schemas/AWS_AutoScaling_WarmPool.json | 14 + .../schemas/AWS_EC2_FlowLog.json | 2 +- .../schemas/AWS_IoTAnalytics_Dataset.json | 892 ++++++++++-------- .../schemas/AWS_IoTAnalytics_Datastore.json | 518 +++++----- .../schemas/AWS_IoTAnalytics_Pipeline.json | 672 ++++++++----- .../schemas/AWS_IoTSiteWise_Gateway.json | 39 +- .../schemas/AWS_IoT_JobTemplate.json | 316 +------ .../schemas/AWS_Lex_BotAlias.json | 5 +- .../schemas/AWS_Location_Tracker.json | 3 +- .../AWS_NimbleStudio_LaunchProfile.json | 121 ++- .../AWS_Panorama_ApplicationInstance.json | 7 + .../schemas/AWS_RUM_AppMonitor.json | 4 + .../AWS_Redshift_EventSubscription.json | 2 + .../schemas/AWS_SageMaker_Pipeline.json | 12 + .../AWS_Timestream_ScheduledQuery.json | 94 +- 16 files changed, 1420 insertions(+), 1287 deletions(-) diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_DomainName.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_DomainName.json index 47ffe2a249..975b07c362 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_DomainName.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_DomainName.json @@ -23,12 +23,6 @@ }, "TruststoreVersion": { "type": "string" - }, - "CertificateRevocationCheckType": { - "type": "string" - }, - "CertificateRevocationSourceUri": { - "type": "string" } }, "additionalProperties": false diff --git a/internal/service/cloudformation/schemas/AWS_AutoScaling_WarmPool.json b/internal/service/cloudformation/schemas/AWS_AutoScaling_WarmPool.json index b7aee5fd71..8f95f1960b 100644 --- a/internal/service/cloudformation/schemas/AWS_AutoScaling_WarmPool.json +++ b/internal/service/cloudformation/schemas/AWS_AutoScaling_WarmPool.json @@ -3,6 +3,17 @@ "description": "Resource schema for AWS::AutoScaling::WarmPool.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-autoscaling", "additionalProperties": false, + "definitions": { + "InstanceReusePolicy": { + "type": "object", + "additionalProperties": false, + "properties": { + "ReuseOnScaleIn": { + "type": "boolean" + } + } + } + }, "properties": { "AutoScalingGroupName": { "type": "string" @@ -15,6 +26,9 @@ }, "PoolState": { "type": "string" + }, + "InstanceReusePolicy": { + "$ref": "#/definitions/InstanceReusePolicy" } }, "createOnlyProperties": [ diff --git a/internal/service/cloudformation/schemas/AWS_EC2_FlowLog.json b/internal/service/cloudformation/schemas/AWS_EC2_FlowLog.json index ac0d1a6cde..a4408a6c38 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_FlowLog.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_FlowLog.json @@ -102,7 +102,7 @@ } }, "required": [ - "FileDestination", + "FileFormat", "HiveCompatiblePartitions", "PerHourPartition" ] diff --git a/internal/service/cloudformation/schemas/AWS_IoTAnalytics_Dataset.json b/internal/service/cloudformation/schemas/AWS_IoTAnalytics_Dataset.json index 2fc1638939..14ac0c9c91 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTAnalytics_Dataset.json +++ b/internal/service/cloudformation/schemas/AWS_IoTAnalytics_Dataset.json @@ -1,413 +1,527 @@ { - "typeName": "AWS::IoTAnalytics::Dataset", - "description": "Resource Type definition for AWS::IoTAnalytics::Dataset", - "additionalProperties": false, - "properties": { - "Actions": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Action" - } - }, - "LateDataRules": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/LateDataRule" - } - }, - "DatasetName": { - "type": "string" - }, - "ContentDeliveryRules": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/DatasetContentDeliveryRule" - } - }, - "Triggers": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Trigger" - } - }, - "VersioningConfiguration": { - "$ref": "#/definitions/VersioningConfiguration" - }, - "Id": { - "type": "string" - }, - "RetentionPeriod": { - "$ref": "#/definitions/RetentionPeriod" - }, - "Tags": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Tag" - } - } - }, - "definitions": { - "DatasetContentVersionValue": { - "type": "object", - "additionalProperties": false, - "properties": { + "typeName": "AWS::IoTAnalytics::Dataset", + "description": "Resource Type definition for AWS::IoTAnalytics::Dataset", + "additionalProperties": false, + "taggable": true, + "properties": { + "Actions": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "minItems": 1, + "maxItems": 1, + "items": { + "$ref": "#/definitions/Action" + } + }, + "LateDataRules": { + "type": "array", + "minItems": 1, + "maxItems": 1, + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LateDataRule" + } + }, "DatasetName": { - "type": "string" - } - } - }, - "GlueConfiguration": { - "type": "object", - "additionalProperties": false, - "properties": { - "DatabaseName": { - "type": "string" - }, - "TableName": { - "type": "string" - } - }, - "required": [ - "TableName", - "DatabaseName" - ] - }, - "Action": { - "type": "object", - "additionalProperties": false, - "properties": { - "ActionName": { - "type": "string" + "type": "string", + "pattern": "", + "minLength": 1, + "maxLength": 128 }, - "ContainerAction": { - "$ref": "#/definitions/ContainerAction" + "ContentDeliveryRules": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "minItems": 0, + "maxItems": 20, + "items": { + "$ref": "#/definitions/DatasetContentDeliveryRule" + } }, - "QueryAction": { - "$ref": "#/definitions/QueryAction" - } - }, - "required": [ - "ActionName" - ] - }, - "Variable": { - "type": "object", - "additionalProperties": false, - "properties": { - "VariableName": { - "type": "string" + "Triggers": { + "type": "array", + "minItems": 0, + "maxItems": 5, + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Trigger" + } }, - "DatasetContentVersionValue": { - "$ref": "#/definitions/DatasetContentVersionValue" + "VersioningConfiguration": { + "$ref": "#/definitions/VersioningConfiguration" }, - "StringValue": { - "type": "string" + "Id": { + "type": "string" }, - "DoubleValue": { - "type": "number" + "RetentionPeriod": { + "$ref": "#/definitions/RetentionPeriod" }, - "OutputFileUriValue": { - "$ref": "#/definitions/OutputFileUriValue" - } - }, - "required": [ - "VariableName" - ] - }, - "IotEventsDestinationConfiguration": { - "type": "object", - "additionalProperties": false, - "properties": { - "InputName": { - "type": "string" - }, - "RoleArn": { - "type": "string" + "Tags": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "minItems": 1, + "maxItems": 50, + "items": { + "$ref": "#/definitions/Tag" + } } - }, - "required": [ - "InputName", - "RoleArn" - ] }, - "LateDataRule": { - "type": "object", - "additionalProperties": false, - "properties": { - "RuleConfiguration": { - "$ref": "#/definitions/LateDataRuleConfiguration" - }, - "RuleName": { - "type": "string" - } - }, - "required": [ - "RuleConfiguration" - ] - }, - "DeltaTimeSessionWindowConfiguration": { - "type": "object", - "additionalProperties": false, - "properties": { - "TimeoutInMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutInMinutes" - ] - }, - "QueryAction": { - "type": "object", - "additionalProperties": false, - "properties": { - "Filters": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Filter" - } - }, - "SqlQuery": { - "type": "string" - } - }, - "required": [ - "SqlQuery" - ] - }, - "VersioningConfiguration": { - "type": "object", - "additionalProperties": false, - "properties": { - "Unlimited": { - "type": "boolean" - }, - "MaxVersions": { - "type": "integer" - } - } - }, - "RetentionPeriod": { - "type": "object", - "additionalProperties": false, - "properties": { - "NumberOfDays": { - "type": "integer" - }, - "Unlimited": { - "type": "boolean" - } - }, - "required": [ - "NumberOfDays", - "Unlimited" - ] - }, - "ResourceConfiguration": { - "type": "object", - "additionalProperties": false, - "properties": { - "VolumeSizeInGB": { - "type": "integer" - }, - "ComputeType": { - "type": "string" - } - }, - "required": [ - "VolumeSizeInGB", - "ComputeType" - ] - }, - "DatasetContentDeliveryRule": { - "type": "object", - "additionalProperties": false, - "properties": { - "Destination": { - "$ref": "#/definitions/DatasetContentDeliveryRuleDestination" - }, - "EntryName": { - "type": "string" - } - }, - "required": [ - "Destination" - ] - }, - "Trigger": { - "type": "object", - "additionalProperties": false, - "properties": { - "TriggeringDataset": { - "$ref": "#/definitions/TriggeringDataset" + "definitions": { + "DatasetContentVersionValue": { + "type": "object", + "additionalProperties": false, + "properties": { + "DatasetName": { + "type": "string", + "pattern": "", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "DatasetName" + ] }, - "Schedule": { - "$ref": "#/definitions/Schedule" - } - } - }, - "DeltaTime": { - "type": "object", - "additionalProperties": false, - "properties": { - "OffsetSeconds": { - "type": "integer" - }, - "TimeExpression": { - "type": "string" - } - }, - "required": [ - "TimeExpression", - "OffsetSeconds" - ] - }, - "ContainerAction": { - "type": "object", - "additionalProperties": false, - "properties": { - "Variables": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Variable" - } - }, - "ExecutionRoleArn": { - "type": "string" - }, - "Image": { - "type": "string" + "GlueConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "DatabaseName": { + "type": "string", + "minLength": 1, + "maxLength": 150 + }, + "TableName": { + "type": "string", + "minLength": 1, + "maxLength": 150 + } + }, + "required": [ + "TableName", + "DatabaseName" + ] + }, + "Action": { + "type": "object", + "additionalProperties": false, + "properties": { + "ActionName": { + "type": "string", + "pattern": "", + "minLength": 1, + "maxLength": 128 + }, + "ContainerAction": { + "$ref": "#/definitions/ContainerAction" + }, + "QueryAction": { + "$ref": "#/definitions/QueryAction" + } + }, + "required": [ + "ActionName" + ] + }, + "Variable": { + "type": "object", + "additionalProperties": false, + "properties": { + "VariableName": { + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "DatasetContentVersionValue": { + "$ref": "#/definitions/DatasetContentVersionValue" + }, + "StringValue": { + "type": "string", + "minLength": 0, + "maxLength": 1024 + }, + "DoubleValue": { + "type": "number" + }, + "OutputFileUriValue": { + "$ref": "#/definitions/OutputFileUriValue" + } + }, + "required": [ + "VariableName" + ] + }, + "IotEventsDestinationConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "InputName": { + "type": "string", + "pattern": "", + "minLength": 1, + "maxLength": 128 + }, + "RoleArn": { + "type": "string", + "minLength": 20, + "maxLength": 2048 + } + }, + "required": [ + "InputName", + "RoleArn" + ] + }, + "LateDataRule": { + "type": "object", + "additionalProperties": false, + "properties": { + "RuleConfiguration": { + "$ref": "#/definitions/LateDataRuleConfiguration" + }, + "RuleName": { + "type": "string", + "pattern": "", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "RuleConfiguration" + ] + }, + "DeltaTimeSessionWindowConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "TimeoutInMinutes": { + "type": "integer", + "minimum": 1, + "maximum": 60 + } + }, + "required": [ + "TimeoutInMinutes" + ] + }, + "QueryAction": { + "type": "object", + "additionalProperties": false, + "properties": { + "Filters": { + "type": "array", + "minItems": 0, + "maxItems": 1, + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Filter" + } + }, + "SqlQuery": { + "type": "string" + } + }, + "required": [ + "SqlQuery" + ] + }, + "VersioningConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "Unlimited": { + "type": "boolean" + }, + "MaxVersions": { + "type": "integer", + "minimum": 1, + "maximum": 1000 + } + } + }, + "RetentionPeriod": { + "type": "object", + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "integer", + "minimum": 1, + "maximum": 2147483647 + }, + "Unlimited": { + "type": "boolean" + } + }, + "required": [ + "NumberOfDays", + "Unlimited" + ] }, "ResourceConfiguration": { - "$ref": "#/definitions/ResourceConfiguration" - } - }, - "required": [ - "ExecutionRoleArn", - "Image", - "ResourceConfiguration" - ] - }, - "Filter": { - "type": "object", - "additionalProperties": false, - "properties": { + "type": "object", + "additionalProperties": false, + "properties": { + "VolumeSizeInGB": { + "type": "integer", + "minimum": 1, + "maximum": 50 + }, + "ComputeType": { + "type": "string", + "enum": [ + "ACU_1", + "ACU_2" + ] + } + }, + "required": [ + "VolumeSizeInGB", + "ComputeType" + ] + }, + "DatasetContentDeliveryRule": { + "type": "object", + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/DatasetContentDeliveryRuleDestination" + }, + "EntryName": { + "type": "string" + } + }, + "required": [ + "Destination" + ] + }, + "Trigger": { + "type": "object", + "additionalProperties": false, + "properties": { + "TriggeringDataset": { + "$ref": "#/definitions/TriggeringDataset" + }, + "Schedule": { + "$ref": "#/definitions/Schedule" + } + } + }, "DeltaTime": { - "$ref": "#/definitions/DeltaTime" - } - } - }, - "OutputFileUriValue": { - "type": "object", - "additionalProperties": false, - "properties": { - "FileName": { - "type": "string" - } - } - }, - "Schedule": { - "type": "object", - "additionalProperties": false, - "properties": { - "ScheduleExpression": { - "type": "string" - } - }, - "required": [ - "ScheduleExpression" - ] - }, - "S3DestinationConfiguration": { - "type": "object", - "additionalProperties": false, - "properties": { - "GlueConfiguration": { - "$ref": "#/definitions/GlueConfiguration" + "type": "object", + "additionalProperties": false, + "properties": { + "OffsetSeconds": { + "type": "integer" + }, + "TimeExpression": { + "type": "string" + } + }, + "required": [ + "TimeExpression", + "OffsetSeconds" + ] }, - "Bucket": { - "type": "string" + "ContainerAction": { + "type": "object", + "additionalProperties": false, + "properties": { + "Variables": { + "type": "array", + "minItems": 0, + "maxItems": 50, + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Variable" + } + }, + "ExecutionRoleArn": { + "type": "string", + "minLength": 20, + "maxLength": 2048 + }, + "Image": { + "type": "string", + "maxLength": 255 + }, + "ResourceConfiguration": { + "$ref": "#/definitions/ResourceConfiguration" + } + }, + "required": [ + "ExecutionRoleArn", + "Image", + "ResourceConfiguration" + ] }, - "Key": { - "type": "string" + "Filter": { + "type": "object", + "additionalProperties": false, + "properties": { + "DeltaTime": { + "$ref": "#/definitions/DeltaTime" + } + } }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key", - "RoleArn" - ] - }, - "LateDataRuleConfiguration": { - "type": "object", - "additionalProperties": false, - "properties": { - "DeltaTimeSessionWindowConfiguration": { - "$ref": "#/definitions/DeltaTimeSessionWindowConfiguration" - } - } - }, - "Tag": { - "type": "object", - "additionalProperties": false, - "properties": { - "Value": { - "type": "string" - }, - "Key": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ] - }, - "DatasetContentDeliveryRuleDestination": { - "type": "object", - "additionalProperties": false, - "properties": { - "IotEventsDestinationConfiguration": { - "$ref": "#/definitions/IotEventsDestinationConfiguration" + "OutputFileUriValue": { + "type": "object", + "additionalProperties": false, + "properties": { + "FileName": { + "type": "string", + "pattern": "" + } + }, + "required": [ + "FileName" + ] + }, + "Schedule": { + "type": "object", + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "type": "string" + } + }, + "required": [ + "ScheduleExpression" + ] }, "S3DestinationConfiguration": { - "$ref": "#/definitions/S3DestinationConfiguration" + "type": "object", + "additionalProperties": false, + "properties": { + "GlueConfiguration": { + "$ref": "#/definitions/GlueConfiguration" + }, + "Bucket": { + "type": "string", + "pattern": "", + "minLength": 3, + "maxLength": 255 + }, + "Key": { + "type": "string", + "pattern": "", + "minLength": 1, + "maxLength": 255 + }, + "RoleArn": { + "type": "string", + "minLength": 20, + "maxLength": 2048 + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ] + }, + "LateDataRuleConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "DeltaTimeSessionWindowConfiguration": { + "$ref": "#/definitions/DeltaTimeSessionWindowConfiguration" + } + } + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "minLength": 1, + "maxLength": 256 + } + }, + "required": [ + "Value", + "Key" + ] + }, + "DatasetContentDeliveryRuleDestination": { + "type": "object", + "additionalProperties": false, + "properties": { + "IotEventsDestinationConfiguration": { + "$ref": "#/definitions/IotEventsDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + } + } + }, + "TriggeringDataset": { + "type": "object", + "additionalProperties": false, + "properties": { + "DatasetName": { + "type": "string", + "pattern": "", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "DatasetName" + ] } - } }, - "TriggeringDataset": { - "type": "object", - "additionalProperties": false, - "properties": { - "DatasetName": { - "type": "string" + "required": [ + "Actions" + ], + "primaryIdentifier": [ + "/properties/DatasetName" + ], + "createOnlyProperties": [ + "/properties/DatasetName" + ], + "readOnlyProperties": [ + "/properties/Id" + ], + "handlers": { + "create": { + "permissions": [ + "iotanalytics:CreateDataset" + ] + }, + "read": { + "permissions": [ + "iotanalytics:DescribeDataset", + "iotanalytics:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iotanalytics:UpdateDataset", + "iotanalytics:TagResource", + "iotanalytics:UntagResource" + ] + }, + "delete": { + "permissions": [ + "iotanalytics:DeleteDataset" + ] + }, + "list": { + "permissions": [ + "iotanalytics:ListDatasets" + ] } - }, - "required": [ - "DatasetName" - ] } - }, - "required": [ - "Actions" - ], - "createOnlyProperties": [ - "/properties/DatasetName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "readOnlyProperties": [ - "/properties/Id" - ] } \ No newline at end of file diff --git a/internal/service/cloudformation/schemas/AWS_IoTAnalytics_Datastore.json b/internal/service/cloudformation/schemas/AWS_IoTAnalytics_Datastore.json index 22a60cb8bc..b3d947853e 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTAnalytics_Datastore.json +++ b/internal/service/cloudformation/schemas/AWS_IoTAnalytics_Datastore.json @@ -1,242 +1,306 @@ { - "typeName": "AWS::IoTAnalytics::Datastore", - "description": "Resource Type definition for AWS::IoTAnalytics::Datastore", - "additionalProperties": false, - "properties": { - "DatastoreStorage": { - "$ref": "#/definitions/DatastoreStorage" - }, - "FileFormatConfiguration": { - "$ref": "#/definitions/FileFormatConfiguration" - }, - "DatastorePartitions": { - "$ref": "#/definitions/DatastorePartitions" - }, - "DatastoreName": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "RetentionPeriod": { - "$ref": "#/definitions/RetentionPeriod" - }, - "Tags": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Tag" - } - } - }, - "definitions": { - "Partition": { - "type": "object", - "additionalProperties": false, - "properties": { - "AttributeName": { - "type": "string" - } - }, - "required": [ - "AttributeName" - ] - }, - "DatastoreStorage": { - "type": "object", - "additionalProperties": false, - "properties": { - "ServiceManagedS3": { - "$ref": "#/definitions/ServiceManagedS3" + "typeName": "AWS::IoTAnalytics::Datastore", + "description": "Resource Type definition for AWS::IoTAnalytics::Datastore", + "additionalProperties": false, + "taggable": true, + "properties": { + "DatastoreStorage": { + "$ref": "#/definitions/DatastoreStorage" }, - "IotSiteWiseMultiLayerStorage": { - "$ref": "#/definitions/IotSiteWiseMultiLayerStorage" + "DatastoreName": { + "type": "string", + "pattern": "", + "minLength": 1, + "maxLength": 128 }, - "CustomerManagedS3": { - "$ref": "#/definitions/CustomerManagedS3" - } - } - }, - "SchemaDefinition": { - "type": "object", - "additionalProperties": false, - "properties": { - "Columns": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Column" - } + "DatastorePartitions": { + "$ref": "#/definitions/DatastorePartitions" + }, + "Id": { + "type": "string" + }, + "FileFormatConfiguration": { + "$ref": "#/definitions/FileFormatConfiguration" + }, + "RetentionPeriod": { + "$ref": "#/definitions/RetentionPeriod" + }, + "Tags": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "minItems": 1, + "maxItems": 50, + "items": { + "$ref": "#/definitions/Tag" + } } - } }, - "ParquetConfiguration": { - "type": "object", - "additionalProperties": false, - "properties": { + "definitions": { + "DatastoreStorage": { + "type": "object", + "additionalProperties": false, + "properties": { + "ServiceManagedS3": { + "$ref": "#/definitions/ServiceManagedS3" + }, + "CustomerManagedS3": { + "$ref": "#/definitions/CustomerManagedS3" + }, + "IotSiteWiseMultiLayerStorage": { + "$ref": "#/definitions/IotSiteWiseMultiLayerStorage" + } + } + }, "SchemaDefinition": { - "$ref": "#/definitions/SchemaDefinition" - } - } - }, - "CustomerManagedS3": { - "type": "object", - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "KeyPrefix": { - "type": "string" - } - }, - "required": [ - "Bucket", - "RoleArn" - ] - }, - "TimestampPartition": { - "type": "object", - "additionalProperties": false, - "properties": { - "AttributeName": { - "type": "string" - }, - "TimestampFormat": { - "type": "string" - } - }, - "required": [ - "AttributeName" - ] - }, - "ServiceManagedS3": { - "type": "object", - "additionalProperties": false - }, - "RetentionPeriod": { - "type": "object", - "additionalProperties": false, - "properties": { - "NumberOfDays": { - "type": "integer" - }, - "Unlimited": { - "type": "boolean" - } - } - }, - "JsonConfiguration": { - "type": "object", - "additionalProperties": false - }, - "DatastorePartition": { - "type": "object", - "additionalProperties": false, - "properties": { - "Partition": { - "$ref": "#/definitions/Partition" + "type": "object", + "additionalProperties": false, + "properties": { + "Columns": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/definitions/Column" + } + } + } }, - "TimestampPartition": { - "$ref": "#/definitions/TimestampPartition" - } - } - }, - "FileFormatConfiguration": { - "type": "object", - "additionalProperties": false, - "properties": { "JsonConfiguration": { - "$ref": "#/definitions/JsonConfiguration" + "type": "object", + "additionalProperties": false }, "ParquetConfiguration": { - "$ref": "#/definitions/ParquetConfiguration" - } - } - }, - "CustomerManagedS3Storage": { - "type": "object", - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "KeyPrefix": { - "type": "string" - } - }, - "required": [ - "Bucket" - ] - }, - "Column": { - "type": "object", - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Type", - "Name" - ] - }, - "DatastorePartitions": { - "type": "object", - "additionalProperties": false, - "properties": { - "Partitions": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/DatastorePartition" - } - } - } - }, - "IotSiteWiseMultiLayerStorage": { - "type": "object", - "additionalProperties": false, - "properties": { + "type": "object", + "additionalProperties": false, + "properties": { + "SchemaDefinition": { + "$ref": "#/definitions/SchemaDefinition" + } + } + }, + "FileFormatConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "JsonConfiguration": { + "$ref": "#/definitions/JsonConfiguration" + }, + "ParquetConfiguration": { + "$ref": "#/definitions/ParquetConfiguration" + } + } + }, + "Column": { + "type": "object", + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Type", + "Name" + ] + }, + "CustomerManagedS3": { + "type": "object", + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string", + "pattern": "", + "minLength": 3, + "maxLength": 255 + }, + "RoleArn": { + "type": "string", + "minLength": 20, + "maxLength": 2048 + }, + "KeyPrefix": { + "type": "string", + "pattern": "", + "minLength": 1, + "maxLength": 255 + } + }, + "required": [ + "Bucket", + "RoleArn" + ] + }, + "IotSiteWiseMultiLayerStorage": { + "type": "object", + "additionalProperties": false, + "properties": { + "CustomerManagedS3Storage": { + "$ref": "#/definitions/CustomerManagedS3Storage" + } + } + }, "CustomerManagedS3Storage": { - "$ref": "#/definitions/CustomerManagedS3Storage" + "type": "object", + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string", + "pattern": "", + "minLength": 3, + "maxLength": 255 + }, + "KeyPrefix": { + "type": "string", + "pattern": "", + "minLength": 1, + "maxLength": 255 + } + }, + "required": [ + "Bucket" + ] + }, + "ServiceManagedS3": { + "type": "object", + "additionalProperties": false + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "minLength": 1, + "maxLength": 256 + } + }, + "required": [ + "Value", + "Key" + ] + }, + "RetentionPeriod": { + "type": "object", + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "integer", + "minimum": 1, + "maximum": 2147483647 + }, + "Unlimited": { + "type": "boolean" + } + } + }, + "DatastorePartitions": { + "type": "object", + "additionalProperties": false, + "properties": { + "Partitions": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "minItems": 0, + "maxItems": 25, + "items": { + "$ref": "#/definitions/DatastorePartition" + } + } + } + }, + "DatastorePartition": { + "type": "object", + "additionalProperties": false, + "properties": { + "Partition": { + "$ref": "#/definitions/Partition" + }, + "TimestampPartition": { + "$ref": "#/definitions/TimestampPartition" + } + } + }, + "Partition": { + "type": "object", + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string", + "pattern": "" + } + }, + "required": [ + "AttributeName" + ] + }, + "TimestampPartition": { + "type": "object", + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string", + "pattern": "" + }, + "TimestampFormat": { + "type": "string", + "pattern": "" + } + }, + "required": [ + "AttributeName" + ] } - }, - "required": [ - "CustomerManagedS3Storage" - ] }, - "Tag": { - "type": "object", - "additionalProperties": false, - "properties": { - "Value": { - "type": "string" - }, - "Key": { - "type": "string" + "primaryIdentifier": [ + "/properties/DatastoreName" + ], + "createOnlyProperties": [ + "/properties/DatastoreName" + ], + "readOnlyProperties": [ + "/properties/Id" + ], + "handlers": { + "create": { + "permissions": [ + "iotanalytics:CreateDatastore" + ] + }, + "read": { + "permissions": [ + "iotanalytics:DescribeDatastore", + "iotanalytics:ListTagsForResource" + + ] + }, + "update": { + "permissions": [ + "iotanalytics:UpdateDatastore", + "iotanalytics:TagResource", + "iotanalytics:UntagResource" + ] + }, + "delete": { + "permissions": [ + "iotanalytics:DeleteDatastore" + ] + }, + "list": { + "permissions": [ + "iotanalytics:ListDatastores" + ] } - }, - "required": [ - "Value", - "Key" - ] } - }, - "createOnlyProperties": [ - "/properties/DatastoreName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "readOnlyProperties": [ - "/properties/Id" - ] -} \ No newline at end of file +} diff --git a/internal/service/cloudformation/schemas/AWS_IoTAnalytics_Pipeline.json b/internal/service/cloudformation/schemas/AWS_IoTAnalytics_Pipeline.json index 439b7006c7..c07a2e4141 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTAnalytics_Pipeline.json +++ b/internal/service/cloudformation/schemas/AWS_IoTAnalytics_Pipeline.json @@ -1,266 +1,422 @@ { - "typeName": "AWS::IoTAnalytics::Pipeline", - "description": "Resource Type definition for AWS::IoTAnalytics::Pipeline", - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "PipelineName": { - "type": "string" - }, - "Tags": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Tag" - } - }, - "PipelineActivities": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Activity" - } - } - }, - "definitions": { - "SelectAttributes": { - "type": "object", - "additionalProperties": false, - "properties": { - "Attributes": { - "type": "array", - "uniqueItems": false, - "items": { - "type": "string" - } - }, - "Next": { - "type": "string" - }, - "Name": { - "type": "string" + "typeName" : "AWS::IoTAnalytics::Pipeline", + "description" : "Resource Type definition for AWS::IoTAnalytics::Pipeline", + "additionalProperties" : false, + "taggable": true, + "properties" : { + "Id" : { + "type" : "string" + }, + "PipelineName" : { + "type" : "string", + "pattern": "", + "minLength": 1, + "maxLength": 128 + }, + "Tags" : { + "type" : "array", + "uniqueItems" : false, + "insertionOrder": false, + "minItems": 1, + "maxItems": 50, + "items" : { + "$ref" : "#/definitions/Tag" + } + }, + "PipelineActivities" : { + "type" : "array", + "uniqueItems" : false, + "insertionOrder": false, + "minItems": 1, + "maxItems": 25, + "items" : { + "$ref" : "#/definitions/Activity" + } } - } }, - "Datastore": { - "type": "object", - "additionalProperties": false, - "properties": { - "DatastoreName": { - "type": "string" - }, - "Name": { - "type": "string" - } - } - }, - "Filter": { - "type": "object", - "additionalProperties": false, - "properties": { - "Filter": { - "type": "string" - }, - "Next": { - "type": "string" - }, - "Name": { - "type": "string" - } - } - }, - "AddAttributes": { - "type": "object", - "additionalProperties": false, - "properties": { - "Attributes": { - "type": "object" - }, - "Next": { - "type": "string" - }, - "Name": { - "type": "string" + "definitions" : { + "Activity" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "SelectAttributes" : { + "$ref" : "#/definitions/SelectAttributes" + }, + "Datastore" : { + "$ref" : "#/definitions/Datastore" + }, + "Filter" : { + "$ref" : "#/definitions/Filter" + }, + "AddAttributes" : { + "$ref" : "#/definitions/AddAttributes" + }, + "Channel" : { + "$ref" : "#/definitions/Channel" + }, + "DeviceShadowEnrich" : { + "$ref" : "#/definitions/DeviceShadowEnrich" + }, + "Math" : { + "$ref" : "#/definitions/Math" + }, + "Lambda" : { + "$ref" : "#/definitions/Lambda" + }, + "DeviceRegistryEnrich" : { + "$ref" : "#/definitions/DeviceRegistryEnrich" + }, + "RemoveAttributes" : { + "$ref" : "#/definitions/RemoveAttributes" + } + } + }, + "Tag" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Key" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + }, + "Value" : { + "type" : "string", + "minLength": 1, + "maxLength": 256 + } + }, + "required" : [ "Value", "Key" ] + }, + "DeviceShadowEnrich" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Attribute" : { + "type" : "string", + "minLength": 1, + "maxLength": 256 + }, + "Next" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + }, + "ThingName" : { + "type" : "string", + "minLength": 1, + "maxLength": 256 + }, + "RoleArn" : { + "type" : "string", + "minLength": 20, + "maxLength": 2048 + }, + "Name" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "Attribute", "ThingName", "RoleArn", "Name" + ] + }, + "Filter" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Filter" : { + "type" : "string", + "minLength": 1, + "maxLength": 256 + }, + "Next" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + }, + "Name" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "Filter", "Name" + ] + }, + "RemoveAttributes" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Next" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + }, + "Attributes" : { + "type" : "array", + "uniqueItems" : false, + "insertionOrder": false, + "minItems": 1, + "maxItems": 50, + "items" : { + "type" : "string", + "minLength": 1, + "maxLength": 256 + } + }, + "Name" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "Attributes", "Name" + ] + }, + "Datastore" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "DatastoreName" : { + "type" : "string", + "pattern": "", + "minLength": 1, + "maxLength": 128 + }, + "Name" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "DatastoreName", "Name" + ] + }, + "Channel" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "ChannelName" : { + "type" : "string", + "pattern": "", + "minLength": 1, + "maxLength": 128 + }, + "Next" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + }, + "Name" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "ChannelName", "Name" + ] + }, + "SelectAttributes" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Next" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + }, + "Attributes" : { + "type" : "array", + "uniqueItems" : false, + "insertionOrder": false, + "minItems": 1, + "maxItems": 50, + "items" : { + "type" : "string", + "minLength": 1, + "maxLength": 256 + } + }, + "Name" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "Name", "Attributes" + ] + }, + "Lambda" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "BatchSize" : { + "type" : "integer", + "minimum": 1, + "maximum": 1000 + }, + "Next" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + }, + "LambdaName" : { + "type" : "string", + "pattern": "", + "minLength": 1, + "maxLength": 64 + }, + "Name" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "LambdaName", "Name", "BatchSize" + ] + }, + "DeviceRegistryEnrich" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Attribute" : { + "type" : "string", + "minLength": 1, + "maxLength": 256 + }, + "Next" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + }, + "ThingName" : { + "type" : "string", + "minLength": 1, + "maxLength": 256 + }, + "RoleArn" : { + "type" : "string", + "minLength": 20, + "maxLength": 2048 + }, + "Name" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "Attribute", "ThingName", "RoleArn", "Name" + ] + }, + "AddAttributes" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Next" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + }, + "Attributes" : { + "type" : "object", + "minProperties": 1, + "maxProperties": 50, + "patternProperties": { + "": { + "type": "string", + "minLength": 1, + "maxLength": 256 + } + }, + "additionalProperties" : false + }, + "Name" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "Attributes", "Name" + ] + }, + "Math" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Attribute" : { + "type" : "string", + "minLength": 1, + "maxLength": 256 + }, + "Next" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + }, + "Math" : { + "type" : "string", + "minLength": 1, + "maxLength": 256 + }, + "Name" : { + "type" : "string", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "Attribute", "Math", "Name" + ] } - } }, - "Channel": { - "type": "object", - "additionalProperties": false, - "properties": { - "ChannelName": { - "type": "string" - }, - "Next": { - "type": "string" - }, - "Name": { - "type": "string" - } - } - }, - "Activity": { - "type": "object", - "additionalProperties": false, - "properties": { - "SelectAttributes": { - "$ref": "#/definitions/SelectAttributes" - }, - "Datastore": { - "$ref": "#/definitions/Datastore" - }, - "Filter": { - "$ref": "#/definitions/Filter" - }, - "AddAttributes": { - "$ref": "#/definitions/AddAttributes" - }, - "Channel": { - "$ref": "#/definitions/Channel" - }, - "DeviceShadowEnrich": { - "$ref": "#/definitions/DeviceShadowEnrich" - }, - "Math": { - "$ref": "#/definitions/Math" - }, - "Lambda": { - "$ref": "#/definitions/Lambda" - }, - "DeviceRegistryEnrich": { - "$ref": "#/definitions/DeviceRegistryEnrich" - }, - "RemoveAttributes": { - "$ref": "#/definitions/RemoveAttributes" - } - } - }, - "Tag": { - "type": "object", - "additionalProperties": false, - "properties": { - "Value": { - "type": "string" - }, - "Key": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ] - }, - "DeviceShadowEnrich": { - "type": "object", - "additionalProperties": false, - "properties": { - "ThingName": { - "type": "string" - }, - "Attribute": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "Next": { - "type": "string" - }, - "Name": { - "type": "string" - } - } - }, - "Math": { - "type": "object", - "additionalProperties": false, - "properties": { - "Math": { - "type": "string" - }, - "Attribute": { - "type": "string" - }, - "Next": { - "type": "string" - }, - "Name": { - "type": "string" - } - } - }, - "Lambda": { - "type": "object", - "additionalProperties": false, - "properties": { - "BatchSize": { - "type": "integer" - }, - "LambdaName": { - "type": "string" - }, - "Next": { - "type": "string" - }, - "Name": { - "type": "string" - } - } - }, - "DeviceRegistryEnrich": { - "type": "object", - "additionalProperties": false, - "properties": { - "ThingName": { - "type": "string" - }, - "Attribute": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "Next": { - "type": "string" - }, - "Name": { - "type": "string" - } - } - }, - "RemoveAttributes": { - "type": "object", - "additionalProperties": false, - "properties": { - "Attributes": { - "type": "array", - "uniqueItems": false, - "items": { - "type": "string" - } - }, - "Next": { - "type": "string" - }, - "Name": { - "type": "string" + "required" : [ "PipelineActivities" ], + "primaryIdentifier" : [ + "/properties/PipelineName" + ], + "createOnlyProperties": [ + "/properties/PipelineName" + ], + "readOnlyProperties" : [ + "/properties/Id" + ], + "handlers": { + "create": { + "permissions": [ + "iotanalytics:CreatePipeline" + ] + }, + "read": { + "permissions": [ + "iotanalytics:DescribePipeline", + "iotanalytics:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iotanalytics:UpdatePipeline", + "iotanalytics:TagResource", + "iotanalytics:UntagResource" + ] + }, + "delete": { + "permissions": [ + "iotanalytics:DeletePipeline" + ] + }, + "list": { + "permissions": [ + "iotanalytics:ListPipelines" + ] } - } } - }, - "required": [ - "PipelineActivities" - ], - "createOnlyProperties": [ - "/properties/PipelineName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "readOnlyProperties": [ - "/properties/Id" - ] } \ No newline at end of file diff --git a/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Gateway.json b/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Gateway.json index 0938395286..c15b4a8bee 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Gateway.json +++ b/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Gateway.json @@ -9,16 +9,29 @@ "additionalProperties": false, "properties": { "Greengrass": { - "description": "A gateway that runs on AWS IoT Greengrass.", + "description": "A gateway that runs on AWS IoT Greengrass V1.", "$ref": "#/definitions/Greengrass" + }, + "GreengrassV2": { + "description": "A gateway that runs on AWS IoT Greengrass V2.", + "$ref": "#/definitions/GreengrassV2" } }, - "required": [ - "Greengrass" + "oneOf": [ + { + "required": [ + "Greengrass" + ] + }, + { + "required": [ + "GreengrassV2" + ] + } ] }, "Greengrass": { - "description": "Contains the ARN of AWS IoT Greengrass Group that the gateway runs on.", + "description": "Contains the ARN of AWS IoT Greengrass Group V1 that the gateway runs on.", "type": "object", "additionalProperties": false, "properties": { @@ -31,6 +44,20 @@ "GroupArn" ] }, + "GreengrassV2": { + "description": "Contains the CoreDeviceThingName of AWS IoT Greengrass Group V2 that the gateway runs on.", + "type": "object", + "additionalProperties": false, + "properties": { + "CoreDeviceThingName": { + "description": "The name of the CoreDevice in GreenGrass V2.", + "type": "string" + } + }, + "required": [ + "CoreDeviceThingName" + ] + }, "Tag": { "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", "type": "object", @@ -126,7 +153,9 @@ "iotsitewise:CreateGateway", "iotsitewise:UpdateGatewayCapabilityConfiguration", "iam:PassRole", - "iam:GetRole" + "iam:GetRole", + "greengrass:GetCoreDevice", + "iot:DescribeThing" ] }, "read": { diff --git a/internal/service/cloudformation/schemas/AWS_IoT_JobTemplate.json b/internal/service/cloudformation/schemas/AWS_IoT_JobTemplate.json index afd494a0cf..a1a61b9621 100644 --- a/internal/service/cloudformation/schemas/AWS_IoT_JobTemplate.json +++ b/internal/service/cloudformation/schemas/AWS_IoT_JobTemplate.json @@ -1,315 +1 @@ -{ - "typeName": "AWS::IoT::JobTemplate", - "description": "Job templates enable you to preconfigure jobs so that you can deploy them to multiple sets of target devices.", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iot.git", - "documentationUrl": "https://docs.aws.amazon.com/iot/latest/developerguide/job-templates.html", - "definitions": { - "ExponentialRolloutRate": { - "description": "Allows you to create an exponential rate of rollout for a job.", - "type": "object", - "properties": { - "BaseRatePerMinute": { - "description": "The minimum number of things that will be notified of a pending job, per minute at the start of job rollout. This parameter allows you to define the initial rate of rollout.", - "$ref": "#/definitions/BaseRatePerMinute" - }, - "IncrementFactor": { - "description": "The exponential factor to increase the rate of rollout for a job.", - "$ref": "#/definitions/IncrementFactor" - }, - "RateIncreaseCriteria": { - "description": "The criteria to initiate the increase in rate of rollout for a job.", - "type": "object", - "$ref": "#/definitions/RateIncreaseCriteria" - } - }, - "additionalProperties": false, - "required": [ - "BaseRatePerMinute", - "IncrementFactor", - "RateIncreaseCriteria" - ] - }, - "BaseRatePerMinute": { - "type": "integer", - "minimum": 1 - }, - "IncrementFactor": { - "type": "number", - "minimum": 1, - "maximum": 5 - }, - "RateIncreaseCriteria": { - "type": "object", - "properties": { - "NumberOfNotifiedThings": { - "$ref": "#/definitions/NumberOfNotifiedThings" - }, - "NumberOfSucceededThings": { - "$ref": "#/definitions/NumberOfSucceededThings" - } - }, - "additionalProperties": false - }, - "NumberOfNotifiedThings": { - "type": "integer", - "minimum": 1 - }, - "NumberOfSucceededThings": { - "type": "integer", - "minimum": 1 - }, - "MaximumPerMinute": { - "type": "integer", - "minimum": 1 - }, - "AbortCriteria": { - "description": "The criteria that determine when and how a job abort takes place.", - "type": "object", - "properties": { - "Action": { - "description": "The type of job action to take to initiate the job abort.", - "$ref": "#/definitions/Action" - }, - "FailureType": { - "description": "The type of job execution failures that can initiate a job abort.", - "$ref": "#/definitions/FailureType" - }, - "MinNumberOfExecutedThings": { - "description": "The minimum number of things which must receive job execution notifications before the job can be aborted.", - "$ref": "#/definitions/MinNumberOfExecutedThings" - }, - "ThresholdPercentage": { - "description": "The minimum percentage of job execution failures that must occur to initiate the job abort.", - "$ref": "#/definitions/ThresholdPercentage" - } - }, - "additionalProperties": false, - "required": [ - "Action", - "FailureType", - "MinNumberOfExecutedThings", - "ThresholdPercentage" - ] - }, - "Action": { - "type": "string", - "enum": [ - "CANCEL" - ] - }, - "FailureType": { - "type": "string", - "enum": [ - "FAILED", - "REJECTED", - "TIMED_OUT", - "ALL" - ] - }, - "MinNumberOfExecutedThings": { - "type": "integer", - "minimum": 1 - }, - "ThresholdPercentage": { - "type": "number", - "maximum": 100 - }, - "InProgressTimeoutInMinutes": { - "description": "Specifies the amount of time, in minutes, this device has to finish execution of this job.", - "type": "integer", - "minimum": 1, - "maximum": 10080 - }, - "RoleArn": { - "description": "The ARN of an IAM role that grants grants permission to download files from the S3 bucket where the job data/updates are stored. The role must also grant permission for IoT to download the files.", - "type": "string", - "minLength": 20, - "maxLength": 2048 - }, - "ExpiresInSec": { - "description": "How number (in seconds) pre-signed URLs are valid.", - "type": "integer", - "minimum": 60, - "maximum": 3600 - }, - "Tag": { - "description": "A key-value pair to associate with a resource.", - "type": "object", - "properties": { - "Key": { - "type": "string", - "description": "The tag's key.", - "minLength": 1, - "maxLength": 128 - }, - "Value": { - "type": "string", - "description": "The tag's value.", - "minLength": 1, - "maxLength": 256 - } - }, - "required": [ - "Value", - "Key" - ], - "additionalProperties": false - } - }, - "properties": { - "Arn": { - "type": "string" - }, - "JobArn": { - "description": "Optional for copying a JobTemplate from a pre-existing Job configuration.", - "type": "string" - }, - "JobTemplateId": { - "type": "string", - "pattern": "", - "minLength": 1, - "maxLength": 64 - }, - "Description": { - "description": "A description of the Job Template.", - "type": "string", - "pattern": "", - "maxLength": 2028 - }, - "Document": { - "description": "The job document. Required if you don't specify a value for documentSource.", - "type": "string", - "maxLength": 32768 - }, - "DocumentSource": { - "description": "An S3 link to the job document to use in the template. Required if you don't specify a value for document.", - "type": "string", - "minLength": 1, - "maxLength": 1350 - }, - "TimeoutConfig": { - "description": "Specifies the amount of time each device has to finish its execution of the job.", - "type": "object", - "properties": { - "InProgressTimeoutInMinutes": { - "$ref": "#/definitions/InProgressTimeoutInMinutes" - } - }, - "required": [ - "InProgressTimeoutInMinutes" - ], - "additionalProperties": false - }, - "JobExecutionsRolloutConfig": { - "description": "Allows you to create a staged rollout of a job.", - "type": "object", - "properties": { - "ExponentialRolloutRate": { - "description": "The rate of increase for a job rollout. This parameter allows you to define an exponential rate for a job rollout.", - "$ref": "#/definitions/ExponentialRolloutRate" - }, - "MaximumPerMinute": { - "description": "The maximum number of things that will be notified of a pending job, per minute. This parameter allows you to create a staged rollout.", - "$ref": "#/definitions/MaximumPerMinute" - } - }, - "additionalProperties": false - }, - "AbortConfig": { - "description": "The criteria that determine when and how a job abort takes place.", - "type": "object", - "properties": { - "CriteriaList": { - "type": "array", - "insertionOrder": false, - "minItems": 1, - "items": { - "$ref": "#/definitions/AbortCriteria" - } - } - }, - "required": [ - "CriteriaList" - ], - "additionalProperties": false - }, - "PresignedUrlConfig": { - "type": "object", - "description": "Configuration for pre-signed S3 URLs.", - "properties": { - "RoleArn": { - "$ref": "#/definitions/RoleArn" - }, - "ExpiresInSec": { - "$ref": "#/definitions/ExpiresInSec" - } - }, - "required": [ - "RoleArn" - ], - "additionalProperties": false - }, - "Tags": { - "description": "Metadata that can be used to manage the JobTemplate.", - "type": "array", - "maxItems": 50, - "uniqueItems": true, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - } - } - }, - "required": [ - "JobTemplateId", - "Description" - ], - "taggable": true, - "additionalProperties": false, - "readOnlyProperties": [ - "/properties/Arn" - ], - "writeOnlyProperties": [ - "/properties/JobArn", - "/properties/Tags" - ], - "createOnlyProperties": [ - "/properties/JobTemplateId", - "/properties/JobArn", - "/properties/Description", - "/properties/Document", - "/properties/DocumentSource", - "/properties/TimeoutConfig", - "/properties/JobExecutionsRolloutConfig", - "/properties/AbortConfig", - "/properties/PresignedUrlConfig", - "/properties/Tags" - ], - "primaryIdentifier": [ - "/properties/JobTemplateId" - ], - "handlers": { - "create": { - "permissions": [ - "iot:CreateJobTemplate", - "iam:PassRole", - "s3:GetObject" - ] - }, - "read": { - "permissions": [ - "iot:DescribeJobTemplate" - ] - }, - "delete": { - "permissions": [ - "iot:DeleteJobTemplate" - ] - }, - "list": { - "permissions": [ - "iot:ListJobTemplates" - ] - } - } -} +{"documentationUrl":"https://docs.aws.amazon.com/iot/latest/developerguide/job-templates.html","taggable":true,"typeName":"AWS::IoT::JobTemplate","readOnlyProperties":["/properties/Arn"],"description":"Job templates enable you to preconfigure jobs so that you can deploy them to multiple sets of target devices.","createOnlyProperties":["/properties/JobTemplateId","/properties/JobArn","/properties/Description","/properties/Document","/properties/DocumentSource","/properties/TimeoutConfig","/properties/JobExecutionsRolloutConfig","/properties/AbortConfig","/properties/PresignedUrlConfig","/properties/Tags"],"primaryIdentifier":["/properties/JobTemplateId"],"required":["JobTemplateId","Description"],"sourceUrl":"https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iot.git","handlers":{"read":{"permissions":["iot:DescribeJobTemplate"]},"create":{"permissions":["iot:CreateJobTemplate","iam:PassRole","s3:GetObject"]},"list":{"permissions":["iot:ListJobTemplates"]},"delete":{"permissions":["iot:DeleteJobTemplate"]}},"writeOnlyProperties":["/properties/JobArn","/properties/Tags"],"additionalProperties":false,"definitions":{"ExpiresInSec":{"description":"How number (in seconds) pre-signed URLs are valid.","maximum":3600,"type":"integer","minimum":60},"Action":{"type":"string","enum":["CANCEL"]},"FailureType":{"type":"string","enum":["FAILED","REJECTED","TIMED_OUT","ALL"]},"BaseRatePerMinute":{"type":"integer","minimum":1},"NumberOfNotifiedThings":{"type":"integer","minimum":1},"RoleArn":{"minLength":20,"description":"The ARN of an IAM role that grants grants permission to download files from the S3 bucket where the job data/updates are stored. The role must also grant permission for IoT to download the files.","type":"string","maxLength":2048},"ExponentialRolloutRate":{"description":"Allows you to create an exponential rate of rollout for a job.","additionalProperties":false,"type":"object","properties":{"RateIncreaseCriteria":{"description":"The criteria to initiate the increase in rate of rollout for a job.","type":"object","$ref":"#/definitions/RateIncreaseCriteria"},"BaseRatePerMinute":{"description":"The minimum number of things that will be notified of a pending job, per minute at the start of job rollout. This parameter allows you to define the initial rate of rollout.","$ref":"#/definitions/BaseRatePerMinute"},"IncrementFactor":{"description":"The exponential factor to increase the rate of rollout for a job.","$ref":"#/definitions/IncrementFactor"}},"required":["BaseRatePerMinute","IncrementFactor","RateIncreaseCriteria"]},"IncrementFactor":{"maximum":5,"type":"number","minimum":1},"InProgressTimeoutInMinutes":{"description":"Specifies the amount of time, in minutes, this device has to finish execution of this job.","maximum":10080,"type":"integer","minimum":1},"RateIncreaseCriteria":{"additionalProperties":false,"type":"object","properties":{"NumberOfSucceededThings":{"$ref":"#/definitions/NumberOfSucceededThings"},"NumberOfNotifiedThings":{"$ref":"#/definitions/NumberOfNotifiedThings"}}},"MaximumPerMinute":{"type":"integer","minimum":1},"AbortCriteria":{"description":"The criteria that determine when and how a job abort takes place.","additionalProperties":false,"type":"object","properties":{"Action":{"description":"The type of job action to take to initiate the job abort.","$ref":"#/definitions/Action"},"FailureType":{"description":"The type of job execution failures that can initiate a job abort.","$ref":"#/definitions/FailureType"},"ThresholdPercentage":{"description":"The minimum percentage of job execution failures that must occur to initiate the job abort.","$ref":"#/definitions/ThresholdPercentage"},"MinNumberOfExecutedThings":{"description":"The minimum number of things which must receive job execution notifications before the job can be aborted.","$ref":"#/definitions/MinNumberOfExecutedThings"}},"required":["Action","FailureType","MinNumberOfExecutedThings","ThresholdPercentage"]},"RetryCriteria":{"description":"Specifies how many times a failure type should be retried.","additionalProperties":false,"type":"object","properties":{"FailureType":{"$ref":"#/definitions/JobRetryFailureType"},"NumberOfRetries":{"maximum":10,"type":"integer","minimum":0}}},"NumberOfSucceededThings":{"type":"integer","minimum":1},"ThresholdPercentage":{"maximum":100,"type":"number"},"Tag":{"description":"A key-value pair to associate with a resource.","additionalProperties":false,"type":"object","properties":{"Value":{"minLength":1,"description":"The tag's value.","type":"string","maxLength":256},"Key":{"minLength":1,"description":"The tag's key.","type":"string","maxLength":128}},"required":["Value","Key"]},"MinNumberOfExecutedThings":{"type":"integer","minimum":1},"JobRetryFailureType":{"type":"string","enum":["FAILED","TIMED_OUT","ALL"]}},"properties":{"JobArn":{"description":"Optional for copying a JobTemplate from a pre-existing Job configuration.","type":"string"},"TimeoutConfig":{"description":"Specifies the amount of time each device has to finish its execution of the job.","additionalProperties":false,"type":"object","properties":{"InProgressTimeoutInMinutes":{"$ref":"#/definitions/InProgressTimeoutInMinutes"}},"required":["InProgressTimeoutInMinutes"]},"JobExecutionsRolloutConfig":{"description":"Allows you to create a staged rollout of a job.","additionalProperties":false,"type":"object","properties":{"MaximumPerMinute":{"description":"The maximum number of things that will be notified of a pending job, per minute. This parameter allows you to create a staged rollout.","$ref":"#/definitions/MaximumPerMinute"},"ExponentialRolloutRate":{"description":"The rate of increase for a job rollout. This parameter allows you to define an exponential rate for a job rollout.","$ref":"#/definitions/ExponentialRolloutRate"}}},"Description":{"pattern":"[^\\p{C}]+","description":"A description of the Job Template.","type":"string","maxLength":2028},"JobExecutionsRetryConfig":{"additionalProperties":false,"type":"object","properties":{"RetryCriteriaList":{"minItems":1,"maxItems":2,"insertionOrder":false,"type":"array","items":{"$ref":"#/definitions/RetryCriteria"}}}},"DocumentSource":{"minLength":1,"description":"An S3 link to the job document to use in the template. Required if you don't specify a value for document.","type":"string","maxLength":1350},"AbortConfig":{"description":"The criteria that determine when and how a job abort takes place.","additionalProperties":false,"type":"object","properties":{"CriteriaList":{"minItems":1,"insertionOrder":false,"type":"array","items":{"$ref":"#/definitions/AbortCriteria"}}},"required":["CriteriaList"]},"Arn":{"type":"string"},"JobTemplateId":{"minLength":1,"pattern":"[a-zA-Z0-9_-]+","type":"string","maxLength":64},"Document":{"description":"The job document. Required if you don't specify a value for documentSource.","type":"string","maxLength":32768},"PresignedUrlConfig":{"description":"Configuration for pre-signed S3 URLs.","additionalProperties":false,"type":"object","properties":{"ExpiresInSec":{"$ref":"#/definitions/ExpiresInSec"},"RoleArn":{"$ref":"#/definitions/RoleArn"}},"required":["RoleArn"]},"Tags":{"maxItems":50,"uniqueItems":true,"description":"Metadata that can be used to manage the JobTemplate.","insertionOrder":false,"type":"array","items":{"$ref":"#/definitions/Tag"}}}} \ No newline at end of file diff --git a/internal/service/cloudformation/schemas/AWS_Lex_BotAlias.json b/internal/service/cloudformation/schemas/AWS_Lex_BotAlias.json index e77aca69c7..016deaa4e5 100644 --- a/internal/service/cloudformation/schemas/AWS_Lex_BotAlias.json +++ b/internal/service/cloudformation/schemas/AWS_Lex_BotAlias.json @@ -41,8 +41,8 @@ } }, "required": [ - "Key", - "Value" + "LocaleId", + "BotAliasLocaleSetting" ], "additionalProperties": false }, @@ -185,6 +185,7 @@ "additionalProperties": false }, "CloudWatchLogGroupLogDestination": { + "type": "object", "properties": { "CloudWatchLogGroupArn": { "description": "A string used to identify this tag", diff --git a/internal/service/cloudformation/schemas/AWS_Location_Tracker.json b/internal/service/cloudformation/schemas/AWS_Location_Tracker.json index 602c2c7136..91cb48864b 100644 --- a/internal/service/cloudformation/schemas/AWS_Location_Tracker.json +++ b/internal/service/cloudformation/schemas/AWS_Location_Tracker.json @@ -19,7 +19,8 @@ "type": "string", "enum": [ "TimeBased", - "DistanceBased" + "DistanceBased", + "AccuracyBased" ] } }, diff --git a/internal/service/cloudformation/schemas/AWS_NimbleStudio_LaunchProfile.json b/internal/service/cloudformation/schemas/AWS_NimbleStudio_LaunchProfile.json index 1f7270bcd5..4348bc4620 100644 --- a/internal/service/cloudformation/schemas/AWS_NimbleStudio_LaunchProfile.json +++ b/internal/service/cloudformation/schemas/AWS_NimbleStudio_LaunchProfile.json @@ -7,14 +7,23 @@ "type": "object", "description": "

A configuration for a streaming session.

", "properties": { + "ClipboardMode": { + "$ref": "#/definitions/StreamingClipboardMode" + }, + "Ec2InstanceTypes": { + "type": "array", + "items": { + "$ref": "#/definitions/StreamingInstanceType" + }, + "maxItems": 30, + "minItems": 1, + "description": "

The EC2 instance types that users can select from when launching a streaming session\n with this launch profile.

" + }, "MaxSessionLengthInMinutes": { "type": "number", - "maximum": 690, + "maximum": 43200, "minimum": 1, - "description": "

The length of time, in minutes, that a streaming session can run. After this point, Nimble Studio automatically terminates the session.

" - }, - "ClipboardMode": { - "$ref": "#/definitions/StreamingClipboardMode" + "description": "

The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.

" }, "StreamingImageIds": { "type": "array", @@ -22,21 +31,20 @@ "type": "string", "maxLength": 22, "minLength": 0, - "pattern": "", - "description": "" + "pattern": "" }, "maxItems": 20, - "minItems": 0, - "description": "

The streaming images that users can select from when launching a streaming session with this launch profile.

" - }, - "Ec2InstanceTypes": { - "type": "array", - "items": { - "$ref": "#/definitions/StreamingInstanceType" - }, - "maxItems": 30, "minItems": 1, - "description": "

The EC2 instance types that users can select from when launching a streaming session with this launch profile.

" + "description": "

The streaming images that users can select from when launching a streaming session\n with this launch profile.

" + }, + "MaxStoppedSessionLengthInMinutes": { + "type": "number", + "maximum": 5760, + "minimum": 0, + "description": "

Integer that determines if you can start and stop your sessions and how long a session\n can stay in the STOPPED state. The default value is 0. The maximum value is 5760.

\n

If the value is missing or set to 0, your sessions can?t be stopped. If you then call\n StopStreamingSession, the session fails. If the time that a session stays in the READY\n state exceeds the maxSessionLengthInMinutes value, the session will automatically be\n terminated by AWS (instead of stopped).

\n

If the value is set to a positive number, the session can be stopped. You can call\n StopStreamingSession to stop sessions in the READY state. If the time that a session\n stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will\n automatically be stopped by AWS (instead of terminated).

" + }, + "SessionStorage": { + "$ref": "#/definitions/StreamConfigurationSessionStorage" } }, "required": [ @@ -46,9 +54,26 @@ ], "additionalProperties": false }, + "StreamConfigurationSessionStorage": { + "type": "object", + "description": "

The configuration for a streaming session?s upload storage.

", + "properties": { + "Root": { + "$ref": "#/definitions/StreamingSessionStorageRoot" + }, + "Mode": { + "type": "array", + "items": { + "$ref": "#/definitions/StreamingSessionStorageMode" + }, + "minItems": 1, + "description": "

Allows artists to upload files to their workstations. The only valid option is\n UPLOAD.

" + } + }, + "additionalProperties": false + }, "StreamingClipboardMode": { "type": "string", - "description": "", "enum": [ "ENABLED", "DISABLED" @@ -56,7 +81,6 @@ }, "StreamingInstanceType": { "type": "string", - "description": "", "enum": [ "g4dn.xlarge", "g4dn.2xlarge", @@ -66,9 +90,35 @@ "g4dn.16xlarge" ] }, + "StreamingSessionStorageMode": { + "type": "string", + "enum": [ + "UPLOAD" + ] + }, + "StreamingSessionStorageRoot": { + "type": "object", + "description": "

The upload storage root location (folder) on streaming workstations where files are\n uploaded.

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

The folder path in Linux workstations where files are uploaded.

" + }, + "Windows": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "pattern": "", + "description": "

The folder path in Windows workstations where files are uploaded.

" + } + }, + "additionalProperties": false + }, "Tags": { "type": "object", - "description": "", "patternProperties": { "": { "type": "string" @@ -87,12 +137,11 @@ "Ec2SubnetIds": { "type": "array", "items": { - "type": "string", - "description": "" + "type": "string" }, "maxItems": 6, "minItems": 0, - "description": "

Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from. These subnets must support the specified instance types.

" + "description": "

Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from.\n These subnets must support the specified instance types.

" }, "LaunchProfileId": { "type": "string" @@ -104,9 +153,9 @@ "maxLength": 10, "minLength": 0, "pattern": "", - "description": "

The version number of the protocol that is used by the launch profile. The only valid version is \"2021-03-31\".

" + "description": "

The version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".

" }, - "description": "

The version number of the protocol that is used by the launch profile. The only valid version is \"2021-03-31\".

" + "description": "

The version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".

" }, "Name": { "type": "string", @@ -124,16 +173,24 @@ }, "maxItems": 100, "minItems": 1, - "description": "

Unique identifiers for a collection of studio components that can be used with this launch profile.

" + "description": "

Unique identifiers for a collection of studio components that can be used with this\n launch profile.

" }, "StudioId": { "type": "string", - "description": "

The studioId.

" + "description": "

The studio ID.

" }, "Tags": { "$ref": "#/definitions/Tags" } }, + "required": [ + "StudioId", + "Name", + "StudioComponentIds", + "Ec2SubnetIds", + "StreamConfiguration", + "LaunchProfileProtocolVersions" + ], "readOnlyProperties": [ "/properties/LaunchProfileId" ], @@ -146,14 +203,6 @@ "/properties/LaunchProfileId", "/properties/StudioId" ], - "required": [ - "StudioId", - "Name", - "StudioComponentIds", - "Ec2SubnetIds", - "StreamConfiguration", - "LaunchProfileProtocolVersions" - ], "handlers": { "create": { "permissions": [ @@ -188,4 +237,4 @@ } }, "additionalProperties": false -} +} \ No newline at end of file diff --git a/internal/service/cloudformation/schemas/AWS_Panorama_ApplicationInstance.json b/internal/service/cloudformation/schemas/AWS_Panorama_ApplicationInstance.json index bda2deba77..9d43f0346a 100644 --- a/internal/service/cloudformation/schemas/AWS_Panorama_ApplicationInstance.json +++ b/internal/service/cloudformation/schemas/AWS_Panorama_ApplicationInstance.json @@ -255,6 +255,13 @@ "panorama:ListTagsForResource" ] }, + "update": { + "permissions": [ + "panorama:ListTagsForResource", + "panorama:TagResource", + "panorama:UntagResource" + ] + }, "delete": { "permissions": [ "panorama:RemoveApplicationInstance" diff --git a/internal/service/cloudformation/schemas/AWS_RUM_AppMonitor.json b/internal/service/cloudformation/schemas/AWS_RUM_AppMonitor.json index dbbf44a063..0523f940da 100644 --- a/internal/service/cloudformation/schemas/AWS_RUM_AppMonitor.json +++ b/internal/service/cloudformation/schemas/AWS_RUM_AppMonitor.json @@ -162,6 +162,10 @@ "primaryIdentifier": [ "/properties/Name" ], + "required": [ + "Name", + "Domain" + ], "handlers": { "create": { "permissions": [ diff --git a/internal/service/cloudformation/schemas/AWS_Redshift_EventSubscription.json b/internal/service/cloudformation/schemas/AWS_Redshift_EventSubscription.json index e8cf885c15..c3735a1da4 100644 --- a/internal/service/cloudformation/schemas/AWS_Redshift_EventSubscription.json +++ b/internal/service/cloudformation/schemas/AWS_Redshift_EventSubscription.json @@ -60,6 +60,7 @@ "description": "Specifies the Amazon Redshift event categories to be published by the event notification subscription.", "type": "array", "insertionOrder": false, + "uniqueItems": true, "items": { "type": "string", "enum": [ @@ -124,6 +125,7 @@ "description": "The list of Amazon Redshift event categories specified in the event notification subscription.", "type": "array", "insertionOrder": false, + "uniqueItems": true, "items": { "type": "string" } diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_Pipeline.json b/internal/service/cloudformation/schemas/AWS_SageMaker_Pipeline.json index cab54d310d..d12545126c 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_Pipeline.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_Pipeline.json @@ -60,6 +60,18 @@ "items": { "$ref": "#/definitions/Tag" } + }, + "ParallelismConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "MaxParallelExecutionSteps": { + "description": "Maximum parallel execution steps", + "type": "integer", + "minimum" : 1 + } + }, + "required": ["MaxParallelExecutionSteps"] } }, "definitions": { diff --git a/internal/service/cloudformation/schemas/AWS_Timestream_ScheduledQuery.json b/internal/service/cloudformation/schemas/AWS_Timestream_ScheduledQuery.json index 28c1ee8078..d07b8e4534 100644 --- a/internal/service/cloudformation/schemas/AWS_Timestream_ScheduledQuery.json +++ b/internal/service/cloudformation/schemas/AWS_Timestream_ScheduledQuery.json @@ -10,20 +10,20 @@ "maxLength": 2048 }, "ScheduledQueryName": { - "description": "The name for the scheduled query.", + "description": "The name of the scheduled query. Scheduled query names must be unique within each Region.", "type": "string", "pattern": "", "minLength": 1, "maxLength": 64 }, "QueryString": { - "description": "The query scheduled to be executed.", + "description": "The query string to run. Parameter names can be specified in the query string @ character followed by an identifier. The named Parameter @scheduled_runtime is reserved and can be used in the query to get the time at which the query is scheduled to run. The timestamp calculated according to the ScheduleConfiguration parameter, will be the value of @scheduled_runtime paramater for each query run. For example, consider an instance of a scheduled query executing on 2021-12-01 00:00:00. For this instance, the @scheduled_runtime parameter is initialized to the timestamp 2021-12-01 00:00:00 when invoking the query.", "type": "string", "minLength": 1, "maxLength": 262144 }, "ScheduleConfiguration": { - "description": "Configuration that indicates when the scheduled query is executed.", + "description": "Configuration for when the scheduled query is executed.", "type": "object", "properties": { "ScheduleExpression": { @@ -36,7 +36,7 @@ "additionalProperties": false }, "NotificationConfiguration": { - "description": "Configuration for notification upon scheduled query execution.", + "description": "Notification configuration for the scheduled query. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it.", "type": "object", "properties": { "SnsConfiguration": { @@ -49,19 +49,19 @@ "additionalProperties": false }, "ClientToken": { - "description": "Token provided to ensure idempotency when creating scheduled queries.", + "description": "Using a ClientToken makes the call to CreateScheduledQuery idempotent, in other words, making the same request repeatedly will produce the same result. Making multiple identical CreateScheduledQuery requests has the same effect as making a single request. If CreateScheduledQuery is called without a ClientToken, the Query SDK generates a ClientToken on your behalf. After 8 hours, any request with the same ClientToken is treated as a new request.", "type": "string", "minLength": 32, "maxLength": 128 }, "ScheduledQueryExecutionRoleArn": { - "description": "Role that AWS Timestream will assume to execute scheduled query.", + "description": "The ARN for the IAM role that Timestream will assume when running the scheduled query.", "type": "string", "minLength": 1, "maxLength": 2048 }, "TargetConfiguration": { - "description": "Configuration of target destination table to query.", + "description": "Configuration of target store where scheduled query results are written to.", "type": "object", "properties": { "TimestreamConfiguration": { @@ -74,7 +74,7 @@ "additionalProperties": false }, "ErrorReportConfiguration": { - "description": "Configuration for where error reports will be placed, how they will be named, and how they will be encrypted.", + "description": "Configuration for error reporting. Error reports will be generated when a problem is encountered when writing the query results.", "type": "object", "properties": { "S3Configuration": { @@ -87,13 +87,13 @@ "additionalProperties": false }, "KmsKeyId": { - "description": "The KMS key for the scheduled query. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS key located in your account.", + "description": "The Amazon KMS key used to encrypt the scheduled query resource, at-rest. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix the name with alias/. If ErrorReportConfiguration uses SSE_KMS as encryption type, the same KmsKeyId is used to encrypt the error report at rest.", "type": "string", "minLength": 1, "maxLength": 2048 }, "Tags": { - "description": "An array of key-value pairs to apply to this resource.", + "description": "A list of key-value pairs to label the scheduled query.", "type": "array", "insertionOrder": false, "maxItems": 200, @@ -102,7 +102,7 @@ } }, "ScheduleExpression": { - "description": "The cron expression that indicates when the scheduled query is executed.", + "description": "An expression that denotes when to trigger the scheduled query run. This can be a cron expression or a rate expression.", "type": "string", "minLength": 1, "maxLength": 256 @@ -121,13 +121,13 @@ "additionalProperties": false }, "TopicArn": { - "description": "SNS Topic to be notified upon scheduled query execution.", + "description": "SNS topic ARN that the scheduled query status notifications will be sent to.", "type": "string", "minLength": 1, "maxLength": 2048 }, "TimestreamConfiguration": { - "description": "Timestream configuration of destination table to query.", + "description": "Configuration needed to write data into the Timestream database and table.", "type": "object", "properties": { "DatabaseName": { @@ -161,19 +161,19 @@ "additionalProperties": false }, "DatabaseName": { - "description": "The source database to query.", + "description": "Name of Timestream database to which the query result will be written.", "type": "string" }, "TableName": { - "description": "The source table to query.", + "description": "Name of Timestream table that the query result will be written to. The table should be within the same database that is provided in Timestream configuration.", "type": "string" }, "TimeColumn": { - "description": "Name of the \"time\" column.", + "description": "Column from query result that should be used as the time column in destination table. Column type for this should be TIMESTAMP.", "type": "string" }, "DimensionMappings": { - "description": "Mappings of dimension names to dimension value types.", + "description": "This is to allow mapping column(s) from the query result to the dimension in the destination table.", "type": "array", "insertionOrder": false, "items": { @@ -181,7 +181,7 @@ } }, "DimensionMapping": { - "description": "Mapping of dimension column name to dimension column value type.", + "description": "This type is used to map column(s) from the query result to a dimension in the destination table.", "type": "object", "properties": { "Name": { @@ -198,16 +198,16 @@ "additionalProperties": false }, "DimensionMappingName": { - "description": "Name of the dimension column.", + "description": "Column name from query result.", "type": "string" }, "DimensionValueType": { - "description": "Value type of the dimension column.", + "description": "Type for the dimension.", "type": "string", "enum": ["VARCHAR"] }, "MultiMeasureMappings": { - "description": "Mapping of measure value columns from the source table to the destination table.", + "description": "Only one of MixedMeasureMappings or MultiMeasureMappings is to be provided. MultiMeasureMappings can be used to ingest data as multi measures in the derived table.", "type": "object", "properties": { "TargetMultiMeasureName": { @@ -223,11 +223,11 @@ "additionalProperties": false }, "TargetMultiMeasureName": { - "description": "Name of the multi-measure in the destination table.", + "description": "Name of the target multi-measure in the derived table. Required if MeasureNameColumn is not provided. If MeasureNameColumn is provided then the value from that column will be used as the multi-measure name.", "type": "string" }, "MultiMeasureAttributeMappingList": { - "description": "List of multi-measure value column mappings.", + "description": "Required. Attribute mappings to be used for mapping query results to ingest data for multi-measure attributes.", "type": "array", "insertionOrder": false, "minItems": 1, @@ -236,7 +236,7 @@ } }, "MultiMeasureAttributeMapping": { - "description": "Mapping of measure value columns from the source table to the destination table.", + "description": "An attribute mapping to be used for mapping query results to ingest data for multi-measure attributes.", "type": "object", "properties": { "SourceColumn": { @@ -256,20 +256,20 @@ "additionalProperties": false }, "MultiMeasureAttributeMappingSourceColumn": { - "description": "Name of the measure value column in the source table.", + "description": "Source measure value column in the query result where the attribute value is to be read.", "type": "string" }, "MultiMeasureAttributeMappingMeasureValueType": { - "description": "Value type of the measure value column in the destination table.", + "description": "Value type of the measure value column to be read from the query result.", "type": "string", "enum": ["BIGINT", "BOOLEAN", "DOUBLE", "VARCHAR"] }, "TargetMultiMeasureAttributeName": { - "description": "Name of the measure value column in the destination table.", + "description": "Custom name to be used for attribute name in derived table. If not provided, source column name would be used.", "type": "string" }, "MixedMeasureMappings": { - "description": "Mapping of measure names and measure value columns from the source table to the destination table.", + "description": "Specifies how to map measures to multi-measure records.", "type": "array", "insertionOrder": false, "minItems": 1, @@ -278,7 +278,7 @@ } }, "MixedMeasureMapping": { - "description": "Mapping of measure names and measure value columns from the source table to the destination table.", + "description": "MixedMeasureMappings are mappings that can be used to ingest data into a mixture of narrow and multi measures in the derived table.", "type": "object", "properties": { "MeasureName": { @@ -303,28 +303,28 @@ "additionalProperties": false }, "MixedMeasureMappingMeasureName": { - "description": "Name of the measure in source table.", + "description": "Refers to the value of the measure name in a result row. This field is required if MeasureNameColumn is provided.", "type": "string" }, "MixedMeasureMappingSourceColumn": { - "description": "Name of the measure value column in the source table.", + "description": "This field refers to the source column from which the measure value is to be read for result materialization.", "type": "string" }, "MixedMeasureMappingTargetMeasureName": { - "description": "Name of the measure in the destination table.", + "description": "Target measure name to be used. If not provided, the target measure name by default would be MeasureName if provided, or SourceColumn otherwise.", "type": "string" }, "MixedMeasureMappingMeasureValueType": { - "description": "Value type of the measure value column in the destination table.", + "description": "Type of the value that is to be read from SourceColumn. If the mapping is for MULTI, use MeasureValueType.MULTI.", "type": "string", "enum": ["BIGINT", "BOOLEAN", "DOUBLE", "VARCHAR", "MULTI"] }, "MeasureNameColumn": { - "description": "Name of the source measure names column.", + "description": "Name of the measure name column from the query result.", "type": "string" }, "S3Configuration": { - "description": "S3 configuration for where error reports will be placed, how they will be named, and how they will be encrypted.", + "description": "Details on S3 location for error reports that result from running a query.", "type": "object", "properties": { "BucketName": { @@ -343,26 +343,26 @@ "additionalProperties": false }, "BucketName": { - "description": "S3 bucket where error reports will be placed.", + "description": "Name of the S3 bucket under which error reports will be created.", "type": "string", "minLength": 3, "maxLength": 63, "pattern": "" }, "ObjectKeyPrefix": { - "description": "Prefix for error report names.", + "description": "Prefix for error report keys.", "type": "string", "minLength": 1, "maxLength": 896, "pattern": "" }, "EncryptionOption": { - "description": "How error reports will be encrypted.", + "description": "Encryption at rest options for the error reports. If no encryption option is specified, Timestream will choose SSE_S3 as default.", "type": "string", "enum": ["SSE_S3", "SSE_KMS"] }, "Tag": { - "description": "A key-value pair to associate with a resource.", + "description": "A key-value pair to label the scheduled query.", "type": "object", "properties": { "Key": { @@ -423,35 +423,35 @@ "$ref": "#/definitions/KmsKeyId" }, "SQName": { - "description": "The name for the scheduled query.", + "description": "The name of the scheduled query. Scheduled query names must be unique within each Region.", "type": "string" }, "SQQueryString": { - "description": "The query scheduled to be executed.", + "description": "The query string to run. Parameter names can be specified in the query string @ character followed by an identifier. The named Parameter @scheduled_runtime is reserved and can be used in the query to get the time at which the query is scheduled to run. The timestamp calculated according to the ScheduleConfiguration parameter, will be the value of @scheduled_runtime paramater for each query run. For example, consider an instance of a scheduled query executing on 2021-12-01 00:00:00. For this instance, the @scheduled_runtime parameter is initialized to the timestamp 2021-12-01 00:00:00 when invoking the query.", "type": "string" }, "SQScheduleConfiguration": { - "description": "Configuration that indicates when the scheduled query is executed.", + "description": "Configuration for when the scheduled query is executed.", "type": "string" }, "SQNotificationConfiguration": { - "description": "Configuration for notification upon scheduled query execution.", + "description": "Notification configuration for the scheduled query. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it.", "type": "string" }, "SQScheduledQueryExecutionRoleArn": { - "description": "Role that AWS Timestream will assume to execute scheduled query.", + "description": "The ARN for the IAM role that Timestream will assume when running the scheduled query.", "type": "string" }, "SQTargetConfiguration": { - "description": "Target data source to export query results from.", + "description": "Configuration of target store where scheduled query results are written to.", "type": "string" }, "SQErrorReportConfiguration": { - "description": "Configuration for where error reports will be placed, how they will be named, and how they will be encrypted.", + "description": "Configuration for error reporting. Error reports will be generated when a problem is encountered when writing the query results.", "type": "string" }, "SQKmsKeyId": { - "description": "The KMS key for the scheduled query. If the KMS key is not specified, the database will be encrypted with a Timestream owned KMS key located in the Timestream account.", + "description": "The Amazon KMS key used to encrypt the scheduled query resource, at-rest. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix the name with alias/. If ErrorReportConfiguration uses SSE_KMS as encryption type, the same KmsKeyId is used to encrypt the error report at rest.", "type": "string" }, "Tags": { From f3ca481ec018319f3f805494c784df3a53a0206b Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 13 Jan 2022 14:54:18 -0500 Subject: [PATCH 2/6] 01/12/2022 CloudFormation schemas in us-east-1; New schemas. --- internal/provider/all_schemas.hcl | 72 +- .../available_schemas.2022-01-12.hcl | 2073 +++++++++++++++++ internal/provider/plural_data_sources.go | 11 + internal/provider/resources.go | 17 + internal/provider/singular_data_sources.go | 17 + ...eam_ApplicationEntitlementAssociation.json | 50 + .../schemas/AWS_AppStream_Entitlement.json | 92 + .../cloudformation/schemas/AWS_EC2_Host.json | 72 + .../AWS_EC2_NetworkInsightsAccessScope.json | 232 ++ ...C2_NetworkInsightsAccessScopeAnalysis.json | 165 ++ .../schemas/AWS_Forecast_Dataset.json | 173 ++ .../schemas/AWS_Forecast_DatasetGroup.json | 135 ++ .../schemas/AWS_InspectorV2_Filter.json | 369 +++ .../AWS_KinesisVideo_SignalingChannel.json | 104 + .../schemas/AWS_KinesisVideo_Stream.json | 119 + .../schemas/AWS_Lightsail_Alarm.json | 121 + .../schemas/AWS_Lightsail_Bucket.json | 161 ++ .../schemas/AWS_Lightsail_LoadBalancer.json | 139 ++ ..._Lightsail_LoadBalancerTlsCertificate.json | 92 + ...ute53Resolver_ResolverRuleAssociation.json | 64 + 20 files changed, 4277 insertions(+), 1 deletion(-) create mode 100644 internal/provider/generators/allschemas/available_schemas.2022-01-12.hcl create mode 100644 internal/service/cloudformation/schemas/AWS_AppStream_ApplicationEntitlementAssociation.json create mode 100644 internal/service/cloudformation/schemas/AWS_AppStream_Entitlement.json create mode 100644 internal/service/cloudformation/schemas/AWS_EC2_Host.json create mode 100644 internal/service/cloudformation/schemas/AWS_EC2_NetworkInsightsAccessScope.json create mode 100644 internal/service/cloudformation/schemas/AWS_EC2_NetworkInsightsAccessScopeAnalysis.json create mode 100644 internal/service/cloudformation/schemas/AWS_Forecast_Dataset.json create mode 100644 internal/service/cloudformation/schemas/AWS_Forecast_DatasetGroup.json create mode 100644 internal/service/cloudformation/schemas/AWS_InspectorV2_Filter.json create mode 100644 internal/service/cloudformation/schemas/AWS_KinesisVideo_SignalingChannel.json create mode 100644 internal/service/cloudformation/schemas/AWS_KinesisVideo_Stream.json create mode 100644 internal/service/cloudformation/schemas/AWS_Lightsail_Alarm.json create mode 100644 internal/service/cloudformation/schemas/AWS_Lightsail_Bucket.json create mode 100644 internal/service/cloudformation/schemas/AWS_Lightsail_LoadBalancer.json create mode 100644 internal/service/cloudformation/schemas/AWS_Lightsail_LoadBalancerTlsCertificate.json create mode 100644 internal/service/cloudformation/schemas/AWS_Route53Resolver_ResolverRuleAssociation.json diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index 89541b2cde..9464fe989c 100644 --- a/internal/provider/all_schemas.hcl +++ b/internal/provider/all_schemas.hcl @@ -7,7 +7,7 @@ meta_schema { path = "../service/cloudformation/meta-schemas/provider.definition.schema.v1.json" } -# 457 CloudFormation resource types schemas are available for use with the Cloud Control API. +# 475 CloudFormation resource types schemas are available for use with the Cloud Control API. resource_schema "aws_acmpca_certificate" { cloudformation_type_name = "AWS::ACMPCA::Certificate" @@ -175,11 +175,21 @@ resource_schema "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_entitlement" { + cloudformation_type_name = "AWS::AppStream::Entitlement" + suppress_plural_data_source_generation = true +} + resource_schema "aws_appsync_domain_name" { cloudformation_type_name = "AWS::AppSync::DomainName" suppress_plural_data_source_generation = true @@ -588,6 +598,10 @@ resource_schema "aws_ec2_gateway_route_table_association" { suppress_plural_data_source_generation = true } +resource_schema "aws_ec2_host" { + cloudformation_type_name = "AWS::EC2::Host" +} + resource_schema "aws_ec2_internet_gateway" { cloudformation_type_name = "AWS::EC2::InternetGateway" } @@ -621,6 +635,14 @@ 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" } @@ -870,6 +892,19 @@ resource_schema "aws_fis_experiment_template" { cloudformation_type_name = "AWS::FIS::ExperimentTemplate" } +resource_schema "aws_forecast_dataset" { + cloudformation_type_name = "AWS::Forecast::Dataset" + + # "Tags/Key is of unsupported type: " + suppress_resource_generation = true + suppress_singular_data_source_generation = true + suppress_plural_data_source_generation = true +} + +resource_schema "aws_forecast_dataset_group" { + cloudformation_type_name = "AWS::Forecast::DatasetGroup" +} + resource_schema "aws_fms_notification_channel" { cloudformation_type_name = "AWS::FMS::NotificationChannel" suppress_plural_data_source_generation = true @@ -1043,6 +1078,10 @@ resource_schema "aws_imagebuilder_infrastructure_configuration" { cloudformation_type_name = "AWS::ImageBuilder::InfrastructureConfiguration" } +resource_schema "aws_inspectorv2_filter" { + cloudformation_type_name = "AWS::InspectorV2::Filter" +} + resource_schema "aws_iot_account_audit_configuration" { cloudformation_type_name = "AWS::IoT::AccountAuditConfiguration" } @@ -1262,6 +1301,16 @@ resource_schema "aws_kinesisfirehose_delivery_stream" { cloudformation_type_name = "AWS::KinesisFirehose::DeliveryStream" } +resource_schema "aws_kinesisvideo_signaling_channel" { + cloudformation_type_name = "AWS::KinesisVideo::SignalingChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kinesisvideo_stream" { + cloudformation_type_name = "AWS::KinesisVideo::Stream" + suppress_plural_data_source_generation = true +} + resource_schema "aws_lambda_code_signing_config" { cloudformation_type_name = "AWS::Lambda::CodeSigningConfig" } @@ -1301,6 +1350,14 @@ 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_database" { cloudformation_type_name = "AWS::Lightsail::Database" } @@ -1313,6 +1370,15 @@ resource_schema "aws_lightsail_instance" { cloudformation_type_name = "AWS::Lightsail::Instance" } +resource_schema "aws_lightsail_load_balancer" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancer" +} + +resource_schema "aws_lightsail_load_balancer_tls_certificate" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancerTlsCertificate" + suppress_plural_data_source_generation = true +} + resource_schema "aws_lightsail_static_ip" { cloudformation_type_name = "AWS::Lightsail::StaticIp" } @@ -1779,6 +1845,10 @@ resource_schema "aws_route53resolver_resolver_dnssec_config" { cloudformation_type_name = "AWS::Route53Resolver::ResolverDNSSECConfig" } +resource_schema "aws_route53resolver_resolver_rule_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRuleAssociation" +} + resource_schema "aws_route53resolver_resolver_query_logging_config" { cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfig" } diff --git a/internal/provider/generators/allschemas/available_schemas.2022-01-12.hcl b/internal/provider/generators/allschemas/available_schemas.2022-01-12.hcl new file mode 100644 index 0000000000..8aa62b23b9 --- /dev/null +++ b/internal/provider/generators/allschemas/available_schemas.2022-01-12.hcl @@ -0,0 +1,2073 @@ +# 475 CloudFormation resource types schemas are available for use with the Cloud Control API. + +resource_schema "aws_acmpca_certificate" { + cloudformation_type_name = "AWS::ACMPCA::Certificate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_certificate_authority" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthority" +} + +resource_schema "aws_acmpca_certificate_authority_activation" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthorityActivation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_permission" { + cloudformation_type_name = "AWS::ACMPCA::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_rule_groups_namespace" { + cloudformation_type_name = "AWS::APS::RuleGroupsNamespace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_workspace" { + cloudformation_type_name = "AWS::APS::Workspace" +} + +resource_schema "aws_accessanalyzer_analyzer" { + cloudformation_type_name = "AWS::AccessAnalyzer::Analyzer" +} + +resource_schema "aws_amplify_app" { + cloudformation_type_name = "AWS::Amplify::App" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplify_branch" { + cloudformation_type_name = "AWS::Amplify::Branch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplify_domain" { + cloudformation_type_name = "AWS::Amplify::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_component" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_theme" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_account" { + cloudformation_type_name = "AWS::ApiGateway::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_api_key" { + cloudformation_type_name = "AWS::ApiGateway::ApiKey" +} + +resource_schema "aws_apigateway_authorizer" { + cloudformation_type_name = "AWS::ApiGateway::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_base_path_mapping" { + cloudformation_type_name = "AWS::ApiGateway::BasePathMapping" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_client_certificate" { + cloudformation_type_name = "AWS::ApiGateway::ClientCertificate" +} + +resource_schema "aws_apigateway_deployment" { + cloudformation_type_name = "AWS::ApiGateway::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_version" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_domain_name" { + cloudformation_type_name = "AWS::ApiGateway::DomainName" +} + +resource_schema "aws_apigateway_method" { + cloudformation_type_name = "AWS::ApiGateway::Method" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_model" { + cloudformation_type_name = "AWS::ApiGateway::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_request_validator" { + cloudformation_type_name = "AWS::ApiGateway::RequestValidator" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_resource" { + cloudformation_type_name = "AWS::ApiGateway::Resource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_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_appflow_connector_profile" { + cloudformation_type_name = "AWS::AppFlow::ConnectorProfile" +} + +resource_schema "aws_appflow_flow" { + cloudformation_type_name = "AWS::AppFlow::Flow" +} + +resource_schema "aws_appintegrations_event_integration" { + cloudformation_type_name = "AWS::AppIntegrations::EventIntegration" +} + +resource_schema "aws_apprunner_service" { + cloudformation_type_name = "AWS::AppRunner::Service" +} + +resource_schema "aws_appstream_app_block" { + cloudformation_type_name = "AWS::AppStream::AppBlock" + suppress_plural_data_source_generation = true +} + +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_entitlement" { + cloudformation_type_name = "AWS::AppStream::Entitlement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_domain_name" { + cloudformation_type_name = "AWS::AppSync::DomainName" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_domain_name_api_association" { + cloudformation_type_name = "AWS::AppSync::DomainNameApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_applicationinsights_application" { + cloudformation_type_name = "AWS::ApplicationInsights::Application" +} + +resource_schema "aws_athena_data_catalog" { + cloudformation_type_name = "AWS::Athena::DataCatalog" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_athena_named_query" { + cloudformation_type_name = "AWS::Athena::NamedQuery" +} + +resource_schema "aws_athena_prepared_statement" { + cloudformation_type_name = "AWS::Athena::PreparedStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_athena_work_group" { + cloudformation_type_name = "AWS::Athena::WorkGroup" +} + +resource_schema "aws_auditmanager_assessment" { + cloudformation_type_name = "AWS::AuditManager::Assessment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_autoscaling_launch_configuration" { + cloudformation_type_name = "AWS::AutoScaling::LaunchConfiguration" +} + +resource_schema "aws_autoscaling_lifecycle_hook" { + cloudformation_type_name = "AWS::AutoScaling::LifecycleHook" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_autoscaling_warm_pool" { + cloudformation_type_name = "AWS::AutoScaling::WarmPool" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_backup_backup_plan" { + cloudformation_type_name = "AWS::Backup::BackupPlan" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_backup_backup_selection" { + cloudformation_type_name = "AWS::Backup::BackupSelection" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_backup_backup_vault" { + cloudformation_type_name = "AWS::Backup::BackupVault" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_backup_framework" { + cloudformation_type_name = "AWS::Backup::Framework" +} + +resource_schema "aws_backup_report_plan" { + cloudformation_type_name = "AWS::Backup::ReportPlan" +} + +resource_schema "aws_batch_scheduling_policy" { + cloudformation_type_name = "AWS::Batch::SchedulingPolicy" +} + +resource_schema "aws_budgets_budgets_action" { + cloudformation_type_name = "AWS::Budgets::BudgetsAction" +} + +resource_schema "aws_ce_anomaly_monitor" { + cloudformation_type_name = "AWS::CE::AnomalyMonitor" +} + +resource_schema "aws_ce_anomaly_subscription" { + cloudformation_type_name = "AWS::CE::AnomalySubscription" +} + +resource_schema "aws_ce_cost_category" { + cloudformation_type_name = "AWS::CE::CostCategory" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cur_report_definition" { + cloudformation_type_name = "AWS::CUR::ReportDefinition" +} + +resource_schema "aws_cassandra_keyspace" { + cloudformation_type_name = "AWS::Cassandra::Keyspace" +} + +resource_schema "aws_cassandra_table" { + cloudformation_type_name = "AWS::Cassandra::Table" +} + +resource_schema "aws_certificatemanager_account" { + cloudformation_type_name = "AWS::CertificateManager::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_chatbot_slack_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::SlackChannelConfiguration" +} + +resource_schema "aws_cloudformation_module_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleDefaultVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_module_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleVersion" +} + +resource_schema "aws_cloudformation_public_type_version" { + cloudformation_type_name = "AWS::CloudFormation::PublicTypeVersion" +} + +resource_schema "aws_cloudformation_publisher" { + cloudformation_type_name = "AWS::CloudFormation::Publisher" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_resource_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceDefaultVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_resource_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_stack_set" { + cloudformation_type_name = "AWS::CloudFormation::StackSet" +} + +resource_schema "aws_cloudformation_type_activation" { + cloudformation_type_name = "AWS::CloudFormation::TypeActivation" +} + +resource_schema "aws_cloudfront_cache_policy" { + cloudformation_type_name = "AWS::CloudFront::CachePolicy" +} + +resource_schema "aws_cloudfront_cloudfront_origin_access_identity" { + cloudformation_type_name = "AWS::CloudFront::CloudFrontOriginAccessIdentity" +} + +resource_schema "aws_cloudfront_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_origin_request_policy" { + cloudformation_type_name = "AWS::CloudFront::OriginRequestPolicy" +} + +resource_schema "aws_cloudfront_public_key" { + cloudformation_type_name = "AWS::CloudFront::PublicKey" +} + +resource_schema "aws_cloudfront_realtime_log_config" { + cloudformation_type_name = "AWS::CloudFront::RealtimeLogConfig" +} + +resource_schema "aws_cloudfront_response_headers_policy" { + cloudformation_type_name = "AWS::CloudFront::ResponseHeadersPolicy" +} + +resource_schema "aws_cloudtrail_trail" { + cloudformation_type_name = "AWS::CloudTrail::Trail" +} + +resource_schema "aws_cloudwatch_composite_alarm" { + cloudformation_type_name = "AWS::CloudWatch::CompositeAlarm" +} + +resource_schema "aws_cloudwatch_metric_stream" { + cloudformation_type_name = "AWS::CloudWatch::MetricStream" +} + +resource_schema "aws_codeartifact_domain" { + cloudformation_type_name = "AWS::CodeArtifact::Domain" +} + +resource_schema "aws_codeartifact_repository" { + cloudformation_type_name = "AWS::CodeArtifact::Repository" +} + +resource_schema "aws_codeguruprofiler_profiling_group" { + cloudformation_type_name = "AWS::CodeGuruProfiler::ProfilingGroup" +} + +resource_schema "aws_codegurureviewer_repository_association" { + cloudformation_type_name = "AWS::CodeGuruReviewer::RepositoryAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_codestarconnections_connection" { + cloudformation_type_name = "AWS::CodeStarConnections::Connection" +} + +resource_schema "aws_codestarnotifications_notification_rule" { + cloudformation_type_name = "AWS::CodeStarNotifications::NotificationRule" +} + +resource_schema "aws_config_aggregation_authorization" { + cloudformation_type_name = "AWS::Config::AggregationAuthorization" +} + +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_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_hours_of_operation" { + cloudformation_type_name = "AWS::Connect::HoursOfOperation" + 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_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_customerprofiles_domain" { + cloudformation_type_name = "AWS::CustomerProfiles::Domain" +} + +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_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_datasync_agent" { + cloudformation_type_name = "AWS::DataSync::Agent" +} + +resource_schema "aws_datasync_location_efs" { + cloudformation_type_name = "AWS::DataSync::LocationEFS" +} + +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_task" { + cloudformation_type_name = "AWS::DataSync::Task" +} + +resource_schema "aws_detective_graph" { + cloudformation_type_name = "AWS::Detective::Graph" +} + +resource_schema "aws_detective_member_invitation" { + cloudformation_type_name = "AWS::Detective::MemberInvitation" +} + +resource_schema "aws_devopsguru_notification_channel" { + cloudformation_type_name = "AWS::DevOpsGuru::NotificationChannel" +} + +resource_schema "aws_devopsguru_resource_collection" { + cloudformation_type_name = "AWS::DevOpsGuru::ResourceCollection" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_dynamodb_global_table" { + cloudformation_type_name = "AWS::DynamoDB::GlobalTable" +} + +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_dhcp_options" { + cloudformation_type_name = "AWS::EC2::DHCPOptions" +} + +resource_schema "aws_ec2_ec2_fleet" { + cloudformation_type_name = "AWS::EC2::EC2Fleet" +} + +resource_schema "aws_ec2_egress_only_internet_gateway" { + cloudformation_type_name = "AWS::EC2::EgressOnlyInternetGateway" +} + +resource_schema "aws_ec2_enclave_certificate_iam_role_association" { + cloudformation_type_name = "AWS::EC2::EnclaveCertificateIamRoleAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_flow_log" { + cloudformation_type_name = "AWS::EC2::FlowLog" +} + +resource_schema "aws_ec2_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::GatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_host" { + cloudformation_type_name = "AWS::EC2::Host" +} + +resource_schema "aws_ec2_ipam" { + cloudformation_type_name = "AWS::EC2::IPAM" +} + +resource_schema "aws_ec2_ipam_allocation" { + cloudformation_type_name = "AWS::EC2::IPAMAllocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_pool" { + cloudformation_type_name = "AWS::EC2::IPAMPool" +} + +resource_schema "aws_ec2_ipam_scope" { + cloudformation_type_name = "AWS::EC2::IPAMScope" +} + +resource_schema "aws_ec2_internet_gateway" { + cloudformation_type_name = "AWS::EC2::InternetGateway" +} + +resource_schema "aws_ec2_local_gateway_route" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRoute" +} + +resource_schema "aws_ec2_local_gateway_route_table_vpc_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVPCAssociation" +} + +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_prefix_list" { + cloudformation_type_name = "AWS::EC2::PrefixList" +} + +resource_schema "aws_ec2_route_table" { + cloudformation_type_name = "AWS::EC2::RouteTable" +} + +resource_schema "aws_ec2_spot_fleet" { + cloudformation_type_name = "AWS::EC2::SpotFleet" +} + +resource_schema "aws_ec2_subnet" { + cloudformation_type_name = "AWS::EC2::Subnet" + suppress_plural_data_source_generation = true +} + +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_connect" { + cloudformation_type_name = "AWS::EC2::TransitGatewayConnect" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomain" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomainAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_member" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupMember" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_source" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_peering_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayPeeringAttachment" +} + +resource_schema "aws_ec2_transit_gateway_vpc_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayVpcAttachment" +} + +resource_schema "aws_ec2_vpc" { + cloudformation_type_name = "AWS::EC2::VPC" +} + +resource_schema "aws_ec2_vpcdhcp_options_association" { + cloudformation_type_name = "AWS::EC2::VPCDHCPOptionsAssociation" +} + +resource_schema "aws_ecr_public_repository" { + cloudformation_type_name = "AWS::ECR::PublicRepository" +} + +resource_schema "aws_ecr_registry_policy" { + cloudformation_type_name = "AWS::ECR::RegistryPolicy" +} + +resource_schema "aws_ecr_replication_configuration" { + cloudformation_type_name = "AWS::ECR::ReplicationConfiguration" +} + +resource_schema "aws_ecr_repository" { + cloudformation_type_name = "AWS::ECR::Repository" +} + +resource_schema "aws_ecs_capacity_provider" { + cloudformation_type_name = "AWS::ECS::CapacityProvider" +} + +resource_schema "aws_ecs_cluster" { + cloudformation_type_name = "AWS::ECS::Cluster" +} + +resource_schema "aws_ecs_cluster_capacity_provider_associations" { + cloudformation_type_name = "AWS::ECS::ClusterCapacityProviderAssociations" +} + +resource_schema "aws_ecs_primary_task_set" { + cloudformation_type_name = "AWS::ECS::PrimaryTaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ecs_service" { + cloudformation_type_name = "AWS::ECS::Service" +} + +resource_schema "aws_ecs_task_definition" { + cloudformation_type_name = "AWS::ECS::TaskDefinition" +} + +resource_schema "aws_ecs_task_set" { + cloudformation_type_name = "AWS::ECS::TaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_efs_access_point" { + cloudformation_type_name = "AWS::EFS::AccessPoint" +} + +resource_schema "aws_efs_file_system" { + cloudformation_type_name = "AWS::EFS::FileSystem" +} + +resource_schema "aws_efs_mount_target" { + cloudformation_type_name = "AWS::EFS::MountTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_addon" { + cloudformation_type_name = "AWS::EKS::Addon" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_cluster" { + cloudformation_type_name = "AWS::EKS::Cluster" +} + +resource_schema "aws_eks_fargate_profile" { + cloudformation_type_name = "AWS::EKS::FargateProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_emr_studio" { + cloudformation_type_name = "AWS::EMR::Studio" +} + +resource_schema "aws_emr_studio_session_mapping" { + cloudformation_type_name = "AWS::EMR::StudioSessionMapping" +} + +resource_schema "aws_emrcontainers_virtual_cluster" { + cloudformation_type_name = "AWS::EMRContainers::VirtualCluster" +} + +resource_schema "aws_elasticache_global_replication_group" { + cloudformation_type_name = "AWS::ElastiCache::GlobalReplicationGroup" +} + +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_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_eventschemas_registry_policy" { + cloudformation_type_name = "AWS::EventSchemas::RegistryPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_events_api_destination" { + cloudformation_type_name = "AWS::Events::ApiDestination" +} + +resource_schema "aws_events_archive" { + cloudformation_type_name = "AWS::Events::Archive" +} + +resource_schema "aws_events_connection" { + cloudformation_type_name = "AWS::Events::Connection" +} + +resource_schema "aws_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_fis_experiment_template" { + cloudformation_type_name = "AWS::FIS::ExperimentTemplate" +} + +resource_schema "aws_fms_notification_channel" { + cloudformation_type_name = "AWS::FMS::NotificationChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fms_policy" { + cloudformation_type_name = "AWS::FMS::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_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_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_fleet" { + cloudformation_type_name = "AWS::GameLift::Fleet" +} + +resource_schema "aws_gamelift_game_server_group" { + cloudformation_type_name = "AWS::GameLift::GameServerGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_globalaccelerator_accelerator" { + cloudformation_type_name = "AWS::GlobalAccelerator::Accelerator" +} + +resource_schema "aws_globalaccelerator_endpoint_group" { + cloudformation_type_name = "AWS::GlobalAccelerator::EndpointGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_globalaccelerator_listener" { + cloudformation_type_name = "AWS::GlobalAccelerator::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_registry" { + cloudformation_type_name = "AWS::Glue::Registry" +} + +resource_schema "aws_glue_schema" { + cloudformation_type_name = "AWS::Glue::Schema" +} + +resource_schema "aws_glue_schema_version" { + cloudformation_type_name = "AWS::Glue::SchemaVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_schema_version_metadata" { + cloudformation_type_name = "AWS::Glue::SchemaVersionMetadata" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_greengrassv2_component_version" { + cloudformation_type_name = "AWS::GreengrassV2::ComponentVersion" +} + +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_healthlake_fhir_datastore" { + cloudformation_type_name = "AWS::HealthLake::FHIRDatastore" +} + +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_saml_provider" { + cloudformation_type_name = "AWS::IAM::SAMLProvider" +} + +resource_schema "aws_iam_server_certificate" { + cloudformation_type_name = "AWS::IAM::ServerCertificate" +} + +resource_schema "aws_iam_virtual_mfa_device" { + cloudformation_type_name = "AWS::IAM::VirtualMFADevice" +} + +resource_schema "aws_ivs_channel" { + cloudformation_type_name = "AWS::IVS::Channel" +} + +resource_schema "aws_ivs_playback_key_pair" { + cloudformation_type_name = "AWS::IVS::PlaybackKeyPair" +} + +resource_schema "aws_ivs_recording_configuration" { + cloudformation_type_name = "AWS::IVS::RecordingConfiguration" +} + +resource_schema "aws_ivs_stream_key" { + cloudformation_type_name = "AWS::IVS::StreamKey" +} + +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" +} + +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_inspectorv2_filter" { + cloudformation_type_name = "AWS::InspectorV2::Filter" +} + +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_certificate" { + cloudformation_type_name = "AWS::IoT::Certificate" +} + +resource_schema "aws_iot_custom_metric" { + cloudformation_type_name = "AWS::IoT::CustomMetric" +} + +resource_schema "aws_iot_dimension" { + cloudformation_type_name = "AWS::IoT::Dimension" +} + +resource_schema "aws_iot_domain_configuration" { + cloudformation_type_name = "AWS::IoT::DomainConfiguration" +} + +resource_schema "aws_iot_fleet_metric" { + cloudformation_type_name = "AWS::IoT::FleetMetric" +} + +resource_schema "aws_iot_job_template" { + cloudformation_type_name = "AWS::IoT::JobTemplate" +} + +resource_schema "aws_iot_logging" { + cloudformation_type_name = "AWS::IoT::Logging" +} + +resource_schema "aws_iot_mitigation_action" { + cloudformation_type_name = "AWS::IoT::MitigationAction" +} + +resource_schema "aws_iot_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_scheduled_audit" { + cloudformation_type_name = "AWS::IoT::ScheduledAudit" +} + +resource_schema "aws_iot_security_profile" { + cloudformation_type_name = "AWS::IoT::SecurityProfile" +} + +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_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" + suppress_plural_data_source_generation = true +} + +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_iotsitewise_access_policy" { + cloudformation_type_name = "AWS::IoTSiteWise::AccessPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iotsitewise_asset" { + cloudformation_type_name = "AWS::IoTSiteWise::Asset" +} + +resource_schema "aws_iotsitewise_asset_model" { + cloudformation_type_name = "AWS::IoTSiteWise::AssetModel" +} + +resource_schema "aws_iotsitewise_dashboard" { + cloudformation_type_name = "AWS::IoTSiteWise::Dashboard" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iotsitewise_gateway" { + cloudformation_type_name = "AWS::IoTSiteWise::Gateway" +} + +resource_schema "aws_iotsitewise_portal" { + cloudformation_type_name = "AWS::IoTSiteWise::Portal" +} + +resource_schema "aws_iotsitewise_project" { + cloudformation_type_name = "AWS::IoTSiteWise::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_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_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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iotwireless_wireless_device" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDevice" +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kms_replica_key" { + cloudformation_type_name = "AWS::KMS::ReplicaKey" +} + +resource_schema "aws_kendra_data_source" { + cloudformation_type_name = "AWS::Kendra::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kendra_faq" { + cloudformation_type_name = "AWS::Kendra::Faq" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kendra_index" { + cloudformation_type_name = "AWS::Kendra::Index" +} + +resource_schema "aws_kinesis_stream" { + cloudformation_type_name = "AWS::Kinesis::Stream" +} + +resource_schema "aws_kinesisfirehose_delivery_stream" { + cloudformation_type_name = "AWS::KinesisFirehose::DeliveryStream" +} + +resource_schema "aws_kinesisvideo_signaling_channel" { + cloudformation_type_name = "AWS::KinesisVideo::SignalingChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kinesisvideo_stream" { + cloudformation_type_name = "AWS::KinesisVideo::Stream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_code_signing_config" { + cloudformation_type_name = "AWS::Lambda::CodeSigningConfig" +} + +resource_schema "aws_lambda_event_source_mapping" { + cloudformation_type_name = "AWS::Lambda::EventSourceMapping" +} + +resource_schema "aws_lambda_function" { + cloudformation_type_name = "AWS::Lambda::Function" +} + +resource_schema "aws_lex_bot" { + cloudformation_type_name = "AWS::Lex::Bot" +} + +resource_schema "aws_lex_bot_alias" { + cloudformation_type_name = "AWS::Lex::BotAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lex_bot_version" { + cloudformation_type_name = "AWS::Lex::BotVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lex_resource_policy" { + cloudformation_type_name = "AWS::Lex::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_licensemanager_grant" { + cloudformation_type_name = "AWS::LicenseManager::Grant" +} + +resource_schema "aws_licensemanager_license" { + cloudformation_type_name = "AWS::LicenseManager::License" +} + +resource_schema "aws_lightsail_alarm" { + cloudformation_type_name = "AWS::Lightsail::Alarm" +} + +resource_schema "aws_lightsail_bucket" { + cloudformation_type_name = "AWS::Lightsail::Bucket" +} + +resource_schema "aws_lightsail_database" { + cloudformation_type_name = "AWS::Lightsail::Database" +} + +resource_schema "aws_lightsail_disk" { + cloudformation_type_name = "AWS::Lightsail::Disk" +} + +resource_schema "aws_lightsail_instance" { + cloudformation_type_name = "AWS::Lightsail::Instance" +} + +resource_schema "aws_lightsail_load_balancer" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancer" +} + +resource_schema "aws_lightsail_load_balancer_tls_certificate" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancerTlsCertificate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lightsail_static_ip" { + cloudformation_type_name = "AWS::Lightsail::StaticIp" +} + +resource_schema "aws_location_geofence_collection" { + cloudformation_type_name = "AWS::Location::GeofenceCollection" +} + +resource_schema "aws_location_map" { + cloudformation_type_name = "AWS::Location::Map" +} + +resource_schema "aws_location_place_index" { + cloudformation_type_name = "AWS::Location::PlaceIndex" +} + +resource_schema "aws_location_route_calculator" { + cloudformation_type_name = "AWS::Location::RouteCalculator" +} + +resource_schema "aws_location_tracker" { + cloudformation_type_name = "AWS::Location::Tracker" +} + +resource_schema "aws_location_tracker_consumer" { + cloudformation_type_name = "AWS::Location::TrackerConsumer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_log_group" { + cloudformation_type_name = "AWS::Logs::LogGroup" +} + +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_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_mwaa_environment" { + cloudformation_type_name = "AWS::MWAA::Environment" +} + +resource_schema "aws_macie_custom_data_identifier" { + cloudformation_type_name = "AWS::Macie::CustomDataIdentifier" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_macie_findings_filter" { + cloudformation_type_name = "AWS::Macie::FindingsFilter" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_macie_session" { + cloudformation_type_name = "AWS::Macie::Session" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow" { + cloudformation_type_name = "AWS::MediaConnect::Flow" +} + +resource_schema "aws_mediaconnect_flow_entitlement" { + cloudformation_type_name = "AWS::MediaConnect::FlowEntitlement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow_output" { + cloudformation_type_name = "AWS::MediaConnect::FlowOutput" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow_source" { + cloudformation_type_name = "AWS::MediaConnect::FlowSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow_vpc_interface" { + cloudformation_type_name = "AWS::MediaConnect::FlowVpcInterface" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackage_asset" { + cloudformation_type_name = "AWS::MediaPackage::Asset" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackage_channel" { + cloudformation_type_name = "AWS::MediaPackage::Channel" +} + +resource_schema "aws_mediapackage_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackage::OriginEndpoint" +} + +resource_schema "aws_mediapackage_packaging_configuration" { + cloudformation_type_name = "AWS::MediaPackage::PackagingConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackage_packaging_group" { + cloudformation_type_name = "AWS::MediaPackage::PackagingGroup" +} + +resource_schema "aws_memorydb_acl" { + cloudformation_type_name = "AWS::MemoryDB::ACL" +} + +resource_schema "aws_memorydb_cluster" { + cloudformation_type_name = "AWS::MemoryDB::Cluster" +} + +resource_schema "aws_memorydb_parameter_group" { + cloudformation_type_name = "AWS::MemoryDB::ParameterGroup" +} + +resource_schema "aws_memorydb_subnet_group" { + cloudformation_type_name = "AWS::MemoryDB::SubnetGroup" +} + +resource_schema "aws_memorydb_user" { + cloudformation_type_name = "AWS::MemoryDB::User" +} + +resource_schema "aws_networkfirewall_firewall" { + cloudformation_type_name = "AWS::NetworkFirewall::Firewall" +} + +resource_schema "aws_networkfirewall_firewall_policy" { + cloudformation_type_name = "AWS::NetworkFirewall::FirewallPolicy" +} + +resource_schema "aws_networkfirewall_logging_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::LoggingConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkfirewall_rule_group" { + cloudformation_type_name = "AWS::NetworkFirewall::RuleGroup" +} + +resource_schema "aws_networkmanager_customer_gateway_association" { + cloudformation_type_name = "AWS::NetworkManager::CustomerGatewayAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_device" { + cloudformation_type_name = "AWS::NetworkManager::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_global_network" { + cloudformation_type_name = "AWS::NetworkManager::GlobalNetwork" +} + +resource_schema "aws_networkmanager_link" { + cloudformation_type_name = "AWS::NetworkManager::Link" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_link_association" { + cloudformation_type_name = "AWS::NetworkManager::LinkAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site" { + cloudformation_type_name = "AWS::NetworkManager::Site" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_transit_gateway_registration" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRegistration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_launch_profile" { + cloudformation_type_name = "AWS::NimbleStudio::LaunchProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_streaming_image" { + cloudformation_type_name = "AWS::NimbleStudio::StreamingImage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_studio" { + cloudformation_type_name = "AWS::NimbleStudio::Studio" +} + +resource_schema "aws_nimblestudio_studio_component" { + cloudformation_type_name = "AWS::NimbleStudio::StudioComponent" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_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_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_pinpoint_in_app_template" { + cloudformation_type_name = "AWS::Pinpoint::InAppTemplate" +} + +resource_schema "aws_qldb_stream" { + cloudformation_type_name = "AWS::QLDB::Stream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_analysis" { + cloudformation_type_name = "AWS::QuickSight::Analysis" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_dashboard" { + cloudformation_type_name = "AWS::QuickSight::Dashboard" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_data_set" { + cloudformation_type_name = "AWS::QuickSight::DataSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_data_source" { + cloudformation_type_name = "AWS::QuickSight::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_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_rds_db_proxy" { + cloudformation_type_name = "AWS::RDS::DBProxy" +} + +resource_schema "aws_rds_db_proxy_endpoint" { + cloudformation_type_name = "AWS::RDS::DBProxyEndpoint" +} + +resource_schema "aws_rds_db_proxy_target_group" { + cloudformation_type_name = "AWS::RDS::DBProxyTargetGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rds_global_cluster" { + cloudformation_type_name = "AWS::RDS::GlobalCluster" +} + +resource_schema "aws_rum_app_monitor" { + cloudformation_type_name = "AWS::RUM::AppMonitor" +} + +resource_schema "aws_redshift_cluster" { + cloudformation_type_name = "AWS::Redshift::Cluster" +} + +resource_schema "aws_redshift_endpoint_access" { + cloudformation_type_name = "AWS::Redshift::EndpointAccess" +} + +resource_schema "aws_redshift_endpoint_authorization" { + cloudformation_type_name = "AWS::Redshift::EndpointAuthorization" +} + +resource_schema "aws_redshift_event_subscription" { + cloudformation_type_name = "AWS::Redshift::EventSubscription" +} + +resource_schema "aws_redshift_scheduled_action" { + cloudformation_type_name = "AWS::Redshift::ScheduledAction" +} + +resource_schema "aws_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_project" { + cloudformation_type_name = "AWS::Rekognition::Project" +} + +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_resourcegroups_group" { + cloudformation_type_name = "AWS::ResourceGroups::Group" +} + +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_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_route53_dnssec" { + cloudformation_type_name = "AWS::Route53::DNSSEC" + suppress_plural_data_source_generation = true +} + +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" + 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" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53resolver_firewall_rule_group" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53resolver_firewall_rule_group_association" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroupAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53resolver_resolver_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverConfig" +} + +resource_schema "aws_route53resolver_resolver_dnssec_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverDNSSECConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation" +} + +resource_schema "aws_route53resolver_resolver_rule" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRule" +} + +resource_schema "aws_route53resolver_resolver_rule_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRuleAssociation" +} + +resource_schema "aws_s3_access_point" { + cloudformation_type_name = "AWS::S3::AccessPoint" +} + +resource_schema "aws_s3_bucket" { + cloudformation_type_name = "AWS::S3::Bucket" +} + +resource_schema "aws_s3_multi_region_access_point" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPoint" +} + +resource_schema "aws_s3_multi_region_access_point_policy" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3_storage_lens" { + cloudformation_type_name = "AWS::S3::StorageLens" +} + +resource_schema "aws_s3objectlambda_access_point" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPoint" +} + +resource_schema "aws_s3objectlambda_access_point_policy" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_access_point" { + cloudformation_type_name = "AWS::S3Outposts::AccessPoint" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_bucket" { + cloudformation_type_name = "AWS::S3Outposts::Bucket" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_bucket_policy" { + cloudformation_type_name = "AWS::S3Outposts::BucketPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_endpoint" { + cloudformation_type_name = "AWS::S3Outposts::Endpoint" +} + +resource_schema "aws_ses_configuration_set" { + cloudformation_type_name = "AWS::SES::ConfigurationSet" +} + +resource_schema "aws_ses_contact_list" { + cloudformation_type_name = "AWS::SES::ContactList" +} + +resource_schema "aws_ssm_association" { + cloudformation_type_name = "AWS::SSM::Association" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssm_document" { + cloudformation_type_name = "AWS::SSM::Document" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssm_resource_data_sync" { + cloudformation_type_name = "AWS::SSM::ResourceDataSync" +} + +resource_schema "aws_ssmcontacts_contact" { + cloudformation_type_name = "AWS::SSMContacts::Contact" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssmcontacts_contact_channel" { + cloudformation_type_name = "AWS::SSMContacts::ContactChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssmincidents_replication_set" { + cloudformation_type_name = "AWS::SSMIncidents::ReplicationSet" +} + +resource_schema "aws_ssmincidents_response_plan" { + cloudformation_type_name = "AWS::SSMIncidents::ResponsePlan" +} + +resource_schema "aws_sso_assignment" { + cloudformation_type_name = "AWS::SSO::Assignment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sso_instance_access_control_attribute_configuration" { + cloudformation_type_name = "AWS::SSO::InstanceAccessControlAttributeConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sso_permission_set" { + cloudformation_type_name = "AWS::SSO::PermissionSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_app" { + cloudformation_type_name = "AWS::SageMaker::App" +} + +resource_schema "aws_sagemaker_app_image_config" { + cloudformation_type_name = "AWS::SageMaker::AppImageConfig" +} + +resource_schema "aws_sagemaker_data_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::DataQualityJobDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_device" { + cloudformation_type_name = "AWS::SageMaker::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_device_fleet" { + cloudformation_type_name = "AWS::SageMaker::DeviceFleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_domain" { + cloudformation_type_name = "AWS::SageMaker::Domain" +} + +resource_schema "aws_sagemaker_feature_group" { + cloudformation_type_name = "AWS::SageMaker::FeatureGroup" +} + +resource_schema "aws_sagemaker_image" { + cloudformation_type_name = "AWS::SageMaker::Image" +} + +resource_schema "aws_sagemaker_image_version" { + cloudformation_type_name = "AWS::SageMaker::ImageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_model_bias_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelBiasJobDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_model_explainability_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelExplainabilityJobDefinition" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_monitoring_schedule" { + cloudformation_type_name = "AWS::SageMaker::MonitoringSchedule" +} + +resource_schema "aws_sagemaker_pipeline" { + cloudformation_type_name = "AWS::SageMaker::Pipeline" +} + +resource_schema "aws_sagemaker_project" { + cloudformation_type_name = "AWS::SageMaker::Project" +} + +resource_schema "aws_sagemaker_user_profile" { + cloudformation_type_name = "AWS::SageMaker::UserProfile" +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_attribute_group" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroup" + suppress_plural_data_source_generation = true +} + +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_signer_profile_permission" { + cloudformation_type_name = "AWS::Signer::ProfilePermission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_signer_signing_profile" { + cloudformation_type_name = "AWS::Signer::SigningProfile" +} + +resource_schema "aws_stepfunctions_activity" { + cloudformation_type_name = "AWS::StepFunctions::Activity" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_stepfunctions_state_machine" { + cloudformation_type_name = "AWS::StepFunctions::StateMachine" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_synthetics_canary" { + cloudformation_type_name = "AWS::Synthetics::Canary" +} + +resource_schema "aws_timestream_database" { + cloudformation_type_name = "AWS::Timestream::Database" +} + +resource_schema "aws_timestream_scheduled_query" { + cloudformation_type_name = "AWS::Timestream::ScheduledQuery" +} + +resource_schema "aws_timestream_table" { + cloudformation_type_name = "AWS::Timestream::Table" +} + +resource_schema "aws_transfer_workflow" { + cloudformation_type_name = "AWS::Transfer::Workflow" +} + +resource_schema "aws_wafv2_ip_set" { + cloudformation_type_name = "AWS::WAFv2::IPSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_logging_configuration" { + cloudformation_type_name = "AWS::WAFv2::LoggingConfiguration" +} + +resource_schema "aws_wafv2_regex_pattern_set" { + cloudformation_type_name = "AWS::WAFv2::RegexPatternSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_rule_group" { + cloudformation_type_name = "AWS::WAFv2::RuleGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl" { + cloudformation_type_name = "AWS::WAFv2::WebACL" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl_association" { + cloudformation_type_name = "AWS::WAFv2::WebACLAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_assistant" { + cloudformation_type_name = "AWS::Wisdom::Assistant" +} + +resource_schema "aws_wisdom_assistant_association" { + cloudformation_type_name = "AWS::Wisdom::AssistantAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_knowledge_base" { + cloudformation_type_name = "AWS::Wisdom::KnowledgeBase" +} + +resource_schema "aws_workspaces_connection_alias" { + cloudformation_type_name = "AWS::WorkSpaces::ConnectionAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_xray_group" { + cloudformation_type_name = "AWS::XRay::Group" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_xray_sampling_rule" { + cloudformation_type_name = "AWS::XRay::SamplingRule" + suppress_plural_data_source_generation = true +} diff --git a/internal/provider/plural_data_sources.go b/internal/provider/plural_data_sources.go index b8b56366e1..e12a3ed79f 100644 --- a/internal/provider/plural_data_sources.go +++ b/internal/provider/plural_data_sources.go @@ -76,6 +76,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_ec2_fleets -cftype AWS::EC2::EC2Fleet -package ec2 ../aws/ec2/ec2_fleet_plural_data_source_gen.go ../aws/ec2/ec2_fleet_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_egress_only_internet_gateways -cftype AWS::EC2::EgressOnlyInternetGateway -package ec2 ../aws/ec2/egress_only_internet_gateway_plural_data_source_gen.go ../aws/ec2/egress_only_internet_gateway_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_flow_logs -cftype AWS::EC2::FlowLog -package ec2 ../aws/ec2/flow_log_plural_data_source_gen.go ../aws/ec2/flow_log_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_hosts -cftype AWS::EC2::Host -package ec2 ../aws/ec2/host_plural_data_source_gen.go ../aws/ec2/host_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_internet_gateways -cftype AWS::EC2::InternetGateway -package ec2 ../aws/ec2/internet_gateway_plural_data_source_gen.go ../aws/ec2/internet_gateway_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_ipams -cftype AWS::EC2::IPAM -package ec2 ../aws/ec2/ipam_plural_data_source_gen.go ../aws/ec2/ipam_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_ipam_pools -cftype AWS::EC2::IPAMPool -package ec2 ../aws/ec2/ipam_pool_plural_data_source_gen.go ../aws/ec2/ipam_pool_plural_data_source_gen_test.go @@ -83,6 +84,8 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_local_gateway_routes -cftype AWS::EC2::LocalGatewayRoute -package ec2 ../aws/ec2/local_gateway_route_plural_data_source_gen.go ../aws/ec2/local_gateway_route_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_local_gateway_route_table_vpc_associations -cftype AWS::EC2::LocalGatewayRouteTableVPCAssociation -package ec2 ../aws/ec2/local_gateway_route_table_vpc_association_plural_data_source_gen.go ../aws/ec2/local_gateway_route_table_vpc_association_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_network_acls -cftype AWS::EC2::NetworkAcl -package ec2 ../aws/ec2/network_acl_plural_data_source_gen.go ../aws/ec2/network_acl_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_network_insights_access_scopes -cftype AWS::EC2::NetworkInsightsAccessScope -package ec2 ../aws/ec2/network_insights_access_scope_plural_data_source_gen.go ../aws/ec2/network_insights_access_scope_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_network_insights_access_scope_analyses -cftype AWS::EC2::NetworkInsightsAccessScopeAnalysis -package ec2 ../aws/ec2/network_insights_access_scope_analysis_plural_data_source_gen.go ../aws/ec2/network_insights_access_scope_analysis_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_network_insights_analyses -cftype AWS::EC2::NetworkInsightsAnalysis -package ec2 ../aws/ec2/network_insights_analysis_plural_data_source_gen.go ../aws/ec2/network_insights_analysis_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_network_insights_paths -cftype AWS::EC2::NetworkInsightsPath -package ec2 ../aws/ec2/network_insights_path_plural_data_source_gen.go ../aws/ec2/network_insights_path_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_network_interfaces -cftype AWS::EC2::NetworkInterface -package ec2 ../aws/ec2/network_interface_plural_data_source_gen.go ../aws/ec2/network_interface_plural_data_source_gen_test.go @@ -120,6 +123,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_events_archives -cftype AWS::Events::Archive -package events ../aws/events/archive_plural_data_source_gen.go ../aws/events/archive_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_events_connections -cftype AWS::Events::Connection -package events ../aws/events/connection_plural_data_source_gen.go ../aws/events/connection_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_fis_experiment_templates -cftype AWS::FIS::ExperimentTemplate -package fis ../aws/fis/experiment_template_plural_data_source_gen.go ../aws/fis/experiment_template_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_forecast_dataset_groups -cftype AWS::Forecast::DatasetGroup -package forecast ../aws/forecast/dataset_group_plural_data_source_gen.go ../aws/forecast/dataset_group_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_finspace_environments -cftype AWS::FinSpace::Environment -package finspace ../aws/finspace/environment_plural_data_source_gen.go ../aws/finspace/environment_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_frauddetector_detectors -cftype AWS::FraudDetector::Detector -package frauddetector ../aws/frauddetector/detector_plural_data_source_gen.go ../aws/frauddetector/detector_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_frauddetector_entity_types -cftype AWS::FraudDetector::EntityType -package frauddetector ../aws/frauddetector/entity_type_plural_data_source_gen.go ../aws/frauddetector/entity_type_plural_data_source_gen_test.go @@ -151,6 +155,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_imagebuilder_image_pipelines -cftype AWS::ImageBuilder::ImagePipeline -package imagebuilder ../aws/imagebuilder/image_pipeline_plural_data_source_gen.go ../aws/imagebuilder/image_pipeline_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_imagebuilder_image_recipes -cftype AWS::ImageBuilder::ImageRecipe -package imagebuilder ../aws/imagebuilder/image_recipe_plural_data_source_gen.go ../aws/imagebuilder/image_recipe_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_imagebuilder_infrastructure_configurations -cftype AWS::ImageBuilder::InfrastructureConfiguration -package imagebuilder ../aws/imagebuilder/infrastructure_configuration_plural_data_source_gen.go ../aws/imagebuilder/infrastructure_configuration_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_inspectorv2_filters -cftype AWS::InspectorV2::Filter -package inspectorv2 ../aws/inspectorv2/filter_plural_data_source_gen.go ../aws/inspectorv2/filter_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iot_account_audit_configurations -cftype AWS::IoT::AccountAuditConfiguration -package iot ../aws/iot/account_audit_configuration_plural_data_source_gen.go ../aws/iot/account_audit_configuration_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iot_authorizers -cftype AWS::IoT::Authorizer -package iot ../aws/iot/authorizer_plural_data_source_gen.go ../aws/iot/authorizer_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iot_certificates -cftype AWS::IoT::Certificate -package iot ../aws/iot/certificate_plural_data_source_gen.go ../aws/iot/certificate_plural_data_source_gen_test.go @@ -194,9 +199,12 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_lex_bots -cftype AWS::Lex::Bot -package lex ../aws/lex/bot_plural_data_source_gen.go ../aws/lex/bot_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_licensemanager_grants -cftype AWS::LicenseManager::Grant -package licensemanager ../aws/licensemanager/grant_plural_data_source_gen.go ../aws/licensemanager/grant_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_licensemanager_licenses -cftype AWS::LicenseManager::License -package licensemanager ../aws/licensemanager/license_plural_data_source_gen.go ../aws/licensemanager/license_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_lightsail_alarms -cftype AWS::Lightsail::Alarm -package lightsail ../aws/lightsail/alarm_plural_data_source_gen.go ../aws/lightsail/alarm_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_lightsail_buckets -cftype AWS::Lightsail::Bucket -package lightsail ../aws/lightsail/bucket_plural_data_source_gen.go ../aws/lightsail/bucket_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_lightsail_databases -cftype AWS::Lightsail::Database -package lightsail ../aws/lightsail/database_plural_data_source_gen.go ../aws/lightsail/database_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_lightsail_disks -cftype AWS::Lightsail::Disk -package lightsail ../aws/lightsail/disk_plural_data_source_gen.go ../aws/lightsail/disk_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_lightsail_instances -cftype AWS::Lightsail::Instance -package lightsail ../aws/lightsail/instance_plural_data_source_gen.go ../aws/lightsail/instance_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_lightsail_load_balancers -cftype AWS::Lightsail::LoadBalancer -package lightsail ../aws/lightsail/load_balancer_plural_data_source_gen.go ../aws/lightsail/load_balancer_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_lightsail_static_ips -cftype AWS::Lightsail::StaticIp -package lightsail ../aws/lightsail/static_ip_plural_data_source_gen.go ../aws/lightsail/static_ip_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_location_geofence_collections -cftype AWS::Location::GeofenceCollection -package location ../aws/location/geofence_collection_plural_data_source_gen.go ../aws/location/geofence_collection_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_location_maps -cftype AWS::Location::Map -package location ../aws/location/map_plural_data_source_gen.go ../aws/location/map_plural_data_source_gen_test.go @@ -253,6 +261,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_route53recoveryreadiness_resource_sets -cftype AWS::Route53RecoveryReadiness::ResourceSet -package route53recoveryreadiness ../aws/route53recoveryreadiness/resource_set_plural_data_source_gen.go ../aws/route53recoveryreadiness/resource_set_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_route53resolver_resolver_configs -cftype AWS::Route53Resolver::ResolverConfig -package route53resolver ../aws/route53resolver/resolver_config_plural_data_source_gen.go ../aws/route53resolver/resolver_config_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_route53resolver_resolver_dnssec_configs -cftype AWS::Route53Resolver::ResolverDNSSECConfig -package route53resolver ../aws/route53resolver/resolver_dnssec_config_plural_data_source_gen.go ../aws/route53resolver/resolver_dnssec_config_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_route53resolver_resolver_rule_associations -cftype AWS::Route53Resolver::ResolverRuleAssociation -package route53resolver ../aws/route53resolver/resolver_rule_association_plural_data_source_gen.go ../aws/route53resolver/resolver_rule_association_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_route53resolver_resolver_query_logging_configs -cftype AWS::Route53Resolver::ResolverQueryLoggingConfig -package route53resolver ../aws/route53resolver/resolver_query_logging_config_plural_data_source_gen.go ../aws/route53resolver/resolver_query_logging_config_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_route53resolver_resolver_query_logging_config_associations -cftype AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation -package route53resolver ../aws/route53resolver/resolver_query_logging_config_association_plural_data_source_gen.go ../aws/route53resolver/resolver_query_logging_config_association_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_route53resolver_resolver_rules -cftype AWS::Route53Resolver::ResolverRule -package route53resolver ../aws/route53resolver/resolver_rule_plural_data_source_gen.go ../aws/route53resolver/resolver_rule_plural_data_source_gen_test.go @@ -332,6 +341,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/events" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/finspace" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/fis" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/forecast" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/frauddetector" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/gamelift" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/globalaccelerator" @@ -341,6 +351,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/healthlake" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/iam" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/imagebuilder" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/inspectorv2" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/iot" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/iotevents" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/iotfleethub" diff --git a/internal/provider/resources.go b/internal/provider/resources.go index 9374397387..862b2ce88c 100644 --- a/internal/provider/resources.go +++ b/internal/provider/resources.go @@ -29,7 +29,9 @@ //go:generate go run generators/resource/main.go -resource awscc_apprunner_service -cfschema ../service/cloudformation/schemas/AWS_AppRunner_Service.json -package apprunner -- ../aws/apprunner/service_resource_gen.go ../aws/apprunner/service_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appstream_app_block -cfschema ../service/cloudformation/schemas/AWS_AppStream_AppBlock.json -package appstream -- ../aws/appstream/app_block_resource_gen.go ../aws/appstream/app_block_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appstream_application -cfschema ../service/cloudformation/schemas/AWS_AppStream_Application.json -package appstream -- ../aws/appstream/application_resource_gen.go ../aws/appstream/application_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_appstream_application_entitlement_association -cfschema ../service/cloudformation/schemas/AWS_AppStream_ApplicationEntitlementAssociation.json -package appstream -- ../aws/appstream/application_entitlement_association_resource_gen.go ../aws/appstream/application_entitlement_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appstream_application_fleet_association -cfschema ../service/cloudformation/schemas/AWS_AppStream_ApplicationFleetAssociation.json -package appstream -- ../aws/appstream/application_fleet_association_resource_gen.go ../aws/appstream/application_fleet_association_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_appstream_entitlement -cfschema ../service/cloudformation/schemas/AWS_AppStream_Entitlement.json -package appstream -- ../aws/appstream/entitlement_resource_gen.go ../aws/appstream/entitlement_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appsync_domain_name -cfschema ../service/cloudformation/schemas/AWS_AppSync_DomainName.json -package appsync -- ../aws/appsync/domain_name_resource_gen.go ../aws/appsync/domain_name_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appsync_domain_name_api_association -cfschema ../service/cloudformation/schemas/AWS_AppSync_DomainNameApiAssociation.json -package appsync -- ../aws/appsync/domain_name_api_association_resource_gen.go ../aws/appsync/domain_name_api_association_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 @@ -123,6 +125,7 @@ //go:generate go run generators/resource/main.go -resource awscc_ec2_enclave_certificate_iam_role_association -cfschema ../service/cloudformation/schemas/AWS_EC2_EnclaveCertificateIamRoleAssociation.json -package ec2 -- ../aws/ec2/enclave_certificate_iam_role_association_resource_gen.go ../aws/ec2/enclave_certificate_iam_role_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_flow_log -cfschema ../service/cloudformation/schemas/AWS_EC2_FlowLog.json -package ec2 -- ../aws/ec2/flow_log_resource_gen.go ../aws/ec2/flow_log_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_gateway_route_table_association -cfschema ../service/cloudformation/schemas/AWS_EC2_GatewayRouteTableAssociation.json -package ec2 -- ../aws/ec2/gateway_route_table_association_resource_gen.go ../aws/ec2/gateway_route_table_association_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_ec2_host -cfschema ../service/cloudformation/schemas/AWS_EC2_Host.json -package ec2 -- ../aws/ec2/host_resource_gen.go ../aws/ec2/host_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_internet_gateway -cfschema ../service/cloudformation/schemas/AWS_EC2_InternetGateway.json -package ec2 -- ../aws/ec2/internet_gateway_resource_gen.go ../aws/ec2/internet_gateway_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_ipam -cfschema ../service/cloudformation/schemas/AWS_EC2_IPAM.json -package ec2 -- ../aws/ec2/ipam_resource_gen.go ../aws/ec2/ipam_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_ipam_allocation -cfschema ../service/cloudformation/schemas/AWS_EC2_IPAMAllocation.json -package ec2 -- ../aws/ec2/ipam_allocation_resource_gen.go ../aws/ec2/ipam_allocation_resource_gen_test.go @@ -131,6 +134,8 @@ //go:generate go run generators/resource/main.go -resource awscc_ec2_local_gateway_route -cfschema ../service/cloudformation/schemas/AWS_EC2_LocalGatewayRoute.json -package ec2 -- ../aws/ec2/local_gateway_route_resource_gen.go ../aws/ec2/local_gateway_route_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_local_gateway_route_table_vpc_association -cfschema ../service/cloudformation/schemas/AWS_EC2_LocalGatewayRouteTableVPCAssociation.json -package ec2 -- ../aws/ec2/local_gateway_route_table_vpc_association_resource_gen.go ../aws/ec2/local_gateway_route_table_vpc_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_network_acl -cfschema ../service/cloudformation/schemas/AWS_EC2_NetworkAcl.json -package ec2 -- ../aws/ec2/network_acl_resource_gen.go ../aws/ec2/network_acl_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_ec2_network_insights_access_scope -cfschema ../service/cloudformation/schemas/AWS_EC2_NetworkInsightsAccessScope.json -package ec2 -- ../aws/ec2/network_insights_access_scope_resource_gen.go ../aws/ec2/network_insights_access_scope_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_ec2_network_insights_access_scope_analysis -cfschema ../service/cloudformation/schemas/AWS_EC2_NetworkInsightsAccessScopeAnalysis.json -package ec2 -- ../aws/ec2/network_insights_access_scope_analysis_resource_gen.go ../aws/ec2/network_insights_access_scope_analysis_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_network_insights_analysis -cfschema ../service/cloudformation/schemas/AWS_EC2_NetworkInsightsAnalysis.json -package ec2 -- ../aws/ec2/network_insights_analysis_resource_gen.go ../aws/ec2/network_insights_analysis_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_network_insights_path -cfschema ../service/cloudformation/schemas/AWS_EC2_NetworkInsightsPath.json -package ec2 -- ../aws/ec2/network_insights_path_resource_gen.go ../aws/ec2/network_insights_path_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_network_interface -cfschema ../service/cloudformation/schemas/AWS_EC2_NetworkInterface.json -package ec2 -- ../aws/ec2/network_interface_resource_gen.go ../aws/ec2/network_interface_resource_gen_test.go @@ -181,6 +186,7 @@ //go:generate go run generators/resource/main.go -resource awscc_evidently_launch -cfschema ../service/cloudformation/schemas/AWS_Evidently_Launch.json -package evidently -- ../aws/evidently/launch_resource_gen.go ../aws/evidently/launch_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_evidently_project -cfschema ../service/cloudformation/schemas/AWS_Evidently_Project.json -package evidently -- ../aws/evidently/project_resource_gen.go ../aws/evidently/project_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_fis_experiment_template -cfschema ../service/cloudformation/schemas/AWS_FIS_ExperimentTemplate.json -package fis -- ../aws/fis/experiment_template_resource_gen.go ../aws/fis/experiment_template_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_forecast_dataset_group -cfschema ../service/cloudformation/schemas/AWS_Forecast_DatasetGroup.json -package forecast -- ../aws/forecast/dataset_group_resource_gen.go ../aws/forecast/dataset_group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_fms_notification_channel -cfschema ../service/cloudformation/schemas/AWS_FMS_NotificationChannel.json -package fms -- ../aws/fms/notification_channel_resource_gen.go ../aws/fms/notification_channel_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_fms_policy -cfschema ../service/cloudformation/schemas/AWS_FMS_Policy.json -package fms -- ../aws/fms/policy_resource_gen.go ../aws/fms/policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_finspace_environment -cfschema ../service/cloudformation/schemas/AWS_FinSpace_Environment.json -package finspace -- ../aws/finspace/environment_resource_gen.go ../aws/finspace/environment_resource_gen_test.go @@ -220,6 +226,7 @@ //go:generate go run generators/resource/main.go -resource awscc_imagebuilder_image_pipeline -cfschema ../service/cloudformation/schemas/AWS_ImageBuilder_ImagePipeline.json -package imagebuilder -- ../aws/imagebuilder/image_pipeline_resource_gen.go ../aws/imagebuilder/image_pipeline_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_imagebuilder_image_recipe -cfschema ../service/cloudformation/schemas/AWS_ImageBuilder_ImageRecipe.json -package imagebuilder -- ../aws/imagebuilder/image_recipe_resource_gen.go ../aws/imagebuilder/image_recipe_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_imagebuilder_infrastructure_configuration -cfschema ../service/cloudformation/schemas/AWS_ImageBuilder_InfrastructureConfiguration.json -package imagebuilder -- ../aws/imagebuilder/infrastructure_configuration_resource_gen.go ../aws/imagebuilder/infrastructure_configuration_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_inspectorv2_filter -cfschema ../service/cloudformation/schemas/AWS_InspectorV2_Filter.json -package inspectorv2 -- ../aws/inspectorv2/filter_resource_gen.go ../aws/inspectorv2/filter_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_iot_account_audit_configuration -cfschema ../service/cloudformation/schemas/AWS_IoT_AccountAuditConfiguration.json -package iot -- ../aws/iot/account_audit_configuration_resource_gen.go ../aws/iot/account_audit_configuration_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_iot_authorizer -cfschema ../service/cloudformation/schemas/AWS_IoT_Authorizer.json -package iot -- ../aws/iot/authorizer_resource_gen.go ../aws/iot/authorizer_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_iot_certificate -cfschema ../service/cloudformation/schemas/AWS_IoT_Certificate.json -package iot -- ../aws/iot/certificate_resource_gen.go ../aws/iot/certificate_resource_gen_test.go @@ -264,6 +271,8 @@ //go:generate go run generators/resource/main.go -resource awscc_kendra_index -cfschema ../service/cloudformation/schemas/AWS_Kendra_Index.json -package kendra -- ../aws/kendra/index_resource_gen.go ../aws/kendra/index_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_kinesis_stream -cfschema ../service/cloudformation/schemas/AWS_Kinesis_Stream.json -package kinesis -- ../aws/kinesis/stream_resource_gen.go ../aws/kinesis/stream_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_kinesisfirehose_delivery_stream -cfschema ../service/cloudformation/schemas/AWS_KinesisFirehose_DeliveryStream.json -package kinesisfirehose -- ../aws/kinesisfirehose/delivery_stream_resource_gen.go ../aws/kinesisfirehose/delivery_stream_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_kinesisvideo_signaling_channel -cfschema ../service/cloudformation/schemas/AWS_KinesisVideo_SignalingChannel.json -package kinesisvideo -- ../aws/kinesisvideo/signaling_channel_resource_gen.go ../aws/kinesisvideo/signaling_channel_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_kinesisvideo_stream -cfschema ../service/cloudformation/schemas/AWS_KinesisVideo_Stream.json -package kinesisvideo -- ../aws/kinesisvideo/stream_resource_gen.go ../aws/kinesisvideo/stream_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_lambda_code_signing_config -cfschema ../service/cloudformation/schemas/AWS_Lambda_CodeSigningConfig.json -package lambda -- ../aws/lambda/code_signing_config_resource_gen.go ../aws/lambda/code_signing_config_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_lambda_event_source_mapping -cfschema ../service/cloudformation/schemas/AWS_Lambda_EventSourceMapping.json -package lambda -- ../aws/lambda/event_source_mapping_resource_gen.go ../aws/lambda/event_source_mapping_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_lambda_function -cfschema ../service/cloudformation/schemas/AWS_Lambda_Function.json -package lambda -- ../aws/lambda/function_resource_gen.go ../aws/lambda/function_resource_gen_test.go @@ -273,9 +282,13 @@ //go:generate go run generators/resource/main.go -resource awscc_lex_resource_policy -cfschema ../service/cloudformation/schemas/AWS_Lex_ResourcePolicy.json -package lex -- ../aws/lex/resource_policy_resource_gen.go ../aws/lex/resource_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_licensemanager_grant -cfschema ../service/cloudformation/schemas/AWS_LicenseManager_Grant.json -package licensemanager -- ../aws/licensemanager/grant_resource_gen.go ../aws/licensemanager/grant_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_licensemanager_license -cfschema ../service/cloudformation/schemas/AWS_LicenseManager_License.json -package licensemanager -- ../aws/licensemanager/license_resource_gen.go ../aws/licensemanager/license_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_lightsail_alarm -cfschema ../service/cloudformation/schemas/AWS_Lightsail_Alarm.json -package lightsail -- ../aws/lightsail/alarm_resource_gen.go ../aws/lightsail/alarm_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_lightsail_bucket -cfschema ../service/cloudformation/schemas/AWS_Lightsail_Bucket.json -package lightsail -- ../aws/lightsail/bucket_resource_gen.go ../aws/lightsail/bucket_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_lightsail_database -cfschema ../service/cloudformation/schemas/AWS_Lightsail_Database.json -package lightsail -- ../aws/lightsail/database_resource_gen.go ../aws/lightsail/database_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_lightsail_disk -cfschema ../service/cloudformation/schemas/AWS_Lightsail_Disk.json -package lightsail -- ../aws/lightsail/disk_resource_gen.go ../aws/lightsail/disk_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_lightsail_instance -cfschema ../service/cloudformation/schemas/AWS_Lightsail_Instance.json -package lightsail -- ../aws/lightsail/instance_resource_gen.go ../aws/lightsail/instance_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_lightsail_load_balancer -cfschema ../service/cloudformation/schemas/AWS_Lightsail_LoadBalancer.json -package lightsail -- ../aws/lightsail/load_balancer_resource_gen.go ../aws/lightsail/load_balancer_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_lightsail_load_balancer_tls_certificate -cfschema ../service/cloudformation/schemas/AWS_Lightsail_LoadBalancerTlsCertificate.json -package lightsail -- ../aws/lightsail/load_balancer_tls_certificate_resource_gen.go ../aws/lightsail/load_balancer_tls_certificate_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_lightsail_static_ip -cfschema ../service/cloudformation/schemas/AWS_Lightsail_StaticIp.json -package lightsail -- ../aws/lightsail/static_ip_resource_gen.go ../aws/lightsail/static_ip_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_location_geofence_collection -cfschema ../service/cloudformation/schemas/AWS_Location_GeofenceCollection.json -package location -- ../aws/location/geofence_collection_resource_gen.go ../aws/location/geofence_collection_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_location_map -cfschema ../service/cloudformation/schemas/AWS_Location_Map.json -package location -- ../aws/location/map_resource_gen.go ../aws/location/map_resource_gen_test.go @@ -372,6 +385,7 @@ //go:generate go run generators/resource/main.go -resource awscc_route53resolver_firewall_rule_group_association -cfschema ../service/cloudformation/schemas/AWS_Route53Resolver_FirewallRuleGroupAssociation.json -package route53resolver -- ../aws/route53resolver/firewall_rule_group_association_resource_gen.go ../aws/route53resolver/firewall_rule_group_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_route53resolver_resolver_config -cfschema ../service/cloudformation/schemas/AWS_Route53Resolver_ResolverConfig.json -package route53resolver -- ../aws/route53resolver/resolver_config_resource_gen.go ../aws/route53resolver/resolver_config_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_route53resolver_resolver_dnssec_config -cfschema ../service/cloudformation/schemas/AWS_Route53Resolver_ResolverDNSSECConfig.json -package route53resolver -- ../aws/route53resolver/resolver_dnssec_config_resource_gen.go ../aws/route53resolver/resolver_dnssec_config_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_route53resolver_resolver_rule_association -cfschema ../service/cloudformation/schemas/AWS_Route53Resolver_ResolverRuleAssociation.json -package route53resolver -- ../aws/route53resolver/resolver_rule_association_resource_gen.go ../aws/route53resolver/resolver_rule_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_route53resolver_resolver_query_logging_config -cfschema ../service/cloudformation/schemas/AWS_Route53Resolver_ResolverQueryLoggingConfig.json -package route53resolver -- ../aws/route53resolver/resolver_query_logging_config_resource_gen.go ../aws/route53resolver/resolver_query_logging_config_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_route53resolver_resolver_query_logging_config_association -cfschema ../service/cloudformation/schemas/AWS_Route53Resolver_ResolverQueryLoggingConfigAssociation.json -package route53resolver -- ../aws/route53resolver/resolver_query_logging_config_association_resource_gen.go ../aws/route53resolver/resolver_query_logging_config_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_route53resolver_resolver_rule -cfschema ../service/cloudformation/schemas/AWS_Route53Resolver_ResolverRule.json -package route53resolver -- ../aws/route53resolver/resolver_rule_resource_gen.go ../aws/route53resolver/resolver_rule_resource_gen_test.go @@ -496,6 +510,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/finspace" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/fis" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/fms" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/forecast" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/frauddetector" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/gamelift" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/globalaccelerator" @@ -505,6 +520,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/healthlake" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/iam" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/imagebuilder" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/inspectorv2" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/iot" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/iotcoredeviceadvisor" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/iotevents" @@ -515,6 +531,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/kendra" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/kinesis" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/kinesisfirehose" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/kinesisvideo" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/kms" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/lambda" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/lex" diff --git a/internal/provider/singular_data_sources.go b/internal/provider/singular_data_sources.go index 3b4672ceea..cf242bb787 100644 --- a/internal/provider/singular_data_sources.go +++ b/internal/provider/singular_data_sources.go @@ -29,7 +29,9 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_apprunner_service -cfschema ../service/cloudformation/schemas/AWS_AppRunner_Service.json -package apprunner ../aws/apprunner/service_singular_data_source_gen.go ../aws/apprunner/service_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appstream_app_block -cfschema ../service/cloudformation/schemas/AWS_AppStream_AppBlock.json -package appstream ../aws/appstream/app_block_singular_data_source_gen.go ../aws/appstream/app_block_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appstream_application -cfschema ../service/cloudformation/schemas/AWS_AppStream_Application.json -package appstream ../aws/appstream/application_singular_data_source_gen.go ../aws/appstream/application_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_appstream_application_entitlement_association -cfschema ../service/cloudformation/schemas/AWS_AppStream_ApplicationEntitlementAssociation.json -package appstream ../aws/appstream/application_entitlement_association_singular_data_source_gen.go ../aws/appstream/application_entitlement_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appstream_application_fleet_association -cfschema ../service/cloudformation/schemas/AWS_AppStream_ApplicationFleetAssociation.json -package appstream ../aws/appstream/application_fleet_association_singular_data_source_gen.go ../aws/appstream/application_fleet_association_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_appstream_entitlement -cfschema ../service/cloudformation/schemas/AWS_AppStream_Entitlement.json -package appstream ../aws/appstream/entitlement_singular_data_source_gen.go ../aws/appstream/entitlement_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appsync_domain_name -cfschema ../service/cloudformation/schemas/AWS_AppSync_DomainName.json -package appsync ../aws/appsync/domain_name_singular_data_source_gen.go ../aws/appsync/domain_name_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appsync_domain_name_api_association -cfschema ../service/cloudformation/schemas/AWS_AppSync_DomainNameApiAssociation.json -package appsync ../aws/appsync/domain_name_api_association_singular_data_source_gen.go ../aws/appsync/domain_name_api_association_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 @@ -123,6 +125,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_enclave_certificate_iam_role_association -cfschema ../service/cloudformation/schemas/AWS_EC2_EnclaveCertificateIamRoleAssociation.json -package ec2 ../aws/ec2/enclave_certificate_iam_role_association_singular_data_source_gen.go ../aws/ec2/enclave_certificate_iam_role_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_flow_log -cfschema ../service/cloudformation/schemas/AWS_EC2_FlowLog.json -package ec2 ../aws/ec2/flow_log_singular_data_source_gen.go ../aws/ec2/flow_log_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_gateway_route_table_association -cfschema ../service/cloudformation/schemas/AWS_EC2_GatewayRouteTableAssociation.json -package ec2 ../aws/ec2/gateway_route_table_association_singular_data_source_gen.go ../aws/ec2/gateway_route_table_association_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_host -cfschema ../service/cloudformation/schemas/AWS_EC2_Host.json -package ec2 ../aws/ec2/host_singular_data_source_gen.go ../aws/ec2/host_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_internet_gateway -cfschema ../service/cloudformation/schemas/AWS_EC2_InternetGateway.json -package ec2 ../aws/ec2/internet_gateway_singular_data_source_gen.go ../aws/ec2/internet_gateway_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_ipam -cfschema ../service/cloudformation/schemas/AWS_EC2_IPAM.json -package ec2 ../aws/ec2/ipam_singular_data_source_gen.go ../aws/ec2/ipam_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_ipam_allocation -cfschema ../service/cloudformation/schemas/AWS_EC2_IPAMAllocation.json -package ec2 ../aws/ec2/ipam_allocation_singular_data_source_gen.go ../aws/ec2/ipam_allocation_singular_data_source_gen_test.go @@ -131,6 +134,8 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_local_gateway_route -cfschema ../service/cloudformation/schemas/AWS_EC2_LocalGatewayRoute.json -package ec2 ../aws/ec2/local_gateway_route_singular_data_source_gen.go ../aws/ec2/local_gateway_route_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_local_gateway_route_table_vpc_association -cfschema ../service/cloudformation/schemas/AWS_EC2_LocalGatewayRouteTableVPCAssociation.json -package ec2 ../aws/ec2/local_gateway_route_table_vpc_association_singular_data_source_gen.go ../aws/ec2/local_gateway_route_table_vpc_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_network_acl -cfschema ../service/cloudformation/schemas/AWS_EC2_NetworkAcl.json -package ec2 ../aws/ec2/network_acl_singular_data_source_gen.go ../aws/ec2/network_acl_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_network_insights_access_scope -cfschema ../service/cloudformation/schemas/AWS_EC2_NetworkInsightsAccessScope.json -package ec2 ../aws/ec2/network_insights_access_scope_singular_data_source_gen.go ../aws/ec2/network_insights_access_scope_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_network_insights_access_scope_analysis -cfschema ../service/cloudformation/schemas/AWS_EC2_NetworkInsightsAccessScopeAnalysis.json -package ec2 ../aws/ec2/network_insights_access_scope_analysis_singular_data_source_gen.go ../aws/ec2/network_insights_access_scope_analysis_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_network_insights_analysis -cfschema ../service/cloudformation/schemas/AWS_EC2_NetworkInsightsAnalysis.json -package ec2 ../aws/ec2/network_insights_analysis_singular_data_source_gen.go ../aws/ec2/network_insights_analysis_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_network_insights_path -cfschema ../service/cloudformation/schemas/AWS_EC2_NetworkInsightsPath.json -package ec2 ../aws/ec2/network_insights_path_singular_data_source_gen.go ../aws/ec2/network_insights_path_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_network_interface -cfschema ../service/cloudformation/schemas/AWS_EC2_NetworkInterface.json -package ec2 ../aws/ec2/network_interface_singular_data_source_gen.go ../aws/ec2/network_interface_singular_data_source_gen_test.go @@ -181,6 +186,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_evidently_launch -cfschema ../service/cloudformation/schemas/AWS_Evidently_Launch.json -package evidently ../aws/evidently/launch_singular_data_source_gen.go ../aws/evidently/launch_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_evidently_project -cfschema ../service/cloudformation/schemas/AWS_Evidently_Project.json -package evidently ../aws/evidently/project_singular_data_source_gen.go ../aws/evidently/project_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_fis_experiment_template -cfschema ../service/cloudformation/schemas/AWS_FIS_ExperimentTemplate.json -package fis ../aws/fis/experiment_template_singular_data_source_gen.go ../aws/fis/experiment_template_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_forecast_dataset_group -cfschema ../service/cloudformation/schemas/AWS_Forecast_DatasetGroup.json -package forecast ../aws/forecast/dataset_group_singular_data_source_gen.go ../aws/forecast/dataset_group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_fms_notification_channel -cfschema ../service/cloudformation/schemas/AWS_FMS_NotificationChannel.json -package fms ../aws/fms/notification_channel_singular_data_source_gen.go ../aws/fms/notification_channel_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_fms_policy -cfschema ../service/cloudformation/schemas/AWS_FMS_Policy.json -package fms ../aws/fms/policy_singular_data_source_gen.go ../aws/fms/policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_finspace_environment -cfschema ../service/cloudformation/schemas/AWS_FinSpace_Environment.json -package finspace ../aws/finspace/environment_singular_data_source_gen.go ../aws/finspace/environment_singular_data_source_gen_test.go @@ -220,6 +226,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_imagebuilder_image_pipeline -cfschema ../service/cloudformation/schemas/AWS_ImageBuilder_ImagePipeline.json -package imagebuilder ../aws/imagebuilder/image_pipeline_singular_data_source_gen.go ../aws/imagebuilder/image_pipeline_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_imagebuilder_image_recipe -cfschema ../service/cloudformation/schemas/AWS_ImageBuilder_ImageRecipe.json -package imagebuilder ../aws/imagebuilder/image_recipe_singular_data_source_gen.go ../aws/imagebuilder/image_recipe_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_imagebuilder_infrastructure_configuration -cfschema ../service/cloudformation/schemas/AWS_ImageBuilder_InfrastructureConfiguration.json -package imagebuilder ../aws/imagebuilder/infrastructure_configuration_singular_data_source_gen.go ../aws/imagebuilder/infrastructure_configuration_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_inspectorv2_filter -cfschema ../service/cloudformation/schemas/AWS_InspectorV2_Filter.json -package inspectorv2 ../aws/inspectorv2/filter_singular_data_source_gen.go ../aws/inspectorv2/filter_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_iot_account_audit_configuration -cfschema ../service/cloudformation/schemas/AWS_IoT_AccountAuditConfiguration.json -package iot ../aws/iot/account_audit_configuration_singular_data_source_gen.go ../aws/iot/account_audit_configuration_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_iot_authorizer -cfschema ../service/cloudformation/schemas/AWS_IoT_Authorizer.json -package iot ../aws/iot/authorizer_singular_data_source_gen.go ../aws/iot/authorizer_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_iot_certificate -cfschema ../service/cloudformation/schemas/AWS_IoT_Certificate.json -package iot ../aws/iot/certificate_singular_data_source_gen.go ../aws/iot/certificate_singular_data_source_gen_test.go @@ -264,6 +271,8 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_kendra_index -cfschema ../service/cloudformation/schemas/AWS_Kendra_Index.json -package kendra ../aws/kendra/index_singular_data_source_gen.go ../aws/kendra/index_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_kinesis_stream -cfschema ../service/cloudformation/schemas/AWS_Kinesis_Stream.json -package kinesis ../aws/kinesis/stream_singular_data_source_gen.go ../aws/kinesis/stream_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_kinesisfirehose_delivery_stream -cfschema ../service/cloudformation/schemas/AWS_KinesisFirehose_DeliveryStream.json -package kinesisfirehose ../aws/kinesisfirehose/delivery_stream_singular_data_source_gen.go ../aws/kinesisfirehose/delivery_stream_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_kinesisvideo_signaling_channel -cfschema ../service/cloudformation/schemas/AWS_KinesisVideo_SignalingChannel.json -package kinesisvideo ../aws/kinesisvideo/signaling_channel_singular_data_source_gen.go ../aws/kinesisvideo/signaling_channel_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_kinesisvideo_stream -cfschema ../service/cloudformation/schemas/AWS_KinesisVideo_Stream.json -package kinesisvideo ../aws/kinesisvideo/stream_singular_data_source_gen.go ../aws/kinesisvideo/stream_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_lambda_code_signing_config -cfschema ../service/cloudformation/schemas/AWS_Lambda_CodeSigningConfig.json -package lambda ../aws/lambda/code_signing_config_singular_data_source_gen.go ../aws/lambda/code_signing_config_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_lambda_event_source_mapping -cfschema ../service/cloudformation/schemas/AWS_Lambda_EventSourceMapping.json -package lambda ../aws/lambda/event_source_mapping_singular_data_source_gen.go ../aws/lambda/event_source_mapping_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_lambda_function -cfschema ../service/cloudformation/schemas/AWS_Lambda_Function.json -package lambda ../aws/lambda/function_singular_data_source_gen.go ../aws/lambda/function_singular_data_source_gen_test.go @@ -273,9 +282,13 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_lex_resource_policy -cfschema ../service/cloudformation/schemas/AWS_Lex_ResourcePolicy.json -package lex ../aws/lex/resource_policy_singular_data_source_gen.go ../aws/lex/resource_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_licensemanager_grant -cfschema ../service/cloudformation/schemas/AWS_LicenseManager_Grant.json -package licensemanager ../aws/licensemanager/grant_singular_data_source_gen.go ../aws/licensemanager/grant_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_licensemanager_license -cfschema ../service/cloudformation/schemas/AWS_LicenseManager_License.json -package licensemanager ../aws/licensemanager/license_singular_data_source_gen.go ../aws/licensemanager/license_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_lightsail_alarm -cfschema ../service/cloudformation/schemas/AWS_Lightsail_Alarm.json -package lightsail ../aws/lightsail/alarm_singular_data_source_gen.go ../aws/lightsail/alarm_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_lightsail_bucket -cfschema ../service/cloudformation/schemas/AWS_Lightsail_Bucket.json -package lightsail ../aws/lightsail/bucket_singular_data_source_gen.go ../aws/lightsail/bucket_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_lightsail_database -cfschema ../service/cloudformation/schemas/AWS_Lightsail_Database.json -package lightsail ../aws/lightsail/database_singular_data_source_gen.go ../aws/lightsail/database_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_lightsail_disk -cfschema ../service/cloudformation/schemas/AWS_Lightsail_Disk.json -package lightsail ../aws/lightsail/disk_singular_data_source_gen.go ../aws/lightsail/disk_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_lightsail_instance -cfschema ../service/cloudformation/schemas/AWS_Lightsail_Instance.json -package lightsail ../aws/lightsail/instance_singular_data_source_gen.go ../aws/lightsail/instance_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_lightsail_load_balancer -cfschema ../service/cloudformation/schemas/AWS_Lightsail_LoadBalancer.json -package lightsail ../aws/lightsail/load_balancer_singular_data_source_gen.go ../aws/lightsail/load_balancer_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_lightsail_load_balancer_tls_certificate -cfschema ../service/cloudformation/schemas/AWS_Lightsail_LoadBalancerTlsCertificate.json -package lightsail ../aws/lightsail/load_balancer_tls_certificate_singular_data_source_gen.go ../aws/lightsail/load_balancer_tls_certificate_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_lightsail_static_ip -cfschema ../service/cloudformation/schemas/AWS_Lightsail_StaticIp.json -package lightsail ../aws/lightsail/static_ip_singular_data_source_gen.go ../aws/lightsail/static_ip_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_location_geofence_collection -cfschema ../service/cloudformation/schemas/AWS_Location_GeofenceCollection.json -package location ../aws/location/geofence_collection_singular_data_source_gen.go ../aws/location/geofence_collection_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_location_map -cfschema ../service/cloudformation/schemas/AWS_Location_Map.json -package location ../aws/location/map_singular_data_source_gen.go ../aws/location/map_singular_data_source_gen_test.go @@ -372,6 +385,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_route53resolver_firewall_rule_group_association -cfschema ../service/cloudformation/schemas/AWS_Route53Resolver_FirewallRuleGroupAssociation.json -package route53resolver ../aws/route53resolver/firewall_rule_group_association_singular_data_source_gen.go ../aws/route53resolver/firewall_rule_group_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_route53resolver_resolver_config -cfschema ../service/cloudformation/schemas/AWS_Route53Resolver_ResolverConfig.json -package route53resolver ../aws/route53resolver/resolver_config_singular_data_source_gen.go ../aws/route53resolver/resolver_config_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_route53resolver_resolver_dnssec_config -cfschema ../service/cloudformation/schemas/AWS_Route53Resolver_ResolverDNSSECConfig.json -package route53resolver ../aws/route53resolver/resolver_dnssec_config_singular_data_source_gen.go ../aws/route53resolver/resolver_dnssec_config_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_route53resolver_resolver_rule_association -cfschema ../service/cloudformation/schemas/AWS_Route53Resolver_ResolverRuleAssociation.json -package route53resolver ../aws/route53resolver/resolver_rule_association_singular_data_source_gen.go ../aws/route53resolver/resolver_rule_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_route53resolver_resolver_query_logging_config -cfschema ../service/cloudformation/schemas/AWS_Route53Resolver_ResolverQueryLoggingConfig.json -package route53resolver ../aws/route53resolver/resolver_query_logging_config_singular_data_source_gen.go ../aws/route53resolver/resolver_query_logging_config_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_route53resolver_resolver_query_logging_config_association -cfschema ../service/cloudformation/schemas/AWS_Route53Resolver_ResolverQueryLoggingConfigAssociation.json -package route53resolver ../aws/route53resolver/resolver_query_logging_config_association_singular_data_source_gen.go ../aws/route53resolver/resolver_query_logging_config_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_route53resolver_resolver_rule -cfschema ../service/cloudformation/schemas/AWS_Route53Resolver_ResolverRule.json -package route53resolver ../aws/route53resolver/resolver_rule_singular_data_source_gen.go ../aws/route53resolver/resolver_rule_singular_data_source_gen_test.go @@ -496,6 +510,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/finspace" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/fis" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/fms" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/forecast" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/frauddetector" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/gamelift" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/globalaccelerator" @@ -505,6 +520,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/healthlake" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/iam" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/imagebuilder" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/inspectorv2" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/iot" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/iotcoredeviceadvisor" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/iotevents" @@ -515,6 +531,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/kendra" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/kinesis" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/kinesisfirehose" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/kinesisvideo" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/kms" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/lambda" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/lex" diff --git a/internal/service/cloudformation/schemas/AWS_AppStream_ApplicationEntitlementAssociation.json b/internal/service/cloudformation/schemas/AWS_AppStream_ApplicationEntitlementAssociation.json new file mode 100644 index 0000000000..7e9a7c0e97 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_AppStream_ApplicationEntitlementAssociation.json @@ -0,0 +1,50 @@ +{ + "typeName": "AWS::AppStream::ApplicationEntitlementAssociation", + "description": "Resource Type definition for AWS::AppStream::ApplicationEntitlementAssociation", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appstream.git", + "definitions": {}, + "properties": { + "StackName": { + "type": "string" + }, + "EntitlementName": { + "type": "string" + }, + "ApplicationIdentifier": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "StackName", + "EntitlementName", + "ApplicationIdentifier" + ], + "createOnlyProperties": [ + "/properties/StackName", + "/properties/EntitlementName", + "/properties/ApplicationIdentifier" + ], + "primaryIdentifier": [ + "/properties/StackName", + "/properties/EntitlementName", + "/properties/ApplicationIdentifier" + ], + "handlers": { + "create": { + "permissions": [ + "appstream:AssociateApplicationToEntitlement" + ] + }, + "read": { + "permissions": [ + "appstream:ListEntitledApplications" + ] + }, + "delete": { + "permissions": [ + "appstream:DisassociateApplicationFromEntitlement" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_AppStream_Entitlement.json b/internal/service/cloudformation/schemas/AWS_AppStream_Entitlement.json new file mode 100644 index 0000000000..7c3b4d9b89 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_AppStream_Entitlement.json @@ -0,0 +1,92 @@ +{ + "typeName": "AWS::AppStream::Entitlement", + "description": "Resource Type definition for AWS::AppStream::Entitlement", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appstream.git", + "definitions": { + "Attribute": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "additionalProperties": false + } + }, + "properties": { + "Name": { + "type": "string" + }, + "StackName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "AppVisibility": { + "type": "string" + }, + "Attributes": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Attribute" + } + }, + "CreatedTime": { + "type": "string" + }, + "LastModifiedTime": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "StackName", + "AppVisibility", + "Attributes" + ], + "readOnlyProperties": [ + "/properties/CreatedTime", + "/properties/LastModifiedTime" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/StackName" + ], + "primaryIdentifier": [ + "/properties/StackName", + "/properties/Name" + ], + "handlers": { + "create": { + "permissions": [ + "appstream:CreateEntitlement" + ] + }, + "read": { + "permissions": [ + "appstream:DescribeEntitlements" + ] + }, + "update": { + "permissions": [ + "appstream:UpdateEntitlement" + ] + }, + "delete": { + "permissions": [ + "appstream:DeleteEntitlement" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_EC2_Host.json b/internal/service/cloudformation/schemas/AWS_EC2_Host.json new file mode 100644 index 0000000000..d7a74bdf11 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_EC2_Host.json @@ -0,0 +1,72 @@ +{ + "typeName": "AWS::EC2::Host", + "description": "Resource Type definition for AWS::EC2::Host", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "additionalProperties": false, + "properties": { + "HostId": { + "description": "Id of the host created.", + "type": "string" + }, + "AutoPlacement": { + "description": "Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID.", + "type": "string" + }, + "AvailabilityZone": { + "description": "The Availability Zone in which to allocate the Dedicated Host.", + "type": "string" + }, + "HostRecovery": { + "description": "Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default.", + "type": "string" + }, + "InstanceType": { + "description": "Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.", + "type": "string" + } + }, + "required": [ + "InstanceType", + "AvailabilityZone" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZone", + "/properties/InstanceType" + ], + "primaryIdentifier": [ + "/properties/HostId" + ], + "readOnlyProperties": [ + "/properties/HostId" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:AllocateHosts", + "ec2:DescribeHosts" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeHosts" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyHosts", + "ec2:DescribeHosts" + ] + }, + "delete": { + "permissions": [ + "ec2:ReleaseHosts", + "ec2:DescribeHosts" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeHosts" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_EC2_NetworkInsightsAccessScope.json b/internal/service/cloudformation/schemas/AWS_EC2_NetworkInsightsAccessScope.json new file mode 100644 index 0000000000..40a4b83876 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_EC2_NetworkInsightsAccessScope.json @@ -0,0 +1,232 @@ +{ + "typeName": "AWS::EC2::NetworkInsightsAccessScope", + "description": "Resource schema for AWS::EC2::NetworkInsightsAccessScope", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2-ni.git", + "definitions": { + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ] + }, + "AccessScopePathRequest": { + "type": "object", + "additionalProperties": false, + "properties": { + "Source": { + "$ref": "#/definitions/PathStatementRequest" + }, + "Destination": { + "$ref": "#/definitions/PathStatementRequest" + }, + "ThroughResources": { + "type": "array", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ThroughResourcesStatementRequest" + } + } + } + }, + "PathStatementRequest": { + "type": "object", + "additionalProperties": false, + "properties": { + "PacketHeaderStatement": { + "$ref": "#/definitions/PacketHeaderStatementRequest" + }, + "ResourceStatement": { + "$ref": "#/definitions/ResourceStatementRequest" + } + } + }, + "PacketHeaderStatementRequest": { + "type": "object", + "additionalProperties": false, + "properties": { + "SourceAddresses": { + "type": "array", + "insertionOrder": true, + "items": { + "type": "string" + } + }, + "DestinationAddresses": { + "type": "array", + "insertionOrder": true, + "items": { + "type": "string" + } + }, + "SourcePorts": { + "type": "array", + "insertionOrder": true, + "items": { + "type": "string" + } + }, + "DestinationPorts": { + "type": "array", + "insertionOrder": true, + "items": { + "type": "string" + } + }, + "SourcePrefixLists": { + "type": "array", + "insertionOrder": true, + "items": { + "type": "string" + } + }, + "DestinationPrefixLists": { + "type": "array", + "insertionOrder": true, + "items": { + "type": "string" + } + }, + "Protocols": { + "type": "array", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Protocol" + } + } + } + }, + "Protocol": { + "type": "string", + "enum": [ + "tcp", + "udp" + ] + }, + "ResourceStatementRequest": { + "type": "object", + "additionalProperties": false, + "properties": { + "Resources": { + "type": "array", + "insertionOrder": true, + "items": { + "type": "string" + } + }, + "ResourceTypes": { + "type": "array", + "insertionOrder": true, + "items": { + "type": "string" + } + } + } + }, + "ThroughResourcesStatementRequest": { + "type": "object", + "additionalProperties": false, + "properties": { + "ResourceStatement": { + "$ref": "#/definitions/ResourceStatementRequest" + } + } + } + }, + "properties": { + "NetworkInsightsAccessScopeId": { + "type": "string" + }, + "NetworkInsightsAccessScopeArn": { + "type": "string" + }, + "CreatedDate": { + "type": "string" + }, + "UpdatedDate": { + "type": "string" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } + }, + "MatchPaths": { + "type": "array", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccessScopePathRequest" + } + }, + "ExcludePaths": { + "type": "array", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AccessScopePathRequest" + } + } + }, + "additionalProperties": false, + "readOnlyProperties": [ + "/properties/NetworkInsightsAccessScopeId", + "/properties/NetworkInsightsAccessScopeArn", + "/properties/CreatedDate", + "/properties/UpdatedDate" + ], + "createOnlyProperties": [ + "/properties/MatchPaths", + "/properties/ExcludePaths" + ], + "writeOnlyProperties": [ + "/properties/MatchPaths", + "/properties/ExcludePaths" + ], + "primaryIdentifier": [ + "/properties/NetworkInsightsAccessScopeId" + ], + "additionalIdentifiers": [ + [ + "/properties/NetworkInsightsAccessScopeArn" + ] + ], + "handlers": { + "create": { + "permissions": [ + "ec2:CreateNetworkInsightsAccessScope", + "tiros:CreateQuery" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeNetworkInsightsAccessScopes" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeNetworkInsightsAccessScopes", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteNetworkInsightsAccessScope" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeNetworkInsightsAccessScopes" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_EC2_NetworkInsightsAccessScopeAnalysis.json b/internal/service/cloudformation/schemas/AWS_EC2_NetworkInsightsAccessScopeAnalysis.json new file mode 100644 index 0000000000..07ca99cd0a --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_EC2_NetworkInsightsAccessScopeAnalysis.json @@ -0,0 +1,165 @@ +{ + "typeName": "AWS::EC2::NetworkInsightsAccessScopeAnalysis", + "description": "Resource schema for AWS::EC2::NetworkInsightsAccessScopeAnalysis", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2-ni.git", + "definitions": { + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ] + } + }, + "properties": { + "NetworkInsightsAccessScopeAnalysisId": { + "type": "string" + }, + "NetworkInsightsAccessScopeAnalysisArn": { + "type": "string" + }, + "NetworkInsightsAccessScopeId": { + "type": "string" + }, + "Status": { + "type": "string", + "enum": [ + "running", + "failed", + "succeeded" + ] + }, + "StatusMessage": { + "type": "string" + }, + "StartDate": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "FindingsFound": { + "type": "string", + "enum": [ + "true", + "false", + "unknown" + ] + }, + "AnalyzedEniCount": { + "type": "integer" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } + } + }, + "additionalProperties": false, + "required": [ + "NetworkInsightsAccessScopeId" + ], + "readOnlyProperties": [ + "/properties/NetworkInsightsAccessScopeAnalysisId", + "/properties/NetworkInsightsAccessScopeAnalysisArn", + "/properties/Status", + "/properties/StatusMessage", + "/properties/StartDate", + "/properties/EndDate", + "/properties/FindingsFound", + "/properties/AnalyzedEniCount" + ], + "createOnlyProperties": [ + "/properties/NetworkInsightsAccessScopeId" + ], + "primaryIdentifier": [ + "/properties/NetworkInsightsAccessScopeAnalysisId" + ], + "additionalIdentifiers": [ + [ + "/properties/NetworkInsightsAccessScopeAnalysisArn" + ] + ], + "handlers": { + "create": { + "permissions": [ + "ec2:StartNetworkInsightsAccessScopeAnalysis", + "ec2:GetTransitGatewayRouteTablePropagations", + "ec2:DescribeTransitGatewayPeeringAttachments", + "ec2:SearchTransitGatewayRoutes", + "ec2:DescribeTransitGatewayRouteTables", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGateways", + "ec2:GetManagedPrefixListEntries", + "ec2:DescribeManagedPrefixLists", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeCustomerGateways", + "ec2:DescribeInstances", + "ec2:DescribeInternetGateways", + "ec2:DescribeNatGateways", + "ec2:DescribeNetworkAcls", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribePrefixLists", + "ec2:DescribeRegions", + "ec2:DescribeRouteTables", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcPeeringConnections", + "ec2:DescribeVpcs", + "ec2:DescribeVpnConnections", + "ec2:DescribeVpnGateways", + "ec2:DescribeVpcEndpointServiceConfigurations", + "elasticloadbalancing:DescribeListeners", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeRules", + "elasticloadbalancing:DescribeTags", + "elasticloadbalancing:DescribeTargetGroups", + "elasticloadbalancing:DescribeTargetHealth", + "directconnect:DescribeConnections", + "directconnect:DescribeDirectConnectGateways", + "directconnect:DescribeDirectConnectGatewayAssociations", + "directconnect:DescribeDirectConnectGatewayAttachments", + "directconnect:DescribeVirtualGateways", + "directconnect:DescribeVirtualInterfaces", + "tiros:CreateQuery", + "tiros:GetQueryAnswer", + "tiros:GetQueryExplanation" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeNetworkInsightsAccessScopeAnalyses" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeNetworkInsightsAccessScopeAnalyses", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteNetworkInsightsAccessScopeAnalysis" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeNetworkInsightsAccessScopeAnalyses" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_Forecast_Dataset.json b/internal/service/cloudformation/schemas/AWS_Forecast_Dataset.json new file mode 100644 index 0000000000..307614e5e9 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Forecast_Dataset.json @@ -0,0 +1,173 @@ +{ + "typeName": "AWS::Forecast::Dataset", + "description": "Resource Type Definition for AWS::Forecast::Dataset", + "sourceUrl": "https://github.com/junlinzw/aws-cloudformation-resource-providers-forecast", + "taggable": false, + "definitions": { + "Attributes": { + "type": "array", + "insertionOrder": true, + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "AttributeName": { + "description": "Name of the dataset field", + "type": "string", + "pattern": "" + }, + "AttributeType": { + "description": "Data type of the field", + "type": "string", + "enum": [ + "string", + "integer", + "float", + "timestamp", + "geolocation" + ] + } + } + }, + "minItems": 1, + "maxItems":100 + }, + "KmsKeyArn": { + "description": "KMS key used to encrypt the Dataset data", + "type": "string", + "maxLength": 256, + "pattern": "" + }, + "RoleArn": { + "description": "The ARN of the IAM role that Amazon Forecast can assume to access the AWS KMS key.", + "type": "string", + "maxLength": 256, + "pattern": "" + }, + "Key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 0, + "maxLength": 256 + } + }, + "properties": { + "Arn": { + "type": "string", + "maxLength": 256, + "pattern": "" + }, + "DatasetName": { + "description": "A name for the dataset", + "type": "string", + "minLength": 1, + "maxLength": 63, + "pattern": "" + }, + "DatasetType": { + "description": "The dataset type", + "type": "string", + "enum": [ + "TARGET_TIME_SERIES", + "RELATED_TIME_SERIES", + "ITEM_METADATA" + ] + }, + "DataFrequency": { + "description": "Frequency of data collection. This parameter is required for RELATED_TIME_SERIES", + "type": "string", + "pattern": "" + }, + "Domain": { + "description": "The domain associated with the dataset", + "type": "string", + "enum": [ + "RETAIL", + "CUSTOM", + "INVENTORY_PLANNING", + "EC2_CAPACITY", + "WORK_FORCE", + "WEB_TRAFFIC", + "METRICS" + ] + }, + "EncryptionConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "KmsKeyArn": {"$ref": "#/definitions/KmsKeyArn"}, + "RoleArn": {"$ref": "#/definitions/RoleArn"} + } + }, + "Schema": { + "type": "object", + "additionalProperties": false, + "properties": { + "Attributes": {"$ref": "#/definitions/Attributes"} + } + }, + "Tags": { + "type": "array", + "insertionOrder": true, + "items": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": {"$ref": "#/definitions/Key"}, + "Value": {"$ref": "#/definitions/Value"} + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + }, + "minItems": 0, + "maxItems": 200 + } + }, + "additionalProperties": false, + "required": [ + "DatasetName", + "DatasetType", + "Domain", + "Schema" + ], + "createOnlyProperties": [ + "/properties/DatasetName" + ], + "readOnlyProperties": [ + "/properties/Arn" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "handlers": { + "create": { + "permissions": [ + "forecast:CreateDataset" + ] + }, + "read": { + "permissions": [ + "forecast:DescribeDataset" + ] + }, + "delete": { + "permissions": [ + "forecast:DeleteDataset" + ] + }, + "list": { + "permissions": [ + "forecast:ListDatasets" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_Forecast_DatasetGroup.json b/internal/service/cloudformation/schemas/AWS_Forecast_DatasetGroup.json new file mode 100644 index 0000000000..7d6e7b241c --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Forecast_DatasetGroup.json @@ -0,0 +1,135 @@ +{ + "typeName": "AWS::Forecast::DatasetGroup", + "description": "Represents a dataset group that holds a collection of related datasets", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-forecast", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 0, + "maxLength": 256 + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + }, + "Arn": { + "type": "string", + "maxLength": 256, + "pattern": "" + }, + "MaxResults": { + "description": "The number of items to return in the response.", + "type": "integer", + "minimum": 1, + "maximum": 100 + }, + "NextToken": { + "description": "If the result of the previous request was truncated, the response includes a NextToken. To retrieve the next set of results, use the token in the next request. Tokens expire after 24 hours.", + "type": "string", + "minLength": 1, + "maxLength": 3000 + } + }, + "properties": { + "DatasetArns": { + "description": "An array of Amazon Resource Names (ARNs) of the datasets that you want to include in the dataset group.", + "type": "array", + "items": { + "$ref": "#/definitions/Arn" + }, + "insertionOrder": true + }, + "DatasetGroupName": { + "description": "A name for the dataset group.", + "type": "string", + "pattern": "", + "minLength": 1, + "maxLength": 63 + }, + "Domain": { + "description": "The domain associated with the dataset group. When you add a dataset to a dataset group, this value and the value specified for the Domain parameter of the CreateDataset operation must match.", + "type": "string", + "enum": [ + "RETAIL", + "CUSTOM", + "INVENTORY_PLANNING", + "EC2_CAPACITY", + "WORK_FORCE", + "WEB_TRAFFIC", + "METRICS" + ] + }, + "Tags": { + "description": "The tags of Application Insights application.", + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "maxItems": 200, + "insertionOrder": true + }, + "DatasetGroupArn": { + "description": "The Amazon Resource Name (ARN) of the dataset group to delete.", + "type": "string", + "maxLength": 256, + "pattern": "" + } + }, + "additionalProperties": false, + "required": [ + "DatasetGroupName", + "Domain" + ], + "createOnlyProperties": [ + "/properties/DatasetGroupName" + ], + "readOnlyProperties": [ + "/properties/DatasetGroupArn" + ], + "primaryIdentifier": [ + "/properties/DatasetGroupArn" + ], + "handlers": { + "create": { + "permissions": [ + "forecast:CreateDatasetGroup" + ] + }, + "read": { + "permissions": [ + "forecast:DescribeDatasetGroup" + ] + }, + "update": { + "permissions": [ + "forecast:UpdateDatasetGroup" + ] + }, + "delete": { + "permissions": [ + "forecast:DeleteDatasetGroup" + ] + }, + "list": { + "permissions": [ + "forecast:ListDatasetGroups" + ] + } + }, + "taggable": true +} diff --git a/internal/service/cloudformation/schemas/AWS_InspectorV2_Filter.json b/internal/service/cloudformation/schemas/AWS_InspectorV2_Filter.json new file mode 100644 index 0000000000..3776cbd8df --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_InspectorV2_Filter.json @@ -0,0 +1,369 @@ +{ + "typeName": "AWS::InspectorV2::Filter", + "description": "Inspector Filter resource schema", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-inspector.git", + "definitions": { + "StringComparison": { + "type": "string", + "enum": [ + "EQUALS", + "PREFIX", + "NOT_EQUALS" + ] + }, + "StringInput": { + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "StringFilter": { + "type": "object", + "required": [ + "Comparison", + "Value" + ], + "properties": { + "Comparison": { + "$ref": "#/definitions/StringComparison" + }, + "Value": { + "$ref": "#/definitions/StringInput" + } + }, + "additionalProperties": false + }, + "StringFilterList": { + "type": "array", + "items": { + "$ref": "#/definitions/StringFilter" + }, + "insertionOrder": false, + "maxItems": 10, + "minItems": 1 + }, + "Timestamp": { + "type": "integer", + "format": "int64" + }, + "DateFilter": { + "type": "object", + "properties": { + "EndInclusive": { + "$ref": "#/definitions/Timestamp" + }, + "StartInclusive": { + "$ref": "#/definitions/Timestamp" + } + }, + "additionalProperties": false + }, + "DateFilterList": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/DateFilter" + }, + "maxItems": 10, + "minItems": 1 + }, + "Port": { + "type": "integer", + "maximum": 65535, + "minimum": 0 + }, + "PortRangeFilter": { + "type": "object", + "properties": { + "BeginInclusive": { + "$ref": "#/definitions/Port" + }, + "EndInclusive": { + "$ref": "#/definitions/Port" + } + }, + "additionalProperties": false + }, + "PortRangeFilterList": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PortRangeFilter" + }, + "maxItems": 10, + "minItems": 1 + }, + "NumberFilter": { + "type": "object", + "properties": { + "LowerInclusive": { + "type": "number" + }, + "UpperInclusive": { + "type": "number" + } + }, + "additionalProperties": false + }, + "NumberFilterList": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NumberFilter" + }, + "maxItems": 10, + "minItems": 1 + }, + "MapComparison": { + "type": "string", + "enum": [ + "EQUALS" + ] + }, + "MapFilter": { + "type": "object", + "required": [ + "Comparison" + ], + "properties": { + "Comparison": { + "$ref": "#/definitions/MapComparison" + }, + "Key": { + "$ref": "#/definitions/MapKey" + }, + "Value": { + "$ref": "#/definitions/MapValue" + } + }, + "additionalProperties": false + }, + "MapFilterList": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MapFilter" + }, + "maxItems": 10, + "minItems": 1 + }, + "PackageFilter": { + "type": "object", + "additionalProperties": false, + "properties": { + "Architecture": { + "$ref": "#/definitions/StringFilter" + }, + "Epoch": { + "$ref": "#/definitions/NumberFilter" + }, + "Name": { + "$ref": "#/definitions/StringFilter" + }, + "Release": { + "$ref": "#/definitions/StringFilter" + }, + "SourceLayerHash": { + "$ref": "#/definitions/StringFilter" + }, + "Version": { + "$ref": "#/definitions/StringFilter" + } + } + }, + "PackageFilterList": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PackageFilter" + }, + "maxItems": 10, + "minItems": 1 + }, + "FilterCriteria": { + "type": "object", + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "$ref": "#/definitions/StringFilterList" + }, + "ComponentId": { + "$ref": "#/definitions/StringFilterList" + }, + "ComponentType": { + "$ref": "#/definitions/StringFilterList" + }, + "Ec2InstanceImageId": { + "$ref": "#/definitions/StringFilterList" + }, + "Ec2InstanceSubnetId": { + "$ref": "#/definitions/StringFilterList" + }, + "Ec2InstanceVpcId": { + "$ref": "#/definitions/StringFilterList" + }, + "EcrImageArchitecture": { + "$ref": "#/definitions/StringFilterList" + }, + "EcrImageHash": { + "$ref": "#/definitions/StringFilterList" + }, + "EcrImageTags": { + "$ref": "#/definitions/StringFilterList" + }, + "EcrImagePushedAt": { + "$ref": "#/definitions/DateFilterList" + }, + "EcrImageRegistry": { + "$ref": "#/definitions/StringFilterList" + }, + "EcrImageRepositoryName": { + "$ref": "#/definitions/StringFilterList" + }, + "FindingArn": { + "$ref": "#/definitions/StringFilterList" + }, + "FindingStatus": { + "$ref": "#/definitions/StringFilterList" + }, + "FindingType": { + "$ref": "#/definitions/StringFilterList" + }, + "FirstObservedAt": { + "$ref": "#/definitions/DateFilterList" + }, + "InspectorScore": { + "$ref": "#/definitions/NumberFilterList" + }, + "LastObservedAt": { + "$ref": "#/definitions/DateFilterList" + }, + "NetworkProtocol": { + "$ref": "#/definitions/StringFilterList" + }, + "PortRange": { + "$ref": "#/definitions/PortRangeFilterList" + }, + "RelatedVulnerabilities": { + "$ref": "#/definitions/StringFilterList" + }, + "ResourceId": { + "$ref": "#/definitions/StringFilterList" + }, + "ResourceTags": { + "$ref": "#/definitions/MapFilterList" + }, + "ResourceType": { + "$ref": "#/definitions/StringFilterList" + }, + "Severity": { + "$ref": "#/definitions/StringFilterList" + }, + "Title": { + "$ref": "#/definitions/StringFilterList" + }, + "UpdatedAt": { + "$ref": "#/definitions/DateFilterList" + }, + "VendorSeverity": { + "$ref": "#/definitions/StringFilterList" + }, + "VulnerabilityId": { + "$ref": "#/definitions/StringFilterList" + }, + "VulnerabilitySource": { + "$ref": "#/definitions/StringFilterList" + }, + "VulnerablePackages": { + "$ref": "#/definitions/PackageFilterList" + } + } + }, + "FilterAction": { + "type": "string", + "enum": [ + "NONE", + "SUPPRESS" + ] + }, + "MapKey": { + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "MapValue": { + "type": "string", + "maxLength": 256, + "minLength": 0 + } + }, + "properties": { + "Name": { + "description": "Findings filter name.", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "Description": { + "description": "Findings filter description.", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "FilterCriteria": { + "description": "Findings filter criteria.", + "$ref": "#/definitions/FilterCriteria" + }, + "FilterAction": { + "description": "Findings filter action.", + "$ref": "#/definitions/FilterAction" + }, + "Arn": { + "description": "Findings filter ARN.", + "type": "string", + "maxLength": 128, + "minLength": 1 + } + }, + "required": [ + "Name", + "FilterCriteria", + "FilterAction" + ], + "readOnlyProperties": [ + "/properties/Arn" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Arn" + ], + "handlers": { + "create": { + "permissions": [ + "inspector2:CreateFilter", + "inspector2:ListFilters" + ] + }, + "read": { + "permissions": [ + "inspector2:ListFilters" + ] + }, + "update": { + "permissions": [ + "inspector2:ListFilters", + "inspector2:UpdateFilter" + ] + }, + "delete": { + "permissions": [ + "inspector2:DeleteFilter", + "inspector2:ListFilters" + ] + }, + "list": { + "permissions": [ + "inspector2:ListFilters" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_KinesisVideo_SignalingChannel.json b/internal/service/cloudformation/schemas/AWS_KinesisVideo_SignalingChannel.json new file mode 100644 index 0000000000..2603ad2760 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_KinesisVideo_SignalingChannel.json @@ -0,0 +1,104 @@ +{ + "typeName": "AWS::KinesisVideo::SignalingChannel", + "description": "Resource Type Definition for AWS::KinesisVideo::SignalingChannel", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesisvideo.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag. Specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "description": "The value for the tag. Specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 0, + "maxLength": 256 + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + } + }, + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the Kinesis Video Signaling Channel.", + "type": "string" + }, + "Name": { + "description": "The name of the Kinesis Video Signaling Channel.", + "type": "string", + "minLength": 1, + "maxLength": 256, + "pattern": "" + }, + "Type": { + "description": "The type of the Kinesis Video Signaling Channel to create. Currently, SINGLE_MASTER is the only supported channel type.", + "type": "string", + "enum": [ + "SINGLE_MASTER" + ] + }, + "MessageTtlSeconds": { + "description": "The period of time a signaling channel retains undelivered messages before they are discarded.", + "type": "integer", + "minimum": 5, + "maximum": 120 + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 1, + "maxItems": 50 + } + }, + "additionalProperties": false, + "required": [ + ], + "readOnlyProperties": [ + "/properties/Arn" + ], + "createOnlyProperties": [ + "/properties/Name" + ], + "primaryIdentifier": [ + "/properties/Name" + ], + "handlers": { + "create": { + "permissions": [ + "kinesisvideo:CreateSignalingChannel", + "kinesisvideo:DescribeSignalingChannel" + ] + }, + "read": { + "permissions": [ + "kinesisvideo:DescribeSignalingChannel" + ] + }, + "update": { + "permissions": [ + "kinesisvideo:UpdateSignalingChannel", + "kinesisvideo:DescribeSignalingChannel" + ] + }, + "delete": { + "permissions": [ + "kinesisvideo:DeleteSignalingChannel", + "kinesisvideo:DescribeSignalingChannel" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_KinesisVideo_Stream.json b/internal/service/cloudformation/schemas/AWS_KinesisVideo_Stream.json new file mode 100644 index 0000000000..c1713f1815 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_KinesisVideo_Stream.json @@ -0,0 +1,119 @@ +{ + "typeName": "AWS::KinesisVideo::Stream", + "description": "Resource Type Definition for AWS::KinesisVideo::Stream", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesisvideo.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associated with the Kinesis Video Stream.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag. Specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "description": "The value for the tag. Specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 0, + "maxLength": 256 + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + } + }, + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the Kinesis Video stream.", + "type": "string" + }, + "Name": { + "description": "The name of the Kinesis Video stream.", + "type": "string", + "minLength": 1, + "maxLength": 256, + "pattern": "" + }, + "DataRetentionInHours": { + "description": "The number of hours till which Kinesis Video will retain the data in the stream", + "type": "integer", + "minimum": 0, + "maximum": 87600 + }, + "DeviceName": { + "description": "The name of the device that is writing to the stream.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "" + }, + "KmsKeyId": { + "description": "AWS KMS key ID that Kinesis Video Streams uses to encrypt stream data.", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "pattern": "" + }, + "MediaType": { + "description": "The media type of the stream. Consumers of the stream can use this information when processing the stream.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "" + }, + "Tags": { + "description": "An array of key-value pairs associated with the Kinesis Video Stream.", + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 1, + "maxItems": 50 + } + }, + "additionalProperties": false, + "required": [ + ], + "readOnlyProperties": [ + "/properties/Arn" + ], + "createOnlyProperties": [ + "/properties/Name" + ], + "primaryIdentifier": [ + "/properties/Name" + ], + "handlers": { + "create": { + "permissions": [ + "kinesisvideo:DescribeStream", + "kinesisvideo:CreateStream" + ] + }, + "read": { + "permissions": [ + "kinesisvideo:DescribeStream" + ] + }, + "update": { + "permissions": [ + "kinesisvideo:DescribeStream", + "kinesisvideo:UpdateStream", + "kinesisvideo:UpdateDataRetention" + ] + }, + "delete": { + "permissions": [ + "kinesisvideo:DescribeStream", + "kinesisvideo:DeleteStream" + ] + } + } +} \ No newline at end of file diff --git a/internal/service/cloudformation/schemas/AWS_Lightsail_Alarm.json b/internal/service/cloudformation/schemas/AWS_Lightsail_Alarm.json new file mode 100644 index 0000000000..118a38ff6b --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Lightsail_Alarm.json @@ -0,0 +1,121 @@ +{ + "typeName": "AWS::Lightsail::Alarm", + "description": "Resource Type definition for AWS::Lightsail::Alarm", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-lightsail.git", + "properties": { + "AlarmName": { + "description": "The name for the alarm. Specify the name of an existing alarm to update, and overwrite the previous configuration of the alarm.", + "type": "string", + "pattern": "" + }, + "MonitoredResourceName": { + "description": "The validation status of the SSL/TLS certificate.", + "type": "string" + }, + "MetricName": { + "description": "The name of the metric to associate with the alarm.", + "type": "string" + }, + "ComparisonOperator": { + "description": "The arithmetic operation to use when comparing the specified statistic to the threshold. The specified statistic value is used as the first operand.", + "type": "string" + }, + "ContactProtocols": { + "description": "The contact protocols to use for the alarm, such as Email, SMS (text messaging), or both.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "AlarmArn": { + "type": "string" + }, + "DatapointsToAlarm": { + "description": "The number of data points that must be not within the specified threshold to trigger the alarm. If you are setting an \"M out of N\" alarm, this value (datapointsToAlarm) is the M.", + "type": "integer" + }, + "EvaluationPeriods": { + "description": "The number of most recent periods over which data is compared to the specified threshold. If you are setting an \"M out of N\" alarm, this value (evaluationPeriods) is the N.", + "type": "integer" + }, + "NotificationEnabled": { + "description": "Indicates whether the alarm is enabled. Notifications are enabled by default if you don't specify this parameter.", + "type": "boolean" + }, + "NotificationTriggers": { + "description": "The alarm states that trigger a notification.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "Threshold": { + "description": "The value against which the specified statistic is compared.", + "type": "number" + }, + "TreatMissingData": { + "description": "Sets how this alarm will handle missing data points.", + "type": "string" + }, + "State": { + "description": "The current state of the alarm.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "AlarmName", + "MonitoredResourceName", + "MetricName", + "ComparisonOperator", + "EvaluationPeriods", + "Threshold" + ], + "readOnlyProperties": [ + "/properties/AlarmArn", + "/properties/State" + ], + "taggable": true, + "primaryIdentifier": [ + "/properties/AlarmName" + ], + "createOnlyProperties": [ + "/properties/AlarmName", + "/properties/MonitoredResourceName", + "/properties/MetricName" + ], + "handlers": { + "create": { + "permissions": [ + "lightsail:PutAlarm", + "lightsail:GetAlarms" + ] + }, + "read": { + "permissions": [ + "lightsail:GetAlarms" + ] + }, + "update": { + "permissions": [ + "lightsail:PutAlarm", + "lightsail:GetAlarms" + ] + }, + "delete": { + "permissions": [ + "lightsail:DeleteAlarm", + "lightsail:GetAlarms" + ] + }, + "list": { + "permissions": [ + "lightsail:GetAlarms" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_Lightsail_Bucket.json b/internal/service/cloudformation/schemas/AWS_Lightsail_Bucket.json new file mode 100644 index 0000000000..0a4b3f7cab --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Lightsail_Bucket.json @@ -0,0 +1,161 @@ +{ + "typeName": "AWS::Lightsail::Bucket", + "description": "Resource Type definition for AWS::Lightsail::Bucket", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-lightsail.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 0, + "maxLength": 256 + } + }, + "required": [ + "Key" + ], + "additionalProperties": false + }, + "AccessRules": { + "description": "An object that sets the public accessibility of objects in the specified bucket.", + "type": "object", + "properties": { + "GetObject": { + "type": "string", + "description": "Specifies the anonymous access to all objects in a bucket." + }, + "AllowPublicOverrides": { + "type": "boolean", + "description": "A Boolean value that indicates whether the access control list (ACL) permissions that are applied to individual objects override the getObject option that is currently specified." + } + }, + "additionalProperties": false + } + }, + "properties": { + "BucketName": { + "description": "The name for the bucket.", + "type": "string", + "pattern": "", + "minLength": 3, + "maxLength": 54 + }, + "BundleId": { + "description": "The ID of the bundle to use for the bucket.", + "type": "string" + }, + "BucketArn": { + "type": "string" + }, + "ObjectVersioning": { + "description": "Specifies whether to enable or disable versioning of objects in the bucket.", + "type": "boolean" + }, + "AccessRules": { + "$ref": "#/definitions/AccessRules" + }, + "ResourcesReceivingAccess": { + "description": "The names of the Lightsail resources for which to set bucket access.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "ReadOnlyAccessAccounts": { + "description": "An array of strings to specify the AWS account IDs that can access the bucket.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } + }, + "Url": { + "description": "The URL of the bucket.", + "type": "string" + }, + "AbleToUpdateBundle": { + "description": "Indicates whether the bundle that is currently applied to a bucket can be changed to another bundle. You can update a bucket's bundle only one time within a monthly AWS billing cycle.", + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "BucketName", + "BundleId" + ], + "readOnlyProperties": [ + "/properties/BucketArn", + "/properties/Url", + "/properties/AbleToUpdateBundle" + ], + "taggable": true, + "primaryIdentifier": [ + "/properties/BucketName" + ], + "createOnlyProperties": [ + "/properties/BucketName" + ], + "handlers": { + "create": { + "permissions": [ + "lightsail:CreateBucket", + "lightsail:GetBuckets", + "lightsail:GetInstance", + "lightsail:UpdateBucket", + "lightsail:UpdateBucketBundle", + "lightsail:SetResourceAccessForBucket", + "lightsail:TagResource", + "lightsail:UntagResource" + ] + }, + "read": { + "permissions": [ + "lightsail:GetBuckets" + ] + }, + "delete": { + "permissions": [ + "lightsail:DeleteBucket", + "lightsail:GetBuckets" + ] + }, + "list": { + "permissions": [ + "lightsail:GetBuckets" + ] + }, + "update": { + "permissions": [ + "lightsail:GetBuckets", + "lightsail:GetInstance", + "lightsail:UpdateBucket", + "lightsail:UpdateBucketBundle", + "lightsail:SetResourceAccessForBucket", + "lightsail:TagResource", + "lightsail:UntagResource" + ], + "timeoutInMinutes": 2160 + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_Lightsail_LoadBalancer.json b/internal/service/cloudformation/schemas/AWS_Lightsail_LoadBalancer.json new file mode 100644 index 0000000000..d7e17cce02 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Lightsail_LoadBalancer.json @@ -0,0 +1,139 @@ +{ + "typeName": "AWS::Lightsail::LoadBalancer", + "description": "Resource Type definition for AWS::Lightsail::LoadBalancer", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-lightsail.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 0, + "maxLength": 256 + } + }, + "required": [ + "Key" + ], + "additionalProperties": false + } + }, + "properties": { + "LoadBalancerName": { + "description": "The name of your load balancer.", + "type": "string", + "pattern": "" + }, + "LoadBalancerArn": { + "type": "string" + }, + "InstancePort": { + "description": "The instance port where you're creating your load balancer.", + "type": "integer" + }, + "IpAddressType": { + "description": "The IP address type for the load balancer. The possible values are ipv4 for IPv4 only, and dualstack for IPv4 and IPv6. The default value is dualstack.", + "type": "string" + }, + "AttachedInstances": { + "description": "The names of the instances attached to the load balancer.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "HealthCheckPath": { + "description": "The path you provided to perform the load balancer health check. If you didn't specify a health check path, Lightsail uses the root path of your website (e.g., \"/\").", + "type": "string" + }, + "SessionStickinessEnabled": { + "description": "Configuration option to enable session stickiness.", + "type": "boolean" + }, + "SessionStickinessLBCookieDurationSeconds": { + "description": "Configuration option to adjust session stickiness cookie duration parameter.", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } + } + }, + "additionalProperties": false, + "required": [ + "LoadBalancerName", + "InstancePort" + ], + "readOnlyProperties": [ + "/properties/LoadBalancerArn" + ], + "taggable": true, + "primaryIdentifier": [ + "/properties/LoadBalancerName" + ], + "createOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/InstancePort", + "/properties/IpAddressType" + ], + "handlers": { + "create": { + "permissions": [ + "lightsail:CreateLoadBalancer", + "lightsail:GetLoadBalancer", + "lightsail:GetLoadBalancers", + "lightsail:GetInstance", + "lightsail:AttachInstancesToLoadBalancer", + "lightsail:DetachInstancesFromLoadBalancer", + "lightsail:UpdateLoadBalancerAttribute", + "lightsail:TagResource", + "lightsail:UntagResource" + ] + }, + "read": { + "permissions": [ + "lightsail:GetLoadBalancer", + "lightsail:GetLoadBalancers" + ] + }, + "update": { + "permissions": [ + "lightsail:GetLoadBalancer", + "lightsail:GetLoadBalancers", + "lightsail:GetInstance", + "lightsail:AttachInstancesToLoadBalancer", + "lightsail:DetachInstancesFromLoadBalancer", + "lightsail:UpdateLoadBalancerAttribute", + "lightsail:TagResource", + "lightsail:UntagResource" + ] + }, + "delete": { + "permissions": [ + "lightsail:DeleteLoadBalancer", + "lightsail:GetLoadBalancer", + "lightsail:GetLoadBalancers" + ] + }, + "list": { + "permissions": [ + "lightsail:GetLoadBalancers" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_Lightsail_LoadBalancerTlsCertificate.json b/internal/service/cloudformation/schemas/AWS_Lightsail_LoadBalancerTlsCertificate.json new file mode 100644 index 0000000000..8718098404 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Lightsail_LoadBalancerTlsCertificate.json @@ -0,0 +1,92 @@ +{ + "typeName": "AWS::Lightsail::LoadBalancerTlsCertificate", + "description": "Resource Type definition for AWS::Lightsail::LoadBalancerTlsCertificate", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-lightsail.git", + "properties": { + "LoadBalancerName": { + "description": "The name of your load balancer.", + "type": "string", + "pattern": "" + }, + "CertificateName": { + "description": "The SSL/TLS certificate name.", + "type": "string" + }, + "CertificateDomainName": { + "description": "The domain name (e.g., example.com ) for your SSL/TLS certificate.", + "type": "string" + }, + "CertificateAlternativeNames": { + "description": "An array of strings listing alternative domains and subdomains for your SSL/TLS certificate.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "LoadBalancerTlsCertificateArn": { + "type": "string" + }, + "IsAttached": { + "description": "When true, the SSL/TLS certificate is attached to the Lightsail load balancer.", + "type": "boolean" + }, + "Status": { + "description": "The validation status of the SSL/TLS certificate.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "LoadBalancerName", + "CertificateName", + "CertificateDomainName" + ], + "readOnlyProperties": [ + "/properties/LoadBalancerTlsCertificateArn", + "/properties/Status" + ], + "taggable": true, + "primaryIdentifier": [ + "/properties/CertificateName", + "/properties/LoadBalancerName" + ], + "createOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/CertificateName", + "/properties/CertificateDomainName", + "/properties/CertificateAlternativeNames" + ], + "handlers": { + "create": { + "permissions": [ + "lightsail:CreateLoadBalancerTlsCertificate", + "lightsail:GetLoadBalancerTlsCertificates", + "lightsail:AttachLoadBalancerTlsCertificate" + ] + }, + "read": { + "permissions": [ + "lightsail:GetLoadBalancerTlsCertificates" + ] + }, + "update": { + "permissions": [ + "lightsail:AttachLoadBalancerTlsCertificate", + "lightsail:GetLoadBalancerTlsCertificates" + ] + }, + "delete": { + "permissions": [ + "lightsail:DeleteLoadBalancerTlsCertificate", + "lightsail:GetLoadBalancerTlsCertificates" + ] + }, + "list": { + "permissions": [ + "lightsail:GetLoadBalancerTlsCertificates" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_Route53Resolver_ResolverRuleAssociation.json b/internal/service/cloudformation/schemas/AWS_Route53Resolver_ResolverRuleAssociation.json new file mode 100644 index 0000000000..51d21603da --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Route53Resolver_ResolverRuleAssociation.json @@ -0,0 +1,64 @@ +{ + "typeName": "AWS::Route53Resolver::ResolverRuleAssociation", + "description": "Resource Type definition for AWS::Route53Resolver::ResolverRuleAssociation", + "additionalProperties": false, + "properties": { + "VPCId": { + "description": "The ID of the VPC that you associated the Resolver rule with.", + "type": "string" + }, + "ResolverRuleId": { + "description": "The ID of the Resolver rule that you associated with the VPC that is specified by VPCId.", + "type": "string" + }, + "ResolverRuleAssociationId": { + "description": "Primary Identifier for Resolver Rule Association", + "type": "string" + }, + "Name": { + "description": "The name of an association between a Resolver rule and a VPC.", + "type": "string" + } + }, + "required": [ + "VPCId", + "ResolverRuleId" + ], + "readOnlyProperties": [ + "/properties/ResolverRuleAssociationId" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/VPCId", + "/properties/ResolverRuleId" + ], + "primaryIdentifier": [ + "/properties/ResolverRuleAssociationId" + ], + "taggable": false, + "handlers": { + "create": { + "permissions": [ + "route53resolver:AssociateResolverRule", + "route53resolver:GetResolverRuleAssociation", + "ec2:DescribeVpcs" + ] + }, + "read": { + "permissions": [ + "route53resolver:GetResolverRuleAssociation" + ] + }, + "delete": { + "permissions": [ + "route53resolver:DisassociateResolverRule", + "route53resolver:GetResolverRuleAssociation" + ] + }, + "list": { + "permissions": [ + "route53resolver:ListResolverRuleAssociations" + ] + } + } +} \ No newline at end of file From b9cc2e81743b83960303b3a34ed7661c17b7b8d3 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 13 Jan 2022 16:11:25 -0500 Subject: [PATCH 3/6] 01/12/2022 CloudFormation schemas in us-east-1; Generate Terraform resource schemas. --- .../apigateway/domain_name_resource_gen.go | 18 - ...on_entitlement_association_resource_gen.go | 97 + ...titlement_association_resource_gen_test.go | 22 + .../aws/appstream/entitlement_resource_gen.go | 173 ++ .../entitlement_resource_gen_test.go | 22 + .../aws/autoscaling/warm_pool_resource_gen.go | 25 + internal/aws/ec2/flow_log_resource_gen.go | 4 +- internal/aws/ec2/host_resource_gen.go | 127 + internal/aws/ec2/host_resource_gen_test.go | 22 + ...ghts_access_scope_analysis_resource_gen.go | 230 ++ ...access_scope_analysis_resource_gen_test.go | 22 + ...work_insights_access_scope_resource_gen.go | 982 +++++++ ...insights_access_scope_resource_gen_test.go | 43 + .../forecast/dataset_group_resource_gen.go | 215 ++ .../dataset_group_resource_gen_test.go | 22 + .../aws/inspectorv2/filter_resource_gen.go | 2326 +++++++++++++++++ .../inspectorv2/filter_resource_gen_test.go | 22 + internal/aws/iot/job_template_resource_gen.go | 83 +- .../aws/iotsitewise/gateway_resource_gen.go | 64 +- .../signaling_channel_resource_gen.go | 203 ++ .../signaling_channel_resource_gen_test.go | 43 + .../aws/kinesisvideo/stream_resource_gen.go | 237 ++ .../kinesisvideo/stream_resource_gen_test.go | 43 + internal/aws/lex/bot_alias_resource_gen.go | 11 +- internal/aws/lightsail/alarm_resource_gen.go | 238 ++ .../aws/lightsail/alarm_resource_gen_test.go | 22 + internal/aws/lightsail/bucket_resource_gen.go | 281 ++ .../aws/lightsail/bucket_resource_gen_test.go | 22 + .../lightsail/load_balancer_resource_gen.go | 233 ++ .../load_balancer_resource_gen_test.go | 22 + ...d_balancer_tls_certificate_resource_gen.go | 166 ++ ...ancer_tls_certificate_resource_gen_test.go | 22 + internal/aws/location/tracker_resource_gen.go | 4 +- .../launch_profile_resource_gen.go | 183 +- .../event_subscription_resource_gen.go | 14 +- .../resolver_rule_association_resource_gen.go | 120 + ...lver_rule_association_resource_gen_test.go | 22 + internal/aws/rum/app_monitor_resource_gen.go | 6 +- .../aws/rum/app_monitor_resource_gen_test.go | 27 +- .../aws/sagemaker/pipeline_resource_gen.go | 34 + .../scheduled_query_resource_gen.go | 198 +- 41 files changed, 6460 insertions(+), 210 deletions(-) create mode 100644 internal/aws/appstream/application_entitlement_association_resource_gen.go create mode 100644 internal/aws/appstream/application_entitlement_association_resource_gen_test.go create mode 100644 internal/aws/appstream/entitlement_resource_gen.go create mode 100644 internal/aws/appstream/entitlement_resource_gen_test.go create mode 100644 internal/aws/ec2/host_resource_gen.go create mode 100644 internal/aws/ec2/host_resource_gen_test.go create mode 100644 internal/aws/ec2/network_insights_access_scope_analysis_resource_gen.go create mode 100644 internal/aws/ec2/network_insights_access_scope_analysis_resource_gen_test.go create mode 100644 internal/aws/ec2/network_insights_access_scope_resource_gen.go create mode 100644 internal/aws/ec2/network_insights_access_scope_resource_gen_test.go create mode 100644 internal/aws/forecast/dataset_group_resource_gen.go create mode 100644 internal/aws/forecast/dataset_group_resource_gen_test.go create mode 100644 internal/aws/inspectorv2/filter_resource_gen.go create mode 100644 internal/aws/inspectorv2/filter_resource_gen_test.go create mode 100644 internal/aws/kinesisvideo/signaling_channel_resource_gen.go create mode 100644 internal/aws/kinesisvideo/signaling_channel_resource_gen_test.go create mode 100644 internal/aws/kinesisvideo/stream_resource_gen.go create mode 100644 internal/aws/kinesisvideo/stream_resource_gen_test.go create mode 100644 internal/aws/lightsail/alarm_resource_gen.go create mode 100644 internal/aws/lightsail/alarm_resource_gen_test.go create mode 100644 internal/aws/lightsail/bucket_resource_gen.go create mode 100644 internal/aws/lightsail/bucket_resource_gen_test.go create mode 100644 internal/aws/lightsail/load_balancer_resource_gen.go create mode 100644 internal/aws/lightsail/load_balancer_resource_gen_test.go create mode 100644 internal/aws/lightsail/load_balancer_tls_certificate_resource_gen.go create mode 100644 internal/aws/lightsail/load_balancer_tls_certificate_resource_gen_test.go create mode 100644 internal/aws/route53resolver/resolver_rule_association_resource_gen.go create mode 100644 internal/aws/route53resolver/resolver_rule_association_resource_gen_test.go diff --git a/internal/aws/apigateway/domain_name_resource_gen.go b/internal/aws/apigateway/domain_name_resource_gen.go index 0815c99bfe..b9cf0fbbdd 100644 --- a/internal/aws/apigateway/domain_name_resource_gen.go +++ b/internal/aws/apigateway/domain_name_resource_gen.go @@ -98,12 +98,6 @@ func domainNameResourceType(ctx context.Context) (tfsdk.ResourceType, error) { // { // "additionalProperties": false, // "properties": { - // "CertificateRevocationCheckType": { - // "type": "string" - // }, - // "CertificateRevocationSourceUri": { - // "type": "string" - // }, // "TruststoreUri": { // "type": "string" // }, @@ -115,16 +109,6 @@ func domainNameResourceType(ctx context.Context) (tfsdk.ResourceType, error) { // } Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ - "certificate_revocation_check_type": { - // Property: CertificateRevocationCheckType - Type: types.StringType, - Optional: true, - }, - "certificate_revocation_source_uri": { - // Property: CertificateRevocationSourceUri - Type: types.StringType, - Optional: true, - }, "truststore_uri": { // Property: TruststoreUri Type: types.StringType, @@ -249,8 +233,6 @@ func domainNameResourceType(ctx context.Context) (tfsdk.ResourceType, error) { opts = opts.WithSyntheticIDAttribute(true) opts = opts.WithAttributeNameMap(map[string]string{ "certificate_arn": "CertificateArn", - "certificate_revocation_check_type": "CertificateRevocationCheckType", - "certificate_revocation_source_uri": "CertificateRevocationSourceUri", "distribution_domain_name": "DistributionDomainName", "distribution_hosted_zone_id": "DistributionHostedZoneId", "domain_name": "DomainName", diff --git a/internal/aws/appstream/application_entitlement_association_resource_gen.go b/internal/aws/appstream/application_entitlement_association_resource_gen.go new file mode 100644 index 0000000000..3e105d5299 --- /dev/null +++ b/internal/aws/appstream/application_entitlement_association_resource_gen.go @@ -0,0 +1,97 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package appstream + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddResourceTypeFactory("awscc_appstream_application_entitlement_association", applicationEntitlementAssociationResourceType) +} + +// applicationEntitlementAssociationResourceType returns the Terraform awscc_appstream_application_entitlement_association resource type. +// This Terraform resource type corresponds to the CloudFormation AWS::AppStream::ApplicationEntitlementAssociation resource type. +func applicationEntitlementAssociationResourceType(ctx context.Context) (tfsdk.ResourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "application_identifier": { + // Property: ApplicationIdentifier + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "entitlement_name": { + // Property: EntitlementName + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "stack_name": { + // Property: StackName + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + } + + schema := tfsdk.Schema{ + Description: "Resource Type definition for AWS::AppStream::ApplicationEntitlementAssociation", + Version: 1, + Attributes: attributes, + } + + var opts ResourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::AppStream::ApplicationEntitlementAssociation").WithTerraformTypeName("awscc_appstream_application_entitlement_association") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "application_identifier": "ApplicationIdentifier", + "entitlement_name": "EntitlementName", + "stack_name": "StackName", + }) + + opts = opts.IsImmutableType(true) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + resourceType, err := NewResourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return resourceType, nil +} diff --git a/internal/aws/appstream/application_entitlement_association_resource_gen_test.go b/internal/aws/appstream/application_entitlement_association_resource_gen_test.go new file mode 100644 index 0000000000..655e4adcff --- /dev/null +++ b/internal/aws/appstream/application_entitlement_association_resource_gen_test.go @@ -0,0 +1,22 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package appstream_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSAppStreamApplicationEntitlementAssociation_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::AppStream::ApplicationEntitlementAssociation", "awscc_appstream_application_entitlement_association", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/appstream/entitlement_resource_gen.go b/internal/aws/appstream/entitlement_resource_gen.go new file mode 100644 index 0000000000..18aa6f8c9b --- /dev/null +++ b/internal/aws/appstream/entitlement_resource_gen.go @@ -0,0 +1,173 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package appstream + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddResourceTypeFactory("awscc_appstream_entitlement", entitlementResourceType) +} + +// entitlementResourceType returns the Terraform awscc_appstream_entitlement resource type. +// This Terraform resource type corresponds to the CloudFormation AWS::AppStream::Entitlement resource type. +func entitlementResourceType(ctx context.Context) (tfsdk.ResourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "app_visibility": { + // Property: AppVisibility + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Required: true, + }, + "attributes": { + // Property: Attributes + // CloudFormation resource type schema: + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + Attributes: tfsdk.SetNestedAttributes( + map[string]tfsdk.Attribute{ + "name": { + // Property: Name + Type: types.StringType, + Required: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + }, + }, + tfsdk.SetNestedAttributesOptions{}, + ), + Required: true, + }, + "created_time": { + // Property: CreatedTime + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "description": { + // Property: Description + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Optional: true, + }, + "last_modified_time": { + // Property: LastModifiedTime + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "name": { + // Property: Name + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "stack_name": { + // Property: StackName + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + } + + schema := tfsdk.Schema{ + Description: "Resource Type definition for AWS::AppStream::Entitlement", + Version: 1, + Attributes: attributes, + } + + var opts ResourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::AppStream::Entitlement").WithTerraformTypeName("awscc_appstream_entitlement") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "app_visibility": "AppVisibility", + "attributes": "Attributes", + "created_time": "CreatedTime", + "description": "Description", + "last_modified_time": "LastModifiedTime", + "name": "Name", + "stack_name": "StackName", + "value": "Value", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + resourceType, err := NewResourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return resourceType, nil +} diff --git a/internal/aws/appstream/entitlement_resource_gen_test.go b/internal/aws/appstream/entitlement_resource_gen_test.go new file mode 100644 index 0000000000..4958e0c436 --- /dev/null +++ b/internal/aws/appstream/entitlement_resource_gen_test.go @@ -0,0 +1,22 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package appstream_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSAppStreamEntitlement_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::AppStream::Entitlement", "awscc_appstream_entitlement", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/autoscaling/warm_pool_resource_gen.go b/internal/aws/autoscaling/warm_pool_resource_gen.go index d3a8718ca8..5b58f0b2f4 100644 --- a/internal/aws/autoscaling/warm_pool_resource_gen.go +++ b/internal/aws/autoscaling/warm_pool_resource_gen.go @@ -31,6 +31,29 @@ func warmPoolResourceType(ctx context.Context) (tfsdk.ResourceType, error) { tfsdk.RequiresReplace(), }, }, + "instance_reuse_policy": { + // Property: InstanceReusePolicy + // CloudFormation resource type schema: + // { + // "additionalProperties": false, + // "properties": { + // "ReuseOnScaleIn": { + // "type": "boolean" + // } + // }, + // "type": "object" + // } + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "reuse_on_scale_in": { + // Property: ReuseOnScaleIn + Type: types.BoolType, + Optional: true, + }, + }, + ), + Optional: true, + }, "max_group_prepared_capacity": { // Property: MaxGroupPreparedCapacity // CloudFormation resource type schema: @@ -82,9 +105,11 @@ func warmPoolResourceType(ctx context.Context) (tfsdk.ResourceType, error) { opts = opts.WithSyntheticIDAttribute(true) opts = opts.WithAttributeNameMap(map[string]string{ "auto_scaling_group_name": "AutoScalingGroupName", + "instance_reuse_policy": "InstanceReusePolicy", "max_group_prepared_capacity": "MaxGroupPreparedCapacity", "min_size": "MinSize", "pool_state": "PoolState", + "reuse_on_scale_in": "ReuseOnScaleIn", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/ec2/flow_log_resource_gen.go b/internal/aws/ec2/flow_log_resource_gen.go index 41e26caabd..36da7e3ab0 100644 --- a/internal/aws/ec2/flow_log_resource_gen.go +++ b/internal/aws/ec2/flow_log_resource_gen.go @@ -57,7 +57,7 @@ func flowLogResourceType(ctx context.Context) (tfsdk.ResourceType, error) { // } // }, // "required": [ - // "FileDestination", + // "FileFormat", // "HiveCompatiblePartitions", // "PerHourPartition" // ], @@ -68,7 +68,7 @@ func flowLogResourceType(ctx context.Context) (tfsdk.ResourceType, error) { "file_format": { // Property: FileFormat Type: types.StringType, - Optional: true, + Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "plain-text", diff --git a/internal/aws/ec2/host_resource_gen.go b/internal/aws/ec2/host_resource_gen.go new file mode 100644 index 0000000000..b07fa7a5e8 --- /dev/null +++ b/internal/aws/ec2/host_resource_gen.go @@ -0,0 +1,127 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddResourceTypeFactory("awscc_ec2_host", hostResourceType) +} + +// hostResourceType returns the Terraform awscc_ec2_host resource type. +// This Terraform resource type corresponds to the CloudFormation AWS::EC2::Host resource type. +func hostResourceType(ctx context.Context) (tfsdk.ResourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "auto_placement": { + // Property: AutoPlacement + // CloudFormation resource type schema: + // { + // "description": "Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID.", + // "type": "string" + // } + Description: "Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID.", + Type: types.StringType, + Optional: true, + }, + "availability_zone": { + // Property: AvailabilityZone + // CloudFormation resource type schema: + // { + // "description": "The Availability Zone in which to allocate the Dedicated Host.", + // "type": "string" + // } + Description: "The Availability Zone in which to allocate the Dedicated Host.", + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "host_id": { + // Property: HostId + // CloudFormation resource type schema: + // { + // "description": "Id of the host created.", + // "type": "string" + // } + Description: "Id of the host created.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "host_recovery": { + // Property: HostRecovery + // CloudFormation resource type schema: + // { + // "description": "Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default.", + // "type": "string" + // } + Description: "Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default.", + Type: types.StringType, + Optional: true, + }, + "instance_type": { + // Property: InstanceType + // CloudFormation resource type schema: + // { + // "description": "Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.", + // "type": "string" + // } + Description: "Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.", + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + } + + schema := tfsdk.Schema{ + Description: "Resource Type definition for AWS::EC2::Host", + Version: 1, + Attributes: attributes, + } + + var opts ResourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::Host").WithTerraformTypeName("awscc_ec2_host") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "auto_placement": "AutoPlacement", + "availability_zone": "AvailabilityZone", + "host_id": "HostId", + "host_recovery": "HostRecovery", + "instance_type": "InstanceType", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + resourceType, err := NewResourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return resourceType, nil +} diff --git a/internal/aws/ec2/host_resource_gen_test.go b/internal/aws/ec2/host_resource_gen_test.go new file mode 100644 index 0000000000..47fc1acf0a --- /dev/null +++ b/internal/aws/ec2/host_resource_gen_test.go @@ -0,0 +1,22 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2Host_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::Host", "awscc_ec2_host", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/ec2/network_insights_access_scope_analysis_resource_gen.go b/internal/aws/ec2/network_insights_access_scope_analysis_resource_gen.go new file mode 100644 index 0000000000..a716f9c0f2 --- /dev/null +++ b/internal/aws/ec2/network_insights_access_scope_analysis_resource_gen.go @@ -0,0 +1,230 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddResourceTypeFactory("awscc_ec2_network_insights_access_scope_analysis", networkInsightsAccessScopeAnalysisResourceType) +} + +// networkInsightsAccessScopeAnalysisResourceType returns the Terraform awscc_ec2_network_insights_access_scope_analysis resource type. +// This Terraform resource type corresponds to the CloudFormation AWS::EC2::NetworkInsightsAccessScopeAnalysis resource type. +func networkInsightsAccessScopeAnalysisResourceType(ctx context.Context) (tfsdk.ResourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "analyzed_eni_count": { + // Property: AnalyzedEniCount + // CloudFormation resource type schema: + // { + // "type": "integer" + // } + Type: types.NumberType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "end_date": { + // Property: EndDate + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "findings_found": { + // Property: FindingsFound + // CloudFormation resource type schema: + // { + // "enum": [ + // "true", + // "false", + // "unknown" + // ], + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "network_insights_access_scope_analysis_arn": { + // Property: NetworkInsightsAccessScopeAnalysisArn + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "network_insights_access_scope_analysis_id": { + // Property: NetworkInsightsAccessScopeAnalysisId + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "network_insights_access_scope_id": { + // Property: NetworkInsightsAccessScopeId + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "start_date": { + // Property: StartDate + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "status": { + // Property: Status + // CloudFormation resource type schema: + // { + // "enum": [ + // "running", + // "failed", + // "succeeded" + // ], + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "status_message": { + // Property: StatusMessage + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "tags": { + // Property: Tags + // CloudFormation resource type schema: + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // } + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "key": { + // Property: Key + Type: types.StringType, + Required: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Optional: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + } + + schema := tfsdk.Schema{ + Description: "Resource schema for AWS::EC2::NetworkInsightsAccessScopeAnalysis", + Version: 1, + Attributes: attributes, + } + + var opts ResourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::NetworkInsightsAccessScopeAnalysis").WithTerraformTypeName("awscc_ec2_network_insights_access_scope_analysis") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "analyzed_eni_count": "AnalyzedEniCount", + "end_date": "EndDate", + "findings_found": "FindingsFound", + "key": "Key", + "network_insights_access_scope_analysis_arn": "NetworkInsightsAccessScopeAnalysisArn", + "network_insights_access_scope_analysis_id": "NetworkInsightsAccessScopeAnalysisId", + "network_insights_access_scope_id": "NetworkInsightsAccessScopeId", + "start_date": "StartDate", + "status": "Status", + "status_message": "StatusMessage", + "tags": "Tags", + "value": "Value", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + resourceType, err := NewResourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return resourceType, nil +} diff --git a/internal/aws/ec2/network_insights_access_scope_analysis_resource_gen_test.go b/internal/aws/ec2/network_insights_access_scope_analysis_resource_gen_test.go new file mode 100644 index 0000000000..4432c25731 --- /dev/null +++ b/internal/aws/ec2/network_insights_access_scope_analysis_resource_gen_test.go @@ -0,0 +1,22 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2NetworkInsightsAccessScopeAnalysis_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::NetworkInsightsAccessScopeAnalysis", "awscc_ec2_network_insights_access_scope_analysis", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/ec2/network_insights_access_scope_resource_gen.go b/internal/aws/ec2/network_insights_access_scope_resource_gen.go new file mode 100644 index 0000000000..0c58512235 --- /dev/null +++ b/internal/aws/ec2/network_insights_access_scope_resource_gen.go @@ -0,0 +1,982 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "github.com/hashicorp/terraform-plugin-framework/types" + . "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + "github.com/hashicorp/terraform-provider-awscc/internal/validate" +) + +func init() { + registry.AddResourceTypeFactory("awscc_ec2_network_insights_access_scope", networkInsightsAccessScopeResourceType) +} + +// networkInsightsAccessScopeResourceType returns the Terraform awscc_ec2_network_insights_access_scope resource type. +// This Terraform resource type corresponds to the CloudFormation AWS::EC2::NetworkInsightsAccessScope resource type. +func networkInsightsAccessScopeResourceType(ctx context.Context) (tfsdk.ResourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "created_date": { + // Property: CreatedDate + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "exclude_paths": { + // Property: ExcludePaths + // CloudFormation resource type schema: + // { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Destination": { + // "additionalProperties": false, + // "properties": { + // "PacketHeaderStatement": { + // "additionalProperties": false, + // "properties": { + // "DestinationAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Protocols": { + // "insertionOrder": true, + // "items": { + // "enum": [ + // "tcp", + // "udp" + // ], + // "type": "string" + // }, + // "type": "array" + // }, + // "SourceAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "ResourceStatement": { + // "additionalProperties": false, + // "properties": { + // "ResourceTypes": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Resources": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Source": { + // "additionalProperties": false, + // "properties": { + // "PacketHeaderStatement": { + // "additionalProperties": false, + // "properties": { + // "DestinationAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Protocols": { + // "insertionOrder": true, + // "items": { + // "enum": [ + // "tcp", + // "udp" + // ], + // "type": "string" + // }, + // "type": "array" + // }, + // "SourceAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "ResourceStatement": { + // "additionalProperties": false, + // "properties": { + // "ResourceTypes": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Resources": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ThroughResources": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ResourceStatement": { + // "additionalProperties": false, + // "properties": { + // "ResourceTypes": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Resources": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "destination": { + // Property: Destination + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "packet_header_statement": { + // Property: PacketHeaderStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "destination_addresses": { + // Property: DestinationAddresses + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "destination_ports": { + // Property: DestinationPorts + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "destination_prefix_lists": { + // Property: DestinationPrefixLists + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "protocols": { + // Property: Protocols + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayForEach(validate.StringInSlice([]string{ + "tcp", + "udp", + })), + }, + }, + "source_addresses": { + // Property: SourceAddresses + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "source_ports": { + // Property: SourcePorts + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "source_prefix_lists": { + // Property: SourcePrefixLists + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + }, + ), + Optional: true, + }, + "resource_statement": { + // Property: ResourceStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_types": { + // Property: ResourceTypes + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "resources": { + // Property: Resources + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + }, + ), + Optional: true, + }, + }, + ), + Optional: true, + }, + "source": { + // Property: Source + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "packet_header_statement": { + // Property: PacketHeaderStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "destination_addresses": { + // Property: DestinationAddresses + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "destination_ports": { + // Property: DestinationPorts + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "destination_prefix_lists": { + // Property: DestinationPrefixLists + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "protocols": { + // Property: Protocols + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayForEach(validate.StringInSlice([]string{ + "tcp", + "udp", + })), + }, + }, + "source_addresses": { + // Property: SourceAddresses + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "source_ports": { + // Property: SourcePorts + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "source_prefix_lists": { + // Property: SourcePrefixLists + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + }, + ), + Optional: true, + }, + "resource_statement": { + // Property: ResourceStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_types": { + // Property: ResourceTypes + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "resources": { + // Property: Resources + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + }, + ), + Optional: true, + }, + }, + ), + Optional: true, + }, + "through_resources": { + // Property: ThroughResources + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_statement": { + // Property: ResourceStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_types": { + // Property: ResourceTypes + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "resources": { + // Property: Resources + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + }, + ), + Optional: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + tfsdk.RequiresReplace(), + }, + // ExcludePaths is a write-only property. + }, + "match_paths": { + // Property: MatchPaths + // CloudFormation resource type schema: + // { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Destination": { + // "additionalProperties": false, + // "properties": { + // "PacketHeaderStatement": { + // "additionalProperties": false, + // "properties": { + // "DestinationAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Protocols": { + // "insertionOrder": true, + // "items": { + // "enum": [ + // "tcp", + // "udp" + // ], + // "type": "string" + // }, + // "type": "array" + // }, + // "SourceAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "ResourceStatement": { + // "additionalProperties": false, + // "properties": { + // "ResourceTypes": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Resources": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Source": { + // "additionalProperties": false, + // "properties": { + // "PacketHeaderStatement": { + // "additionalProperties": false, + // "properties": { + // "DestinationAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Protocols": { + // "insertionOrder": true, + // "items": { + // "enum": [ + // "tcp", + // "udp" + // ], + // "type": "string" + // }, + // "type": "array" + // }, + // "SourceAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "ResourceStatement": { + // "additionalProperties": false, + // "properties": { + // "ResourceTypes": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Resources": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ThroughResources": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ResourceStatement": { + // "additionalProperties": false, + // "properties": { + // "ResourceTypes": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Resources": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "destination": { + // Property: Destination + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "packet_header_statement": { + // Property: PacketHeaderStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "destination_addresses": { + // Property: DestinationAddresses + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "destination_ports": { + // Property: DestinationPorts + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "destination_prefix_lists": { + // Property: DestinationPrefixLists + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "protocols": { + // Property: Protocols + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayForEach(validate.StringInSlice([]string{ + "tcp", + "udp", + })), + }, + }, + "source_addresses": { + // Property: SourceAddresses + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "source_ports": { + // Property: SourcePorts + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "source_prefix_lists": { + // Property: SourcePrefixLists + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + }, + ), + Optional: true, + }, + "resource_statement": { + // Property: ResourceStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_types": { + // Property: ResourceTypes + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "resources": { + // Property: Resources + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + }, + ), + Optional: true, + }, + }, + ), + Optional: true, + }, + "source": { + // Property: Source + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "packet_header_statement": { + // Property: PacketHeaderStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "destination_addresses": { + // Property: DestinationAddresses + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "destination_ports": { + // Property: DestinationPorts + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "destination_prefix_lists": { + // Property: DestinationPrefixLists + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "protocols": { + // Property: Protocols + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayForEach(validate.StringInSlice([]string{ + "tcp", + "udp", + })), + }, + }, + "source_addresses": { + // Property: SourceAddresses + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "source_ports": { + // Property: SourcePorts + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "source_prefix_lists": { + // Property: SourcePrefixLists + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + }, + ), + Optional: true, + }, + "resource_statement": { + // Property: ResourceStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_types": { + // Property: ResourceTypes + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "resources": { + // Property: Resources + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + }, + ), + Optional: true, + }, + }, + ), + Optional: true, + }, + "through_resources": { + // Property: ThroughResources + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_statement": { + // Property: ResourceStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_types": { + // Property: ResourceTypes + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + "resources": { + // Property: Resources + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + }, + }, + ), + Optional: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + tfsdk.RequiresReplace(), + }, + // MatchPaths is a write-only property. + }, + "network_insights_access_scope_arn": { + // Property: NetworkInsightsAccessScopeArn + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "network_insights_access_scope_id": { + // Property: NetworkInsightsAccessScopeId + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "tags": { + // Property: Tags + // CloudFormation resource type schema: + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // } + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "key": { + // Property: Key + Type: types.StringType, + Required: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Optional: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "updated_date": { + // Property: UpdatedDate + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + } + + schema := tfsdk.Schema{ + Description: "Resource schema for AWS::EC2::NetworkInsightsAccessScope", + Version: 1, + Attributes: attributes, + } + + var opts ResourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::NetworkInsightsAccessScope").WithTerraformTypeName("awscc_ec2_network_insights_access_scope") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "created_date": "CreatedDate", + "destination": "Destination", + "destination_addresses": "DestinationAddresses", + "destination_ports": "DestinationPorts", + "destination_prefix_lists": "DestinationPrefixLists", + "exclude_paths": "ExcludePaths", + "key": "Key", + "match_paths": "MatchPaths", + "network_insights_access_scope_arn": "NetworkInsightsAccessScopeArn", + "network_insights_access_scope_id": "NetworkInsightsAccessScopeId", + "packet_header_statement": "PacketHeaderStatement", + "protocols": "Protocols", + "resource_statement": "ResourceStatement", + "resource_types": "ResourceTypes", + "resources": "Resources", + "source": "Source", + "source_addresses": "SourceAddresses", + "source_ports": "SourcePorts", + "source_prefix_lists": "SourcePrefixLists", + "tags": "Tags", + "through_resources": "ThroughResources", + "updated_date": "UpdatedDate", + "value": "Value", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/MatchPaths", + "/properties/ExcludePaths", + }) + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + resourceType, err := NewResourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return resourceType, nil +} diff --git a/internal/aws/ec2/network_insights_access_scope_resource_gen_test.go b/internal/aws/ec2/network_insights_access_scope_resource_gen_test.go new file mode 100644 index 0000000000..4578d21be1 --- /dev/null +++ b/internal/aws/ec2/network_insights_access_scope_resource_gen_test.go @@ -0,0 +1,43 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2NetworkInsightsAccessScope_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::NetworkInsightsAccessScope", "awscc_ec2_network_insights_access_scope", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSEC2NetworkInsightsAccessScope_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::NetworkInsightsAccessScope", "awscc_ec2_network_insights_access_scope", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} diff --git a/internal/aws/forecast/dataset_group_resource_gen.go b/internal/aws/forecast/dataset_group_resource_gen.go new file mode 100644 index 0000000000..a25c7515bb --- /dev/null +++ b/internal/aws/forecast/dataset_group_resource_gen.go @@ -0,0 +1,215 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package forecast + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "github.com/hashicorp/terraform-plugin-framework/types" + . "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + "github.com/hashicorp/terraform-provider-awscc/internal/validate" +) + +func init() { + registry.AddResourceTypeFactory("awscc_forecast_dataset_group", datasetGroupResourceType) +} + +// datasetGroupResourceType returns the Terraform awscc_forecast_dataset_group resource type. +// This Terraform resource type corresponds to the CloudFormation AWS::Forecast::DatasetGroup resource type. +func datasetGroupResourceType(ctx context.Context) (tfsdk.ResourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "dataset_arns": { + // Property: DatasetArns + // CloudFormation resource type schema: + // { + // "description": "An array of Amazon Resource Names (ARNs) of the datasets that you want to include in the dataset group.", + // "insertionOrder": true, + // "items": { + // "maxLength": 256, + // "pattern": "", + // "type": "string" + // }, + // "type": "array" + // } + Description: "An array of Amazon Resource Names (ARNs) of the datasets that you want to include in the dataset group.", + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayForEach(validate.StringLenAtMost(256)), + }, + }, + "dataset_group_arn": { + // Property: DatasetGroupArn + // CloudFormation resource type schema: + // { + // "description": "The Amazon Resource Name (ARN) of the dataset group to delete.", + // "maxLength": 256, + // "pattern": "", + // "type": "string" + // } + Description: "The Amazon Resource Name (ARN) of the dataset group to delete.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "dataset_group_name": { + // Property: DatasetGroupName + // CloudFormation resource type schema: + // { + // "description": "A name for the dataset group.", + // "maxLength": 63, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + Description: "A name for the dataset group.", + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 63), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "domain": { + // Property: Domain + // CloudFormation resource type schema: + // { + // "description": "The domain associated with the dataset group. When you add a dataset to a dataset group, this value and the value specified for the Domain parameter of the CreateDataset operation must match.", + // "enum": [ + // "RETAIL", + // "CUSTOM", + // "INVENTORY_PLANNING", + // "EC2_CAPACITY", + // "WORK_FORCE", + // "WEB_TRAFFIC", + // "METRICS" + // ], + // "type": "string" + // } + Description: "The domain associated with the dataset group. When you add a dataset to a dataset group, this value and the value specified for the Domain parameter of the CreateDataset operation must match.", + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "RETAIL", + "CUSTOM", + "INVENTORY_PLANNING", + "EC2_CAPACITY", + "WORK_FORCE", + "WEB_TRAFFIC", + "METRICS", + }), + }, + }, + "tags": { + // Property: Tags + // CloudFormation resource type schema: + // { + // "description": "The tags of Application Insights application.", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 200, + // "minItems": 0, + // "type": "array" + // } + Description: "The tags of Application Insights application.", + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "key": { + // Property: Key + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 128), + }, + }, + "value": { + // Property: Value + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(0, 256), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(0, 200), + }, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + } + + schema := tfsdk.Schema{ + Description: "Represents a dataset group that holds a collection of related datasets", + Version: 1, + Attributes: attributes, + } + + var opts ResourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Forecast::DatasetGroup").WithTerraformTypeName("awscc_forecast_dataset_group") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "dataset_arns": "DatasetArns", + "dataset_group_arn": "DatasetGroupArn", + "dataset_group_name": "DatasetGroupName", + "domain": "Domain", + "key": "Key", + "tags": "Tags", + "value": "Value", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + resourceType, err := NewResourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return resourceType, nil +} diff --git a/internal/aws/forecast/dataset_group_resource_gen_test.go b/internal/aws/forecast/dataset_group_resource_gen_test.go new file mode 100644 index 0000000000..6e6e7b0e78 --- /dev/null +++ b/internal/aws/forecast/dataset_group_resource_gen_test.go @@ -0,0 +1,22 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package forecast_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSForecastDatasetGroup_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Forecast::DatasetGroup", "awscc_forecast_dataset_group", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/inspectorv2/filter_resource_gen.go b/internal/aws/inspectorv2/filter_resource_gen.go new file mode 100644 index 0000000000..3f536bf4fc --- /dev/null +++ b/internal/aws/inspectorv2/filter_resource_gen.go @@ -0,0 +1,2326 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package inspectorv2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "github.com/hashicorp/terraform-plugin-framework/types" + . "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + "github.com/hashicorp/terraform-provider-awscc/internal/validate" +) + +func init() { + registry.AddResourceTypeFactory("awscc_inspectorv2_filter", filterResourceType) +} + +// filterResourceType returns the Terraform awscc_inspectorv2_filter resource type. +// This Terraform resource type corresponds to the CloudFormation AWS::InspectorV2::Filter resource type. +func filterResourceType(ctx context.Context) (tfsdk.ResourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "arn": { + // Property: Arn + // CloudFormation resource type schema: + // { + // "description": "Findings filter ARN.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // } + Description: "Findings filter ARN.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "description": { + // Property: Description + // CloudFormation resource type schema: + // { + // "description": "Findings filter description.", + // "maxLength": 512, + // "minLength": 1, + // "type": "string" + // } + Description: "Findings filter description.", + Type: types.StringType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 512), + }, + }, + "filter_action": { + // Property: FilterAction + // CloudFormation resource type schema: + // { + // "description": "Findings filter action.", + // "enum": [ + // "NONE", + // "SUPPRESS" + // ], + // "type": "string" + // } + Description: "Findings filter action.", + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "NONE", + "SUPPRESS", + }), + }, + }, + "filter_criteria": { + // Property: FilterCriteria + // CloudFormation resource type schema: + // { + // "additionalProperties": false, + // "description": "Findings filter criteria.", + // "properties": { + // "AwsAccountId": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "ComponentId": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "ComponentType": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "Ec2InstanceImageId": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "Ec2InstanceSubnetId": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "Ec2InstanceVpcId": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "EcrImageArchitecture": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "EcrImageHash": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "EcrImagePushedAt": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EndInclusive": { + // "format": "int64", + // "type": "integer" + // }, + // "StartInclusive": { + // "format": "int64", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "EcrImageRegistry": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "EcrImageRepositoryName": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "EcrImageTags": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "FindingArn": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "FindingStatus": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "FindingType": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "FirstObservedAt": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EndInclusive": { + // "format": "int64", + // "type": "integer" + // }, + // "StartInclusive": { + // "format": "int64", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "InspectorScore": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "LowerInclusive": { + // "type": "number" + // }, + // "UpperInclusive": { + // "type": "number" + // } + // }, + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "LastObservedAt": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EndInclusive": { + // "format": "int64", + // "type": "integer" + // }, + // "StartInclusive": { + // "format": "int64", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "NetworkProtocol": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "PortRange": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "BeginInclusive": { + // "maximum": 65535, + // "minimum": 0, + // "type": "integer" + // }, + // "EndInclusive": { + // "maximum": 65535, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "RelatedVulnerabilities": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "ResourceId": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "ResourceTags": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS" + // ], + // "type": "string" + // }, + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "ResourceType": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "Severity": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "Title": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "UpdatedAt": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EndInclusive": { + // "format": "int64", + // "type": "integer" + // }, + // "StartInclusive": { + // "format": "int64", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "VendorSeverity": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "VulnerabilityId": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "VulnerabilitySource": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "VulnerablePackages": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Architecture": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "Epoch": { + // "additionalProperties": false, + // "properties": { + // "LowerInclusive": { + // "type": "number" + // }, + // "UpperInclusive": { + // "type": "number" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "Release": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "SourceLayerHash": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "Version": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // } + // }, + // "type": "object" + // } + Description: "Findings filter criteria.", + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "aws_account_id": { + // Property: AwsAccountId + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "component_id": { + // Property: ComponentId + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "component_type": { + // Property: ComponentType + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "ec_2_instance_image_id": { + // Property: Ec2InstanceImageId + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "ec_2_instance_subnet_id": { + // Property: Ec2InstanceSubnetId + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "ec_2_instance_vpc_id": { + // Property: Ec2InstanceVpcId + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "ecr_image_architecture": { + // Property: EcrImageArchitecture + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "ecr_image_hash": { + // Property: EcrImageHash + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "ecr_image_pushed_at": { + // Property: EcrImagePushedAt + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "end_inclusive": { + // Property: EndInclusive + Type: types.NumberType, + Optional: true, + }, + "start_inclusive": { + // Property: StartInclusive + Type: types.NumberType, + Optional: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "ecr_image_registry": { + // Property: EcrImageRegistry + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "ecr_image_repository_name": { + // Property: EcrImageRepositoryName + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "ecr_image_tags": { + // Property: EcrImageTags + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "finding_arn": { + // Property: FindingArn + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "finding_status": { + // Property: FindingStatus + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "finding_type": { + // Property: FindingType + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "first_observed_at": { + // Property: FirstObservedAt + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "end_inclusive": { + // Property: EndInclusive + Type: types.NumberType, + Optional: true, + }, + "start_inclusive": { + // Property: StartInclusive + Type: types.NumberType, + Optional: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "inspector_score": { + // Property: InspectorScore + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "lower_inclusive": { + // Property: LowerInclusive + Type: types.NumberType, + Optional: true, + }, + "upper_inclusive": { + // Property: UpperInclusive + Type: types.NumberType, + Optional: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "last_observed_at": { + // Property: LastObservedAt + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "end_inclusive": { + // Property: EndInclusive + Type: types.NumberType, + Optional: true, + }, + "start_inclusive": { + // Property: StartInclusive + Type: types.NumberType, + Optional: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "network_protocol": { + // Property: NetworkProtocol + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "port_range": { + // Property: PortRange + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "begin_inclusive": { + // Property: BeginInclusive + Type: types.NumberType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.IntBetween(0, 65535), + }, + }, + "end_inclusive": { + // Property: EndInclusive + Type: types.NumberType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.IntBetween(0, 65535), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "related_vulnerabilities": { + // Property: RelatedVulnerabilities + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "resource_id": { + // Property: ResourceId + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "resource_tags": { + // Property: ResourceTags + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + }), + }, + }, + "key": { + // Property: Key + Type: types.StringType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 128), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(0, 256), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "resource_type": { + // Property: ResourceType + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "severity": { + // Property: Severity + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "title": { + // Property: Title + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "updated_at": { + // Property: UpdatedAt + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "end_inclusive": { + // Property: EndInclusive + Type: types.NumberType, + Optional: true, + }, + "start_inclusive": { + // Property: StartInclusive + Type: types.NumberType, + Optional: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "vendor_severity": { + // Property: VendorSeverity + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "vulnerability_id": { + // Property: VulnerabilityId + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "vulnerability_source": { + // Property: VulnerabilitySource + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "vulnerable_packages": { + // Property: VulnerablePackages + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "architecture": { + // Property: Architecture + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + ), + Optional: true, + }, + "epoch": { + // Property: Epoch + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "lower_inclusive": { + // Property: LowerInclusive + Type: types.NumberType, + Optional: true, + }, + "upper_inclusive": { + // Property: UpperInclusive + Type: types.NumberType, + Optional: true, + }, + }, + ), + Optional: true, + }, + "name": { + // Property: Name + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + ), + Optional: true, + }, + "release": { + // Property: Release + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + ), + Optional: true, + }, + "source_layer_hash": { + // Property: SourceLayerHash + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + ), + Optional: true, + }, + "version": { + // Property: Version + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "EQUALS", + "PREFIX", + "NOT_EQUALS", + }), + }, + }, + "value": { + // Property: Value + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 1024), + }, + }, + }, + ), + Optional: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 10), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + }, + ), + Required: true, + }, + "name": { + // Property: Name + // CloudFormation resource type schema: + // { + // "description": "Findings filter name.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // } + Description: "Findings filter name.", + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 128), + }, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + } + + schema := tfsdk.Schema{ + Description: "Inspector Filter resource schema", + Version: 1, + Attributes: attributes, + } + + var opts ResourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::InspectorV2::Filter").WithTerraformTypeName("awscc_inspectorv2_filter") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "architecture": "Architecture", + "arn": "Arn", + "aws_account_id": "AwsAccountId", + "begin_inclusive": "BeginInclusive", + "comparison": "Comparison", + "component_id": "ComponentId", + "component_type": "ComponentType", + "description": "Description", + "ec_2_instance_image_id": "Ec2InstanceImageId", + "ec_2_instance_subnet_id": "Ec2InstanceSubnetId", + "ec_2_instance_vpc_id": "Ec2InstanceVpcId", + "ecr_image_architecture": "EcrImageArchitecture", + "ecr_image_hash": "EcrImageHash", + "ecr_image_pushed_at": "EcrImagePushedAt", + "ecr_image_registry": "EcrImageRegistry", + "ecr_image_repository_name": "EcrImageRepositoryName", + "ecr_image_tags": "EcrImageTags", + "end_inclusive": "EndInclusive", + "epoch": "Epoch", + "filter_action": "FilterAction", + "filter_criteria": "FilterCriteria", + "finding_arn": "FindingArn", + "finding_status": "FindingStatus", + "finding_type": "FindingType", + "first_observed_at": "FirstObservedAt", + "inspector_score": "InspectorScore", + "key": "Key", + "last_observed_at": "LastObservedAt", + "lower_inclusive": "LowerInclusive", + "name": "Name", + "network_protocol": "NetworkProtocol", + "port_range": "PortRange", + "related_vulnerabilities": "RelatedVulnerabilities", + "release": "Release", + "resource_id": "ResourceId", + "resource_tags": "ResourceTags", + "resource_type": "ResourceType", + "severity": "Severity", + "source_layer_hash": "SourceLayerHash", + "start_inclusive": "StartInclusive", + "title": "Title", + "updated_at": "UpdatedAt", + "upper_inclusive": "UpperInclusive", + "value": "Value", + "vendor_severity": "VendorSeverity", + "version": "Version", + "vulnerability_id": "VulnerabilityId", + "vulnerability_source": "VulnerabilitySource", + "vulnerable_packages": "VulnerablePackages", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + resourceType, err := NewResourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return resourceType, nil +} diff --git a/internal/aws/inspectorv2/filter_resource_gen_test.go b/internal/aws/inspectorv2/filter_resource_gen_test.go new file mode 100644 index 0000000000..ebdc48bf2c --- /dev/null +++ b/internal/aws/inspectorv2/filter_resource_gen_test.go @@ -0,0 +1,22 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package inspectorv2_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSInspectorV2Filter_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::InspectorV2::Filter", "awscc_inspectorv2_filter", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/iot/job_template_resource_gen.go b/internal/aws/iot/job_template_resource_gen.go index 00557e46a9..ef6e9f0b78 100644 --- a/internal/aws/iot/job_template_resource_gen.go +++ b/internal/aws/iot/job_template_resource_gen.go @@ -166,7 +166,7 @@ func jobTemplateResourceType(ctx context.Context) (tfsdk.ResourceType, error) { // { // "description": "A description of the Job Template.", // "maxLength": 2028, - // "pattern": "", + // "pattern": "[^\\p{C}]+", // "type": "string" // } Description: "A description of the Job Template.", @@ -237,6 +237,82 @@ func jobTemplateResourceType(ctx context.Context) (tfsdk.ResourceType, error) { }, // JobArn is a write-only property. }, + "job_executions_retry_config": { + // Property: JobExecutionsRetryConfig + // CloudFormation resource type schema: + // { + // "additionalProperties": false, + // "properties": { + // "RetryCriteriaList": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Specifies how many times a failure type should be retried.", + // "properties": { + // "FailureType": { + // "enum": [ + // "FAILED", + // "TIMED_OUT", + // "ALL" + // ], + // "type": "string" + // }, + // "NumberOfRetries": { + // "maximum": 10, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "maxItems": 2, + // "minItems": 1, + // "type": "array" + // } + // }, + // "type": "object" + // } + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "retry_criteria_list": { + // Property: RetryCriteriaList + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "failure_type": { + // Property: FailureType + Type: types.StringType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "FAILED", + "TIMED_OUT", + "ALL", + }), + }, + }, + "number_of_retries": { + // Property: NumberOfRetries + Type: types.NumberType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.IntBetween(0, 10), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 2), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + }, + ), + Optional: true, + }, "job_executions_rollout_config": { // Property: JobExecutionsRolloutConfig // CloudFormation resource type schema: @@ -369,7 +445,7 @@ func jobTemplateResourceType(ctx context.Context) (tfsdk.ResourceType, error) { // { // "maxLength": 64, // "minLength": 1, - // "pattern": "", + // "pattern": "[a-zA-Z0-9_-]+", // "type": "string" // } Type: types.StringType, @@ -581,15 +657,18 @@ func jobTemplateResourceType(ctx context.Context) (tfsdk.ResourceType, error) { "in_progress_timeout_in_minutes": "InProgressTimeoutInMinutes", "increment_factor": "IncrementFactor", "job_arn": "JobArn", + "job_executions_retry_config": "JobExecutionsRetryConfig", "job_executions_rollout_config": "JobExecutionsRolloutConfig", "job_template_id": "JobTemplateId", "key": "Key", "maximum_per_minute": "MaximumPerMinute", "min_number_of_executed_things": "MinNumberOfExecutedThings", "number_of_notified_things": "NumberOfNotifiedThings", + "number_of_retries": "NumberOfRetries", "number_of_succeeded_things": "NumberOfSucceededThings", "presigned_url_config": "PresignedUrlConfig", "rate_increase_criteria": "RateIncreaseCriteria", + "retry_criteria_list": "RetryCriteriaList", "role_arn": "RoleArn", "tags": "Tags", "threshold_percentage": "ThresholdPercentage", diff --git a/internal/aws/iotsitewise/gateway_resource_gen.go b/internal/aws/iotsitewise/gateway_resource_gen.go index bba392396a..911d496d61 100644 --- a/internal/aws/iotsitewise/gateway_resource_gen.go +++ b/internal/aws/iotsitewise/gateway_resource_gen.go @@ -101,10 +101,22 @@ func gatewayResourceType(ctx context.Context) (tfsdk.ResourceType, error) { // { // "additionalProperties": false, // "description": "The gateway's platform. You can only specify one platform in a gateway.", + // "oneOf": [ + // { + // "required": [ + // "Greengrass" + // ] + // }, + // { + // "required": [ + // "GreengrassV2" + // ] + // } + // ], // "properties": { // "Greengrass": { // "additionalProperties": false, - // "description": "A gateway that runs on AWS IoT Greengrass.", + // "description": "A gateway that runs on AWS IoT Greengrass V1.", // "properties": { // "GroupArn": { // "description": "The ARN of the Greengrass group.", @@ -115,11 +127,22 @@ func gatewayResourceType(ctx context.Context) (tfsdk.ResourceType, error) { // "GroupArn" // ], // "type": "object" + // }, + // "GreengrassV2": { + // "additionalProperties": false, + // "description": "A gateway that runs on AWS IoT Greengrass V2.", + // "properties": { + // "CoreDeviceThingName": { + // "description": "The name of the CoreDevice in GreenGrass V2.", + // "type": "string" + // } + // }, + // "required": [ + // "CoreDeviceThingName" + // ], + // "type": "object" // } // }, - // "required": [ - // "Greengrass" - // ], // "type": "object" // } Description: "The gateway's platform. You can only specify one platform in a gateway.", @@ -127,7 +150,7 @@ func gatewayResourceType(ctx context.Context) (tfsdk.ResourceType, error) { map[string]tfsdk.Attribute{ "greengrass": { // Property: Greengrass - Description: "A gateway that runs on AWS IoT Greengrass.", + Description: "A gateway that runs on AWS IoT Greengrass V1.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "group_arn": { @@ -138,11 +161,38 @@ func gatewayResourceType(ctx context.Context) (tfsdk.ResourceType, error) { }, }, ), - Required: true, + Optional: true, + }, + "greengrass_v2": { + // Property: GreengrassV2 + Description: "A gateway that runs on AWS IoT Greengrass V2.", + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "core_device_thing_name": { + // Property: CoreDeviceThingName + Description: "The name of the CoreDevice in GreenGrass V2.", + Type: types.StringType, + Required: true, + }, + }, + ), + Optional: true, }, }, ), Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.RequiredAttributes( + validate.OneOfRequired( + validate.Required( + "greengrass", + ), + validate.Required( + "greengrass_v2", + ), + ), + ), + }, PlanModifiers: []tfsdk.AttributePlanModifier{ tfsdk.RequiresReplace(), }, @@ -219,11 +269,13 @@ func gatewayResourceType(ctx context.Context) (tfsdk.ResourceType, error) { opts = opts.WithAttributeNameMap(map[string]string{ "capability_configuration": "CapabilityConfiguration", "capability_namespace": "CapabilityNamespace", + "core_device_thing_name": "CoreDeviceThingName", "gateway_capability_summaries": "GatewayCapabilitySummaries", "gateway_id": "GatewayId", "gateway_name": "GatewayName", "gateway_platform": "GatewayPlatform", "greengrass": "Greengrass", + "greengrass_v2": "GreengrassV2", "group_arn": "GroupArn", "key": "Key", "tags": "Tags", diff --git a/internal/aws/kinesisvideo/signaling_channel_resource_gen.go b/internal/aws/kinesisvideo/signaling_channel_resource_gen.go new file mode 100644 index 0000000000..b8098c9cbe --- /dev/null +++ b/internal/aws/kinesisvideo/signaling_channel_resource_gen.go @@ -0,0 +1,203 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package kinesisvideo + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "github.com/hashicorp/terraform-plugin-framework/types" + . "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + "github.com/hashicorp/terraform-provider-awscc/internal/validate" +) + +func init() { + registry.AddResourceTypeFactory("awscc_kinesisvideo_signaling_channel", signalingChannelResourceType) +} + +// signalingChannelResourceType returns the Terraform awscc_kinesisvideo_signaling_channel resource type. +// This Terraform resource type corresponds to the CloudFormation AWS::KinesisVideo::SignalingChannel resource type. +func signalingChannelResourceType(ctx context.Context) (tfsdk.ResourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "arn": { + // Property: Arn + // CloudFormation resource type schema: + // { + // "description": "The Amazon Resource Name (ARN) of the Kinesis Video Signaling Channel.", + // "type": "string" + // } + Description: "The Amazon Resource Name (ARN) of the Kinesis Video Signaling Channel.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "message_ttl_seconds": { + // Property: MessageTtlSeconds + // CloudFormation resource type schema: + // { + // "description": "The period of time a signaling channel retains undelivered messages before they are discarded.", + // "maximum": 120, + // "minimum": 5, + // "type": "integer" + // } + Description: "The period of time a signaling channel retains undelivered messages before they are discarded.", + Type: types.NumberType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.IntBetween(5, 120), + }, + }, + "name": { + // Property: Name + // CloudFormation resource type schema: + // { + // "description": "The name of the Kinesis Video Signaling Channel.", + // "maxLength": 256, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + Description: "The name of the Kinesis Video Signaling Channel.", + Type: types.StringType, + Optional: true, + Computed: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 256), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + tfsdk.RequiresReplace(), + }, + }, + "tags": { + // Property: Tags + // CloudFormation resource type schema: + // { + // "description": "An array of key-value pairs to apply to this resource.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. Specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. Specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 1, + // "type": "array", + // "uniqueItems": false + // } + Description: "An array of key-value pairs to apply to this resource.", + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "key": { + // Property: Key + Description: "The key name of the tag. Specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 128), + }, + }, + "value": { + // Property: Value + Description: "The value for the tag. Specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(0, 256), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 50), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + "type": { + // Property: Type + // CloudFormation resource type schema: + // { + // "description": "The type of the Kinesis Video Signaling Channel to create. Currently, SINGLE_MASTER is the only supported channel type.", + // "enum": [ + // "SINGLE_MASTER" + // ], + // "type": "string" + // } + Description: "The type of the Kinesis Video Signaling Channel to create. Currently, SINGLE_MASTER is the only supported channel type.", + Type: types.StringType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringInSlice([]string{ + "SINGLE_MASTER", + }), + }, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + } + + schema := tfsdk.Schema{ + Description: "Resource Type Definition for AWS::KinesisVideo::SignalingChannel", + Version: 1, + Attributes: attributes, + } + + var opts ResourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::KinesisVideo::SignalingChannel").WithTerraformTypeName("awscc_kinesisvideo_signaling_channel") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "key": "Key", + "message_ttl_seconds": "MessageTtlSeconds", + "name": "Name", + "tags": "Tags", + "type": "Type", + "value": "Value", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + resourceType, err := NewResourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return resourceType, nil +} diff --git a/internal/aws/kinesisvideo/signaling_channel_resource_gen_test.go b/internal/aws/kinesisvideo/signaling_channel_resource_gen_test.go new file mode 100644 index 0000000000..635a292fa7 --- /dev/null +++ b/internal/aws/kinesisvideo/signaling_channel_resource_gen_test.go @@ -0,0 +1,43 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package kinesisvideo_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSKinesisVideoSignalingChannel_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::KinesisVideo::SignalingChannel", "awscc_kinesisvideo_signaling_channel", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSKinesisVideoSignalingChannel_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::KinesisVideo::SignalingChannel", "awscc_kinesisvideo_signaling_channel", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} diff --git a/internal/aws/kinesisvideo/stream_resource_gen.go b/internal/aws/kinesisvideo/stream_resource_gen.go new file mode 100644 index 0000000000..a30ac4d609 --- /dev/null +++ b/internal/aws/kinesisvideo/stream_resource_gen.go @@ -0,0 +1,237 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package kinesisvideo + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "github.com/hashicorp/terraform-plugin-framework/types" + . "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + "github.com/hashicorp/terraform-provider-awscc/internal/validate" +) + +func init() { + registry.AddResourceTypeFactory("awscc_kinesisvideo_stream", streamResourceType) +} + +// streamResourceType returns the Terraform awscc_kinesisvideo_stream resource type. +// This Terraform resource type corresponds to the CloudFormation AWS::KinesisVideo::Stream resource type. +func streamResourceType(ctx context.Context) (tfsdk.ResourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "arn": { + // Property: Arn + // CloudFormation resource type schema: + // { + // "description": "The Amazon Resource Name (ARN) of the Kinesis Video stream.", + // "type": "string" + // } + Description: "The Amazon Resource Name (ARN) of the Kinesis Video stream.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "data_retention_in_hours": { + // Property: DataRetentionInHours + // CloudFormation resource type schema: + // { + // "description": "The number of hours till which Kinesis Video will retain the data in the stream", + // "maximum": 87600, + // "minimum": 0, + // "type": "integer" + // } + Description: "The number of hours till which Kinesis Video will retain the data in the stream", + Type: types.NumberType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.IntBetween(0, 87600), + }, + }, + "device_name": { + // Property: DeviceName + // CloudFormation resource type schema: + // { + // "description": "The name of the device that is writing to the stream.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + Description: "The name of the device that is writing to the stream.", + Type: types.StringType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 128), + }, + }, + "kms_key_id": { + // Property: KmsKeyId + // CloudFormation resource type schema: + // { + // "description": "AWS KMS key ID that Kinesis Video Streams uses to encrypt stream data.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + Description: "AWS KMS key ID that Kinesis Video Streams uses to encrypt stream data.", + Type: types.StringType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 2048), + }, + }, + "media_type": { + // Property: MediaType + // CloudFormation resource type schema: + // { + // "description": "The media type of the stream. Consumers of the stream can use this information when processing the stream.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + Description: "The media type of the stream. Consumers of the stream can use this information when processing the stream.", + Type: types.StringType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 128), + }, + }, + "name": { + // Property: Name + // CloudFormation resource type schema: + // { + // "description": "The name of the Kinesis Video stream.", + // "maxLength": 256, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + Description: "The name of the Kinesis Video stream.", + Type: types.StringType, + Optional: true, + Computed: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 256), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + tfsdk.RequiresReplace(), + }, + }, + "tags": { + // Property: Tags + // CloudFormation resource type schema: + // { + // "description": "An array of key-value pairs associated with the Kinesis Video Stream.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associated with the Kinesis Video Stream.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. Specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. Specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 1, + // "type": "array", + // "uniqueItems": false + // } + Description: "An array of key-value pairs associated with the Kinesis Video Stream.", + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "key": { + // Property: Key + Description: "The key name of the tag. Specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 128), + }, + }, + "value": { + // Property: Value + Description: "The value for the tag. Specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(0, 256), + }, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenBetween(1, 50), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + Multiset(), + }, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + } + + schema := tfsdk.Schema{ + Description: "Resource Type Definition for AWS::KinesisVideo::Stream", + Version: 1, + Attributes: attributes, + } + + var opts ResourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::KinesisVideo::Stream").WithTerraformTypeName("awscc_kinesisvideo_stream") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "data_retention_in_hours": "DataRetentionInHours", + "device_name": "DeviceName", + "key": "Key", + "kms_key_id": "KmsKeyId", + "media_type": "MediaType", + "name": "Name", + "tags": "Tags", + "value": "Value", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + resourceType, err := NewResourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return resourceType, nil +} diff --git a/internal/aws/kinesisvideo/stream_resource_gen_test.go b/internal/aws/kinesisvideo/stream_resource_gen_test.go new file mode 100644 index 0000000000..6bc8e824fa --- /dev/null +++ b/internal/aws/kinesisvideo/stream_resource_gen_test.go @@ -0,0 +1,43 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package kinesisvideo_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSKinesisVideoStream_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::KinesisVideo::Stream", "awscc_kinesisvideo_stream", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSKinesisVideoStream_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::KinesisVideo::Stream", "awscc_kinesisvideo_stream", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} diff --git a/internal/aws/lex/bot_alias_resource_gen.go b/internal/aws/lex/bot_alias_resource_gen.go index b0f5cc9467..92d25bf4bf 100644 --- a/internal/aws/lex/bot_alias_resource_gen.go +++ b/internal/aws/lex/bot_alias_resource_gen.go @@ -115,8 +115,8 @@ func botAliasResourceType(ctx context.Context) (tfsdk.ResourceType, error) { // } // }, // "required": [ - // "Key", - // "Value" + // "LocaleId", + // "BotAliasLocaleSetting" // ], // "type": "object" // }, @@ -176,13 +176,13 @@ func botAliasResourceType(ctx context.Context) (tfsdk.ResourceType, error) { }, }, ), - Optional: true, + Required: true, }, "locale_id": { // Property: LocaleId Description: "A string used to identify the locale", Type: types.StringType, - Optional: true, + Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 128), }, @@ -427,7 +427,8 @@ func botAliasResourceType(ctx context.Context) (tfsdk.ResourceType, error) { // "required": [ // "CloudWatchLogGroupArn", // "LogPrefix" - // ] + // ], + // "type": "object" // } // }, // "type": "object" diff --git a/internal/aws/lightsail/alarm_resource_gen.go b/internal/aws/lightsail/alarm_resource_gen.go new file mode 100644 index 0000000000..3f9cbf5224 --- /dev/null +++ b/internal/aws/lightsail/alarm_resource_gen.go @@ -0,0 +1,238 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package lightsail + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddResourceTypeFactory("awscc_lightsail_alarm", alarmResourceType) +} + +// alarmResourceType returns the Terraform awscc_lightsail_alarm resource type. +// This Terraform resource type corresponds to the CloudFormation AWS::Lightsail::Alarm resource type. +func alarmResourceType(ctx context.Context) (tfsdk.ResourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "alarm_arn": { + // Property: AlarmArn + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "alarm_name": { + // Property: AlarmName + // CloudFormation resource type schema: + // { + // "description": "The name for the alarm. Specify the name of an existing alarm to update, and overwrite the previous configuration of the alarm.", + // "pattern": "", + // "type": "string" + // } + Description: "The name for the alarm. Specify the name of an existing alarm to update, and overwrite the previous configuration of the alarm.", + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "comparison_operator": { + // Property: ComparisonOperator + // CloudFormation resource type schema: + // { + // "description": "The arithmetic operation to use when comparing the specified statistic to the threshold. The specified statistic value is used as the first operand.", + // "type": "string" + // } + Description: "The arithmetic operation to use when comparing the specified statistic to the threshold. The specified statistic value is used as the first operand.", + Type: types.StringType, + Required: true, + }, + "contact_protocols": { + // Property: ContactProtocols + // CloudFormation resource type schema: + // { + // "description": "The contact protocols to use for the alarm, such as Email, SMS (text messaging), or both.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "The contact protocols to use for the alarm, such as Email, SMS (text messaging), or both.", + Type: types.SetType{ElemType: types.StringType}, + Optional: true, + }, + "datapoints_to_alarm": { + // Property: DatapointsToAlarm + // CloudFormation resource type schema: + // { + // "description": "The number of data points that must be not within the specified threshold to trigger the alarm. If you are setting an \"M out of N\" alarm, this value (datapointsToAlarm) is the M.", + // "type": "integer" + // } + Description: "The number of data points that must be not within the specified threshold to trigger the alarm. If you are setting an \"M out of N\" alarm, this value (datapointsToAlarm) is the M.", + Type: types.NumberType, + Optional: true, + }, + "evaluation_periods": { + // Property: EvaluationPeriods + // CloudFormation resource type schema: + // { + // "description": "The number of most recent periods over which data is compared to the specified threshold. If you are setting an \"M out of N\" alarm, this value (evaluationPeriods) is the N.", + // "type": "integer" + // } + Description: "The number of most recent periods over which data is compared to the specified threshold. If you are setting an \"M out of N\" alarm, this value (evaluationPeriods) is the N.", + Type: types.NumberType, + Required: true, + }, + "metric_name": { + // Property: MetricName + // CloudFormation resource type schema: + // { + // "description": "The name of the metric to associate with the alarm.", + // "type": "string" + // } + Description: "The name of the metric to associate with the alarm.", + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "monitored_resource_name": { + // Property: MonitoredResourceName + // CloudFormation resource type schema: + // { + // "description": "The validation status of the SSL/TLS certificate.", + // "type": "string" + // } + Description: "The validation status of the SSL/TLS certificate.", + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "notification_enabled": { + // Property: NotificationEnabled + // CloudFormation resource type schema: + // { + // "description": "Indicates whether the alarm is enabled. Notifications are enabled by default if you don't specify this parameter.", + // "type": "boolean" + // } + Description: "Indicates whether the alarm is enabled. Notifications are enabled by default if you don't specify this parameter.", + Type: types.BoolType, + Optional: true, + }, + "notification_triggers": { + // Property: NotificationTriggers + // CloudFormation resource type schema: + // { + // "description": "The alarm states that trigger a notification.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "The alarm states that trigger a notification.", + Type: types.SetType{ElemType: types.StringType}, + Optional: true, + }, + "state": { + // Property: State + // CloudFormation resource type schema: + // { + // "description": "The current state of the alarm.", + // "type": "string" + // } + Description: "The current state of the alarm.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "threshold": { + // Property: Threshold + // CloudFormation resource type schema: + // { + // "description": "The value against which the specified statistic is compared.", + // "type": "number" + // } + Description: "The value against which the specified statistic is compared.", + Type: types.NumberType, + Required: true, + }, + "treat_missing_data": { + // Property: TreatMissingData + // CloudFormation resource type schema: + // { + // "description": "Sets how this alarm will handle missing data points.", + // "type": "string" + // } + Description: "Sets how this alarm will handle missing data points.", + Type: types.StringType, + Optional: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + } + + schema := tfsdk.Schema{ + Description: "Resource Type definition for AWS::Lightsail::Alarm", + Version: 1, + Attributes: attributes, + } + + var opts ResourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Lightsail::Alarm").WithTerraformTypeName("awscc_lightsail_alarm") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "alarm_arn": "AlarmArn", + "alarm_name": "AlarmName", + "comparison_operator": "ComparisonOperator", + "contact_protocols": "ContactProtocols", + "datapoints_to_alarm": "DatapointsToAlarm", + "evaluation_periods": "EvaluationPeriods", + "metric_name": "MetricName", + "monitored_resource_name": "MonitoredResourceName", + "notification_enabled": "NotificationEnabled", + "notification_triggers": "NotificationTriggers", + "state": "State", + "threshold": "Threshold", + "treat_missing_data": "TreatMissingData", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + resourceType, err := NewResourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return resourceType, nil +} diff --git a/internal/aws/lightsail/alarm_resource_gen_test.go b/internal/aws/lightsail/alarm_resource_gen_test.go new file mode 100644 index 0000000000..ce065e310a --- /dev/null +++ b/internal/aws/lightsail/alarm_resource_gen_test.go @@ -0,0 +1,22 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package lightsail_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSLightsailAlarm_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Lightsail::Alarm", "awscc_lightsail_alarm", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/lightsail/bucket_resource_gen.go b/internal/aws/lightsail/bucket_resource_gen.go new file mode 100644 index 0000000000..0202f1e760 --- /dev/null +++ b/internal/aws/lightsail/bucket_resource_gen.go @@ -0,0 +1,281 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package lightsail + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "github.com/hashicorp/terraform-plugin-framework/types" + . "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + "github.com/hashicorp/terraform-provider-awscc/internal/validate" +) + +func init() { + registry.AddResourceTypeFactory("awscc_lightsail_bucket", bucketResourceType) +} + +// bucketResourceType returns the Terraform awscc_lightsail_bucket resource type. +// This Terraform resource type corresponds to the CloudFormation AWS::Lightsail::Bucket resource type. +func bucketResourceType(ctx context.Context) (tfsdk.ResourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "able_to_update_bundle": { + // Property: AbleToUpdateBundle + // CloudFormation resource type schema: + // { + // "description": "Indicates whether the bundle that is currently applied to a bucket can be changed to another bundle. You can update a bucket's bundle only one time within a monthly AWS billing cycle.", + // "type": "boolean" + // } + Description: "Indicates whether the bundle that is currently applied to a bucket can be changed to another bundle. You can update a bucket's bundle only one time within a monthly AWS billing cycle.", + Type: types.BoolType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "access_rules": { + // Property: AccessRules + // CloudFormation resource type schema: + // { + // "additionalProperties": false, + // "description": "An object that sets the public accessibility of objects in the specified bucket.", + // "properties": { + // "AllowPublicOverrides": { + // "description": "A Boolean value that indicates whether the access control list (ACL) permissions that are applied to individual objects override the getObject option that is currently specified.", + // "type": "boolean" + // }, + // "GetObject": { + // "description": "Specifies the anonymous access to all objects in a bucket.", + // "type": "string" + // } + // }, + // "type": "object" + // } + Description: "An object that sets the public accessibility of objects in the specified bucket.", + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "allow_public_overrides": { + // Property: AllowPublicOverrides + Description: "A Boolean value that indicates whether the access control list (ACL) permissions that are applied to individual objects override the getObject option that is currently specified.", + Type: types.BoolType, + Optional: true, + }, + "get_object": { + // Property: GetObject + Description: "Specifies the anonymous access to all objects in a bucket.", + Type: types.StringType, + Optional: true, + }, + }, + ), + Optional: true, + }, + "bucket_arn": { + // Property: BucketArn + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "bucket_name": { + // Property: BucketName + // CloudFormation resource type schema: + // { + // "description": "The name for the bucket.", + // "maxLength": 54, + // "minLength": 3, + // "pattern": "", + // "type": "string" + // } + Description: "The name for the bucket.", + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(3, 54), + }, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "bundle_id": { + // Property: BundleId + // CloudFormation resource type schema: + // { + // "description": "The ID of the bundle to use for the bucket.", + // "type": "string" + // } + Description: "The ID of the bundle to use for the bucket.", + Type: types.StringType, + Required: true, + }, + "object_versioning": { + // Property: ObjectVersioning + // CloudFormation resource type schema: + // { + // "description": "Specifies whether to enable or disable versioning of objects in the bucket.", + // "type": "boolean" + // } + Description: "Specifies whether to enable or disable versioning of objects in the bucket.", + Type: types.BoolType, + Optional: true, + }, + "read_only_access_accounts": { + // Property: ReadOnlyAccessAccounts + // CloudFormation resource type schema: + // { + // "description": "An array of strings to specify the AWS account IDs that can access the bucket.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "An array of strings to specify the AWS account IDs that can access the bucket.", + Type: types.SetType{ElemType: types.StringType}, + Optional: true, + }, + "resources_receiving_access": { + // Property: ResourcesReceivingAccess + // CloudFormation resource type schema: + // { + // "description": "The names of the Lightsail resources for which to set bucket access.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "The names of the Lightsail resources for which to set bucket access.", + Type: types.SetType{ElemType: types.StringType}, + Optional: true, + }, + "tags": { + // Property: Tags + // CloudFormation resource type schema: + // { + // "description": "An array of key-value pairs to apply to this resource.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "An array of key-value pairs to apply to this resource.", + Attributes: tfsdk.SetNestedAttributes( + map[string]tfsdk.Attribute{ + "key": { + // Property: Key + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 128), + }, + }, + "value": { + // Property: Value + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(0, 256), + }, + }, + }, + tfsdk.SetNestedAttributesOptions{}, + ), + Optional: true, + }, + "url": { + // Property: Url + // CloudFormation resource type schema: + // { + // "description": "The URL of the bucket.", + // "type": "string" + // } + Description: "The URL of the bucket.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + } + + schema := tfsdk.Schema{ + Description: "Resource Type definition for AWS::Lightsail::Bucket", + Version: 1, + Attributes: attributes, + } + + var opts ResourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Lightsail::Bucket").WithTerraformTypeName("awscc_lightsail_bucket") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "able_to_update_bundle": "AbleToUpdateBundle", + "access_rules": "AccessRules", + "allow_public_overrides": "AllowPublicOverrides", + "bucket_arn": "BucketArn", + "bucket_name": "BucketName", + "bundle_id": "BundleId", + "get_object": "GetObject", + "key": "Key", + "object_versioning": "ObjectVersioning", + "read_only_access_accounts": "ReadOnlyAccessAccounts", + "resources_receiving_access": "ResourcesReceivingAccess", + "tags": "Tags", + "url": "Url", + "value": "Value", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(2160) + + resourceType, err := NewResourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return resourceType, nil +} diff --git a/internal/aws/lightsail/bucket_resource_gen_test.go b/internal/aws/lightsail/bucket_resource_gen_test.go new file mode 100644 index 0000000000..cdb7e0a8d2 --- /dev/null +++ b/internal/aws/lightsail/bucket_resource_gen_test.go @@ -0,0 +1,22 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package lightsail_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSLightsailBucket_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Lightsail::Bucket", "awscc_lightsail_bucket", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/lightsail/load_balancer_resource_gen.go b/internal/aws/lightsail/load_balancer_resource_gen.go new file mode 100644 index 0000000000..d13cd47bbf --- /dev/null +++ b/internal/aws/lightsail/load_balancer_resource_gen.go @@ -0,0 +1,233 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package lightsail + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "github.com/hashicorp/terraform-plugin-framework/types" + . "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + "github.com/hashicorp/terraform-provider-awscc/internal/validate" +) + +func init() { + registry.AddResourceTypeFactory("awscc_lightsail_load_balancer", loadBalancerResourceType) +} + +// loadBalancerResourceType returns the Terraform awscc_lightsail_load_balancer resource type. +// This Terraform resource type corresponds to the CloudFormation AWS::Lightsail::LoadBalancer resource type. +func loadBalancerResourceType(ctx context.Context) (tfsdk.ResourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "attached_instances": { + // Property: AttachedInstances + // CloudFormation resource type schema: + // { + // "description": "The names of the instances attached to the load balancer.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "The names of the instances attached to the load balancer.", + Type: types.SetType{ElemType: types.StringType}, + Optional: true, + }, + "health_check_path": { + // Property: HealthCheckPath + // CloudFormation resource type schema: + // { + // "description": "The path you provided to perform the load balancer health check. If you didn't specify a health check path, Lightsail uses the root path of your website (e.g., \"/\").", + // "type": "string" + // } + Description: "The path you provided to perform the load balancer health check. If you didn't specify a health check path, Lightsail uses the root path of your website (e.g., \"/\").", + Type: types.StringType, + Optional: true, + }, + "instance_port": { + // Property: InstancePort + // CloudFormation resource type schema: + // { + // "description": "The instance port where you're creating your load balancer.", + // "type": "integer" + // } + Description: "The instance port where you're creating your load balancer.", + Type: types.NumberType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "ip_address_type": { + // Property: IpAddressType + // CloudFormation resource type schema: + // { + // "description": "The IP address type for the load balancer. The possible values are ipv4 for IPv4 only, and dualstack for IPv4 and IPv6. The default value is dualstack.", + // "type": "string" + // } + Description: "The IP address type for the load balancer. The possible values are ipv4 for IPv4 only, and dualstack for IPv4 and IPv6. The default value is dualstack.", + Type: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + tfsdk.RequiresReplace(), + }, + }, + "load_balancer_arn": { + // Property: LoadBalancerArn + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "load_balancer_name": { + // Property: LoadBalancerName + // CloudFormation resource type schema: + // { + // "description": "The name of your load balancer.", + // "pattern": "", + // "type": "string" + // } + Description: "The name of your load balancer.", + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "session_stickiness_enabled": { + // Property: SessionStickinessEnabled + // CloudFormation resource type schema: + // { + // "description": "Configuration option to enable session stickiness.", + // "type": "boolean" + // } + Description: "Configuration option to enable session stickiness.", + Type: types.BoolType, + Optional: true, + }, + "session_stickiness_lb_cookie_duration_seconds": { + // Property: SessionStickinessLBCookieDurationSeconds + // CloudFormation resource type schema: + // { + // "description": "Configuration option to adjust session stickiness cookie duration parameter.", + // "type": "string" + // } + Description: "Configuration option to adjust session stickiness cookie duration parameter.", + Type: types.StringType, + Optional: true, + }, + "tags": { + // Property: Tags + // CloudFormation resource type schema: + // { + // "description": "An array of key-value pairs to apply to this resource.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "An array of key-value pairs to apply to this resource.", + Attributes: tfsdk.SetNestedAttributes( + map[string]tfsdk.Attribute{ + "key": { + // Property: Key + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 128), + }, + }, + "value": { + // Property: Value + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(0, 256), + }, + }, + }, + tfsdk.SetNestedAttributesOptions{}, + ), + Optional: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + } + + schema := tfsdk.Schema{ + Description: "Resource Type definition for AWS::Lightsail::LoadBalancer", + Version: 1, + Attributes: attributes, + } + + var opts ResourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Lightsail::LoadBalancer").WithTerraformTypeName("awscc_lightsail_load_balancer") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "attached_instances": "AttachedInstances", + "health_check_path": "HealthCheckPath", + "instance_port": "InstancePort", + "ip_address_type": "IpAddressType", + "key": "Key", + "load_balancer_arn": "LoadBalancerArn", + "load_balancer_name": "LoadBalancerName", + "session_stickiness_enabled": "SessionStickinessEnabled", + "session_stickiness_lb_cookie_duration_seconds": "SessionStickinessLBCookieDurationSeconds", + "tags": "Tags", + "value": "Value", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + resourceType, err := NewResourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return resourceType, nil +} diff --git a/internal/aws/lightsail/load_balancer_resource_gen_test.go b/internal/aws/lightsail/load_balancer_resource_gen_test.go new file mode 100644 index 0000000000..6bfb9adcfe --- /dev/null +++ b/internal/aws/lightsail/load_balancer_resource_gen_test.go @@ -0,0 +1,22 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package lightsail_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSLightsailLoadBalancer_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Lightsail::LoadBalancer", "awscc_lightsail_load_balancer", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/lightsail/load_balancer_tls_certificate_resource_gen.go b/internal/aws/lightsail/load_balancer_tls_certificate_resource_gen.go new file mode 100644 index 0000000000..b09df3699d --- /dev/null +++ b/internal/aws/lightsail/load_balancer_tls_certificate_resource_gen.go @@ -0,0 +1,166 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package lightsail + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddResourceTypeFactory("awscc_lightsail_load_balancer_tls_certificate", loadBalancerTlsCertificateResourceType) +} + +// loadBalancerTlsCertificateResourceType returns the Terraform awscc_lightsail_load_balancer_tls_certificate resource type. +// This Terraform resource type corresponds to the CloudFormation AWS::Lightsail::LoadBalancerTlsCertificate resource type. +func loadBalancerTlsCertificateResourceType(ctx context.Context) (tfsdk.ResourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "certificate_alternative_names": { + // Property: CertificateAlternativeNames + // CloudFormation resource type schema: + // { + // "description": "An array of strings listing alternative domains and subdomains for your SSL/TLS certificate.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "An array of strings listing alternative domains and subdomains for your SSL/TLS certificate.", + Type: types.SetType{ElemType: types.StringType}, + Optional: true, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + tfsdk.RequiresReplace(), + }, + }, + "certificate_domain_name": { + // Property: CertificateDomainName + // CloudFormation resource type schema: + // { + // "description": "The domain name (e.g., example.com ) for your SSL/TLS certificate.", + // "type": "string" + // } + Description: "The domain name (e.g., example.com ) for your SSL/TLS certificate.", + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "certificate_name": { + // Property: CertificateName + // CloudFormation resource type schema: + // { + // "description": "The SSL/TLS certificate name.", + // "type": "string" + // } + Description: "The SSL/TLS certificate name.", + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "is_attached": { + // Property: IsAttached + // CloudFormation resource type schema: + // { + // "description": "When true, the SSL/TLS certificate is attached to the Lightsail load balancer.", + // "type": "boolean" + // } + Description: "When true, the SSL/TLS certificate is attached to the Lightsail load balancer.", + Type: types.BoolType, + Optional: true, + }, + "load_balancer_name": { + // Property: LoadBalancerName + // CloudFormation resource type schema: + // { + // "description": "The name of your load balancer.", + // "pattern": "", + // "type": "string" + // } + Description: "The name of your load balancer.", + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "load_balancer_tls_certificate_arn": { + // Property: LoadBalancerTlsCertificateArn + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "status": { + // Property: Status + // CloudFormation resource type schema: + // { + // "description": "The validation status of the SSL/TLS certificate.", + // "type": "string" + // } + Description: "The validation status of the SSL/TLS certificate.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + } + + schema := tfsdk.Schema{ + Description: "Resource Type definition for AWS::Lightsail::LoadBalancerTlsCertificate", + Version: 1, + Attributes: attributes, + } + + var opts ResourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Lightsail::LoadBalancerTlsCertificate").WithTerraformTypeName("awscc_lightsail_load_balancer_tls_certificate") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "certificate_alternative_names": "CertificateAlternativeNames", + "certificate_domain_name": "CertificateDomainName", + "certificate_name": "CertificateName", + "is_attached": "IsAttached", + "load_balancer_name": "LoadBalancerName", + "load_balancer_tls_certificate_arn": "LoadBalancerTlsCertificateArn", + "status": "Status", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + resourceType, err := NewResourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return resourceType, nil +} diff --git a/internal/aws/lightsail/load_balancer_tls_certificate_resource_gen_test.go b/internal/aws/lightsail/load_balancer_tls_certificate_resource_gen_test.go new file mode 100644 index 0000000000..9a3a332456 --- /dev/null +++ b/internal/aws/lightsail/load_balancer_tls_certificate_resource_gen_test.go @@ -0,0 +1,22 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package lightsail_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSLightsailLoadBalancerTlsCertificate_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Lightsail::LoadBalancerTlsCertificate", "awscc_lightsail_load_balancer_tls_certificate", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/location/tracker_resource_gen.go b/internal/aws/location/tracker_resource_gen.go index 12b6a7d32e..9eeabc2b05 100644 --- a/internal/aws/location/tracker_resource_gen.go +++ b/internal/aws/location/tracker_resource_gen.go @@ -93,7 +93,8 @@ func trackerResourceType(ctx context.Context) (tfsdk.ResourceType, error) { // { // "enum": [ // "TimeBased", - // "DistanceBased" + // "DistanceBased", + // "AccuracyBased" // ], // "type": "string" // } @@ -104,6 +105,7 @@ func trackerResourceType(ctx context.Context) (tfsdk.ResourceType, error) { validate.StringInSlice([]string{ "TimeBased", "DistanceBased", + "AccuracyBased", }), }, PlanModifiers: []tfsdk.AttributePlanModifier{ diff --git a/internal/aws/nimblestudio/launch_profile_resource_gen.go b/internal/aws/nimblestudio/launch_profile_resource_gen.go index 7b7271b89c..b6999803fe 100644 --- a/internal/aws/nimblestudio/launch_profile_resource_gen.go +++ b/internal/aws/nimblestudio/launch_profile_resource_gen.go @@ -40,16 +40,15 @@ func launchProfileResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: Ec2SubnetIds // CloudFormation resource type schema: // { - // "description": "\u003cp\u003eSpecifies the IDs of the EC2 subnets where streaming sessions will be accessible from. These subnets must support the specified instance types. \u003c/p\u003e", + // "description": "\u003cp\u003eSpecifies the IDs of the EC2 subnets where streaming sessions will be accessible from.\n These subnets must support the specified instance types. \u003c/p\u003e", // "items": { - // "description": "", // "type": "string" // }, // "maxItems": 6, // "minItems": 0, // "type": "array" // } - Description: "

Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from. These subnets must support the specified instance types.

", + Description: "

Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from.\n These subnets must support the specified instance types.

", Type: types.ListType{ElemType: types.StringType}, Required: true, Validators: []tfsdk.AttributeValidator{ @@ -75,9 +74,9 @@ func launchProfileResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: LaunchProfileProtocolVersions // CloudFormation resource type schema: // { - // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid version is \"2021-03-31\".\u003c/p\u003e", + // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".\u003c/p\u003e", // "items": { - // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid version is \"2021-03-31\".\u003c/p\u003e", + // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".\u003c/p\u003e", // "maxLength": 10, // "minLength": 0, // "pattern": "", @@ -85,7 +84,7 @@ func launchProfileResourceType(ctx context.Context) (tfsdk.ResourceType, error) // }, // "type": "array" // } - Description: "

The version number of the protocol that is used by the launch profile. The only valid version is \"2021-03-31\".

", + Description: "

The version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".

", Type: types.ListType{ElemType: types.StringType}, Required: true, Validators: []tfsdk.AttributeValidator{ @@ -116,7 +115,6 @@ func launchProfileResourceType(ctx context.Context) (tfsdk.ResourceType, error) // "description": "\u003cp\u003eA configuration for a streaming session.\u003c/p\u003e", // "properties": { // "ClipboardMode": { - // "description": "", // "enum": [ // "ENABLED", // "DISABLED" @@ -124,9 +122,8 @@ func launchProfileResourceType(ctx context.Context) (tfsdk.ResourceType, error) // "type": "string" // }, // "Ec2InstanceTypes": { - // "description": "\u003cp\u003eThe EC2 instance types that users can select from when launching a streaming session with this launch profile.\u003c/p\u003e", + // "description": "\u003cp\u003eThe EC2 instance types that users can select from when launching a streaming session\n with this launch profile.\u003c/p\u003e", // "items": { - // "description": "", // "enum": [ // "g4dn.xlarge", // "g4dn.2xlarge", @@ -142,22 +139,66 @@ func launchProfileResourceType(ctx context.Context) (tfsdk.ResourceType, error) // "type": "array" // }, // "MaxSessionLengthInMinutes": { - // "description": "\u003cp\u003eThe length of time, in minutes, that a streaming session can run. After this point, Nimble Studio automatically terminates the session.\u003c/p\u003e", - // "maximum": 690, + // "description": "\u003cp\u003eThe length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.\u003c/p\u003e", + // "maximum": 43200, // "minimum": 1, // "type": "number" // }, + // "MaxStoppedSessionLengthInMinutes": { + // "description": "\u003cp\u003eInteger that determines if you can start and stop your sessions and how long a session\n can stay in the STOPPED state. The default value is 0. The maximum value is 5760.\u003c/p\u003e\n \u003cp\u003eIf the value is missing or set to 0, your sessions can?t be stopped. If you then call\n StopStreamingSession, the session fails. If the time that a session stays in the READY\n state exceeds the maxSessionLengthInMinutes value, the session will automatically be\n terminated by AWS (instead of stopped).\u003c/p\u003e\n \u003cp\u003eIf the value is set to a positive number, the session can be stopped. You can call\n StopStreamingSession to stop sessions in the READY state. If the time that a session\n stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will\n automatically be stopped by AWS (instead of terminated).\u003c/p\u003e", + // "maximum": 5760, + // "minimum": 0, + // "type": "number" + // }, + // "SessionStorage": { + // "additionalProperties": false, + // "description": "\u003cp\u003eThe configuration for a streaming session?s upload storage.\u003c/p\u003e", + // "properties": { + // "Mode": { + // "description": "\u003cp\u003eAllows artists to upload files to their workstations. The only valid option is\n \u003ccode\u003eUPLOAD\u003c/code\u003e.\u003c/p\u003e", + // "items": { + // "enum": [ + // "UPLOAD" + // ], + // "type": "string" + // }, + // "minItems": 1, + // "type": "array" + // }, + // "Root": { + // "additionalProperties": false, + // "description": "\u003cp\u003eThe upload storage root location (folder) on streaming workstations where files are\n uploaded.\u003c/p\u003e", + // "properties": { + // "Linux": { + // "description": "\u003cp\u003eThe folder path in Linux workstations where files are uploaded.\u003c/p\u003e", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Windows": { + // "description": "\u003cp\u003eThe folder path in Windows workstations where files are uploaded.\u003c/p\u003e", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, // "StreamingImageIds": { - // "description": "\u003cp\u003eThe streaming images that users can select from when launching a streaming session with this launch profile.\u003c/p\u003e", + // "description": "\u003cp\u003eThe streaming images that users can select from when launching a streaming session\n with this launch profile.\u003c/p\u003e", // "items": { - // "description": "", // "maxLength": 22, // "minLength": 0, // "pattern": "", // "type": "string" // }, // "maxItems": 20, - // "minItems": 0, + // "minItems": 1, // "type": "array" // } // }, @@ -173,9 +214,8 @@ func launchProfileResourceType(ctx context.Context) (tfsdk.ResourceType, error) map[string]tfsdk.Attribute{ "clipboard_mode": { // Property: ClipboardMode - Description: "", - Type: types.StringType, - Required: true, + Type: types.StringType, + Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "ENABLED", @@ -185,7 +225,7 @@ func launchProfileResourceType(ctx context.Context) (tfsdk.ResourceType, error) }, "ec_2_instance_types": { // Property: Ec2InstanceTypes - Description: "

The EC2 instance types that users can select from when launching a streaming session with this launch profile.

", + Description: "

The EC2 instance types that users can select from when launching a streaming session\n with this launch profile.

", Type: types.ListType{ElemType: types.StringType}, Required: true, Validators: []tfsdk.AttributeValidator{ @@ -202,20 +242,77 @@ func launchProfileResourceType(ctx context.Context) (tfsdk.ResourceType, error) }, "max_session_length_in_minutes": { // Property: MaxSessionLengthInMinutes - Description: "

The length of time, in minutes, that a streaming session can run. After this point, Nimble Studio automatically terminates the session.

", + Description: "

The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.

", Type: types.NumberType, Optional: true, Validators: []tfsdk.AttributeValidator{ - validate.FloatBetween(1.000000, 690.000000), + validate.FloatBetween(1.000000, 43200.000000), }, }, + "max_stopped_session_length_in_minutes": { + // Property: MaxStoppedSessionLengthInMinutes + Description: "

Integer that determines if you can start and stop your sessions and how long a session\n can stay in the STOPPED state. The default value is 0. The maximum value is 5760.

\n

If the value is missing or set to 0, your sessions can?t be stopped. If you then call\n StopStreamingSession, the session fails. If the time that a session stays in the READY\n state exceeds the maxSessionLengthInMinutes value, the session will automatically be\n terminated by AWS (instead of stopped).

\n

If the value is set to a positive number, the session can be stopped. You can call\n StopStreamingSession to stop sessions in the READY state. If the time that a session\n stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will\n automatically be stopped by AWS (instead of terminated).

", + Type: types.NumberType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.FloatBetween(0.000000, 5760.000000), + }, + }, + "session_storage": { + // Property: SessionStorage + Description: "

The configuration for a streaming session?s upload storage.

", + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "mode": { + // Property: Mode + Description: "

Allows artists to upload files to their workstations. The only valid option is\n UPLOAD.

", + Type: types.ListType{ElemType: types.StringType}, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.ArrayLenAtLeast(1), + validate.ArrayForEach(validate.StringInSlice([]string{ + "UPLOAD", + })), + }, + }, + "root": { + // Property: Root + Description: "

The upload storage root location (folder) on streaming workstations where files are\n uploaded.

", + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "linux": { + // Property: Linux + Description: "

The folder path in Linux workstations where files are uploaded.

", + Type: types.StringType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 128), + }, + }, + "windows": { + // Property: Windows + Description: "

The folder path in Windows workstations where files are uploaded.

", + Type: types.StringType, + Optional: true, + Validators: []tfsdk.AttributeValidator{ + validate.StringLenBetween(1, 128), + }, + }, + }, + ), + Optional: true, + }, + }, + ), + Optional: true, + }, "streaming_image_ids": { // Property: StreamingImageIds - Description: "

The streaming images that users can select from when launching a streaming session with this launch profile.

", + Description: "

The streaming images that users can select from when launching a streaming session\n with this launch profile.

", Type: types.ListType{ElemType: types.StringType}, Required: true, Validators: []tfsdk.AttributeValidator{ - validate.ArrayLenBetween(0, 20), + validate.ArrayLenBetween(1, 20), validate.ArrayForEach(validate.StringLenBetween(0, 22)), }, }, @@ -227,7 +324,7 @@ func launchProfileResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: StudioComponentIds // CloudFormation resource type schema: // { - // "description": "\u003cp\u003eUnique identifiers for a collection of studio components that can be used with this launch profile.\u003c/p\u003e", + // "description": "\u003cp\u003eUnique identifiers for a collection of studio components that can be used with this\n launch profile.\u003c/p\u003e", // "items": { // "type": "string" // }, @@ -235,7 +332,7 @@ func launchProfileResourceType(ctx context.Context) (tfsdk.ResourceType, error) // "minItems": 1, // "type": "array" // } - Description: "

Unique identifiers for a collection of studio components that can be used with this launch profile.

", + Description: "

Unique identifiers for a collection of studio components that can be used with this\n launch profile.

", Type: types.ListType{ElemType: types.StringType}, Required: true, Validators: []tfsdk.AttributeValidator{ @@ -246,10 +343,10 @@ func launchProfileResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: StudioId // CloudFormation resource type schema: // { - // "description": "\u003cp\u003eThe studioId. \u003c/p\u003e", + // "description": "\u003cp\u003eThe studio ID. \u003c/p\u003e", // "type": "string" // } - Description: "

The studioId.

", + Description: "

The studio ID.

", Type: types.StringType, Required: true, PlanModifiers: []tfsdk.AttributePlanModifier{ @@ -261,7 +358,6 @@ func launchProfileResourceType(ctx context.Context) (tfsdk.ResourceType, error) // CloudFormation resource type schema: // { // "additionalProperties": false, - // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -269,7 +365,6 @@ func launchProfileResourceType(ctx context.Context) (tfsdk.ResourceType, error) // }, // "type": "object" // } - Description: "", // Pattern: "" Type: types.MapType{ElemType: types.StringType}, Optional: true, @@ -302,19 +397,25 @@ func launchProfileResourceType(ctx context.Context) (tfsdk.ResourceType, error) opts = opts.WithTerraformSchema(schema) opts = opts.WithSyntheticIDAttribute(true) opts = opts.WithAttributeNameMap(map[string]string{ - "clipboard_mode": "ClipboardMode", - "description": "Description", - "ec_2_instance_types": "Ec2InstanceTypes", - "ec_2_subnet_ids": "Ec2SubnetIds", - "launch_profile_id": "LaunchProfileId", - "launch_profile_protocol_versions": "LaunchProfileProtocolVersions", - "max_session_length_in_minutes": "MaxSessionLengthInMinutes", - "name": "Name", - "stream_configuration": "StreamConfiguration", - "streaming_image_ids": "StreamingImageIds", - "studio_component_ids": "StudioComponentIds", - "studio_id": "StudioId", - "tags": "Tags", + "clipboard_mode": "ClipboardMode", + "description": "Description", + "ec_2_instance_types": "Ec2InstanceTypes", + "ec_2_subnet_ids": "Ec2SubnetIds", + "launch_profile_id": "LaunchProfileId", + "launch_profile_protocol_versions": "LaunchProfileProtocolVersions", + "linux": "Linux", + "max_session_length_in_minutes": "MaxSessionLengthInMinutes", + "max_stopped_session_length_in_minutes": "MaxStoppedSessionLengthInMinutes", + "mode": "Mode", + "name": "Name", + "root": "Root", + "session_storage": "SessionStorage", + "stream_configuration": "StreamConfiguration", + "streaming_image_ids": "StreamingImageIds", + "studio_component_ids": "StudioComponentIds", + "studio_id": "StudioId", + "tags": "Tags", + "windows": "Windows", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/redshift/event_subscription_resource_gen.go b/internal/aws/redshift/event_subscription_resource_gen.go index 892bb42c58..ac9dfa3f8b 100644 --- a/internal/aws/redshift/event_subscription_resource_gen.go +++ b/internal/aws/redshift/event_subscription_resource_gen.go @@ -75,10 +75,11 @@ func eventSubscriptionResourceType(ctx context.Context) (tfsdk.ResourceType, err // ], // "type": "string" // }, - // "type": "array" + // "type": "array", + // "uniqueItems": true // } Description: "Specifies the Amazon Redshift event categories to be published by the event notification subscription.", - Type: types.ListType{ElemType: types.StringType}, + Type: types.SetType{ElemType: types.StringType}, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.ArrayForEach(validate.StringInSlice([]string{ @@ -89,9 +90,6 @@ func eventSubscriptionResourceType(ctx context.Context) (tfsdk.ResourceType, err "pending", })), }, - PlanModifiers: []tfsdk.AttributePlanModifier{ - Multiset(), - }, }, "event_categories_list": { // Property: EventCategoriesList @@ -102,13 +100,13 @@ func eventSubscriptionResourceType(ctx context.Context) (tfsdk.ResourceType, err // "items": { // "type": "string" // }, - // "type": "array" + // "type": "array", + // "uniqueItems": true // } Description: "The list of Amazon Redshift event categories specified in the event notification subscription.", - Type: types.ListType{ElemType: types.StringType}, + Type: types.SetType{ElemType: types.StringType}, Computed: true, PlanModifiers: []tfsdk.AttributePlanModifier{ - Multiset(), tfsdk.UseStateForUnknown(), }, }, diff --git a/internal/aws/route53resolver/resolver_rule_association_resource_gen.go b/internal/aws/route53resolver/resolver_rule_association_resource_gen.go new file mode 100644 index 0000000000..35b86f73f8 --- /dev/null +++ b/internal/aws/route53resolver/resolver_rule_association_resource_gen.go @@ -0,0 +1,120 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package route53resolver + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddResourceTypeFactory("awscc_route53resolver_resolver_rule_association", resolverRuleAssociationResourceType) +} + +// resolverRuleAssociationResourceType returns the Terraform awscc_route53resolver_resolver_rule_association resource type. +// This Terraform resource type corresponds to the CloudFormation AWS::Route53Resolver::ResolverRuleAssociation resource type. +func resolverRuleAssociationResourceType(ctx context.Context) (tfsdk.ResourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "name": { + // Property: Name + // CloudFormation resource type schema: + // { + // "description": "The name of an association between a Resolver rule and a VPC.", + // "type": "string" + // } + Description: "The name of an association between a Resolver rule and a VPC.", + Type: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + tfsdk.RequiresReplace(), + }, + }, + "resolver_rule_association_id": { + // Property: ResolverRuleAssociationId + // CloudFormation resource type schema: + // { + // "description": "Primary Identifier for Resolver Rule Association", + // "type": "string" + // } + Description: "Primary Identifier for Resolver Rule Association", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + }, + "resolver_rule_id": { + // Property: ResolverRuleId + // CloudFormation resource type schema: + // { + // "description": "The ID of the Resolver rule that you associated with the VPC that is specified by VPCId.", + // "type": "string" + // } + Description: "The ID of the Resolver rule that you associated with the VPC that is specified by VPCId.", + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + "vpc_id": { + // Property: VPCId + // CloudFormation resource type schema: + // { + // "description": "The ID of the VPC that you associated the Resolver rule with.", + // "type": "string" + // } + Description: "The ID of the VPC that you associated the Resolver rule with.", + Type: types.StringType, + Required: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.RequiresReplace(), + }, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Computed: true, + PlanModifiers: []tfsdk.AttributePlanModifier{ + tfsdk.UseStateForUnknown(), + }, + } + + schema := tfsdk.Schema{ + Description: "Resource Type definition for AWS::Route53Resolver::ResolverRuleAssociation", + Version: 1, + Attributes: attributes, + } + + var opts ResourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Route53Resolver::ResolverRuleAssociation").WithTerraformTypeName("awscc_route53resolver_resolver_rule_association") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "name": "Name", + "resolver_rule_association_id": "ResolverRuleAssociationId", + "resolver_rule_id": "ResolverRuleId", + "vpc_id": "VPCId", + }) + + opts = opts.IsImmutableType(true) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + resourceType, err := NewResourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return resourceType, nil +} diff --git a/internal/aws/route53resolver/resolver_rule_association_resource_gen_test.go b/internal/aws/route53resolver/resolver_rule_association_resource_gen_test.go new file mode 100644 index 0000000000..58950a5de9 --- /dev/null +++ b/internal/aws/route53resolver/resolver_rule_association_resource_gen_test.go @@ -0,0 +1,22 @@ +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package route53resolver_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSRoute53ResolverResolverRuleAssociation_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Route53Resolver::ResolverRuleAssociation", "awscc_route53resolver_resolver_rule_association", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/rum/app_monitor_resource_gen.go b/internal/aws/rum/app_monitor_resource_gen.go index 8857730161..f0706c06e0 100644 --- a/internal/aws/rum/app_monitor_resource_gen.go +++ b/internal/aws/rum/app_monitor_resource_gen.go @@ -227,7 +227,7 @@ func appMonitorResourceType(ctx context.Context) (tfsdk.ResourceType, error) { // } Description: "The top-level internet domain name for which your application has administrative authority.", Type: types.StringType, - Optional: true, + Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 253), }, @@ -244,13 +244,11 @@ func appMonitorResourceType(ctx context.Context) (tfsdk.ResourceType, error) { // } Description: "A name for the app monitor", Type: types.StringType, - Optional: true, - Computed: true, + Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 255), }, PlanModifiers: []tfsdk.AttributePlanModifier{ - tfsdk.UseStateForUnknown(), tfsdk.RequiresReplace(), }, }, diff --git a/internal/aws/rum/app_monitor_resource_gen_test.go b/internal/aws/rum/app_monitor_resource_gen_test.go index cfe1a73ce2..d600c535a1 100644 --- a/internal/aws/rum/app_monitor_resource_gen_test.go +++ b/internal/aws/rum/app_monitor_resource_gen_test.go @@ -3,6 +3,7 @@ package rum_test import ( + "regexp" "testing" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" @@ -14,30 +15,8 @@ func TestAccAWSRUMAppMonitor_basic(t *testing.T) { td.ResourceTest(t, []resource.TestStep{ { - Config: td.EmptyConfig(), - Check: resource.ComposeTestCheckFunc( - td.CheckExistsInAWS(), - ), - }, - { - ResourceName: td.ResourceName, - ImportState: true, - ImportStateVerify: true, - }, - }) -} - -func TestAccAWSRUMAppMonitor_disappears(t *testing.T) { - td := acctest.NewTestData(t, "AWS::RUM::AppMonitor", "awscc_rum_app_monitor", "test") - - td.ResourceTest(t, []resource.TestStep{ - { - Config: td.EmptyConfig(), - Check: resource.ComposeTestCheckFunc( - td.CheckExistsInAWS(), - td.DeleteResource(), - ), - ExpectNonEmptyPlan: true, + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), }, }) } diff --git a/internal/aws/sagemaker/pipeline_resource_gen.go b/internal/aws/sagemaker/pipeline_resource_gen.go index e27730c458..46040daade 100644 --- a/internal/aws/sagemaker/pipeline_resource_gen.go +++ b/internal/aws/sagemaker/pipeline_resource_gen.go @@ -20,6 +20,38 @@ func init() { // This Terraform resource type corresponds to the CloudFormation AWS::SageMaker::Pipeline resource type. func pipelineResourceType(ctx context.Context) (tfsdk.ResourceType, error) { attributes := map[string]tfsdk.Attribute{ + "parallelism_configuration": { + // Property: ParallelismConfiguration + // CloudFormation resource type schema: + // { + // "additionalProperties": false, + // "properties": { + // "MaxParallelExecutionSteps": { + // "description": "Maximum parallel execution steps", + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "MaxParallelExecutionSteps" + // ], + // "type": "object" + // } + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "max_parallel_execution_steps": { + // Property: MaxParallelExecutionSteps + Description: "Maximum parallel execution steps", + Type: types.NumberType, + Required: true, + Validators: []tfsdk.AttributeValidator{ + validate.IntAtLeast(1), + }, + }, + }, + ), + Optional: true, + }, "pipeline_definition": { // Property: PipelineDefinition // CloudFormation resource type schema: @@ -238,6 +270,8 @@ func pipelineResourceType(ctx context.Context) (tfsdk.ResourceType, error) { "bucket": "Bucket", "e_tag": "ETag", "key": "Key", + "max_parallel_execution_steps": "MaxParallelExecutionSteps", + "parallelism_configuration": "ParallelismConfiguration", "pipeline_definition": "PipelineDefinition", "pipeline_definition_body": "PipelineDefinitionBody", "pipeline_definition_s3_location": "PipelineDefinitionS3Location", diff --git a/internal/aws/timestream/scheduled_query_resource_gen.go b/internal/aws/timestream/scheduled_query_resource_gen.go index beb621e29b..80f0311626 100644 --- a/internal/aws/timestream/scheduled_query_resource_gen.go +++ b/internal/aws/timestream/scheduled_query_resource_gen.go @@ -40,12 +40,12 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: ClientToken // CloudFormation resource type schema: // { - // "description": "Token provided to ensure idempotency when creating scheduled queries.", + // "description": "Using a ClientToken makes the call to CreateScheduledQuery idempotent, in other words, making the same request repeatedly will produce the same result. Making multiple identical CreateScheduledQuery requests has the same effect as making a single request. If CreateScheduledQuery is called without a ClientToken, the Query SDK generates a ClientToken on your behalf. After 8 hours, any request with the same ClientToken is treated as a new request.", // "maxLength": 128, // "minLength": 32, // "type": "string" // } - Description: "Token provided to ensure idempotency when creating scheduled queries.", + Description: "Using a ClientToken makes the call to CreateScheduledQuery idempotent, in other words, making the same request repeatedly will produce the same result. Making multiple identical CreateScheduledQuery requests has the same effect as making a single request. If CreateScheduledQuery is called without a ClientToken, the Query SDK generates a ClientToken on your behalf. After 8 hours, any request with the same ClientToken is treated as a new request.", Type: types.StringType, Optional: true, Computed: true, @@ -62,21 +62,21 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // CloudFormation resource type schema: // { // "additionalProperties": false, - // "description": "Configuration for where error reports will be placed, how they will be named, and how they will be encrypted.", + // "description": "Configuration for error reporting. Error reports will be generated when a problem is encountered when writing the query results.", // "properties": { // "S3Configuration": { // "additionalProperties": false, - // "description": "S3 configuration for where error reports will be placed, how they will be named, and how they will be encrypted.", + // "description": "Details on S3 location for error reports that result from running a query.", // "properties": { // "BucketName": { - // "description": "S3 bucket where error reports will be placed.", + // "description": "Name of the S3 bucket under which error reports will be created.", // "maxLength": 63, // "minLength": 3, // "pattern": "", // "type": "string" // }, // "EncryptionOption": { - // "description": "How error reports will be encrypted.", + // "description": "Encryption at rest options for the error reports. If no encryption option is specified, Timestream will choose SSE_S3 as default.", // "enum": [ // "SSE_S3", // "SSE_KMS" @@ -84,7 +84,7 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // "type": "string" // }, // "ObjectKeyPrefix": { - // "description": "Prefix for error report names.", + // "description": "Prefix for error report keys.", // "maxLength": 896, // "minLength": 1, // "pattern": "", @@ -102,17 +102,17 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // ], // "type": "object" // } - Description: "Configuration for where error reports will be placed, how they will be named, and how they will be encrypted.", + Description: "Configuration for error reporting. Error reports will be generated when a problem is encountered when writing the query results.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "s3_configuration": { // Property: S3Configuration - Description: "S3 configuration for where error reports will be placed, how they will be named, and how they will be encrypted.", + Description: "Details on S3 location for error reports that result from running a query.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "bucket_name": { // Property: BucketName - Description: "S3 bucket where error reports will be placed.", + Description: "Name of the S3 bucket under which error reports will be created.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ @@ -121,7 +121,7 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) }, "encryption_option": { // Property: EncryptionOption - Description: "How error reports will be encrypted.", + Description: "Encryption at rest options for the error reports. If no encryption option is specified, Timestream will choose SSE_S3 as default.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ @@ -133,7 +133,7 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) }, "object_key_prefix": { // Property: ObjectKeyPrefix - Description: "Prefix for error report names.", + Description: "Prefix for error report keys.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ @@ -155,12 +155,12 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: KmsKeyId // CloudFormation resource type schema: // { - // "description": "The KMS key for the scheduled query. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS key located in your account.", + // "description": "The Amazon KMS key used to encrypt the scheduled query resource, at-rest. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix the name with alias/. If ErrorReportConfiguration uses SSE_KMS as encryption type, the same KmsKeyId is used to encrypt the error report at rest.", // "maxLength": 2048, // "minLength": 1, // "type": "string" // } - Description: "The KMS key for the scheduled query. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS key located in your account.", + Description: "The Amazon KMS key used to encrypt the scheduled query resource, at-rest. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix the name with alias/. If ErrorReportConfiguration uses SSE_KMS as encryption type, the same KmsKeyId is used to encrypt the error report at rest.", Type: types.StringType, Optional: true, Computed: true, @@ -177,14 +177,14 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // CloudFormation resource type schema: // { // "additionalProperties": false, - // "description": "Configuration for notification upon scheduled query execution.", + // "description": "Notification configuration for the scheduled query. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it.", // "properties": { // "SnsConfiguration": { // "additionalProperties": false, // "description": "SNS configuration for notification upon scheduled query execution.", // "properties": { // "TopicArn": { - // "description": "SNS Topic to be notified upon scheduled query execution.", + // "description": "SNS topic ARN that the scheduled query status notifications will be sent to.", // "maxLength": 2048, // "minLength": 1, // "type": "string" @@ -201,7 +201,7 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // ], // "type": "object" // } - Description: "Configuration for notification upon scheduled query execution.", + Description: "Notification configuration for the scheduled query. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "sns_configuration": { @@ -211,7 +211,7 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) map[string]tfsdk.Attribute{ "topic_arn": { // Property: TopicArn - Description: "SNS Topic to be notified upon scheduled query execution.", + Description: "SNS topic ARN that the scheduled query status notifications will be sent to.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ @@ -233,12 +233,12 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: QueryString // CloudFormation resource type schema: // { - // "description": "The query scheduled to be executed.", + // "description": "The query string to run. Parameter names can be specified in the query string @ character followed by an identifier. The named Parameter @scheduled_runtime is reserved and can be used in the query to get the time at which the query is scheduled to run. The timestamp calculated according to the ScheduleConfiguration parameter, will be the value of @scheduled_runtime paramater for each query run. For example, consider an instance of a scheduled query executing on 2021-12-01 00:00:00. For this instance, the @scheduled_runtime parameter is initialized to the timestamp 2021-12-01 00:00:00 when invoking the query.", // "maxLength": 262144, // "minLength": 1, // "type": "string" // } - Description: "The query scheduled to be executed.", + Description: "The query string to run. Parameter names can be specified in the query string @ character followed by an identifier. The named Parameter @scheduled_runtime is reserved and can be used in the query to get the time at which the query is scheduled to run. The timestamp calculated according to the ScheduleConfiguration parameter, will be the value of @scheduled_runtime paramater for each query run. For example, consider an instance of a scheduled query executing on 2021-12-01 00:00:00. For this instance, the @scheduled_runtime parameter is initialized to the timestamp 2021-12-01 00:00:00 when invoking the query.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ @@ -252,10 +252,10 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: SQErrorReportConfiguration // CloudFormation resource type schema: // { - // "description": "Configuration for where error reports will be placed, how they will be named, and how they will be encrypted.", + // "description": "Configuration for error reporting. Error reports will be generated when a problem is encountered when writing the query results.", // "type": "string" // } - Description: "Configuration for where error reports will be placed, how they will be named, and how they will be encrypted.", + Description: "Configuration for error reporting. Error reports will be generated when a problem is encountered when writing the query results.", Type: types.StringType, Computed: true, PlanModifiers: []tfsdk.AttributePlanModifier{ @@ -266,10 +266,10 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: SQKmsKeyId // CloudFormation resource type schema: // { - // "description": "The KMS key for the scheduled query. If the KMS key is not specified, the database will be encrypted with a Timestream owned KMS key located in the Timestream account.", + // "description": "The Amazon KMS key used to encrypt the scheduled query resource, at-rest. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix the name with alias/. If ErrorReportConfiguration uses SSE_KMS as encryption type, the same KmsKeyId is used to encrypt the error report at rest.", // "type": "string" // } - Description: "The KMS key for the scheduled query. If the KMS key is not specified, the database will be encrypted with a Timestream owned KMS key located in the Timestream account.", + Description: "The Amazon KMS key used to encrypt the scheduled query resource, at-rest. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix the name with alias/. If ErrorReportConfiguration uses SSE_KMS as encryption type, the same KmsKeyId is used to encrypt the error report at rest.", Type: types.StringType, Computed: true, PlanModifiers: []tfsdk.AttributePlanModifier{ @@ -280,10 +280,10 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: SQName // CloudFormation resource type schema: // { - // "description": "The name for the scheduled query.", + // "description": "The name of the scheduled query. Scheduled query names must be unique within each Region.", // "type": "string" // } - Description: "The name for the scheduled query.", + Description: "The name of the scheduled query. Scheduled query names must be unique within each Region.", Type: types.StringType, Computed: true, PlanModifiers: []tfsdk.AttributePlanModifier{ @@ -294,10 +294,10 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: SQNotificationConfiguration // CloudFormation resource type schema: // { - // "description": "Configuration for notification upon scheduled query execution.", + // "description": "Notification configuration for the scheduled query. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it.", // "type": "string" // } - Description: "Configuration for notification upon scheduled query execution.", + Description: "Notification configuration for the scheduled query. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it.", Type: types.StringType, Computed: true, PlanModifiers: []tfsdk.AttributePlanModifier{ @@ -308,10 +308,10 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: SQQueryString // CloudFormation resource type schema: // { - // "description": "The query scheduled to be executed.", + // "description": "The query string to run. Parameter names can be specified in the query string @ character followed by an identifier. The named Parameter @scheduled_runtime is reserved and can be used in the query to get the time at which the query is scheduled to run. The timestamp calculated according to the ScheduleConfiguration parameter, will be the value of @scheduled_runtime paramater for each query run. For example, consider an instance of a scheduled query executing on 2021-12-01 00:00:00. For this instance, the @scheduled_runtime parameter is initialized to the timestamp 2021-12-01 00:00:00 when invoking the query.", // "type": "string" // } - Description: "The query scheduled to be executed.", + Description: "The query string to run. Parameter names can be specified in the query string @ character followed by an identifier. The named Parameter @scheduled_runtime is reserved and can be used in the query to get the time at which the query is scheduled to run. The timestamp calculated according to the ScheduleConfiguration parameter, will be the value of @scheduled_runtime paramater for each query run. For example, consider an instance of a scheduled query executing on 2021-12-01 00:00:00. For this instance, the @scheduled_runtime parameter is initialized to the timestamp 2021-12-01 00:00:00 when invoking the query.", Type: types.StringType, Computed: true, PlanModifiers: []tfsdk.AttributePlanModifier{ @@ -322,10 +322,10 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: SQScheduleConfiguration // CloudFormation resource type schema: // { - // "description": "Configuration that indicates when the scheduled query is executed.", + // "description": "Configuration for when the scheduled query is executed.", // "type": "string" // } - Description: "Configuration that indicates when the scheduled query is executed.", + Description: "Configuration for when the scheduled query is executed.", Type: types.StringType, Computed: true, PlanModifiers: []tfsdk.AttributePlanModifier{ @@ -336,10 +336,10 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: SQScheduledQueryExecutionRoleArn // CloudFormation resource type schema: // { - // "description": "Role that AWS Timestream will assume to execute scheduled query.", + // "description": "The ARN for the IAM role that Timestream will assume when running the scheduled query.", // "type": "string" // } - Description: "Role that AWS Timestream will assume to execute scheduled query.", + Description: "The ARN for the IAM role that Timestream will assume when running the scheduled query.", Type: types.StringType, Computed: true, PlanModifiers: []tfsdk.AttributePlanModifier{ @@ -350,10 +350,10 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: SQTargetConfiguration // CloudFormation resource type schema: // { - // "description": "Target data source to export query results from.", + // "description": "Configuration of target store where scheduled query results are written to.", // "type": "string" // } - Description: "Target data source to export query results from.", + Description: "Configuration of target store where scheduled query results are written to.", Type: types.StringType, Computed: true, PlanModifiers: []tfsdk.AttributePlanModifier{ @@ -365,10 +365,10 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // CloudFormation resource type schema: // { // "additionalProperties": false, - // "description": "Configuration that indicates when the scheduled query is executed.", + // "description": "Configuration for when the scheduled query is executed.", // "properties": { // "ScheduleExpression": { - // "description": "The cron expression that indicates when the scheduled query is executed.", + // "description": "An expression that denotes when to trigger the scheduled query run. This can be a cron expression or a rate expression.", // "maxLength": 256, // "minLength": 1, // "type": "string" @@ -379,12 +379,12 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // ], // "type": "object" // } - Description: "Configuration that indicates when the scheduled query is executed.", + Description: "Configuration for when the scheduled query is executed.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "schedule_expression": { // Property: ScheduleExpression - Description: "The cron expression that indicates when the scheduled query is executed.", + Description: "An expression that denotes when to trigger the scheduled query run. This can be a cron expression or a rate expression.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ @@ -402,12 +402,12 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: ScheduledQueryExecutionRoleArn // CloudFormation resource type schema: // { - // "description": "Role that AWS Timestream will assume to execute scheduled query.", + // "description": "The ARN for the IAM role that Timestream will assume when running the scheduled query.", // "maxLength": 2048, // "minLength": 1, // "type": "string" // } - Description: "Role that AWS Timestream will assume to execute scheduled query.", + Description: "The ARN for the IAM role that Timestream will assume when running the scheduled query.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ @@ -421,13 +421,13 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: ScheduledQueryName // CloudFormation resource type schema: // { - // "description": "The name for the scheduled query.", + // "description": "The name of the scheduled query. Scheduled query names must be unique within each Region.", // "maxLength": 64, // "minLength": 1, // "pattern": "", // "type": "string" // } - Description: "The name for the scheduled query.", + Description: "The name of the scheduled query. Scheduled query names must be unique within each Region.", Type: types.StringType, Optional: true, Computed: true, @@ -443,11 +443,11 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // Property: Tags // CloudFormation resource type schema: // { - // "description": "An array of key-value pairs to apply to this resource.", + // "description": "A list of key-value pairs to label the scheduled query.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "A key-value pair to associate with a resource.", + // "description": "A key-value pair to label the scheduled query.", // "properties": { // "Key": { // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", @@ -471,7 +471,7 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // "maxItems": 200, // "type": "array" // } - Description: "An array of key-value pairs to apply to this resource.", + Description: "A list of key-value pairs to label the scheduled query.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "key": { @@ -508,32 +508,32 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // CloudFormation resource type schema: // { // "additionalProperties": false, - // "description": "Configuration of target destination table to query.", + // "description": "Configuration of target store where scheduled query results are written to.", // "properties": { // "TimestreamConfiguration": { // "additionalProperties": false, - // "description": "Timestream configuration of destination table to query.", + // "description": "Configuration needed to write data into the Timestream database and table.", // "properties": { // "DatabaseName": { - // "description": "The source database to query.", + // "description": "Name of Timestream database to which the query result will be written.", // "type": "string" // }, // "DimensionMappings": { - // "description": "Mappings of dimension names to dimension value types.", + // "description": "This is to allow mapping column(s) from the query result to the dimension in the destination table.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Mapping of dimension column name to dimension column value type.", + // "description": "This type is used to map column(s) from the query result to a dimension in the destination table.", // "properties": { // "DimensionValueType": { - // "description": "Value type of the dimension column.", + // "description": "Type for the dimension.", // "enum": [ // "VARCHAR" // ], // "type": "string" // }, // "Name": { - // "description": "Name of the dimension column.", + // "description": "Column name from query result.", // "type": "string" // } // }, @@ -546,22 +546,22 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // "type": "array" // }, // "MeasureNameColumn": { - // "description": "Name of the source measure names column.", + // "description": "Name of the measure name column from the query result.", // "type": "string" // }, // "MixedMeasureMappings": { - // "description": "Mapping of measure names and measure value columns from the source table to the destination table.", + // "description": "Specifies how to map measures to multi-measure records.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Mapping of measure names and measure value columns from the source table to the destination table.", + // "description": "MixedMeasureMappings are mappings that can be used to ingest data into a mixture of narrow and multi measures in the derived table.", // "properties": { // "MeasureName": { - // "description": "Name of the measure in source table.", + // "description": "Refers to the value of the measure name in a result row. This field is required if MeasureNameColumn is provided.", // "type": "string" // }, // "MeasureValueType": { - // "description": "Value type of the measure value column in the destination table.", + // "description": "Type of the value that is to be read from SourceColumn. If the mapping is for MULTI, use MeasureValueType.MULTI.", // "enum": [ // "BIGINT", // "BOOLEAN", @@ -572,14 +572,14 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // "type": "string" // }, // "MultiMeasureAttributeMappings": { - // "description": "List of multi-measure value column mappings.", + // "description": "Required. Attribute mappings to be used for mapping query results to ingest data for multi-measure attributes.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Mapping of measure value columns from the source table to the destination table.", + // "description": "An attribute mapping to be used for mapping query results to ingest data for multi-measure attributes.", // "properties": { // "MeasureValueType": { - // "description": "Value type of the measure value column in the destination table.", + // "description": "Value type of the measure value column to be read from the query result.", // "enum": [ // "BIGINT", // "BOOLEAN", @@ -589,11 +589,11 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // "type": "string" // }, // "SourceColumn": { - // "description": "Name of the measure value column in the source table.", + // "description": "Source measure value column in the query result where the attribute value is to be read.", // "type": "string" // }, // "TargetMultiMeasureAttributeName": { - // "description": "Name of the measure value column in the destination table.", + // "description": "Custom name to be used for attribute name in derived table. If not provided, source column name would be used.", // "type": "string" // } // }, @@ -607,11 +607,11 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // "type": "array" // }, // "SourceColumn": { - // "description": "Name of the measure value column in the source table.", + // "description": "This field refers to the source column from which the measure value is to be read for result materialization.", // "type": "string" // }, // "TargetMeasureName": { - // "description": "Name of the measure in the destination table.", + // "description": "Target measure name to be used. If not provided, the target measure name by default would be MeasureName if provided, or SourceColumn otherwise.", // "type": "string" // } // }, @@ -625,17 +625,17 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // }, // "MultiMeasureMappings": { // "additionalProperties": false, - // "description": "Mapping of measure value columns from the source table to the destination table.", + // "description": "Only one of MixedMeasureMappings or MultiMeasureMappings is to be provided. MultiMeasureMappings can be used to ingest data as multi measures in the derived table.", // "properties": { // "MultiMeasureAttributeMappings": { - // "description": "List of multi-measure value column mappings.", + // "description": "Required. Attribute mappings to be used for mapping query results to ingest data for multi-measure attributes.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Mapping of measure value columns from the source table to the destination table.", + // "description": "An attribute mapping to be used for mapping query results to ingest data for multi-measure attributes.", // "properties": { // "MeasureValueType": { - // "description": "Value type of the measure value column in the destination table.", + // "description": "Value type of the measure value column to be read from the query result.", // "enum": [ // "BIGINT", // "BOOLEAN", @@ -645,11 +645,11 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // "type": "string" // }, // "SourceColumn": { - // "description": "Name of the measure value column in the source table.", + // "description": "Source measure value column in the query result where the attribute value is to be read.", // "type": "string" // }, // "TargetMultiMeasureAttributeName": { - // "description": "Name of the measure value column in the destination table.", + // "description": "Custom name to be used for attribute name in derived table. If not provided, source column name would be used.", // "type": "string" // } // }, @@ -663,7 +663,7 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // "type": "array" // }, // "TargetMultiMeasureName": { - // "description": "Name of the multi-measure in the destination table.", + // "description": "Name of the target multi-measure in the derived table. Required if MeasureNameColumn is not provided. If MeasureNameColumn is provided then the value from that column will be used as the multi-measure name.", // "type": "string" // } // }, @@ -673,11 +673,11 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // "type": "object" // }, // "TableName": { - // "description": "The source table to query.", + // "description": "Name of Timestream table that the query result will be written to. The table should be within the same database that is provided in Timestream configuration.", // "type": "string" // }, // "TimeColumn": { - // "description": "Name of the \"time\" column.", + // "description": "Column from query result that should be used as the time column in destination table. Column type for this should be TIMESTAMP.", // "type": "string" // } // }, @@ -695,28 +695,28 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) // ], // "type": "object" // } - Description: "Configuration of target destination table to query.", + Description: "Configuration of target store where scheduled query results are written to.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "timestream_configuration": { // Property: TimestreamConfiguration - Description: "Timestream configuration of destination table to query.", + Description: "Configuration needed to write data into the Timestream database and table.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "database_name": { // Property: DatabaseName - Description: "The source database to query.", + Description: "Name of Timestream database to which the query result will be written.", Type: types.StringType, Required: true, }, "dimension_mappings": { // Property: DimensionMappings - Description: "Mappings of dimension names to dimension value types.", + Description: "This is to allow mapping column(s) from the query result to the dimension in the destination table.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "dimension_value_type": { // Property: DimensionValueType - Description: "Value type of the dimension column.", + Description: "Type for the dimension.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ @@ -727,7 +727,7 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) }, "name": { // Property: Name - Description: "Name of the dimension column.", + Description: "Column name from query result.", Type: types.StringType, Required: true, }, @@ -741,24 +741,24 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) }, "measure_name_column": { // Property: MeasureNameColumn - Description: "Name of the source measure names column.", + Description: "Name of the measure name column from the query result.", Type: types.StringType, Optional: true, }, "mixed_measure_mappings": { // Property: MixedMeasureMappings - Description: "Mapping of measure names and measure value columns from the source table to the destination table.", + Description: "Specifies how to map measures to multi-measure records.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "measure_name": { // Property: MeasureName - Description: "Name of the measure in source table.", + Description: "Refers to the value of the measure name in a result row. This field is required if MeasureNameColumn is provided.", Type: types.StringType, Optional: true, }, "measure_value_type": { // Property: MeasureValueType - Description: "Value type of the measure value column in the destination table.", + Description: "Type of the value that is to be read from SourceColumn. If the mapping is for MULTI, use MeasureValueType.MULTI.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ @@ -773,12 +773,12 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) }, "multi_measure_attribute_mappings": { // Property: MultiMeasureAttributeMappings - Description: "List of multi-measure value column mappings.", + Description: "Required. Attribute mappings to be used for mapping query results to ingest data for multi-measure attributes.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "measure_value_type": { // Property: MeasureValueType - Description: "Value type of the measure value column in the destination table.", + Description: "Value type of the measure value column to be read from the query result.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ @@ -792,13 +792,13 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) }, "source_column": { // Property: SourceColumn - Description: "Name of the measure value column in the source table.", + Description: "Source measure value column in the query result where the attribute value is to be read.", Type: types.StringType, Required: true, }, "target_multi_measure_attribute_name": { // Property: TargetMultiMeasureAttributeName - Description: "Name of the measure value column in the destination table.", + Description: "Custom name to be used for attribute name in derived table. If not provided, source column name would be used.", Type: types.StringType, Optional: true, }, @@ -815,13 +815,13 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) }, "source_column": { // Property: SourceColumn - Description: "Name of the measure value column in the source table.", + Description: "This field refers to the source column from which the measure value is to be read for result materialization.", Type: types.StringType, Optional: true, }, "target_measure_name": { // Property: TargetMeasureName - Description: "Name of the measure in the destination table.", + Description: "Target measure name to be used. If not provided, the target measure name by default would be MeasureName if provided, or SourceColumn otherwise.", Type: types.StringType, Optional: true, }, @@ -838,17 +838,17 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) }, "multi_measure_mappings": { // Property: MultiMeasureMappings - Description: "Mapping of measure value columns from the source table to the destination table.", + Description: "Only one of MixedMeasureMappings or MultiMeasureMappings is to be provided. MultiMeasureMappings can be used to ingest data as multi measures in the derived table.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "multi_measure_attribute_mappings": { // Property: MultiMeasureAttributeMappings - Description: "List of multi-measure value column mappings.", + Description: "Required. Attribute mappings to be used for mapping query results to ingest data for multi-measure attributes.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "measure_value_type": { // Property: MeasureValueType - Description: "Value type of the measure value column in the destination table.", + Description: "Value type of the measure value column to be read from the query result.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ @@ -862,13 +862,13 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) }, "source_column": { // Property: SourceColumn - Description: "Name of the measure value column in the source table.", + Description: "Source measure value column in the query result where the attribute value is to be read.", Type: types.StringType, Required: true, }, "target_multi_measure_attribute_name": { // Property: TargetMultiMeasureAttributeName - Description: "Name of the measure value column in the destination table.", + Description: "Custom name to be used for attribute name in derived table. If not provided, source column name would be used.", Type: types.StringType, Optional: true, }, @@ -885,7 +885,7 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) }, "target_multi_measure_name": { // Property: TargetMultiMeasureName - Description: "Name of the multi-measure in the destination table.", + Description: "Name of the target multi-measure in the derived table. Required if MeasureNameColumn is not provided. If MeasureNameColumn is provided then the value from that column will be used as the multi-measure name.", Type: types.StringType, Optional: true, }, @@ -895,13 +895,13 @@ func scheduledQueryResourceType(ctx context.Context) (tfsdk.ResourceType, error) }, "table_name": { // Property: TableName - Description: "The source table to query.", + Description: "Name of Timestream table that the query result will be written to. The table should be within the same database that is provided in Timestream configuration.", Type: types.StringType, Required: true, }, "time_column": { // Property: TimeColumn - Description: "Name of the \"time\" column.", + Description: "Column from query result that should be used as the time column in destination table. Column type for this should be TIMESTAMP.", Type: types.StringType, Required: true, }, From aa446e66a89848644e402e71f21b13de1c712498 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 13 Jan 2022 16:37:17 -0500 Subject: [PATCH 4/6] 01/12/2022 CloudFormation schemas in us-east-1; Generate Terraform data source schemas. --- .../domain_name_singular_data_source_gen.go | 18 - ...nt_association_singular_data_source_gen.go | 80 + ...sociation_singular_data_source_gen_test.go | 33 + .../entitlement_singular_data_source_gen.go | 153 ++ ...titlement_singular_data_source_gen_test.go | 33 + .../warm_pool_singular_data_source_gen.go | 25 + .../ec2/flow_log_singular_data_source_gen.go | 2 +- .../aws/ec2/host_plural_data_source_gen.go | 52 + .../ec2/host_plural_data_source_gen_test.go | 24 + .../aws/ec2/host_singular_data_source_gen.go | 110 + .../ec2/host_singular_data_source_gen_test.go | 33 + ...s_scope_analysis_plural_data_source_gen.go | 52 + ...pe_analysis_plural_data_source_gen_test.go | 24 + ...scope_analysis_singular_data_source_gen.go | 192 ++ ..._analysis_singular_data_source_gen_test.go | 33 + ...hts_access_scope_plural_data_source_gen.go | 52 + ...ccess_scope_plural_data_source_gen_test.go | 24 + ...s_access_scope_singular_data_source_gen.go | 918 +++++++++ ...ess_scope_singular_data_source_gen_test.go | 37 + .../dataset_group_plural_data_source_gen.go | 52 + ...taset_group_plural_data_source_gen_test.go | 24 + .../dataset_group_singular_data_source_gen.go | 174 ++ ...set_group_singular_data_source_gen_test.go | 33 + .../filter_plural_data_source_gen.go | 52 + .../filter_plural_data_source_gen_test.go | 24 + .../filter_singular_data_source_gen.go | 1819 +++++++++++++++++ .../filter_singular_data_source_gen_test.go | 33 + .../job_template_singular_data_source_gen.go | 67 +- .../gateway_singular_data_source_gen.go | 50 +- ...naling_channel_singular_data_source_gen.go | 163 ++ ...g_channel_singular_data_source_gen_test.go | 37 + .../stream_singular_data_source_gen.go | 193 ++ .../stream_singular_data_source_gen_test.go | 37 + .../lex/bot_alias_singular_data_source_gen.go | 7 +- .../lightsail/alarm_plural_data_source_gen.go | 52 + .../alarm_plural_data_source_gen_test.go | 24 + .../alarm_singular_data_source_gen.go | 215 ++ .../alarm_singular_data_source_gen_test.go | 33 + .../bucket_plural_data_source_gen.go | 52 + .../bucket_plural_data_source_gen_test.go | 24 + .../bucket_singular_data_source_gen.go | 251 +++ .../bucket_singular_data_source_gen_test.go | 33 + .../load_balancer_plural_data_source_gen.go | 52 + ...ad_balancer_plural_data_source_gen_test.go | 24 + .../load_balancer_singular_data_source_gen.go | 204 ++ ..._balancer_singular_data_source_gen_test.go | 33 + ...ls_certificate_singular_data_source_gen.go | 138 ++ ...rtificate_singular_data_source_gen_test.go | 33 + .../tracker_singular_data_source_gen.go | 3 +- ...launch_profile_singular_data_source_gen.go | 164 +- ...t_subscription_singular_data_source_gen.go | 10 +- ...rule_association_plural_data_source_gen.go | 52 + ...association_plural_data_source_gen_test.go | 24 + ...le_association_singular_data_source_gen.go | 98 + ...sociation_singular_data_source_gen_test.go | 33 + ...p_monitor_singular_data_source_gen_test.go | 8 +- .../pipeline_singular_data_source_gen.go | 31 + ...cheduled_query_singular_data_source_gen.go | 198 +- 58 files changed, 6271 insertions(+), 178 deletions(-) create mode 100644 internal/aws/appstream/application_entitlement_association_singular_data_source_gen.go create mode 100644 internal/aws/appstream/application_entitlement_association_singular_data_source_gen_test.go create mode 100644 internal/aws/appstream/entitlement_singular_data_source_gen.go create mode 100644 internal/aws/appstream/entitlement_singular_data_source_gen_test.go create mode 100644 internal/aws/ec2/host_plural_data_source_gen.go create mode 100644 internal/aws/ec2/host_plural_data_source_gen_test.go create mode 100644 internal/aws/ec2/host_singular_data_source_gen.go create mode 100644 internal/aws/ec2/host_singular_data_source_gen_test.go create mode 100644 internal/aws/ec2/network_insights_access_scope_analysis_plural_data_source_gen.go create mode 100644 internal/aws/ec2/network_insights_access_scope_analysis_plural_data_source_gen_test.go create mode 100644 internal/aws/ec2/network_insights_access_scope_analysis_singular_data_source_gen.go create mode 100644 internal/aws/ec2/network_insights_access_scope_analysis_singular_data_source_gen_test.go create mode 100644 internal/aws/ec2/network_insights_access_scope_plural_data_source_gen.go create mode 100644 internal/aws/ec2/network_insights_access_scope_plural_data_source_gen_test.go create mode 100644 internal/aws/ec2/network_insights_access_scope_singular_data_source_gen.go create mode 100644 internal/aws/ec2/network_insights_access_scope_singular_data_source_gen_test.go create mode 100644 internal/aws/forecast/dataset_group_plural_data_source_gen.go create mode 100644 internal/aws/forecast/dataset_group_plural_data_source_gen_test.go create mode 100644 internal/aws/forecast/dataset_group_singular_data_source_gen.go create mode 100644 internal/aws/forecast/dataset_group_singular_data_source_gen_test.go create mode 100644 internal/aws/inspectorv2/filter_plural_data_source_gen.go create mode 100644 internal/aws/inspectorv2/filter_plural_data_source_gen_test.go create mode 100644 internal/aws/inspectorv2/filter_singular_data_source_gen.go create mode 100644 internal/aws/inspectorv2/filter_singular_data_source_gen_test.go create mode 100644 internal/aws/kinesisvideo/signaling_channel_singular_data_source_gen.go create mode 100644 internal/aws/kinesisvideo/signaling_channel_singular_data_source_gen_test.go create mode 100644 internal/aws/kinesisvideo/stream_singular_data_source_gen.go create mode 100644 internal/aws/kinesisvideo/stream_singular_data_source_gen_test.go create mode 100644 internal/aws/lightsail/alarm_plural_data_source_gen.go create mode 100644 internal/aws/lightsail/alarm_plural_data_source_gen_test.go create mode 100644 internal/aws/lightsail/alarm_singular_data_source_gen.go create mode 100644 internal/aws/lightsail/alarm_singular_data_source_gen_test.go create mode 100644 internal/aws/lightsail/bucket_plural_data_source_gen.go create mode 100644 internal/aws/lightsail/bucket_plural_data_source_gen_test.go create mode 100644 internal/aws/lightsail/bucket_singular_data_source_gen.go create mode 100644 internal/aws/lightsail/bucket_singular_data_source_gen_test.go create mode 100644 internal/aws/lightsail/load_balancer_plural_data_source_gen.go create mode 100644 internal/aws/lightsail/load_balancer_plural_data_source_gen_test.go create mode 100644 internal/aws/lightsail/load_balancer_singular_data_source_gen.go create mode 100644 internal/aws/lightsail/load_balancer_singular_data_source_gen_test.go create mode 100644 internal/aws/lightsail/load_balancer_tls_certificate_singular_data_source_gen.go create mode 100644 internal/aws/lightsail/load_balancer_tls_certificate_singular_data_source_gen_test.go create mode 100644 internal/aws/route53resolver/resolver_rule_association_plural_data_source_gen.go create mode 100644 internal/aws/route53resolver/resolver_rule_association_plural_data_source_gen_test.go create mode 100644 internal/aws/route53resolver/resolver_rule_association_singular_data_source_gen.go create mode 100644 internal/aws/route53resolver/resolver_rule_association_singular_data_source_gen_test.go diff --git a/internal/aws/apigateway/domain_name_singular_data_source_gen.go b/internal/aws/apigateway/domain_name_singular_data_source_gen.go index 60c42fefd1..b290a49704 100644 --- a/internal/aws/apigateway/domain_name_singular_data_source_gen.go +++ b/internal/aws/apigateway/domain_name_singular_data_source_gen.go @@ -87,12 +87,6 @@ func domainNameDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) // { // "additionalProperties": false, // "properties": { - // "CertificateRevocationCheckType": { - // "type": "string" - // }, - // "CertificateRevocationSourceUri": { - // "type": "string" - // }, // "TruststoreUri": { // "type": "string" // }, @@ -104,16 +98,6 @@ func domainNameDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) // } Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ - "certificate_revocation_check_type": { - // Property: CertificateRevocationCheckType - Type: types.StringType, - Computed: true, - }, - "certificate_revocation_source_uri": { - // Property: CertificateRevocationSourceUri - Type: types.StringType, - Computed: true, - }, "truststore_uri": { // Property: TruststoreUri Type: types.StringType, @@ -228,8 +212,6 @@ func domainNameDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "certificate_arn": "CertificateArn", - "certificate_revocation_check_type": "CertificateRevocationCheckType", - "certificate_revocation_source_uri": "CertificateRevocationSourceUri", "distribution_domain_name": "DistributionDomainName", "distribution_hosted_zone_id": "DistributionHostedZoneId", "domain_name": "DomainName", diff --git a/internal/aws/appstream/application_entitlement_association_singular_data_source_gen.go b/internal/aws/appstream/application_entitlement_association_singular_data_source_gen.go new file mode 100644 index 0000000000..7fb36d5cd2 --- /dev/null +++ b/internal/aws/appstream/application_entitlement_association_singular_data_source_gen.go @@ -0,0 +1,80 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package appstream + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_appstream_application_entitlement_association", applicationEntitlementAssociationDataSourceType) +} + +// applicationEntitlementAssociationDataSourceType returns the Terraform awscc_appstream_application_entitlement_association data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::AppStream::ApplicationEntitlementAssociation resource type. +func applicationEntitlementAssociationDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "application_identifier": { + // Property: ApplicationIdentifier + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "entitlement_name": { + // Property: EntitlementName + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "stack_name": { + // Property: StackName + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Required: true, + } + + schema := tfsdk.Schema{ + Description: "Data Source schema for AWS::AppStream::ApplicationEntitlementAssociation", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::AppStream::ApplicationEntitlementAssociation").WithTerraformTypeName("awscc_appstream_application_entitlement_association") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "application_identifier": "ApplicationIdentifier", + "entitlement_name": "EntitlementName", + "stack_name": "StackName", + }) + + singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return singularDataSourceType, nil +} diff --git a/internal/aws/appstream/application_entitlement_association_singular_data_source_gen_test.go b/internal/aws/appstream/application_entitlement_association_singular_data_source_gen_test.go new file mode 100644 index 0000000000..3fca86f81c --- /dev/null +++ b/internal/aws/appstream/application_entitlement_association_singular_data_source_gen_test.go @@ -0,0 +1,33 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package appstream_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSAppStreamApplicationEntitlementAssociationDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::AppStream::ApplicationEntitlementAssociation", "awscc_appstream_application_entitlement_association", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSAppStreamApplicationEntitlementAssociationDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::AppStream::ApplicationEntitlementAssociation", "awscc_appstream_application_entitlement_association", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/appstream/entitlement_singular_data_source_gen.go b/internal/aws/appstream/entitlement_singular_data_source_gen.go new file mode 100644 index 0000000000..9fadfa0f6a --- /dev/null +++ b/internal/aws/appstream/entitlement_singular_data_source_gen.go @@ -0,0 +1,153 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package appstream + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_appstream_entitlement", entitlementDataSourceType) +} + +// entitlementDataSourceType returns the Terraform awscc_appstream_entitlement data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::AppStream::Entitlement resource type. +func entitlementDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "app_visibility": { + // Property: AppVisibility + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "attributes": { + // Property: Attributes + // CloudFormation resource type schema: + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + Attributes: tfsdk.SetNestedAttributes( + map[string]tfsdk.Attribute{ + "name": { + // Property: Name + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.SetNestedAttributesOptions{}, + ), + Computed: true, + }, + "created_time": { + // Property: CreatedTime + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "description": { + // Property: Description + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "last_modified_time": { + // Property: LastModifiedTime + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "name": { + // Property: Name + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "stack_name": { + // Property: StackName + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Required: true, + } + + schema := tfsdk.Schema{ + Description: "Data Source schema for AWS::AppStream::Entitlement", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::AppStream::Entitlement").WithTerraformTypeName("awscc_appstream_entitlement") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "app_visibility": "AppVisibility", + "attributes": "Attributes", + "created_time": "CreatedTime", + "description": "Description", + "last_modified_time": "LastModifiedTime", + "name": "Name", + "stack_name": "StackName", + "value": "Value", + }) + + singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return singularDataSourceType, nil +} diff --git a/internal/aws/appstream/entitlement_singular_data_source_gen_test.go b/internal/aws/appstream/entitlement_singular_data_source_gen_test.go new file mode 100644 index 0000000000..e25540d4fd --- /dev/null +++ b/internal/aws/appstream/entitlement_singular_data_source_gen_test.go @@ -0,0 +1,33 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package appstream_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSAppStreamEntitlementDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::AppStream::Entitlement", "awscc_appstream_entitlement", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSAppStreamEntitlementDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::AppStream::Entitlement", "awscc_appstream_entitlement", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/autoscaling/warm_pool_singular_data_source_gen.go b/internal/aws/autoscaling/warm_pool_singular_data_source_gen.go index e02638b68b..caa76193e5 100644 --- a/internal/aws/autoscaling/warm_pool_singular_data_source_gen.go +++ b/internal/aws/autoscaling/warm_pool_singular_data_source_gen.go @@ -28,6 +28,29 @@ func warmPoolDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { Type: types.StringType, Computed: true, }, + "instance_reuse_policy": { + // Property: InstanceReusePolicy + // CloudFormation resource type schema: + // { + // "additionalProperties": false, + // "properties": { + // "ReuseOnScaleIn": { + // "type": "boolean" + // } + // }, + // "type": "object" + // } + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "reuse_on_scale_in": { + // Property: ReuseOnScaleIn + Type: types.BoolType, + Computed: true, + }, + }, + ), + Computed: true, + }, "max_group_prepared_capacity": { // Property: MaxGroupPreparedCapacity // CloudFormation resource type schema: @@ -75,9 +98,11 @@ func warmPoolDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "auto_scaling_group_name": "AutoScalingGroupName", + "instance_reuse_policy": "InstanceReusePolicy", "max_group_prepared_capacity": "MaxGroupPreparedCapacity", "min_size": "MinSize", "pool_state": "PoolState", + "reuse_on_scale_in": "ReuseOnScaleIn", }) singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) diff --git a/internal/aws/ec2/flow_log_singular_data_source_gen.go b/internal/aws/ec2/flow_log_singular_data_source_gen.go index fed99db7c3..c9e0dadd35 100644 --- a/internal/aws/ec2/flow_log_singular_data_source_gen.go +++ b/internal/aws/ec2/flow_log_singular_data_source_gen.go @@ -51,7 +51,7 @@ func flowLogDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { // } // }, // "required": [ - // "FileDestination", + // "FileFormat", // "HiveCompatiblePartitions", // "PerHourPartition" // ], diff --git a/internal/aws/ec2/host_plural_data_source_gen.go b/internal/aws/ec2/host_plural_data_source_gen.go new file mode 100644 index 0000000000..02f3dbb4cb --- /dev/null +++ b/internal/aws/ec2/host_plural_data_source_gen.go @@ -0,0 +1,52 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_ec2_hosts", hostsDataSourceType) +} + +// hostsDataSourceType returns the Terraform awscc_ec2_hosts data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::EC2::Host resource type. +func hostsDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "id": { + Description: "Uniquely identifies the data source.", + Type: types.StringType, + Computed: true, + }, + "ids": { + Description: "Set of Resource Identifiers.", + Type: types.SetType{ElemType: types.StringType}, + Computed: true, + }, + } + + schema := tfsdk.Schema{ + Description: "Plural Data Source schema for AWS::EC2::Host", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::Host").WithTerraformTypeName("awscc_ec2_hosts") + opts = opts.WithTerraformSchema(schema) + + pluralDataSourceType, err := NewPluralDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return pluralDataSourceType, nil +} diff --git a/internal/aws/ec2/host_plural_data_source_gen_test.go b/internal/aws/ec2/host_plural_data_source_gen_test.go new file mode 100644 index 0000000000..27049ff936 --- /dev/null +++ b/internal/aws/ec2/host_plural_data_source_gen_test.go @@ -0,0 +1,24 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2HostsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::Host", "awscc_ec2_hosts", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/ec2/host_singular_data_source_gen.go b/internal/aws/ec2/host_singular_data_source_gen.go new file mode 100644 index 0000000000..ebc8f8eb26 --- /dev/null +++ b/internal/aws/ec2/host_singular_data_source_gen.go @@ -0,0 +1,110 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_ec2_host", hostDataSourceType) +} + +// hostDataSourceType returns the Terraform awscc_ec2_host data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::EC2::Host resource type. +func hostDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "auto_placement": { + // Property: AutoPlacement + // CloudFormation resource type schema: + // { + // "description": "Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID.", + // "type": "string" + // } + Description: "Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID.", + Type: types.StringType, + Computed: true, + }, + "availability_zone": { + // Property: AvailabilityZone + // CloudFormation resource type schema: + // { + // "description": "The Availability Zone in which to allocate the Dedicated Host.", + // "type": "string" + // } + Description: "The Availability Zone in which to allocate the Dedicated Host.", + Type: types.StringType, + Computed: true, + }, + "host_id": { + // Property: HostId + // CloudFormation resource type schema: + // { + // "description": "Id of the host created.", + // "type": "string" + // } + Description: "Id of the host created.", + Type: types.StringType, + Computed: true, + }, + "host_recovery": { + // Property: HostRecovery + // CloudFormation resource type schema: + // { + // "description": "Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default.", + // "type": "string" + // } + Description: "Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default.", + Type: types.StringType, + Computed: true, + }, + "instance_type": { + // Property: InstanceType + // CloudFormation resource type schema: + // { + // "description": "Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.", + // "type": "string" + // } + Description: "Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.", + Type: types.StringType, + Computed: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Required: true, + } + + schema := tfsdk.Schema{ + Description: "Data Source schema for AWS::EC2::Host", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::Host").WithTerraformTypeName("awscc_ec2_host") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "auto_placement": "AutoPlacement", + "availability_zone": "AvailabilityZone", + "host_id": "HostId", + "host_recovery": "HostRecovery", + "instance_type": "InstanceType", + }) + + singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return singularDataSourceType, nil +} diff --git a/internal/aws/ec2/host_singular_data_source_gen_test.go b/internal/aws/ec2/host_singular_data_source_gen_test.go new file mode 100644 index 0000000000..f20f8e30a9 --- /dev/null +++ b/internal/aws/ec2/host_singular_data_source_gen_test.go @@ -0,0 +1,33 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2HostDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::Host", "awscc_ec2_host", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSEC2HostDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::Host", "awscc_ec2_host", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/ec2/network_insights_access_scope_analysis_plural_data_source_gen.go b/internal/aws/ec2/network_insights_access_scope_analysis_plural_data_source_gen.go new file mode 100644 index 0000000000..bd445e035b --- /dev/null +++ b/internal/aws/ec2/network_insights_access_scope_analysis_plural_data_source_gen.go @@ -0,0 +1,52 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_ec2_network_insights_access_scope_analyses", networkInsightsAccessScopeAnalysesDataSourceType) +} + +// networkInsightsAccessScopeAnalysesDataSourceType returns the Terraform awscc_ec2_network_insights_access_scope_analyses data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::EC2::NetworkInsightsAccessScopeAnalysis resource type. +func networkInsightsAccessScopeAnalysesDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "id": { + Description: "Uniquely identifies the data source.", + Type: types.StringType, + Computed: true, + }, + "ids": { + Description: "Set of Resource Identifiers.", + Type: types.SetType{ElemType: types.StringType}, + Computed: true, + }, + } + + schema := tfsdk.Schema{ + Description: "Plural Data Source schema for AWS::EC2::NetworkInsightsAccessScopeAnalysis", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::NetworkInsightsAccessScopeAnalysis").WithTerraformTypeName("awscc_ec2_network_insights_access_scope_analyses") + opts = opts.WithTerraformSchema(schema) + + pluralDataSourceType, err := NewPluralDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return pluralDataSourceType, nil +} diff --git a/internal/aws/ec2/network_insights_access_scope_analysis_plural_data_source_gen_test.go b/internal/aws/ec2/network_insights_access_scope_analysis_plural_data_source_gen_test.go new file mode 100644 index 0000000000..e66a3dc85d --- /dev/null +++ b/internal/aws/ec2/network_insights_access_scope_analysis_plural_data_source_gen_test.go @@ -0,0 +1,24 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2NetworkInsightsAccessScopeAnalysesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::NetworkInsightsAccessScopeAnalysis", "awscc_ec2_network_insights_access_scope_analyses", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/ec2/network_insights_access_scope_analysis_singular_data_source_gen.go b/internal/aws/ec2/network_insights_access_scope_analysis_singular_data_source_gen.go new file mode 100644 index 0000000000..afd26eca99 --- /dev/null +++ b/internal/aws/ec2/network_insights_access_scope_analysis_singular_data_source_gen.go @@ -0,0 +1,192 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_ec2_network_insights_access_scope_analysis", networkInsightsAccessScopeAnalysisDataSourceType) +} + +// networkInsightsAccessScopeAnalysisDataSourceType returns the Terraform awscc_ec2_network_insights_access_scope_analysis data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::EC2::NetworkInsightsAccessScopeAnalysis resource type. +func networkInsightsAccessScopeAnalysisDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "analyzed_eni_count": { + // Property: AnalyzedEniCount + // CloudFormation resource type schema: + // { + // "type": "integer" + // } + Type: types.NumberType, + Computed: true, + }, + "end_date": { + // Property: EndDate + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "findings_found": { + // Property: FindingsFound + // CloudFormation resource type schema: + // { + // "enum": [ + // "true", + // "false", + // "unknown" + // ], + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "network_insights_access_scope_analysis_arn": { + // Property: NetworkInsightsAccessScopeAnalysisArn + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "network_insights_access_scope_analysis_id": { + // Property: NetworkInsightsAccessScopeAnalysisId + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "network_insights_access_scope_id": { + // Property: NetworkInsightsAccessScopeId + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "start_date": { + // Property: StartDate + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "status": { + // Property: Status + // CloudFormation resource type schema: + // { + // "enum": [ + // "running", + // "failed", + // "succeeded" + // ], + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "status_message": { + // Property: StatusMessage + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "tags": { + // Property: Tags + // CloudFormation resource type schema: + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // } + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "key": { + // Property: Key + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Required: true, + } + + schema := tfsdk.Schema{ + Description: "Data Source schema for AWS::EC2::NetworkInsightsAccessScopeAnalysis", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::NetworkInsightsAccessScopeAnalysis").WithTerraformTypeName("awscc_ec2_network_insights_access_scope_analysis") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "analyzed_eni_count": "AnalyzedEniCount", + "end_date": "EndDate", + "findings_found": "FindingsFound", + "key": "Key", + "network_insights_access_scope_analysis_arn": "NetworkInsightsAccessScopeAnalysisArn", + "network_insights_access_scope_analysis_id": "NetworkInsightsAccessScopeAnalysisId", + "network_insights_access_scope_id": "NetworkInsightsAccessScopeId", + "start_date": "StartDate", + "status": "Status", + "status_message": "StatusMessage", + "tags": "Tags", + "value": "Value", + }) + + singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return singularDataSourceType, nil +} diff --git a/internal/aws/ec2/network_insights_access_scope_analysis_singular_data_source_gen_test.go b/internal/aws/ec2/network_insights_access_scope_analysis_singular_data_source_gen_test.go new file mode 100644 index 0000000000..f106a10f4f --- /dev/null +++ b/internal/aws/ec2/network_insights_access_scope_analysis_singular_data_source_gen_test.go @@ -0,0 +1,33 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2NetworkInsightsAccessScopeAnalysisDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::NetworkInsightsAccessScopeAnalysis", "awscc_ec2_network_insights_access_scope_analysis", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSEC2NetworkInsightsAccessScopeAnalysisDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::NetworkInsightsAccessScopeAnalysis", "awscc_ec2_network_insights_access_scope_analysis", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/ec2/network_insights_access_scope_plural_data_source_gen.go b/internal/aws/ec2/network_insights_access_scope_plural_data_source_gen.go new file mode 100644 index 0000000000..626ae0a69d --- /dev/null +++ b/internal/aws/ec2/network_insights_access_scope_plural_data_source_gen.go @@ -0,0 +1,52 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_ec2_network_insights_access_scopes", networkInsightsAccessScopesDataSourceType) +} + +// networkInsightsAccessScopesDataSourceType returns the Terraform awscc_ec2_network_insights_access_scopes data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::EC2::NetworkInsightsAccessScope resource type. +func networkInsightsAccessScopesDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "id": { + Description: "Uniquely identifies the data source.", + Type: types.StringType, + Computed: true, + }, + "ids": { + Description: "Set of Resource Identifiers.", + Type: types.SetType{ElemType: types.StringType}, + Computed: true, + }, + } + + schema := tfsdk.Schema{ + Description: "Plural Data Source schema for AWS::EC2::NetworkInsightsAccessScope", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::NetworkInsightsAccessScope").WithTerraformTypeName("awscc_ec2_network_insights_access_scopes") + opts = opts.WithTerraformSchema(schema) + + pluralDataSourceType, err := NewPluralDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return pluralDataSourceType, nil +} diff --git a/internal/aws/ec2/network_insights_access_scope_plural_data_source_gen_test.go b/internal/aws/ec2/network_insights_access_scope_plural_data_source_gen_test.go new file mode 100644 index 0000000000..fa046b7515 --- /dev/null +++ b/internal/aws/ec2/network_insights_access_scope_plural_data_source_gen_test.go @@ -0,0 +1,24 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2NetworkInsightsAccessScopesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::NetworkInsightsAccessScope", "awscc_ec2_network_insights_access_scopes", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/ec2/network_insights_access_scope_singular_data_source_gen.go b/internal/aws/ec2/network_insights_access_scope_singular_data_source_gen.go new file mode 100644 index 0000000000..e30a99df47 --- /dev/null +++ b/internal/aws/ec2/network_insights_access_scope_singular_data_source_gen.go @@ -0,0 +1,918 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_ec2_network_insights_access_scope", networkInsightsAccessScopeDataSourceType) +} + +// networkInsightsAccessScopeDataSourceType returns the Terraform awscc_ec2_network_insights_access_scope data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::EC2::NetworkInsightsAccessScope resource type. +func networkInsightsAccessScopeDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "created_date": { + // Property: CreatedDate + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "exclude_paths": { + // Property: ExcludePaths + // CloudFormation resource type schema: + // { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Destination": { + // "additionalProperties": false, + // "properties": { + // "PacketHeaderStatement": { + // "additionalProperties": false, + // "properties": { + // "DestinationAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Protocols": { + // "insertionOrder": true, + // "items": { + // "enum": [ + // "tcp", + // "udp" + // ], + // "type": "string" + // }, + // "type": "array" + // }, + // "SourceAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "ResourceStatement": { + // "additionalProperties": false, + // "properties": { + // "ResourceTypes": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Resources": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Source": { + // "additionalProperties": false, + // "properties": { + // "PacketHeaderStatement": { + // "additionalProperties": false, + // "properties": { + // "DestinationAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Protocols": { + // "insertionOrder": true, + // "items": { + // "enum": [ + // "tcp", + // "udp" + // ], + // "type": "string" + // }, + // "type": "array" + // }, + // "SourceAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "ResourceStatement": { + // "additionalProperties": false, + // "properties": { + // "ResourceTypes": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Resources": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ThroughResources": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ResourceStatement": { + // "additionalProperties": false, + // "properties": { + // "ResourceTypes": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Resources": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "destination": { + // Property: Destination + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "packet_header_statement": { + // Property: PacketHeaderStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "destination_addresses": { + // Property: DestinationAddresses + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "destination_ports": { + // Property: DestinationPorts + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "destination_prefix_lists": { + // Property: DestinationPrefixLists + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "protocols": { + // Property: Protocols + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "source_addresses": { + // Property: SourceAddresses + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "source_ports": { + // Property: SourcePorts + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "source_prefix_lists": { + // Property: SourcePrefixLists + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + }, + ), + Computed: true, + }, + "resource_statement": { + // Property: ResourceStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_types": { + // Property: ResourceTypes + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "resources": { + // Property: Resources + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + }, + ), + Computed: true, + }, + }, + ), + Computed: true, + }, + "source": { + // Property: Source + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "packet_header_statement": { + // Property: PacketHeaderStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "destination_addresses": { + // Property: DestinationAddresses + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "destination_ports": { + // Property: DestinationPorts + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "destination_prefix_lists": { + // Property: DestinationPrefixLists + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "protocols": { + // Property: Protocols + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "source_addresses": { + // Property: SourceAddresses + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "source_ports": { + // Property: SourcePorts + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "source_prefix_lists": { + // Property: SourcePrefixLists + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + }, + ), + Computed: true, + }, + "resource_statement": { + // Property: ResourceStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_types": { + // Property: ResourceTypes + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "resources": { + // Property: Resources + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + }, + ), + Computed: true, + }, + }, + ), + Computed: true, + }, + "through_resources": { + // Property: ThroughResources + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_statement": { + // Property: ResourceStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_types": { + // Property: ResourceTypes + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "resources": { + // Property: Resources + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + }, + ), + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "match_paths": { + // Property: MatchPaths + // CloudFormation resource type schema: + // { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Destination": { + // "additionalProperties": false, + // "properties": { + // "PacketHeaderStatement": { + // "additionalProperties": false, + // "properties": { + // "DestinationAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Protocols": { + // "insertionOrder": true, + // "items": { + // "enum": [ + // "tcp", + // "udp" + // ], + // "type": "string" + // }, + // "type": "array" + // }, + // "SourceAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "ResourceStatement": { + // "additionalProperties": false, + // "properties": { + // "ResourceTypes": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Resources": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Source": { + // "additionalProperties": false, + // "properties": { + // "PacketHeaderStatement": { + // "additionalProperties": false, + // "properties": { + // "DestinationAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "DestinationPrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Protocols": { + // "insertionOrder": true, + // "items": { + // "enum": [ + // "tcp", + // "udp" + // ], + // "type": "string" + // }, + // "type": "array" + // }, + // "SourceAddresses": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePorts": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "SourcePrefixLists": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "ResourceStatement": { + // "additionalProperties": false, + // "properties": { + // "ResourceTypes": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Resources": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ThroughResources": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ResourceStatement": { + // "additionalProperties": false, + // "properties": { + // "ResourceTypes": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // }, + // "Resources": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "destination": { + // Property: Destination + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "packet_header_statement": { + // Property: PacketHeaderStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "destination_addresses": { + // Property: DestinationAddresses + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "destination_ports": { + // Property: DestinationPorts + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "destination_prefix_lists": { + // Property: DestinationPrefixLists + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "protocols": { + // Property: Protocols + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "source_addresses": { + // Property: SourceAddresses + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "source_ports": { + // Property: SourcePorts + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "source_prefix_lists": { + // Property: SourcePrefixLists + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + }, + ), + Computed: true, + }, + "resource_statement": { + // Property: ResourceStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_types": { + // Property: ResourceTypes + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "resources": { + // Property: Resources + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + }, + ), + Computed: true, + }, + }, + ), + Computed: true, + }, + "source": { + // Property: Source + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "packet_header_statement": { + // Property: PacketHeaderStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "destination_addresses": { + // Property: DestinationAddresses + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "destination_ports": { + // Property: DestinationPorts + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "destination_prefix_lists": { + // Property: DestinationPrefixLists + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "protocols": { + // Property: Protocols + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "source_addresses": { + // Property: SourceAddresses + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "source_ports": { + // Property: SourcePorts + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "source_prefix_lists": { + // Property: SourcePrefixLists + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + }, + ), + Computed: true, + }, + "resource_statement": { + // Property: ResourceStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_types": { + // Property: ResourceTypes + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "resources": { + // Property: Resources + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + }, + ), + Computed: true, + }, + }, + ), + Computed: true, + }, + "through_resources": { + // Property: ThroughResources + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_statement": { + // Property: ResourceStatement + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "resource_types": { + // Property: ResourceTypes + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "resources": { + // Property: Resources + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + }, + ), + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "network_insights_access_scope_arn": { + // Property: NetworkInsightsAccessScopeArn + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "network_insights_access_scope_id": { + // Property: NetworkInsightsAccessScopeId + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "tags": { + // Property: Tags + // CloudFormation resource type schema: + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // } + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "key": { + // Property: Key + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "updated_date": { + // Property: UpdatedDate + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Required: true, + } + + schema := tfsdk.Schema{ + Description: "Data Source schema for AWS::EC2::NetworkInsightsAccessScope", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::NetworkInsightsAccessScope").WithTerraformTypeName("awscc_ec2_network_insights_access_scope") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "created_date": "CreatedDate", + "destination": "Destination", + "destination_addresses": "DestinationAddresses", + "destination_ports": "DestinationPorts", + "destination_prefix_lists": "DestinationPrefixLists", + "exclude_paths": "ExcludePaths", + "key": "Key", + "match_paths": "MatchPaths", + "network_insights_access_scope_arn": "NetworkInsightsAccessScopeArn", + "network_insights_access_scope_id": "NetworkInsightsAccessScopeId", + "packet_header_statement": "PacketHeaderStatement", + "protocols": "Protocols", + "resource_statement": "ResourceStatement", + "resource_types": "ResourceTypes", + "resources": "Resources", + "source": "Source", + "source_addresses": "SourceAddresses", + "source_ports": "SourcePorts", + "source_prefix_lists": "SourcePrefixLists", + "tags": "Tags", + "through_resources": "ThroughResources", + "updated_date": "UpdatedDate", + "value": "Value", + }) + + singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return singularDataSourceType, nil +} diff --git a/internal/aws/ec2/network_insights_access_scope_singular_data_source_gen_test.go b/internal/aws/ec2/network_insights_access_scope_singular_data_source_gen_test.go new file mode 100644 index 0000000000..588b33a35d --- /dev/null +++ b/internal/aws/ec2/network_insights_access_scope_singular_data_source_gen_test.go @@ -0,0 +1,37 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2NetworkInsightsAccessScopeDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::NetworkInsightsAccessScope", "awscc_ec2_network_insights_access_scope", "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 TestAccAWSEC2NetworkInsightsAccessScopeDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::NetworkInsightsAccessScope", "awscc_ec2_network_insights_access_scope", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/forecast/dataset_group_plural_data_source_gen.go b/internal/aws/forecast/dataset_group_plural_data_source_gen.go new file mode 100644 index 0000000000..78948212f4 --- /dev/null +++ b/internal/aws/forecast/dataset_group_plural_data_source_gen.go @@ -0,0 +1,52 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package forecast + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_forecast_dataset_groups", datasetGroupsDataSourceType) +} + +// datasetGroupsDataSourceType returns the Terraform awscc_forecast_dataset_groups data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::Forecast::DatasetGroup resource type. +func datasetGroupsDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "id": { + Description: "Uniquely identifies the data source.", + Type: types.StringType, + Computed: true, + }, + "ids": { + Description: "Set of Resource Identifiers.", + Type: types.SetType{ElemType: types.StringType}, + Computed: true, + }, + } + + schema := tfsdk.Schema{ + Description: "Plural Data Source schema for AWS::Forecast::DatasetGroup", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Forecast::DatasetGroup").WithTerraformTypeName("awscc_forecast_dataset_groups") + opts = opts.WithTerraformSchema(schema) + + pluralDataSourceType, err := NewPluralDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return pluralDataSourceType, nil +} diff --git a/internal/aws/forecast/dataset_group_plural_data_source_gen_test.go b/internal/aws/forecast/dataset_group_plural_data_source_gen_test.go new file mode 100644 index 0000000000..9256035d5d --- /dev/null +++ b/internal/aws/forecast/dataset_group_plural_data_source_gen_test.go @@ -0,0 +1,24 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package forecast_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSForecastDatasetGroupsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Forecast::DatasetGroup", "awscc_forecast_dataset_groups", "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/forecast/dataset_group_singular_data_source_gen.go b/internal/aws/forecast/dataset_group_singular_data_source_gen.go new file mode 100644 index 0000000000..7ba9cf185e --- /dev/null +++ b/internal/aws/forecast/dataset_group_singular_data_source_gen.go @@ -0,0 +1,174 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package forecast + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_forecast_dataset_group", datasetGroupDataSourceType) +} + +// datasetGroupDataSourceType returns the Terraform awscc_forecast_dataset_group data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::Forecast::DatasetGroup resource type. +func datasetGroupDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "dataset_arns": { + // Property: DatasetArns + // CloudFormation resource type schema: + // { + // "description": "An array of Amazon Resource Names (ARNs) of the datasets that you want to include in the dataset group.", + // "insertionOrder": true, + // "items": { + // "maxLength": 256, + // "pattern": "", + // "type": "string" + // }, + // "type": "array" + // } + Description: "An array of Amazon Resource Names (ARNs) of the datasets that you want to include in the dataset group.", + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "dataset_group_arn": { + // Property: DatasetGroupArn + // CloudFormation resource type schema: + // { + // "description": "The Amazon Resource Name (ARN) of the dataset group to delete.", + // "maxLength": 256, + // "pattern": "", + // "type": "string" + // } + Description: "The Amazon Resource Name (ARN) of the dataset group to delete.", + Type: types.StringType, + Computed: true, + }, + "dataset_group_name": { + // Property: DatasetGroupName + // CloudFormation resource type schema: + // { + // "description": "A name for the dataset group.", + // "maxLength": 63, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + Description: "A name for the dataset group.", + Type: types.StringType, + Computed: true, + }, + "domain": { + // Property: Domain + // CloudFormation resource type schema: + // { + // "description": "The domain associated with the dataset group. When you add a dataset to a dataset group, this value and the value specified for the Domain parameter of the CreateDataset operation must match.", + // "enum": [ + // "RETAIL", + // "CUSTOM", + // "INVENTORY_PLANNING", + // "EC2_CAPACITY", + // "WORK_FORCE", + // "WEB_TRAFFIC", + // "METRICS" + // ], + // "type": "string" + // } + Description: "The domain associated with the dataset group. When you add a dataset to a dataset group, this value and the value specified for the Domain parameter of the CreateDataset operation must match.", + Type: types.StringType, + Computed: true, + }, + "tags": { + // Property: Tags + // CloudFormation resource type schema: + // { + // "description": "The tags of Application Insights application.", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 200, + // "minItems": 0, + // "type": "array" + // } + Description: "The tags of Application Insights application.", + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "key": { + // Property: Key + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Required: true, + } + + schema := tfsdk.Schema{ + Description: "Data Source schema for AWS::Forecast::DatasetGroup", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Forecast::DatasetGroup").WithTerraformTypeName("awscc_forecast_dataset_group") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "dataset_arns": "DatasetArns", + "dataset_group_arn": "DatasetGroupArn", + "dataset_group_name": "DatasetGroupName", + "domain": "Domain", + "key": "Key", + "tags": "Tags", + "value": "Value", + }) + + singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return singularDataSourceType, nil +} diff --git a/internal/aws/forecast/dataset_group_singular_data_source_gen_test.go b/internal/aws/forecast/dataset_group_singular_data_source_gen_test.go new file mode 100644 index 0000000000..268e26aa83 --- /dev/null +++ b/internal/aws/forecast/dataset_group_singular_data_source_gen_test.go @@ -0,0 +1,33 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package forecast_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSForecastDatasetGroupDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Forecast::DatasetGroup", "awscc_forecast_dataset_group", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSForecastDatasetGroupDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Forecast::DatasetGroup", "awscc_forecast_dataset_group", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/inspectorv2/filter_plural_data_source_gen.go b/internal/aws/inspectorv2/filter_plural_data_source_gen.go new file mode 100644 index 0000000000..e0fb8ba906 --- /dev/null +++ b/internal/aws/inspectorv2/filter_plural_data_source_gen.go @@ -0,0 +1,52 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package inspectorv2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_inspectorv2_filters", filtersDataSourceType) +} + +// filtersDataSourceType returns the Terraform awscc_inspectorv2_filters data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::InspectorV2::Filter resource type. +func filtersDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "id": { + Description: "Uniquely identifies the data source.", + Type: types.StringType, + Computed: true, + }, + "ids": { + Description: "Set of Resource Identifiers.", + Type: types.SetType{ElemType: types.StringType}, + Computed: true, + }, + } + + schema := tfsdk.Schema{ + Description: "Plural Data Source schema for AWS::InspectorV2::Filter", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::InspectorV2::Filter").WithTerraformTypeName("awscc_inspectorv2_filters") + opts = opts.WithTerraformSchema(schema) + + pluralDataSourceType, err := NewPluralDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return pluralDataSourceType, nil +} diff --git a/internal/aws/inspectorv2/filter_plural_data_source_gen_test.go b/internal/aws/inspectorv2/filter_plural_data_source_gen_test.go new file mode 100644 index 0000000000..390fe5514c --- /dev/null +++ b/internal/aws/inspectorv2/filter_plural_data_source_gen_test.go @@ -0,0 +1,24 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package inspectorv2_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSInspectorV2FiltersDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::InspectorV2::Filter", "awscc_inspectorv2_filters", "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/inspectorv2/filter_singular_data_source_gen.go b/internal/aws/inspectorv2/filter_singular_data_source_gen.go new file mode 100644 index 0000000000..11367b4a74 --- /dev/null +++ b/internal/aws/inspectorv2/filter_singular_data_source_gen.go @@ -0,0 +1,1819 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package inspectorv2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_inspectorv2_filter", filterDataSourceType) +} + +// filterDataSourceType returns the Terraform awscc_inspectorv2_filter data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::InspectorV2::Filter resource type. +func filterDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "arn": { + // Property: Arn + // CloudFormation resource type schema: + // { + // "description": "Findings filter ARN.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // } + Description: "Findings filter ARN.", + Type: types.StringType, + Computed: true, + }, + "description": { + // Property: Description + // CloudFormation resource type schema: + // { + // "description": "Findings filter description.", + // "maxLength": 512, + // "minLength": 1, + // "type": "string" + // } + Description: "Findings filter description.", + Type: types.StringType, + Computed: true, + }, + "filter_action": { + // Property: FilterAction + // CloudFormation resource type schema: + // { + // "description": "Findings filter action.", + // "enum": [ + // "NONE", + // "SUPPRESS" + // ], + // "type": "string" + // } + Description: "Findings filter action.", + Type: types.StringType, + Computed: true, + }, + "filter_criteria": { + // Property: FilterCriteria + // CloudFormation resource type schema: + // { + // "additionalProperties": false, + // "description": "Findings filter criteria.", + // "properties": { + // "AwsAccountId": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "ComponentId": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "ComponentType": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "Ec2InstanceImageId": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "Ec2InstanceSubnetId": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "Ec2InstanceVpcId": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "EcrImageArchitecture": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "EcrImageHash": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "EcrImagePushedAt": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EndInclusive": { + // "format": "int64", + // "type": "integer" + // }, + // "StartInclusive": { + // "format": "int64", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "EcrImageRegistry": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "EcrImageRepositoryName": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "EcrImageTags": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "FindingArn": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "FindingStatus": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "FindingType": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "FirstObservedAt": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EndInclusive": { + // "format": "int64", + // "type": "integer" + // }, + // "StartInclusive": { + // "format": "int64", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "InspectorScore": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "LowerInclusive": { + // "type": "number" + // }, + // "UpperInclusive": { + // "type": "number" + // } + // }, + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "LastObservedAt": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EndInclusive": { + // "format": "int64", + // "type": "integer" + // }, + // "StartInclusive": { + // "format": "int64", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "NetworkProtocol": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "PortRange": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "BeginInclusive": { + // "maximum": 65535, + // "minimum": 0, + // "type": "integer" + // }, + // "EndInclusive": { + // "maximum": 65535, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "RelatedVulnerabilities": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "ResourceId": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "ResourceTags": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS" + // ], + // "type": "string" + // }, + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "ResourceType": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "Severity": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "Title": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "UpdatedAt": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EndInclusive": { + // "format": "int64", + // "type": "integer" + // }, + // "StartInclusive": { + // "format": "int64", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "VendorSeverity": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "VulnerabilityId": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "VulnerabilitySource": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // }, + // "VulnerablePackages": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Architecture": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "Epoch": { + // "additionalProperties": false, + // "properties": { + // "LowerInclusive": { + // "type": "number" + // }, + // "UpperInclusive": { + // "type": "number" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "Release": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "SourceLayerHash": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // }, + // "Version": { + // "additionalProperties": false, + // "properties": { + // "Comparison": { + // "enum": [ + // "EQUALS", + // "PREFIX", + // "NOT_EQUALS" + // ], + // "type": "string" + // }, + // "Value": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Comparison", + // "Value" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // } + // }, + // "type": "object" + // } + Description: "Findings filter criteria.", + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "aws_account_id": { + // Property: AwsAccountId + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "component_id": { + // Property: ComponentId + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "component_type": { + // Property: ComponentType + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "ec_2_instance_image_id": { + // Property: Ec2InstanceImageId + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "ec_2_instance_subnet_id": { + // Property: Ec2InstanceSubnetId + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "ec_2_instance_vpc_id": { + // Property: Ec2InstanceVpcId + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "ecr_image_architecture": { + // Property: EcrImageArchitecture + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "ecr_image_hash": { + // Property: EcrImageHash + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "ecr_image_pushed_at": { + // Property: EcrImagePushedAt + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "end_inclusive": { + // Property: EndInclusive + Type: types.NumberType, + Computed: true, + }, + "start_inclusive": { + // Property: StartInclusive + Type: types.NumberType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "ecr_image_registry": { + // Property: EcrImageRegistry + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "ecr_image_repository_name": { + // Property: EcrImageRepositoryName + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "ecr_image_tags": { + // Property: EcrImageTags + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "finding_arn": { + // Property: FindingArn + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "finding_status": { + // Property: FindingStatus + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "finding_type": { + // Property: FindingType + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "first_observed_at": { + // Property: FirstObservedAt + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "end_inclusive": { + // Property: EndInclusive + Type: types.NumberType, + Computed: true, + }, + "start_inclusive": { + // Property: StartInclusive + Type: types.NumberType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "inspector_score": { + // Property: InspectorScore + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "lower_inclusive": { + // Property: LowerInclusive + Type: types.NumberType, + Computed: true, + }, + "upper_inclusive": { + // Property: UpperInclusive + Type: types.NumberType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "last_observed_at": { + // Property: LastObservedAt + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "end_inclusive": { + // Property: EndInclusive + Type: types.NumberType, + Computed: true, + }, + "start_inclusive": { + // Property: StartInclusive + Type: types.NumberType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "network_protocol": { + // Property: NetworkProtocol + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "port_range": { + // Property: PortRange + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "begin_inclusive": { + // Property: BeginInclusive + Type: types.NumberType, + Computed: true, + }, + "end_inclusive": { + // Property: EndInclusive + Type: types.NumberType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "related_vulnerabilities": { + // Property: RelatedVulnerabilities + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "resource_id": { + // Property: ResourceId + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "resource_tags": { + // Property: ResourceTags + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "key": { + // Property: Key + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "resource_type": { + // Property: ResourceType + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "severity": { + // Property: Severity + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "title": { + // Property: Title + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "updated_at": { + // Property: UpdatedAt + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "end_inclusive": { + // Property: EndInclusive + Type: types.NumberType, + Computed: true, + }, + "start_inclusive": { + // Property: StartInclusive + Type: types.NumberType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "vendor_severity": { + // Property: VendorSeverity + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "vulnerability_id": { + // Property: VulnerabilityId + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "vulnerability_source": { + // Property: VulnerabilitySource + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "vulnerable_packages": { + // Property: VulnerablePackages + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "architecture": { + // Property: Architecture + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + ), + Computed: true, + }, + "epoch": { + // Property: Epoch + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "lower_inclusive": { + // Property: LowerInclusive + Type: types.NumberType, + Computed: true, + }, + "upper_inclusive": { + // Property: UpperInclusive + Type: types.NumberType, + Computed: true, + }, + }, + ), + Computed: true, + }, + "name": { + // Property: Name + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + ), + Computed: true, + }, + "release": { + // Property: Release + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + ), + Computed: true, + }, + "source_layer_hash": { + // Property: SourceLayerHash + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + ), + Computed: true, + }, + "version": { + // Property: Version + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "comparison": { + // Property: Comparison + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Type: types.StringType, + Computed: true, + }, + }, + ), + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + }, + ), + Computed: true, + }, + "name": { + // Property: Name + // CloudFormation resource type schema: + // { + // "description": "Findings filter name.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // } + Description: "Findings filter name.", + Type: types.StringType, + Computed: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Required: true, + } + + schema := tfsdk.Schema{ + Description: "Data Source schema for AWS::InspectorV2::Filter", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::InspectorV2::Filter").WithTerraformTypeName("awscc_inspectorv2_filter") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "architecture": "Architecture", + "arn": "Arn", + "aws_account_id": "AwsAccountId", + "begin_inclusive": "BeginInclusive", + "comparison": "Comparison", + "component_id": "ComponentId", + "component_type": "ComponentType", + "description": "Description", + "ec_2_instance_image_id": "Ec2InstanceImageId", + "ec_2_instance_subnet_id": "Ec2InstanceSubnetId", + "ec_2_instance_vpc_id": "Ec2InstanceVpcId", + "ecr_image_architecture": "EcrImageArchitecture", + "ecr_image_hash": "EcrImageHash", + "ecr_image_pushed_at": "EcrImagePushedAt", + "ecr_image_registry": "EcrImageRegistry", + "ecr_image_repository_name": "EcrImageRepositoryName", + "ecr_image_tags": "EcrImageTags", + "end_inclusive": "EndInclusive", + "epoch": "Epoch", + "filter_action": "FilterAction", + "filter_criteria": "FilterCriteria", + "finding_arn": "FindingArn", + "finding_status": "FindingStatus", + "finding_type": "FindingType", + "first_observed_at": "FirstObservedAt", + "inspector_score": "InspectorScore", + "key": "Key", + "last_observed_at": "LastObservedAt", + "lower_inclusive": "LowerInclusive", + "name": "Name", + "network_protocol": "NetworkProtocol", + "port_range": "PortRange", + "related_vulnerabilities": "RelatedVulnerabilities", + "release": "Release", + "resource_id": "ResourceId", + "resource_tags": "ResourceTags", + "resource_type": "ResourceType", + "severity": "Severity", + "source_layer_hash": "SourceLayerHash", + "start_inclusive": "StartInclusive", + "title": "Title", + "updated_at": "UpdatedAt", + "upper_inclusive": "UpperInclusive", + "value": "Value", + "vendor_severity": "VendorSeverity", + "version": "Version", + "vulnerability_id": "VulnerabilityId", + "vulnerability_source": "VulnerabilitySource", + "vulnerable_packages": "VulnerablePackages", + }) + + singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return singularDataSourceType, nil +} diff --git a/internal/aws/inspectorv2/filter_singular_data_source_gen_test.go b/internal/aws/inspectorv2/filter_singular_data_source_gen_test.go new file mode 100644 index 0000000000..c1a62b2fc0 --- /dev/null +++ b/internal/aws/inspectorv2/filter_singular_data_source_gen_test.go @@ -0,0 +1,33 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package inspectorv2_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSInspectorV2FilterDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::InspectorV2::Filter", "awscc_inspectorv2_filter", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSInspectorV2FilterDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::InspectorV2::Filter", "awscc_inspectorv2_filter", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/iot/job_template_singular_data_source_gen.go b/internal/aws/iot/job_template_singular_data_source_gen.go index a4fb0828c1..6f37c190cf 100644 --- a/internal/aws/iot/job_template_singular_data_source_gen.go +++ b/internal/aws/iot/job_template_singular_data_source_gen.go @@ -132,7 +132,7 @@ func jobTemplateDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error // { // "description": "A description of the Job Template.", // "maxLength": 2028, - // "pattern": "", + // "pattern": "[^\\p{C}]+", // "type": "string" // } Description: "A description of the Job Template.", @@ -175,6 +175,66 @@ func jobTemplateDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error Type: types.StringType, Computed: true, }, + "job_executions_retry_config": { + // Property: JobExecutionsRetryConfig + // CloudFormation resource type schema: + // { + // "additionalProperties": false, + // "properties": { + // "RetryCriteriaList": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Specifies how many times a failure type should be retried.", + // "properties": { + // "FailureType": { + // "enum": [ + // "FAILED", + // "TIMED_OUT", + // "ALL" + // ], + // "type": "string" + // }, + // "NumberOfRetries": { + // "maximum": 10, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "maxItems": 2, + // "minItems": 1, + // "type": "array" + // } + // }, + // "type": "object" + // } + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "retry_criteria_list": { + // Property: RetryCriteriaList + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "failure_type": { + // Property: FailureType + Type: types.StringType, + Computed: true, + }, + "number_of_retries": { + // Property: NumberOfRetries + Type: types.NumberType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + }, + ), + Computed: true, + }, "job_executions_rollout_config": { // Property: JobExecutionsRolloutConfig // CloudFormation resource type schema: @@ -287,7 +347,7 @@ func jobTemplateDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error // { // "maxLength": 64, // "minLength": 1, - // "pattern": "", + // "pattern": "[a-zA-Z0-9_-]+", // "type": "string" // } Type: types.StringType, @@ -455,15 +515,18 @@ func jobTemplateDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error "in_progress_timeout_in_minutes": "InProgressTimeoutInMinutes", "increment_factor": "IncrementFactor", "job_arn": "JobArn", + "job_executions_retry_config": "JobExecutionsRetryConfig", "job_executions_rollout_config": "JobExecutionsRolloutConfig", "job_template_id": "JobTemplateId", "key": "Key", "maximum_per_minute": "MaximumPerMinute", "min_number_of_executed_things": "MinNumberOfExecutedThings", "number_of_notified_things": "NumberOfNotifiedThings", + "number_of_retries": "NumberOfRetries", "number_of_succeeded_things": "NumberOfSucceededThings", "presigned_url_config": "PresignedUrlConfig", "rate_increase_criteria": "RateIncreaseCriteria", + "retry_criteria_list": "RetryCriteriaList", "role_arn": "RoleArn", "tags": "Tags", "threshold_percentage": "ThresholdPercentage", diff --git a/internal/aws/iotsitewise/gateway_singular_data_source_gen.go b/internal/aws/iotsitewise/gateway_singular_data_source_gen.go index db9b12004d..a1bb82758e 100644 --- a/internal/aws/iotsitewise/gateway_singular_data_source_gen.go +++ b/internal/aws/iotsitewise/gateway_singular_data_source_gen.go @@ -94,10 +94,22 @@ func gatewayDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { // { // "additionalProperties": false, // "description": "The gateway's platform. You can only specify one platform in a gateway.", + // "oneOf": [ + // { + // "required": [ + // "Greengrass" + // ] + // }, + // { + // "required": [ + // "GreengrassV2" + // ] + // } + // ], // "properties": { // "Greengrass": { // "additionalProperties": false, - // "description": "A gateway that runs on AWS IoT Greengrass.", + // "description": "A gateway that runs on AWS IoT Greengrass V1.", // "properties": { // "GroupArn": { // "description": "The ARN of the Greengrass group.", @@ -108,11 +120,22 @@ func gatewayDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { // "GroupArn" // ], // "type": "object" + // }, + // "GreengrassV2": { + // "additionalProperties": false, + // "description": "A gateway that runs on AWS IoT Greengrass V2.", + // "properties": { + // "CoreDeviceThingName": { + // "description": "The name of the CoreDevice in GreenGrass V2.", + // "type": "string" + // } + // }, + // "required": [ + // "CoreDeviceThingName" + // ], + // "type": "object" // } // }, - // "required": [ - // "Greengrass" - // ], // "type": "object" // } Description: "The gateway's platform. You can only specify one platform in a gateway.", @@ -120,7 +143,7 @@ func gatewayDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { map[string]tfsdk.Attribute{ "greengrass": { // Property: Greengrass - Description: "A gateway that runs on AWS IoT Greengrass.", + Description: "A gateway that runs on AWS IoT Greengrass V1.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "group_arn": { @@ -133,6 +156,21 @@ func gatewayDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { ), Computed: true, }, + "greengrass_v2": { + // Property: GreengrassV2 + Description: "A gateway that runs on AWS IoT Greengrass V2.", + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "core_device_thing_name": { + // Property: CoreDeviceThingName + Description: "The name of the CoreDevice in GreenGrass V2.", + Type: types.StringType, + Computed: true, + }, + }, + ), + Computed: true, + }, }, ), Computed: true, @@ -202,11 +240,13 @@ func gatewayDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { opts = opts.WithAttributeNameMap(map[string]string{ "capability_configuration": "CapabilityConfiguration", "capability_namespace": "CapabilityNamespace", + "core_device_thing_name": "CoreDeviceThingName", "gateway_capability_summaries": "GatewayCapabilitySummaries", "gateway_id": "GatewayId", "gateway_name": "GatewayName", "gateway_platform": "GatewayPlatform", "greengrass": "Greengrass", + "greengrass_v2": "GreengrassV2", "group_arn": "GroupArn", "key": "Key", "tags": "Tags", diff --git a/internal/aws/kinesisvideo/signaling_channel_singular_data_source_gen.go b/internal/aws/kinesisvideo/signaling_channel_singular_data_source_gen.go new file mode 100644 index 0000000000..d2f809017e --- /dev/null +++ b/internal/aws/kinesisvideo/signaling_channel_singular_data_source_gen.go @@ -0,0 +1,163 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package kinesisvideo + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_kinesisvideo_signaling_channel", signalingChannelDataSourceType) +} + +// signalingChannelDataSourceType returns the Terraform awscc_kinesisvideo_signaling_channel data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::KinesisVideo::SignalingChannel resource type. +func signalingChannelDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "arn": { + // Property: Arn + // CloudFormation resource type schema: + // { + // "description": "The Amazon Resource Name (ARN) of the Kinesis Video Signaling Channel.", + // "type": "string" + // } + Description: "The Amazon Resource Name (ARN) of the Kinesis Video Signaling Channel.", + Type: types.StringType, + Computed: true, + }, + "message_ttl_seconds": { + // Property: MessageTtlSeconds + // CloudFormation resource type schema: + // { + // "description": "The period of time a signaling channel retains undelivered messages before they are discarded.", + // "maximum": 120, + // "minimum": 5, + // "type": "integer" + // } + Description: "The period of time a signaling channel retains undelivered messages before they are discarded.", + Type: types.NumberType, + Computed: true, + }, + "name": { + // Property: Name + // CloudFormation resource type schema: + // { + // "description": "The name of the Kinesis Video Signaling Channel.", + // "maxLength": 256, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + Description: "The name of the Kinesis Video Signaling Channel.", + Type: types.StringType, + Computed: true, + }, + "tags": { + // Property: Tags + // CloudFormation resource type schema: + // { + // "description": "An array of key-value pairs to apply to this resource.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. Specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. Specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 1, + // "type": "array", + // "uniqueItems": false + // } + Description: "An array of key-value pairs to apply to this resource.", + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "key": { + // Property: Key + Description: "The key name of the tag. Specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Description: "The value for the tag. Specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + "type": { + // Property: Type + // CloudFormation resource type schema: + // { + // "description": "The type of the Kinesis Video Signaling Channel to create. Currently, SINGLE_MASTER is the only supported channel type.", + // "enum": [ + // "SINGLE_MASTER" + // ], + // "type": "string" + // } + Description: "The type of the Kinesis Video Signaling Channel to create. Currently, SINGLE_MASTER is the only supported channel type.", + Type: types.StringType, + Computed: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Required: true, + } + + schema := tfsdk.Schema{ + Description: "Data Source schema for AWS::KinesisVideo::SignalingChannel", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::KinesisVideo::SignalingChannel").WithTerraformTypeName("awscc_kinesisvideo_signaling_channel") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "key": "Key", + "message_ttl_seconds": "MessageTtlSeconds", + "name": "Name", + "tags": "Tags", + "type": "Type", + "value": "Value", + }) + + singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return singularDataSourceType, nil +} diff --git a/internal/aws/kinesisvideo/signaling_channel_singular_data_source_gen_test.go b/internal/aws/kinesisvideo/signaling_channel_singular_data_source_gen_test.go new file mode 100644 index 0000000000..40dbbf78db --- /dev/null +++ b/internal/aws/kinesisvideo/signaling_channel_singular_data_source_gen_test.go @@ -0,0 +1,37 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package kinesisvideo_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSKinesisVideoSignalingChannelDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::KinesisVideo::SignalingChannel", "awscc_kinesisvideo_signaling_channel", "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 TestAccAWSKinesisVideoSignalingChannelDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::KinesisVideo::SignalingChannel", "awscc_kinesisvideo_signaling_channel", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/kinesisvideo/stream_singular_data_source_gen.go b/internal/aws/kinesisvideo/stream_singular_data_source_gen.go new file mode 100644 index 0000000000..b6c271a850 --- /dev/null +++ b/internal/aws/kinesisvideo/stream_singular_data_source_gen.go @@ -0,0 +1,193 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package kinesisvideo + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_kinesisvideo_stream", streamDataSourceType) +} + +// streamDataSourceType returns the Terraform awscc_kinesisvideo_stream data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::KinesisVideo::Stream resource type. +func streamDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "arn": { + // Property: Arn + // CloudFormation resource type schema: + // { + // "description": "The Amazon Resource Name (ARN) of the Kinesis Video stream.", + // "type": "string" + // } + Description: "The Amazon Resource Name (ARN) of the Kinesis Video stream.", + Type: types.StringType, + Computed: true, + }, + "data_retention_in_hours": { + // Property: DataRetentionInHours + // CloudFormation resource type schema: + // { + // "description": "The number of hours till which Kinesis Video will retain the data in the stream", + // "maximum": 87600, + // "minimum": 0, + // "type": "integer" + // } + Description: "The number of hours till which Kinesis Video will retain the data in the stream", + Type: types.NumberType, + Computed: true, + }, + "device_name": { + // Property: DeviceName + // CloudFormation resource type schema: + // { + // "description": "The name of the device that is writing to the stream.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + Description: "The name of the device that is writing to the stream.", + Type: types.StringType, + Computed: true, + }, + "kms_key_id": { + // Property: KmsKeyId + // CloudFormation resource type schema: + // { + // "description": "AWS KMS key ID that Kinesis Video Streams uses to encrypt stream data.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + Description: "AWS KMS key ID that Kinesis Video Streams uses to encrypt stream data.", + Type: types.StringType, + Computed: true, + }, + "media_type": { + // Property: MediaType + // CloudFormation resource type schema: + // { + // "description": "The media type of the stream. Consumers of the stream can use this information when processing the stream.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + Description: "The media type of the stream. Consumers of the stream can use this information when processing the stream.", + Type: types.StringType, + Computed: true, + }, + "name": { + // Property: Name + // CloudFormation resource type schema: + // { + // "description": "The name of the Kinesis Video stream.", + // "maxLength": 256, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + Description: "The name of the Kinesis Video stream.", + Type: types.StringType, + Computed: true, + }, + "tags": { + // Property: Tags + // CloudFormation resource type schema: + // { + // "description": "An array of key-value pairs associated with the Kinesis Video Stream.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associated with the Kinesis Video Stream.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. Specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. Specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 1, + // "type": "array", + // "uniqueItems": false + // } + Description: "An array of key-value pairs associated with the Kinesis Video Stream.", + Attributes: tfsdk.ListNestedAttributes( + map[string]tfsdk.Attribute{ + "key": { + // Property: Key + Description: "The key name of the tag. Specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Description: "The value for the tag. Specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.ListNestedAttributesOptions{}, + ), + Computed: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Required: true, + } + + schema := tfsdk.Schema{ + Description: "Data Source schema for AWS::KinesisVideo::Stream", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::KinesisVideo::Stream").WithTerraformTypeName("awscc_kinesisvideo_stream") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "data_retention_in_hours": "DataRetentionInHours", + "device_name": "DeviceName", + "key": "Key", + "kms_key_id": "KmsKeyId", + "media_type": "MediaType", + "name": "Name", + "tags": "Tags", + "value": "Value", + }) + + singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return singularDataSourceType, nil +} diff --git a/internal/aws/kinesisvideo/stream_singular_data_source_gen_test.go b/internal/aws/kinesisvideo/stream_singular_data_source_gen_test.go new file mode 100644 index 0000000000..824b950e6b --- /dev/null +++ b/internal/aws/kinesisvideo/stream_singular_data_source_gen_test.go @@ -0,0 +1,37 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package kinesisvideo_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSKinesisVideoStreamDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::KinesisVideo::Stream", "awscc_kinesisvideo_stream", "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 TestAccAWSKinesisVideoStreamDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::KinesisVideo::Stream", "awscc_kinesisvideo_stream", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/lex/bot_alias_singular_data_source_gen.go b/internal/aws/lex/bot_alias_singular_data_source_gen.go index c75596065c..514118ca9f 100644 --- a/internal/aws/lex/bot_alias_singular_data_source_gen.go +++ b/internal/aws/lex/bot_alias_singular_data_source_gen.go @@ -108,8 +108,8 @@ func botAliasDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { // } // }, // "required": [ - // "Key", - // "Value" + // "LocaleId", + // "BotAliasLocaleSetting" // ], // "type": "object" // }, @@ -383,7 +383,8 @@ func botAliasDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { // "required": [ // "CloudWatchLogGroupArn", // "LogPrefix" - // ] + // ], + // "type": "object" // } // }, // "type": "object" diff --git a/internal/aws/lightsail/alarm_plural_data_source_gen.go b/internal/aws/lightsail/alarm_plural_data_source_gen.go new file mode 100644 index 0000000000..b609870f01 --- /dev/null +++ b/internal/aws/lightsail/alarm_plural_data_source_gen.go @@ -0,0 +1,52 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package lightsail + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_lightsail_alarms", alarmsDataSourceType) +} + +// alarmsDataSourceType returns the Terraform awscc_lightsail_alarms data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::Lightsail::Alarm resource type. +func alarmsDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "id": { + Description: "Uniquely identifies the data source.", + Type: types.StringType, + Computed: true, + }, + "ids": { + Description: "Set of Resource Identifiers.", + Type: types.SetType{ElemType: types.StringType}, + Computed: true, + }, + } + + schema := tfsdk.Schema{ + Description: "Plural Data Source schema for AWS::Lightsail::Alarm", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Lightsail::Alarm").WithTerraformTypeName("awscc_lightsail_alarms") + opts = opts.WithTerraformSchema(schema) + + pluralDataSourceType, err := NewPluralDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return pluralDataSourceType, nil +} diff --git a/internal/aws/lightsail/alarm_plural_data_source_gen_test.go b/internal/aws/lightsail/alarm_plural_data_source_gen_test.go new file mode 100644 index 0000000000..c29f77d2e4 --- /dev/null +++ b/internal/aws/lightsail/alarm_plural_data_source_gen_test.go @@ -0,0 +1,24 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package lightsail_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSLightsailAlarmsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Lightsail::Alarm", "awscc_lightsail_alarms", "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/lightsail/alarm_singular_data_source_gen.go b/internal/aws/lightsail/alarm_singular_data_source_gen.go new file mode 100644 index 0000000000..0c42844238 --- /dev/null +++ b/internal/aws/lightsail/alarm_singular_data_source_gen.go @@ -0,0 +1,215 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package lightsail + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_lightsail_alarm", alarmDataSourceType) +} + +// alarmDataSourceType returns the Terraform awscc_lightsail_alarm data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::Lightsail::Alarm resource type. +func alarmDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "alarm_arn": { + // Property: AlarmArn + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "alarm_name": { + // Property: AlarmName + // CloudFormation resource type schema: + // { + // "description": "The name for the alarm. Specify the name of an existing alarm to update, and overwrite the previous configuration of the alarm.", + // "pattern": "", + // "type": "string" + // } + Description: "The name for the alarm. Specify the name of an existing alarm to update, and overwrite the previous configuration of the alarm.", + Type: types.StringType, + Computed: true, + }, + "comparison_operator": { + // Property: ComparisonOperator + // CloudFormation resource type schema: + // { + // "description": "The arithmetic operation to use when comparing the specified statistic to the threshold. The specified statistic value is used as the first operand.", + // "type": "string" + // } + Description: "The arithmetic operation to use when comparing the specified statistic to the threshold. The specified statistic value is used as the first operand.", + Type: types.StringType, + Computed: true, + }, + "contact_protocols": { + // Property: ContactProtocols + // CloudFormation resource type schema: + // { + // "description": "The contact protocols to use for the alarm, such as Email, SMS (text messaging), or both.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "The contact protocols to use for the alarm, such as Email, SMS (text messaging), or both.", + Type: types.SetType{ElemType: types.StringType}, + Computed: true, + }, + "datapoints_to_alarm": { + // Property: DatapointsToAlarm + // CloudFormation resource type schema: + // { + // "description": "The number of data points that must be not within the specified threshold to trigger the alarm. If you are setting an \"M out of N\" alarm, this value (datapointsToAlarm) is the M.", + // "type": "integer" + // } + Description: "The number of data points that must be not within the specified threshold to trigger the alarm. If you are setting an \"M out of N\" alarm, this value (datapointsToAlarm) is the M.", + Type: types.NumberType, + Computed: true, + }, + "evaluation_periods": { + // Property: EvaluationPeriods + // CloudFormation resource type schema: + // { + // "description": "The number of most recent periods over which data is compared to the specified threshold. If you are setting an \"M out of N\" alarm, this value (evaluationPeriods) is the N.", + // "type": "integer" + // } + Description: "The number of most recent periods over which data is compared to the specified threshold. If you are setting an \"M out of N\" alarm, this value (evaluationPeriods) is the N.", + Type: types.NumberType, + Computed: true, + }, + "metric_name": { + // Property: MetricName + // CloudFormation resource type schema: + // { + // "description": "The name of the metric to associate with the alarm.", + // "type": "string" + // } + Description: "The name of the metric to associate with the alarm.", + Type: types.StringType, + Computed: true, + }, + "monitored_resource_name": { + // Property: MonitoredResourceName + // CloudFormation resource type schema: + // { + // "description": "The validation status of the SSL/TLS certificate.", + // "type": "string" + // } + Description: "The validation status of the SSL/TLS certificate.", + Type: types.StringType, + Computed: true, + }, + "notification_enabled": { + // Property: NotificationEnabled + // CloudFormation resource type schema: + // { + // "description": "Indicates whether the alarm is enabled. Notifications are enabled by default if you don't specify this parameter.", + // "type": "boolean" + // } + Description: "Indicates whether the alarm is enabled. Notifications are enabled by default if you don't specify this parameter.", + Type: types.BoolType, + Computed: true, + }, + "notification_triggers": { + // Property: NotificationTriggers + // CloudFormation resource type schema: + // { + // "description": "The alarm states that trigger a notification.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "The alarm states that trigger a notification.", + Type: types.SetType{ElemType: types.StringType}, + Computed: true, + }, + "state": { + // Property: State + // CloudFormation resource type schema: + // { + // "description": "The current state of the alarm.", + // "type": "string" + // } + Description: "The current state of the alarm.", + Type: types.StringType, + Computed: true, + }, + "threshold": { + // Property: Threshold + // CloudFormation resource type schema: + // { + // "description": "The value against which the specified statistic is compared.", + // "type": "number" + // } + Description: "The value against which the specified statistic is compared.", + Type: types.NumberType, + Computed: true, + }, + "treat_missing_data": { + // Property: TreatMissingData + // CloudFormation resource type schema: + // { + // "description": "Sets how this alarm will handle missing data points.", + // "type": "string" + // } + Description: "Sets how this alarm will handle missing data points.", + Type: types.StringType, + Computed: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Required: true, + } + + schema := tfsdk.Schema{ + Description: "Data Source schema for AWS::Lightsail::Alarm", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Lightsail::Alarm").WithTerraformTypeName("awscc_lightsail_alarm") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "alarm_arn": "AlarmArn", + "alarm_name": "AlarmName", + "comparison_operator": "ComparisonOperator", + "contact_protocols": "ContactProtocols", + "datapoints_to_alarm": "DatapointsToAlarm", + "evaluation_periods": "EvaluationPeriods", + "metric_name": "MetricName", + "monitored_resource_name": "MonitoredResourceName", + "notification_enabled": "NotificationEnabled", + "notification_triggers": "NotificationTriggers", + "state": "State", + "threshold": "Threshold", + "treat_missing_data": "TreatMissingData", + }) + + singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return singularDataSourceType, nil +} diff --git a/internal/aws/lightsail/alarm_singular_data_source_gen_test.go b/internal/aws/lightsail/alarm_singular_data_source_gen_test.go new file mode 100644 index 0000000000..81ebed1d8e --- /dev/null +++ b/internal/aws/lightsail/alarm_singular_data_source_gen_test.go @@ -0,0 +1,33 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package lightsail_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSLightsailAlarmDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Lightsail::Alarm", "awscc_lightsail_alarm", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSLightsailAlarmDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Lightsail::Alarm", "awscc_lightsail_alarm", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/lightsail/bucket_plural_data_source_gen.go b/internal/aws/lightsail/bucket_plural_data_source_gen.go new file mode 100644 index 0000000000..e2fc637213 --- /dev/null +++ b/internal/aws/lightsail/bucket_plural_data_source_gen.go @@ -0,0 +1,52 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package lightsail + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_lightsail_buckets", bucketsDataSourceType) +} + +// bucketsDataSourceType returns the Terraform awscc_lightsail_buckets data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::Lightsail::Bucket resource type. +func bucketsDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "id": { + Description: "Uniquely identifies the data source.", + Type: types.StringType, + Computed: true, + }, + "ids": { + Description: "Set of Resource Identifiers.", + Type: types.SetType{ElemType: types.StringType}, + Computed: true, + }, + } + + schema := tfsdk.Schema{ + Description: "Plural Data Source schema for AWS::Lightsail::Bucket", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Lightsail::Bucket").WithTerraformTypeName("awscc_lightsail_buckets") + opts = opts.WithTerraformSchema(schema) + + pluralDataSourceType, err := NewPluralDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return pluralDataSourceType, nil +} diff --git a/internal/aws/lightsail/bucket_plural_data_source_gen_test.go b/internal/aws/lightsail/bucket_plural_data_source_gen_test.go new file mode 100644 index 0000000000..cec7baa1de --- /dev/null +++ b/internal/aws/lightsail/bucket_plural_data_source_gen_test.go @@ -0,0 +1,24 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package lightsail_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSLightsailBucketsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Lightsail::Bucket", "awscc_lightsail_buckets", "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/lightsail/bucket_singular_data_source_gen.go b/internal/aws/lightsail/bucket_singular_data_source_gen.go new file mode 100644 index 0000000000..a573f07510 --- /dev/null +++ b/internal/aws/lightsail/bucket_singular_data_source_gen.go @@ -0,0 +1,251 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package lightsail + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_lightsail_bucket", bucketDataSourceType) +} + +// bucketDataSourceType returns the Terraform awscc_lightsail_bucket data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::Lightsail::Bucket resource type. +func bucketDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "able_to_update_bundle": { + // Property: AbleToUpdateBundle + // CloudFormation resource type schema: + // { + // "description": "Indicates whether the bundle that is currently applied to a bucket can be changed to another bundle. You can update a bucket's bundle only one time within a monthly AWS billing cycle.", + // "type": "boolean" + // } + Description: "Indicates whether the bundle that is currently applied to a bucket can be changed to another bundle. You can update a bucket's bundle only one time within a monthly AWS billing cycle.", + Type: types.BoolType, + Computed: true, + }, + "access_rules": { + // Property: AccessRules + // CloudFormation resource type schema: + // { + // "additionalProperties": false, + // "description": "An object that sets the public accessibility of objects in the specified bucket.", + // "properties": { + // "AllowPublicOverrides": { + // "description": "A Boolean value that indicates whether the access control list (ACL) permissions that are applied to individual objects override the getObject option that is currently specified.", + // "type": "boolean" + // }, + // "GetObject": { + // "description": "Specifies the anonymous access to all objects in a bucket.", + // "type": "string" + // } + // }, + // "type": "object" + // } + Description: "An object that sets the public accessibility of objects in the specified bucket.", + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "allow_public_overrides": { + // Property: AllowPublicOverrides + Description: "A Boolean value that indicates whether the access control list (ACL) permissions that are applied to individual objects override the getObject option that is currently specified.", + Type: types.BoolType, + Computed: true, + }, + "get_object": { + // Property: GetObject + Description: "Specifies the anonymous access to all objects in a bucket.", + Type: types.StringType, + Computed: true, + }, + }, + ), + Computed: true, + }, + "bucket_arn": { + // Property: BucketArn + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "bucket_name": { + // Property: BucketName + // CloudFormation resource type schema: + // { + // "description": "The name for the bucket.", + // "maxLength": 54, + // "minLength": 3, + // "pattern": "", + // "type": "string" + // } + Description: "The name for the bucket.", + Type: types.StringType, + Computed: true, + }, + "bundle_id": { + // Property: BundleId + // CloudFormation resource type schema: + // { + // "description": "The ID of the bundle to use for the bucket.", + // "type": "string" + // } + Description: "The ID of the bundle to use for the bucket.", + Type: types.StringType, + Computed: true, + }, + "object_versioning": { + // Property: ObjectVersioning + // CloudFormation resource type schema: + // { + // "description": "Specifies whether to enable or disable versioning of objects in the bucket.", + // "type": "boolean" + // } + Description: "Specifies whether to enable or disable versioning of objects in the bucket.", + Type: types.BoolType, + Computed: true, + }, + "read_only_access_accounts": { + // Property: ReadOnlyAccessAccounts + // CloudFormation resource type schema: + // { + // "description": "An array of strings to specify the AWS account IDs that can access the bucket.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "An array of strings to specify the AWS account IDs that can access the bucket.", + Type: types.SetType{ElemType: types.StringType}, + Computed: true, + }, + "resources_receiving_access": { + // Property: ResourcesReceivingAccess + // CloudFormation resource type schema: + // { + // "description": "The names of the Lightsail resources for which to set bucket access.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "The names of the Lightsail resources for which to set bucket access.", + Type: types.SetType{ElemType: types.StringType}, + Computed: true, + }, + "tags": { + // Property: Tags + // CloudFormation resource type schema: + // { + // "description": "An array of key-value pairs to apply to this resource.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "An array of key-value pairs to apply to this resource.", + Attributes: tfsdk.SetNestedAttributes( + map[string]tfsdk.Attribute{ + "key": { + // Property: Key + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.SetNestedAttributesOptions{}, + ), + Computed: true, + }, + "url": { + // Property: Url + // CloudFormation resource type schema: + // { + // "description": "The URL of the bucket.", + // "type": "string" + // } + Description: "The URL of the bucket.", + Type: types.StringType, + Computed: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Required: true, + } + + schema := tfsdk.Schema{ + Description: "Data Source schema for AWS::Lightsail::Bucket", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Lightsail::Bucket").WithTerraformTypeName("awscc_lightsail_bucket") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "able_to_update_bundle": "AbleToUpdateBundle", + "access_rules": "AccessRules", + "allow_public_overrides": "AllowPublicOverrides", + "bucket_arn": "BucketArn", + "bucket_name": "BucketName", + "bundle_id": "BundleId", + "get_object": "GetObject", + "key": "Key", + "object_versioning": "ObjectVersioning", + "read_only_access_accounts": "ReadOnlyAccessAccounts", + "resources_receiving_access": "ResourcesReceivingAccess", + "tags": "Tags", + "url": "Url", + "value": "Value", + }) + + singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return singularDataSourceType, nil +} diff --git a/internal/aws/lightsail/bucket_singular_data_source_gen_test.go b/internal/aws/lightsail/bucket_singular_data_source_gen_test.go new file mode 100644 index 0000000000..9445b37a75 --- /dev/null +++ b/internal/aws/lightsail/bucket_singular_data_source_gen_test.go @@ -0,0 +1,33 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package lightsail_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSLightsailBucketDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Lightsail::Bucket", "awscc_lightsail_bucket", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSLightsailBucketDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Lightsail::Bucket", "awscc_lightsail_bucket", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/lightsail/load_balancer_plural_data_source_gen.go b/internal/aws/lightsail/load_balancer_plural_data_source_gen.go new file mode 100644 index 0000000000..d69fda4ace --- /dev/null +++ b/internal/aws/lightsail/load_balancer_plural_data_source_gen.go @@ -0,0 +1,52 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package lightsail + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_lightsail_load_balancers", loadBalancersDataSourceType) +} + +// loadBalancersDataSourceType returns the Terraform awscc_lightsail_load_balancers data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::Lightsail::LoadBalancer resource type. +func loadBalancersDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "id": { + Description: "Uniquely identifies the data source.", + Type: types.StringType, + Computed: true, + }, + "ids": { + Description: "Set of Resource Identifiers.", + Type: types.SetType{ElemType: types.StringType}, + Computed: true, + }, + } + + schema := tfsdk.Schema{ + Description: "Plural Data Source schema for AWS::Lightsail::LoadBalancer", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Lightsail::LoadBalancer").WithTerraformTypeName("awscc_lightsail_load_balancers") + opts = opts.WithTerraformSchema(schema) + + pluralDataSourceType, err := NewPluralDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return pluralDataSourceType, nil +} diff --git a/internal/aws/lightsail/load_balancer_plural_data_source_gen_test.go b/internal/aws/lightsail/load_balancer_plural_data_source_gen_test.go new file mode 100644 index 0000000000..1e0939d101 --- /dev/null +++ b/internal/aws/lightsail/load_balancer_plural_data_source_gen_test.go @@ -0,0 +1,24 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package lightsail_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSLightsailLoadBalancersDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Lightsail::LoadBalancer", "awscc_lightsail_load_balancers", "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/lightsail/load_balancer_singular_data_source_gen.go b/internal/aws/lightsail/load_balancer_singular_data_source_gen.go new file mode 100644 index 0000000000..671f59f868 --- /dev/null +++ b/internal/aws/lightsail/load_balancer_singular_data_source_gen.go @@ -0,0 +1,204 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package lightsail + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_lightsail_load_balancer", loadBalancerDataSourceType) +} + +// loadBalancerDataSourceType returns the Terraform awscc_lightsail_load_balancer data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::Lightsail::LoadBalancer resource type. +func loadBalancerDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "attached_instances": { + // Property: AttachedInstances + // CloudFormation resource type schema: + // { + // "description": "The names of the instances attached to the load balancer.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "The names of the instances attached to the load balancer.", + Type: types.SetType{ElemType: types.StringType}, + Computed: true, + }, + "health_check_path": { + // Property: HealthCheckPath + // CloudFormation resource type schema: + // { + // "description": "The path you provided to perform the load balancer health check. If you didn't specify a health check path, Lightsail uses the root path of your website (e.g., \"/\").", + // "type": "string" + // } + Description: "The path you provided to perform the load balancer health check. If you didn't specify a health check path, Lightsail uses the root path of your website (e.g., \"/\").", + Type: types.StringType, + Computed: true, + }, + "instance_port": { + // Property: InstancePort + // CloudFormation resource type schema: + // { + // "description": "The instance port where you're creating your load balancer.", + // "type": "integer" + // } + Description: "The instance port where you're creating your load balancer.", + Type: types.NumberType, + Computed: true, + }, + "ip_address_type": { + // Property: IpAddressType + // CloudFormation resource type schema: + // { + // "description": "The IP address type for the load balancer. The possible values are ipv4 for IPv4 only, and dualstack for IPv4 and IPv6. The default value is dualstack.", + // "type": "string" + // } + Description: "The IP address type for the load balancer. The possible values are ipv4 for IPv4 only, and dualstack for IPv4 and IPv6. The default value is dualstack.", + Type: types.StringType, + Computed: true, + }, + "load_balancer_arn": { + // Property: LoadBalancerArn + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "load_balancer_name": { + // Property: LoadBalancerName + // CloudFormation resource type schema: + // { + // "description": "The name of your load balancer.", + // "pattern": "", + // "type": "string" + // } + Description: "The name of your load balancer.", + Type: types.StringType, + Computed: true, + }, + "session_stickiness_enabled": { + // Property: SessionStickinessEnabled + // CloudFormation resource type schema: + // { + // "description": "Configuration option to enable session stickiness.", + // "type": "boolean" + // } + Description: "Configuration option to enable session stickiness.", + Type: types.BoolType, + Computed: true, + }, + "session_stickiness_lb_cookie_duration_seconds": { + // Property: SessionStickinessLBCookieDurationSeconds + // CloudFormation resource type schema: + // { + // "description": "Configuration option to adjust session stickiness cookie duration parameter.", + // "type": "string" + // } + Description: "Configuration option to adjust session stickiness cookie duration parameter.", + Type: types.StringType, + Computed: true, + }, + "tags": { + // Property: Tags + // CloudFormation resource type schema: + // { + // "description": "An array of key-value pairs to apply to this resource.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "An array of key-value pairs to apply to this resource.", + Attributes: tfsdk.SetNestedAttributes( + map[string]tfsdk.Attribute{ + "key": { + // Property: Key + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Computed: true, + }, + "value": { + // Property: Value + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Type: types.StringType, + Computed: true, + }, + }, + tfsdk.SetNestedAttributesOptions{}, + ), + Computed: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Required: true, + } + + schema := tfsdk.Schema{ + Description: "Data Source schema for AWS::Lightsail::LoadBalancer", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Lightsail::LoadBalancer").WithTerraformTypeName("awscc_lightsail_load_balancer") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "attached_instances": "AttachedInstances", + "health_check_path": "HealthCheckPath", + "instance_port": "InstancePort", + "ip_address_type": "IpAddressType", + "key": "Key", + "load_balancer_arn": "LoadBalancerArn", + "load_balancer_name": "LoadBalancerName", + "session_stickiness_enabled": "SessionStickinessEnabled", + "session_stickiness_lb_cookie_duration_seconds": "SessionStickinessLBCookieDurationSeconds", + "tags": "Tags", + "value": "Value", + }) + + singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return singularDataSourceType, nil +} diff --git a/internal/aws/lightsail/load_balancer_singular_data_source_gen_test.go b/internal/aws/lightsail/load_balancer_singular_data_source_gen_test.go new file mode 100644 index 0000000000..2e29ef0210 --- /dev/null +++ b/internal/aws/lightsail/load_balancer_singular_data_source_gen_test.go @@ -0,0 +1,33 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package lightsail_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSLightsailLoadBalancerDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Lightsail::LoadBalancer", "awscc_lightsail_load_balancer", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSLightsailLoadBalancerDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Lightsail::LoadBalancer", "awscc_lightsail_load_balancer", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/lightsail/load_balancer_tls_certificate_singular_data_source_gen.go b/internal/aws/lightsail/load_balancer_tls_certificate_singular_data_source_gen.go new file mode 100644 index 0000000000..d3ae0c1b2b --- /dev/null +++ b/internal/aws/lightsail/load_balancer_tls_certificate_singular_data_source_gen.go @@ -0,0 +1,138 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package lightsail + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_lightsail_load_balancer_tls_certificate", loadBalancerTlsCertificateDataSourceType) +} + +// loadBalancerTlsCertificateDataSourceType returns the Terraform awscc_lightsail_load_balancer_tls_certificate data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::Lightsail::LoadBalancerTlsCertificate resource type. +func loadBalancerTlsCertificateDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "certificate_alternative_names": { + // Property: CertificateAlternativeNames + // CloudFormation resource type schema: + // { + // "description": "An array of strings listing alternative domains and subdomains for your SSL/TLS certificate.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + Description: "An array of strings listing alternative domains and subdomains for your SSL/TLS certificate.", + Type: types.SetType{ElemType: types.StringType}, + Computed: true, + }, + "certificate_domain_name": { + // Property: CertificateDomainName + // CloudFormation resource type schema: + // { + // "description": "The domain name (e.g., example.com ) for your SSL/TLS certificate.", + // "type": "string" + // } + Description: "The domain name (e.g., example.com ) for your SSL/TLS certificate.", + Type: types.StringType, + Computed: true, + }, + "certificate_name": { + // Property: CertificateName + // CloudFormation resource type schema: + // { + // "description": "The SSL/TLS certificate name.", + // "type": "string" + // } + Description: "The SSL/TLS certificate name.", + Type: types.StringType, + Computed: true, + }, + "is_attached": { + // Property: IsAttached + // CloudFormation resource type schema: + // { + // "description": "When true, the SSL/TLS certificate is attached to the Lightsail load balancer.", + // "type": "boolean" + // } + Description: "When true, the SSL/TLS certificate is attached to the Lightsail load balancer.", + Type: types.BoolType, + Computed: true, + }, + "load_balancer_name": { + // Property: LoadBalancerName + // CloudFormation resource type schema: + // { + // "description": "The name of your load balancer.", + // "pattern": "", + // "type": "string" + // } + Description: "The name of your load balancer.", + Type: types.StringType, + Computed: true, + }, + "load_balancer_tls_certificate_arn": { + // Property: LoadBalancerTlsCertificateArn + // CloudFormation resource type schema: + // { + // "type": "string" + // } + Type: types.StringType, + Computed: true, + }, + "status": { + // Property: Status + // CloudFormation resource type schema: + // { + // "description": "The validation status of the SSL/TLS certificate.", + // "type": "string" + // } + Description: "The validation status of the SSL/TLS certificate.", + Type: types.StringType, + Computed: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Required: true, + } + + schema := tfsdk.Schema{ + Description: "Data Source schema for AWS::Lightsail::LoadBalancerTlsCertificate", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Lightsail::LoadBalancerTlsCertificate").WithTerraformTypeName("awscc_lightsail_load_balancer_tls_certificate") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "certificate_alternative_names": "CertificateAlternativeNames", + "certificate_domain_name": "CertificateDomainName", + "certificate_name": "CertificateName", + "is_attached": "IsAttached", + "load_balancer_name": "LoadBalancerName", + "load_balancer_tls_certificate_arn": "LoadBalancerTlsCertificateArn", + "status": "Status", + }) + + singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return singularDataSourceType, nil +} diff --git a/internal/aws/lightsail/load_balancer_tls_certificate_singular_data_source_gen_test.go b/internal/aws/lightsail/load_balancer_tls_certificate_singular_data_source_gen_test.go new file mode 100644 index 0000000000..5354d0c270 --- /dev/null +++ b/internal/aws/lightsail/load_balancer_tls_certificate_singular_data_source_gen_test.go @@ -0,0 +1,33 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package lightsail_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSLightsailLoadBalancerTlsCertificateDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Lightsail::LoadBalancerTlsCertificate", "awscc_lightsail_load_balancer_tls_certificate", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSLightsailLoadBalancerTlsCertificateDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Lightsail::LoadBalancerTlsCertificate", "awscc_lightsail_load_balancer_tls_certificate", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/location/tracker_singular_data_source_gen.go b/internal/aws/location/tracker_singular_data_source_gen.go index 6a342b6b0a..f443ee3cf9 100644 --- a/internal/aws/location/tracker_singular_data_source_gen.go +++ b/internal/aws/location/tracker_singular_data_source_gen.go @@ -70,7 +70,8 @@ func trackerDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { // { // "enum": [ // "TimeBased", - // "DistanceBased" + // "DistanceBased", + // "AccuracyBased" // ], // "type": "string" // } diff --git a/internal/aws/nimblestudio/launch_profile_singular_data_source_gen.go b/internal/aws/nimblestudio/launch_profile_singular_data_source_gen.go index ff7241460d..3b165c107b 100644 --- a/internal/aws/nimblestudio/launch_profile_singular_data_source_gen.go +++ b/internal/aws/nimblestudio/launch_profile_singular_data_source_gen.go @@ -36,16 +36,15 @@ func launchProfileDataSourceType(ctx context.Context) (tfsdk.DataSourceType, err // Property: Ec2SubnetIds // CloudFormation resource type schema: // { - // "description": "\u003cp\u003eSpecifies the IDs of the EC2 subnets where streaming sessions will be accessible from. These subnets must support the specified instance types. \u003c/p\u003e", + // "description": "\u003cp\u003eSpecifies the IDs of the EC2 subnets where streaming sessions will be accessible from.\n These subnets must support the specified instance types. \u003c/p\u003e", // "items": { - // "description": "", // "type": "string" // }, // "maxItems": 6, // "minItems": 0, // "type": "array" // } - Description: "

Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from. These subnets must support the specified instance types.

", + Description: "

Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from.\n These subnets must support the specified instance types.

", Type: types.ListType{ElemType: types.StringType}, Computed: true, }, @@ -62,9 +61,9 @@ func launchProfileDataSourceType(ctx context.Context) (tfsdk.DataSourceType, err // Property: LaunchProfileProtocolVersions // CloudFormation resource type schema: // { - // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid version is \"2021-03-31\".\u003c/p\u003e", + // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".\u003c/p\u003e", // "items": { - // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid version is \"2021-03-31\".\u003c/p\u003e", + // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".\u003c/p\u003e", // "maxLength": 10, // "minLength": 0, // "pattern": "", @@ -72,7 +71,7 @@ func launchProfileDataSourceType(ctx context.Context) (tfsdk.DataSourceType, err // }, // "type": "array" // } - Description: "

The version number of the protocol that is used by the launch profile. The only valid version is \"2021-03-31\".

", + Description: "

The version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".

", Type: types.ListType{ElemType: types.StringType}, Computed: true, }, @@ -97,7 +96,6 @@ func launchProfileDataSourceType(ctx context.Context) (tfsdk.DataSourceType, err // "description": "\u003cp\u003eA configuration for a streaming session.\u003c/p\u003e", // "properties": { // "ClipboardMode": { - // "description": "", // "enum": [ // "ENABLED", // "DISABLED" @@ -105,9 +103,8 @@ func launchProfileDataSourceType(ctx context.Context) (tfsdk.DataSourceType, err // "type": "string" // }, // "Ec2InstanceTypes": { - // "description": "\u003cp\u003eThe EC2 instance types that users can select from when launching a streaming session with this launch profile.\u003c/p\u003e", + // "description": "\u003cp\u003eThe EC2 instance types that users can select from when launching a streaming session\n with this launch profile.\u003c/p\u003e", // "items": { - // "description": "", // "enum": [ // "g4dn.xlarge", // "g4dn.2xlarge", @@ -123,22 +120,66 @@ func launchProfileDataSourceType(ctx context.Context) (tfsdk.DataSourceType, err // "type": "array" // }, // "MaxSessionLengthInMinutes": { - // "description": "\u003cp\u003eThe length of time, in minutes, that a streaming session can run. After this point, Nimble Studio automatically terminates the session.\u003c/p\u003e", - // "maximum": 690, + // "description": "\u003cp\u003eThe length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.\u003c/p\u003e", + // "maximum": 43200, // "minimum": 1, // "type": "number" // }, + // "MaxStoppedSessionLengthInMinutes": { + // "description": "\u003cp\u003eInteger that determines if you can start and stop your sessions and how long a session\n can stay in the STOPPED state. The default value is 0. The maximum value is 5760.\u003c/p\u003e\n \u003cp\u003eIf the value is missing or set to 0, your sessions can?t be stopped. If you then call\n StopStreamingSession, the session fails. If the time that a session stays in the READY\n state exceeds the maxSessionLengthInMinutes value, the session will automatically be\n terminated by AWS (instead of stopped).\u003c/p\u003e\n \u003cp\u003eIf the value is set to a positive number, the session can be stopped. You can call\n StopStreamingSession to stop sessions in the READY state. If the time that a session\n stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will\n automatically be stopped by AWS (instead of terminated).\u003c/p\u003e", + // "maximum": 5760, + // "minimum": 0, + // "type": "number" + // }, + // "SessionStorage": { + // "additionalProperties": false, + // "description": "\u003cp\u003eThe configuration for a streaming session?s upload storage.\u003c/p\u003e", + // "properties": { + // "Mode": { + // "description": "\u003cp\u003eAllows artists to upload files to their workstations. The only valid option is\n \u003ccode\u003eUPLOAD\u003c/code\u003e.\u003c/p\u003e", + // "items": { + // "enum": [ + // "UPLOAD" + // ], + // "type": "string" + // }, + // "minItems": 1, + // "type": "array" + // }, + // "Root": { + // "additionalProperties": false, + // "description": "\u003cp\u003eThe upload storage root location (folder) on streaming workstations where files are\n uploaded.\u003c/p\u003e", + // "properties": { + // "Linux": { + // "description": "\u003cp\u003eThe folder path in Linux workstations where files are uploaded.\u003c/p\u003e", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Windows": { + // "description": "\u003cp\u003eThe folder path in Windows workstations where files are uploaded.\u003c/p\u003e", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, // "StreamingImageIds": { - // "description": "\u003cp\u003eThe streaming images that users can select from when launching a streaming session with this launch profile.\u003c/p\u003e", + // "description": "\u003cp\u003eThe streaming images that users can select from when launching a streaming session\n with this launch profile.\u003c/p\u003e", // "items": { - // "description": "", // "maxLength": 22, // "minLength": 0, // "pattern": "", // "type": "string" // }, // "maxItems": 20, - // "minItems": 0, + // "minItems": 1, // "type": "array" // } // }, @@ -154,25 +195,66 @@ func launchProfileDataSourceType(ctx context.Context) (tfsdk.DataSourceType, err map[string]tfsdk.Attribute{ "clipboard_mode": { // Property: ClipboardMode - Description: "", - Type: types.StringType, - Computed: true, + Type: types.StringType, + Computed: true, }, "ec_2_instance_types": { // Property: Ec2InstanceTypes - Description: "

The EC2 instance types that users can select from when launching a streaming session with this launch profile.

", + Description: "

The EC2 instance types that users can select from when launching a streaming session\n with this launch profile.

", Type: types.ListType{ElemType: types.StringType}, Computed: true, }, "max_session_length_in_minutes": { // Property: MaxSessionLengthInMinutes - Description: "

The length of time, in minutes, that a streaming session can run. After this point, Nimble Studio automatically terminates the session.

", + Description: "

The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.

", Type: types.NumberType, Computed: true, }, + "max_stopped_session_length_in_minutes": { + // Property: MaxStoppedSessionLengthInMinutes + Description: "

Integer that determines if you can start and stop your sessions and how long a session\n can stay in the STOPPED state. The default value is 0. The maximum value is 5760.

\n

If the value is missing or set to 0, your sessions can?t be stopped. If you then call\n StopStreamingSession, the session fails. If the time that a session stays in the READY\n state exceeds the maxSessionLengthInMinutes value, the session will automatically be\n terminated by AWS (instead of stopped).

\n

If the value is set to a positive number, the session can be stopped. You can call\n StopStreamingSession to stop sessions in the READY state. If the time that a session\n stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will\n automatically be stopped by AWS (instead of terminated).

", + Type: types.NumberType, + Computed: true, + }, + "session_storage": { + // Property: SessionStorage + Description: "

The configuration for a streaming session?s upload storage.

", + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "mode": { + // Property: Mode + Description: "

Allows artists to upload files to their workstations. The only valid option is\n UPLOAD.

", + Type: types.ListType{ElemType: types.StringType}, + Computed: true, + }, + "root": { + // Property: Root + Description: "

The upload storage root location (folder) on streaming workstations where files are\n uploaded.

", + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "linux": { + // Property: Linux + Description: "

The folder path in Linux workstations where files are uploaded.

", + Type: types.StringType, + Computed: true, + }, + "windows": { + // Property: Windows + Description: "

The folder path in Windows workstations where files are uploaded.

", + Type: types.StringType, + Computed: true, + }, + }, + ), + Computed: true, + }, + }, + ), + Computed: true, + }, "streaming_image_ids": { // Property: StreamingImageIds - Description: "

The streaming images that users can select from when launching a streaming session with this launch profile.

", + Description: "

The streaming images that users can select from when launching a streaming session\n with this launch profile.

", Type: types.ListType{ElemType: types.StringType}, Computed: true, }, @@ -184,7 +266,7 @@ func launchProfileDataSourceType(ctx context.Context) (tfsdk.DataSourceType, err // Property: StudioComponentIds // CloudFormation resource type schema: // { - // "description": "\u003cp\u003eUnique identifiers for a collection of studio components that can be used with this launch profile.\u003c/p\u003e", + // "description": "\u003cp\u003eUnique identifiers for a collection of studio components that can be used with this\n launch profile.\u003c/p\u003e", // "items": { // "type": "string" // }, @@ -192,7 +274,7 @@ func launchProfileDataSourceType(ctx context.Context) (tfsdk.DataSourceType, err // "minItems": 1, // "type": "array" // } - Description: "

Unique identifiers for a collection of studio components that can be used with this launch profile.

", + Description: "

Unique identifiers for a collection of studio components that can be used with this\n launch profile.

", Type: types.ListType{ElemType: types.StringType}, Computed: true, }, @@ -200,10 +282,10 @@ func launchProfileDataSourceType(ctx context.Context) (tfsdk.DataSourceType, err // Property: StudioId // CloudFormation resource type schema: // { - // "description": "\u003cp\u003eThe studioId. \u003c/p\u003e", + // "description": "\u003cp\u003eThe studio ID. \u003c/p\u003e", // "type": "string" // } - Description: "

The studioId.

", + Description: "

The studio ID.

", Type: types.StringType, Computed: true, }, @@ -212,7 +294,6 @@ func launchProfileDataSourceType(ctx context.Context) (tfsdk.DataSourceType, err // CloudFormation resource type schema: // { // "additionalProperties": false, - // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -220,7 +301,6 @@ func launchProfileDataSourceType(ctx context.Context) (tfsdk.DataSourceType, err // }, // "type": "object" // } - Description: "", // Pattern: "" Type: types.MapType{ElemType: types.StringType}, Computed: true, @@ -244,19 +324,25 @@ func launchProfileDataSourceType(ctx context.Context) (tfsdk.DataSourceType, err opts = opts.WithCloudFormationTypeName("AWS::NimbleStudio::LaunchProfile").WithTerraformTypeName("awscc_nimblestudio_launch_profile") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "clipboard_mode": "ClipboardMode", - "description": "Description", - "ec_2_instance_types": "Ec2InstanceTypes", - "ec_2_subnet_ids": "Ec2SubnetIds", - "launch_profile_id": "LaunchProfileId", - "launch_profile_protocol_versions": "LaunchProfileProtocolVersions", - "max_session_length_in_minutes": "MaxSessionLengthInMinutes", - "name": "Name", - "stream_configuration": "StreamConfiguration", - "streaming_image_ids": "StreamingImageIds", - "studio_component_ids": "StudioComponentIds", - "studio_id": "StudioId", - "tags": "Tags", + "clipboard_mode": "ClipboardMode", + "description": "Description", + "ec_2_instance_types": "Ec2InstanceTypes", + "ec_2_subnet_ids": "Ec2SubnetIds", + "launch_profile_id": "LaunchProfileId", + "launch_profile_protocol_versions": "LaunchProfileProtocolVersions", + "linux": "Linux", + "max_session_length_in_minutes": "MaxSessionLengthInMinutes", + "max_stopped_session_length_in_minutes": "MaxStoppedSessionLengthInMinutes", + "mode": "Mode", + "name": "Name", + "root": "Root", + "session_storage": "SessionStorage", + "stream_configuration": "StreamConfiguration", + "streaming_image_ids": "StreamingImageIds", + "studio_component_ids": "StudioComponentIds", + "studio_id": "StudioId", + "tags": "Tags", + "windows": "Windows", }) singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) diff --git a/internal/aws/redshift/event_subscription_singular_data_source_gen.go b/internal/aws/redshift/event_subscription_singular_data_source_gen.go index 8b48464879..f3d4582102 100644 --- a/internal/aws/redshift/event_subscription_singular_data_source_gen.go +++ b/internal/aws/redshift/event_subscription_singular_data_source_gen.go @@ -68,10 +68,11 @@ func eventSubscriptionDataSourceType(ctx context.Context) (tfsdk.DataSourceType, // ], // "type": "string" // }, - // "type": "array" + // "type": "array", + // "uniqueItems": true // } Description: "Specifies the Amazon Redshift event categories to be published by the event notification subscription.", - Type: types.ListType{ElemType: types.StringType}, + Type: types.SetType{ElemType: types.StringType}, Computed: true, }, "event_categories_list": { @@ -83,10 +84,11 @@ func eventSubscriptionDataSourceType(ctx context.Context) (tfsdk.DataSourceType, // "items": { // "type": "string" // }, - // "type": "array" + // "type": "array", + // "uniqueItems": true // } Description: "The list of Amazon Redshift event categories specified in the event notification subscription.", - Type: types.ListType{ElemType: types.StringType}, + Type: types.SetType{ElemType: types.StringType}, Computed: true, }, "severity": { diff --git a/internal/aws/route53resolver/resolver_rule_association_plural_data_source_gen.go b/internal/aws/route53resolver/resolver_rule_association_plural_data_source_gen.go new file mode 100644 index 0000000000..0a34c6209a --- /dev/null +++ b/internal/aws/route53resolver/resolver_rule_association_plural_data_source_gen.go @@ -0,0 +1,52 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package route53resolver + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_route53resolver_resolver_rule_associations", resolverRuleAssociationsDataSourceType) +} + +// resolverRuleAssociationsDataSourceType returns the Terraform awscc_route53resolver_resolver_rule_associations data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::Route53Resolver::ResolverRuleAssociation resource type. +func resolverRuleAssociationsDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "id": { + Description: "Uniquely identifies the data source.", + Type: types.StringType, + Computed: true, + }, + "ids": { + Description: "Set of Resource Identifiers.", + Type: types.SetType{ElemType: types.StringType}, + Computed: true, + }, + } + + schema := tfsdk.Schema{ + Description: "Plural Data Source schema for AWS::Route53Resolver::ResolverRuleAssociation", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Route53Resolver::ResolverRuleAssociation").WithTerraformTypeName("awscc_route53resolver_resolver_rule_associations") + opts = opts.WithTerraformSchema(schema) + + pluralDataSourceType, err := NewPluralDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return pluralDataSourceType, nil +} diff --git a/internal/aws/route53resolver/resolver_rule_association_plural_data_source_gen_test.go b/internal/aws/route53resolver/resolver_rule_association_plural_data_source_gen_test.go new file mode 100644 index 0000000000..a0ace4c787 --- /dev/null +++ b/internal/aws/route53resolver/resolver_rule_association_plural_data_source_gen_test.go @@ -0,0 +1,24 @@ +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package route53resolver_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSRoute53ResolverResolverRuleAssociationsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Route53Resolver::ResolverRuleAssociation", "awscc_route53resolver_resolver_rule_associations", "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/route53resolver/resolver_rule_association_singular_data_source_gen.go b/internal/aws/route53resolver/resolver_rule_association_singular_data_source_gen.go new file mode 100644 index 0000000000..ff1256ab1c --- /dev/null +++ b/internal/aws/route53resolver/resolver_rule_association_singular_data_source_gen.go @@ -0,0 +1,98 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package route53resolver + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/tfsdk" + "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.AddDataSourceTypeFactory("awscc_route53resolver_resolver_rule_association", resolverRuleAssociationDataSourceType) +} + +// resolverRuleAssociationDataSourceType returns the Terraform awscc_route53resolver_resolver_rule_association data source type. +// This Terraform data source type corresponds to the CloudFormation AWS::Route53Resolver::ResolverRuleAssociation resource type. +func resolverRuleAssociationDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { + attributes := map[string]tfsdk.Attribute{ + "name": { + // Property: Name + // CloudFormation resource type schema: + // { + // "description": "The name of an association between a Resolver rule and a VPC.", + // "type": "string" + // } + Description: "The name of an association between a Resolver rule and a VPC.", + Type: types.StringType, + Computed: true, + }, + "resolver_rule_association_id": { + // Property: ResolverRuleAssociationId + // CloudFormation resource type schema: + // { + // "description": "Primary Identifier for Resolver Rule Association", + // "type": "string" + // } + Description: "Primary Identifier for Resolver Rule Association", + Type: types.StringType, + Computed: true, + }, + "resolver_rule_id": { + // Property: ResolverRuleId + // CloudFormation resource type schema: + // { + // "description": "The ID of the Resolver rule that you associated with the VPC that is specified by VPCId.", + // "type": "string" + // } + Description: "The ID of the Resolver rule that you associated with the VPC that is specified by VPCId.", + Type: types.StringType, + Computed: true, + }, + "vpc_id": { + // Property: VPCId + // CloudFormation resource type schema: + // { + // "description": "The ID of the VPC that you associated the Resolver rule with.", + // "type": "string" + // } + Description: "The ID of the VPC that you associated the Resolver rule with.", + Type: types.StringType, + Computed: true, + }, + } + + attributes["id"] = tfsdk.Attribute{ + Description: "Uniquely identifies the resource.", + Type: types.StringType, + Required: true, + } + + schema := tfsdk.Schema{ + Description: "Data Source schema for AWS::Route53Resolver::ResolverRuleAssociation", + Version: 1, + Attributes: attributes, + } + + var opts DataSourceTypeOptions + + opts = opts.WithCloudFormationTypeName("AWS::Route53Resolver::ResolverRuleAssociation").WithTerraformTypeName("awscc_route53resolver_resolver_rule_association") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "name": "Name", + "resolver_rule_association_id": "ResolverRuleAssociationId", + "resolver_rule_id": "ResolverRuleId", + "vpc_id": "VPCId", + }) + + singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) + + if err != nil { + return nil, err + } + + return singularDataSourceType, nil +} diff --git a/internal/aws/route53resolver/resolver_rule_association_singular_data_source_gen_test.go b/internal/aws/route53resolver/resolver_rule_association_singular_data_source_gen_test.go new file mode 100644 index 0000000000..1f30c7e21d --- /dev/null +++ b/internal/aws/route53resolver/resolver_rule_association_singular_data_source_gen_test.go @@ -0,0 +1,33 @@ +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package route53resolver_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSRoute53ResolverResolverRuleAssociationDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Route53Resolver::ResolverRuleAssociation", "awscc_route53resolver_resolver_rule_association", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSRoute53ResolverResolverRuleAssociationDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Route53Resolver::ResolverRuleAssociation", "awscc_route53resolver_resolver_rule_association", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/rum/app_monitor_singular_data_source_gen_test.go b/internal/aws/rum/app_monitor_singular_data_source_gen_test.go index 9bd69c9a94..db80369b5c 100644 --- a/internal/aws/rum/app_monitor_singular_data_source_gen_test.go +++ b/internal/aws/rum/app_monitor_singular_data_source_gen_test.go @@ -3,7 +3,6 @@ package rum_test import ( - "fmt" "regexp" "testing" @@ -16,11 +15,8 @@ func TestAccAWSRUMAppMonitorDataSource_basic(t *testing.T) { 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"), - ), + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), }, }) } diff --git a/internal/aws/sagemaker/pipeline_singular_data_source_gen.go b/internal/aws/sagemaker/pipeline_singular_data_source_gen.go index 06d123b535..1eeba50796 100644 --- a/internal/aws/sagemaker/pipeline_singular_data_source_gen.go +++ b/internal/aws/sagemaker/pipeline_singular_data_source_gen.go @@ -19,6 +19,35 @@ func init() { // This Terraform data source type corresponds to the CloudFormation AWS::SageMaker::Pipeline resource type. func pipelineDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { attributes := map[string]tfsdk.Attribute{ + "parallelism_configuration": { + // Property: ParallelismConfiguration + // CloudFormation resource type schema: + // { + // "additionalProperties": false, + // "properties": { + // "MaxParallelExecutionSteps": { + // "description": "Maximum parallel execution steps", + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "MaxParallelExecutionSteps" + // ], + // "type": "object" + // } + Attributes: tfsdk.SingleNestedAttributes( + map[string]tfsdk.Attribute{ + "max_parallel_execution_steps": { + // Property: MaxParallelExecutionSteps + Description: "Maximum parallel execution steps", + Type: types.NumberType, + Computed: true, + }, + }, + ), + Computed: true, + }, "pipeline_definition": { // Property: PipelineDefinition // CloudFormation resource type schema: @@ -218,6 +247,8 @@ func pipelineDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { "bucket": "Bucket", "e_tag": "ETag", "key": "Key", + "max_parallel_execution_steps": "MaxParallelExecutionSteps", + "parallelism_configuration": "ParallelismConfiguration", "pipeline_definition": "PipelineDefinition", "pipeline_definition_body": "PipelineDefinitionBody", "pipeline_definition_s3_location": "PipelineDefinitionS3Location", diff --git a/internal/aws/timestream/scheduled_query_singular_data_source_gen.go b/internal/aws/timestream/scheduled_query_singular_data_source_gen.go index e8a7ac2c21..e06908de15 100644 --- a/internal/aws/timestream/scheduled_query_singular_data_source_gen.go +++ b/internal/aws/timestream/scheduled_query_singular_data_source_gen.go @@ -36,12 +36,12 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // Property: ClientToken // CloudFormation resource type schema: // { - // "description": "Token provided to ensure idempotency when creating scheduled queries.", + // "description": "Using a ClientToken makes the call to CreateScheduledQuery idempotent, in other words, making the same request repeatedly will produce the same result. Making multiple identical CreateScheduledQuery requests has the same effect as making a single request. If CreateScheduledQuery is called without a ClientToken, the Query SDK generates a ClientToken on your behalf. After 8 hours, any request with the same ClientToken is treated as a new request.", // "maxLength": 128, // "minLength": 32, // "type": "string" // } - Description: "Token provided to ensure idempotency when creating scheduled queries.", + Description: "Using a ClientToken makes the call to CreateScheduledQuery idempotent, in other words, making the same request repeatedly will produce the same result. Making multiple identical CreateScheduledQuery requests has the same effect as making a single request. If CreateScheduledQuery is called without a ClientToken, the Query SDK generates a ClientToken on your behalf. After 8 hours, any request with the same ClientToken is treated as a new request.", Type: types.StringType, Computed: true, }, @@ -50,21 +50,21 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // CloudFormation resource type schema: // { // "additionalProperties": false, - // "description": "Configuration for where error reports will be placed, how they will be named, and how they will be encrypted.", + // "description": "Configuration for error reporting. Error reports will be generated when a problem is encountered when writing the query results.", // "properties": { // "S3Configuration": { // "additionalProperties": false, - // "description": "S3 configuration for where error reports will be placed, how they will be named, and how they will be encrypted.", + // "description": "Details on S3 location for error reports that result from running a query.", // "properties": { // "BucketName": { - // "description": "S3 bucket where error reports will be placed.", + // "description": "Name of the S3 bucket under which error reports will be created.", // "maxLength": 63, // "minLength": 3, // "pattern": "", // "type": "string" // }, // "EncryptionOption": { - // "description": "How error reports will be encrypted.", + // "description": "Encryption at rest options for the error reports. If no encryption option is specified, Timestream will choose SSE_S3 as default.", // "enum": [ // "SSE_S3", // "SSE_KMS" @@ -72,7 +72,7 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // "type": "string" // }, // "ObjectKeyPrefix": { - // "description": "Prefix for error report names.", + // "description": "Prefix for error report keys.", // "maxLength": 896, // "minLength": 1, // "pattern": "", @@ -90,29 +90,29 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // ], // "type": "object" // } - Description: "Configuration for where error reports will be placed, how they will be named, and how they will be encrypted.", + Description: "Configuration for error reporting. Error reports will be generated when a problem is encountered when writing the query results.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "s3_configuration": { // Property: S3Configuration - Description: "S3 configuration for where error reports will be placed, how they will be named, and how they will be encrypted.", + Description: "Details on S3 location for error reports that result from running a query.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "bucket_name": { // Property: BucketName - Description: "S3 bucket where error reports will be placed.", + Description: "Name of the S3 bucket under which error reports will be created.", Type: types.StringType, Computed: true, }, "encryption_option": { // Property: EncryptionOption - Description: "How error reports will be encrypted.", + Description: "Encryption at rest options for the error reports. If no encryption option is specified, Timestream will choose SSE_S3 as default.", Type: types.StringType, Computed: true, }, "object_key_prefix": { // Property: ObjectKeyPrefix - Description: "Prefix for error report names.", + Description: "Prefix for error report keys.", Type: types.StringType, Computed: true, }, @@ -128,12 +128,12 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // Property: KmsKeyId // CloudFormation resource type schema: // { - // "description": "The KMS key for the scheduled query. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS key located in your account.", + // "description": "The Amazon KMS key used to encrypt the scheduled query resource, at-rest. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix the name with alias/. If ErrorReportConfiguration uses SSE_KMS as encryption type, the same KmsKeyId is used to encrypt the error report at rest.", // "maxLength": 2048, // "minLength": 1, // "type": "string" // } - Description: "The KMS key for the scheduled query. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS key located in your account.", + Description: "The Amazon KMS key used to encrypt the scheduled query resource, at-rest. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix the name with alias/. If ErrorReportConfiguration uses SSE_KMS as encryption type, the same KmsKeyId is used to encrypt the error report at rest.", Type: types.StringType, Computed: true, }, @@ -142,14 +142,14 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // CloudFormation resource type schema: // { // "additionalProperties": false, - // "description": "Configuration for notification upon scheduled query execution.", + // "description": "Notification configuration for the scheduled query. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it.", // "properties": { // "SnsConfiguration": { // "additionalProperties": false, // "description": "SNS configuration for notification upon scheduled query execution.", // "properties": { // "TopicArn": { - // "description": "SNS Topic to be notified upon scheduled query execution.", + // "description": "SNS topic ARN that the scheduled query status notifications will be sent to.", // "maxLength": 2048, // "minLength": 1, // "type": "string" @@ -166,7 +166,7 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // ], // "type": "object" // } - Description: "Configuration for notification upon scheduled query execution.", + Description: "Notification configuration for the scheduled query. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "sns_configuration": { @@ -176,7 +176,7 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er map[string]tfsdk.Attribute{ "topic_arn": { // Property: TopicArn - Description: "SNS Topic to be notified upon scheduled query execution.", + Description: "SNS topic ARN that the scheduled query status notifications will be sent to.", Type: types.StringType, Computed: true, }, @@ -192,12 +192,12 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // Property: QueryString // CloudFormation resource type schema: // { - // "description": "The query scheduled to be executed.", + // "description": "The query string to run. Parameter names can be specified in the query string @ character followed by an identifier. The named Parameter @scheduled_runtime is reserved and can be used in the query to get the time at which the query is scheduled to run. The timestamp calculated according to the ScheduleConfiguration parameter, will be the value of @scheduled_runtime paramater for each query run. For example, consider an instance of a scheduled query executing on 2021-12-01 00:00:00. For this instance, the @scheduled_runtime parameter is initialized to the timestamp 2021-12-01 00:00:00 when invoking the query.", // "maxLength": 262144, // "minLength": 1, // "type": "string" // } - Description: "The query scheduled to be executed.", + Description: "The query string to run. Parameter names can be specified in the query string @ character followed by an identifier. The named Parameter @scheduled_runtime is reserved and can be used in the query to get the time at which the query is scheduled to run. The timestamp calculated according to the ScheduleConfiguration parameter, will be the value of @scheduled_runtime paramater for each query run. For example, consider an instance of a scheduled query executing on 2021-12-01 00:00:00. For this instance, the @scheduled_runtime parameter is initialized to the timestamp 2021-12-01 00:00:00 when invoking the query.", Type: types.StringType, Computed: true, }, @@ -205,10 +205,10 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // Property: SQErrorReportConfiguration // CloudFormation resource type schema: // { - // "description": "Configuration for where error reports will be placed, how they will be named, and how they will be encrypted.", + // "description": "Configuration for error reporting. Error reports will be generated when a problem is encountered when writing the query results.", // "type": "string" // } - Description: "Configuration for where error reports will be placed, how they will be named, and how they will be encrypted.", + Description: "Configuration for error reporting. Error reports will be generated when a problem is encountered when writing the query results.", Type: types.StringType, Computed: true, }, @@ -216,10 +216,10 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // Property: SQKmsKeyId // CloudFormation resource type schema: // { - // "description": "The KMS key for the scheduled query. If the KMS key is not specified, the database will be encrypted with a Timestream owned KMS key located in the Timestream account.", + // "description": "The Amazon KMS key used to encrypt the scheduled query resource, at-rest. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix the name with alias/. If ErrorReportConfiguration uses SSE_KMS as encryption type, the same KmsKeyId is used to encrypt the error report at rest.", // "type": "string" // } - Description: "The KMS key for the scheduled query. If the KMS key is not specified, the database will be encrypted with a Timestream owned KMS key located in the Timestream account.", + Description: "The Amazon KMS key used to encrypt the scheduled query resource, at-rest. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix the name with alias/. If ErrorReportConfiguration uses SSE_KMS as encryption type, the same KmsKeyId is used to encrypt the error report at rest.", Type: types.StringType, Computed: true, }, @@ -227,10 +227,10 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // Property: SQName // CloudFormation resource type schema: // { - // "description": "The name for the scheduled query.", + // "description": "The name of the scheduled query. Scheduled query names must be unique within each Region.", // "type": "string" // } - Description: "The name for the scheduled query.", + Description: "The name of the scheduled query. Scheduled query names must be unique within each Region.", Type: types.StringType, Computed: true, }, @@ -238,10 +238,10 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // Property: SQNotificationConfiguration // CloudFormation resource type schema: // { - // "description": "Configuration for notification upon scheduled query execution.", + // "description": "Notification configuration for the scheduled query. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it.", // "type": "string" // } - Description: "Configuration for notification upon scheduled query execution.", + Description: "Notification configuration for the scheduled query. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it.", Type: types.StringType, Computed: true, }, @@ -249,10 +249,10 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // Property: SQQueryString // CloudFormation resource type schema: // { - // "description": "The query scheduled to be executed.", + // "description": "The query string to run. Parameter names can be specified in the query string @ character followed by an identifier. The named Parameter @scheduled_runtime is reserved and can be used in the query to get the time at which the query is scheduled to run. The timestamp calculated according to the ScheduleConfiguration parameter, will be the value of @scheduled_runtime paramater for each query run. For example, consider an instance of a scheduled query executing on 2021-12-01 00:00:00. For this instance, the @scheduled_runtime parameter is initialized to the timestamp 2021-12-01 00:00:00 when invoking the query.", // "type": "string" // } - Description: "The query scheduled to be executed.", + Description: "The query string to run. Parameter names can be specified in the query string @ character followed by an identifier. The named Parameter @scheduled_runtime is reserved and can be used in the query to get the time at which the query is scheduled to run. The timestamp calculated according to the ScheduleConfiguration parameter, will be the value of @scheduled_runtime paramater for each query run. For example, consider an instance of a scheduled query executing on 2021-12-01 00:00:00. For this instance, the @scheduled_runtime parameter is initialized to the timestamp 2021-12-01 00:00:00 when invoking the query.", Type: types.StringType, Computed: true, }, @@ -260,10 +260,10 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // Property: SQScheduleConfiguration // CloudFormation resource type schema: // { - // "description": "Configuration that indicates when the scheduled query is executed.", + // "description": "Configuration for when the scheduled query is executed.", // "type": "string" // } - Description: "Configuration that indicates when the scheduled query is executed.", + Description: "Configuration for when the scheduled query is executed.", Type: types.StringType, Computed: true, }, @@ -271,10 +271,10 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // Property: SQScheduledQueryExecutionRoleArn // CloudFormation resource type schema: // { - // "description": "Role that AWS Timestream will assume to execute scheduled query.", + // "description": "The ARN for the IAM role that Timestream will assume when running the scheduled query.", // "type": "string" // } - Description: "Role that AWS Timestream will assume to execute scheduled query.", + Description: "The ARN for the IAM role that Timestream will assume when running the scheduled query.", Type: types.StringType, Computed: true, }, @@ -282,10 +282,10 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // Property: SQTargetConfiguration // CloudFormation resource type schema: // { - // "description": "Target data source to export query results from.", + // "description": "Configuration of target store where scheduled query results are written to.", // "type": "string" // } - Description: "Target data source to export query results from.", + Description: "Configuration of target store where scheduled query results are written to.", Type: types.StringType, Computed: true, }, @@ -294,10 +294,10 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // CloudFormation resource type schema: // { // "additionalProperties": false, - // "description": "Configuration that indicates when the scheduled query is executed.", + // "description": "Configuration for when the scheduled query is executed.", // "properties": { // "ScheduleExpression": { - // "description": "The cron expression that indicates when the scheduled query is executed.", + // "description": "An expression that denotes when to trigger the scheduled query run. This can be a cron expression or a rate expression.", // "maxLength": 256, // "minLength": 1, // "type": "string" @@ -308,12 +308,12 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // ], // "type": "object" // } - Description: "Configuration that indicates when the scheduled query is executed.", + Description: "Configuration for when the scheduled query is executed.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "schedule_expression": { // Property: ScheduleExpression - Description: "The cron expression that indicates when the scheduled query is executed.", + Description: "An expression that denotes when to trigger the scheduled query run. This can be a cron expression or a rate expression.", Type: types.StringType, Computed: true, }, @@ -325,12 +325,12 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // Property: ScheduledQueryExecutionRoleArn // CloudFormation resource type schema: // { - // "description": "Role that AWS Timestream will assume to execute scheduled query.", + // "description": "The ARN for the IAM role that Timestream will assume when running the scheduled query.", // "maxLength": 2048, // "minLength": 1, // "type": "string" // } - Description: "Role that AWS Timestream will assume to execute scheduled query.", + Description: "The ARN for the IAM role that Timestream will assume when running the scheduled query.", Type: types.StringType, Computed: true, }, @@ -338,13 +338,13 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // Property: ScheduledQueryName // CloudFormation resource type schema: // { - // "description": "The name for the scheduled query.", + // "description": "The name of the scheduled query. Scheduled query names must be unique within each Region.", // "maxLength": 64, // "minLength": 1, // "pattern": "", // "type": "string" // } - Description: "The name for the scheduled query.", + Description: "The name of the scheduled query. Scheduled query names must be unique within each Region.", Type: types.StringType, Computed: true, }, @@ -352,11 +352,11 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // Property: Tags // CloudFormation resource type schema: // { - // "description": "An array of key-value pairs to apply to this resource.", + // "description": "A list of key-value pairs to label the scheduled query.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "A key-value pair to associate with a resource.", + // "description": "A key-value pair to label the scheduled query.", // "properties": { // "Key": { // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", @@ -380,7 +380,7 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // "maxItems": 200, // "type": "array" // } - Description: "An array of key-value pairs to apply to this resource.", + Description: "A list of key-value pairs to label the scheduled query.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "key": { @@ -405,32 +405,32 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // CloudFormation resource type schema: // { // "additionalProperties": false, - // "description": "Configuration of target destination table to query.", + // "description": "Configuration of target store where scheduled query results are written to.", // "properties": { // "TimestreamConfiguration": { // "additionalProperties": false, - // "description": "Timestream configuration of destination table to query.", + // "description": "Configuration needed to write data into the Timestream database and table.", // "properties": { // "DatabaseName": { - // "description": "The source database to query.", + // "description": "Name of Timestream database to which the query result will be written.", // "type": "string" // }, // "DimensionMappings": { - // "description": "Mappings of dimension names to dimension value types.", + // "description": "This is to allow mapping column(s) from the query result to the dimension in the destination table.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Mapping of dimension column name to dimension column value type.", + // "description": "This type is used to map column(s) from the query result to a dimension in the destination table.", // "properties": { // "DimensionValueType": { - // "description": "Value type of the dimension column.", + // "description": "Type for the dimension.", // "enum": [ // "VARCHAR" // ], // "type": "string" // }, // "Name": { - // "description": "Name of the dimension column.", + // "description": "Column name from query result.", // "type": "string" // } // }, @@ -443,22 +443,22 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // "type": "array" // }, // "MeasureNameColumn": { - // "description": "Name of the source measure names column.", + // "description": "Name of the measure name column from the query result.", // "type": "string" // }, // "MixedMeasureMappings": { - // "description": "Mapping of measure names and measure value columns from the source table to the destination table.", + // "description": "Specifies how to map measures to multi-measure records.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Mapping of measure names and measure value columns from the source table to the destination table.", + // "description": "MixedMeasureMappings are mappings that can be used to ingest data into a mixture of narrow and multi measures in the derived table.", // "properties": { // "MeasureName": { - // "description": "Name of the measure in source table.", + // "description": "Refers to the value of the measure name in a result row. This field is required if MeasureNameColumn is provided.", // "type": "string" // }, // "MeasureValueType": { - // "description": "Value type of the measure value column in the destination table.", + // "description": "Type of the value that is to be read from SourceColumn. If the mapping is for MULTI, use MeasureValueType.MULTI.", // "enum": [ // "BIGINT", // "BOOLEAN", @@ -469,14 +469,14 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // "type": "string" // }, // "MultiMeasureAttributeMappings": { - // "description": "List of multi-measure value column mappings.", + // "description": "Required. Attribute mappings to be used for mapping query results to ingest data for multi-measure attributes.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Mapping of measure value columns from the source table to the destination table.", + // "description": "An attribute mapping to be used for mapping query results to ingest data for multi-measure attributes.", // "properties": { // "MeasureValueType": { - // "description": "Value type of the measure value column in the destination table.", + // "description": "Value type of the measure value column to be read from the query result.", // "enum": [ // "BIGINT", // "BOOLEAN", @@ -486,11 +486,11 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // "type": "string" // }, // "SourceColumn": { - // "description": "Name of the measure value column in the source table.", + // "description": "Source measure value column in the query result where the attribute value is to be read.", // "type": "string" // }, // "TargetMultiMeasureAttributeName": { - // "description": "Name of the measure value column in the destination table.", + // "description": "Custom name to be used for attribute name in derived table. If not provided, source column name would be used.", // "type": "string" // } // }, @@ -504,11 +504,11 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // "type": "array" // }, // "SourceColumn": { - // "description": "Name of the measure value column in the source table.", + // "description": "This field refers to the source column from which the measure value is to be read for result materialization.", // "type": "string" // }, // "TargetMeasureName": { - // "description": "Name of the measure in the destination table.", + // "description": "Target measure name to be used. If not provided, the target measure name by default would be MeasureName if provided, or SourceColumn otherwise.", // "type": "string" // } // }, @@ -522,17 +522,17 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // }, // "MultiMeasureMappings": { // "additionalProperties": false, - // "description": "Mapping of measure value columns from the source table to the destination table.", + // "description": "Only one of MixedMeasureMappings or MultiMeasureMappings is to be provided. MultiMeasureMappings can be used to ingest data as multi measures in the derived table.", // "properties": { // "MultiMeasureAttributeMappings": { - // "description": "List of multi-measure value column mappings.", + // "description": "Required. Attribute mappings to be used for mapping query results to ingest data for multi-measure attributes.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Mapping of measure value columns from the source table to the destination table.", + // "description": "An attribute mapping to be used for mapping query results to ingest data for multi-measure attributes.", // "properties": { // "MeasureValueType": { - // "description": "Value type of the measure value column in the destination table.", + // "description": "Value type of the measure value column to be read from the query result.", // "enum": [ // "BIGINT", // "BOOLEAN", @@ -542,11 +542,11 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // "type": "string" // }, // "SourceColumn": { - // "description": "Name of the measure value column in the source table.", + // "description": "Source measure value column in the query result where the attribute value is to be read.", // "type": "string" // }, // "TargetMultiMeasureAttributeName": { - // "description": "Name of the measure value column in the destination table.", + // "description": "Custom name to be used for attribute name in derived table. If not provided, source column name would be used.", // "type": "string" // } // }, @@ -560,7 +560,7 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // "type": "array" // }, // "TargetMultiMeasureName": { - // "description": "Name of the multi-measure in the destination table.", + // "description": "Name of the target multi-measure in the derived table. Required if MeasureNameColumn is not provided. If MeasureNameColumn is provided then the value from that column will be used as the multi-measure name.", // "type": "string" // } // }, @@ -570,11 +570,11 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // "type": "object" // }, // "TableName": { - // "description": "The source table to query.", + // "description": "Name of Timestream table that the query result will be written to. The table should be within the same database that is provided in Timestream configuration.", // "type": "string" // }, // "TimeColumn": { - // "description": "Name of the \"time\" column.", + // "description": "Column from query result that should be used as the time column in destination table. Column type for this should be TIMESTAMP.", // "type": "string" // } // }, @@ -592,34 +592,34 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er // ], // "type": "object" // } - Description: "Configuration of target destination table to query.", + Description: "Configuration of target store where scheduled query results are written to.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "timestream_configuration": { // Property: TimestreamConfiguration - Description: "Timestream configuration of destination table to query.", + Description: "Configuration needed to write data into the Timestream database and table.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "database_name": { // Property: DatabaseName - Description: "The source database to query.", + Description: "Name of Timestream database to which the query result will be written.", Type: types.StringType, Computed: true, }, "dimension_mappings": { // Property: DimensionMappings - Description: "Mappings of dimension names to dimension value types.", + Description: "This is to allow mapping column(s) from the query result to the dimension in the destination table.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "dimension_value_type": { // Property: DimensionValueType - Description: "Value type of the dimension column.", + Description: "Type for the dimension.", Type: types.StringType, Computed: true, }, "name": { // Property: Name - Description: "Name of the dimension column.", + Description: "Column name from query result.", Type: types.StringType, Computed: true, }, @@ -630,47 +630,47 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er }, "measure_name_column": { // Property: MeasureNameColumn - Description: "Name of the source measure names column.", + Description: "Name of the measure name column from the query result.", Type: types.StringType, Computed: true, }, "mixed_measure_mappings": { // Property: MixedMeasureMappings - Description: "Mapping of measure names and measure value columns from the source table to the destination table.", + Description: "Specifies how to map measures to multi-measure records.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "measure_name": { // Property: MeasureName - Description: "Name of the measure in source table.", + Description: "Refers to the value of the measure name in a result row. This field is required if MeasureNameColumn is provided.", Type: types.StringType, Computed: true, }, "measure_value_type": { // Property: MeasureValueType - Description: "Value type of the measure value column in the destination table.", + Description: "Type of the value that is to be read from SourceColumn. If the mapping is for MULTI, use MeasureValueType.MULTI.", Type: types.StringType, Computed: true, }, "multi_measure_attribute_mappings": { // Property: MultiMeasureAttributeMappings - Description: "List of multi-measure value column mappings.", + Description: "Required. Attribute mappings to be used for mapping query results to ingest data for multi-measure attributes.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "measure_value_type": { // Property: MeasureValueType - Description: "Value type of the measure value column in the destination table.", + Description: "Value type of the measure value column to be read from the query result.", Type: types.StringType, Computed: true, }, "source_column": { // Property: SourceColumn - Description: "Name of the measure value column in the source table.", + Description: "Source measure value column in the query result where the attribute value is to be read.", Type: types.StringType, Computed: true, }, "target_multi_measure_attribute_name": { // Property: TargetMultiMeasureAttributeName - Description: "Name of the measure value column in the destination table.", + Description: "Custom name to be used for attribute name in derived table. If not provided, source column name would be used.", Type: types.StringType, Computed: true, }, @@ -681,13 +681,13 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er }, "source_column": { // Property: SourceColumn - Description: "Name of the measure value column in the source table.", + Description: "This field refers to the source column from which the measure value is to be read for result materialization.", Type: types.StringType, Computed: true, }, "target_measure_name": { // Property: TargetMeasureName - Description: "Name of the measure in the destination table.", + Description: "Target measure name to be used. If not provided, the target measure name by default would be MeasureName if provided, or SourceColumn otherwise.", Type: types.StringType, Computed: true, }, @@ -698,29 +698,29 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er }, "multi_measure_mappings": { // Property: MultiMeasureMappings - Description: "Mapping of measure value columns from the source table to the destination table.", + Description: "Only one of MixedMeasureMappings or MultiMeasureMappings is to be provided. MultiMeasureMappings can be used to ingest data as multi measures in the derived table.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "multi_measure_attribute_mappings": { // Property: MultiMeasureAttributeMappings - Description: "List of multi-measure value column mappings.", + Description: "Required. Attribute mappings to be used for mapping query results to ingest data for multi-measure attributes.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "measure_value_type": { // Property: MeasureValueType - Description: "Value type of the measure value column in the destination table.", + Description: "Value type of the measure value column to be read from the query result.", Type: types.StringType, Computed: true, }, "source_column": { // Property: SourceColumn - Description: "Name of the measure value column in the source table.", + Description: "Source measure value column in the query result where the attribute value is to be read.", Type: types.StringType, Computed: true, }, "target_multi_measure_attribute_name": { // Property: TargetMultiMeasureAttributeName - Description: "Name of the measure value column in the destination table.", + Description: "Custom name to be used for attribute name in derived table. If not provided, source column name would be used.", Type: types.StringType, Computed: true, }, @@ -731,7 +731,7 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er }, "target_multi_measure_name": { // Property: TargetMultiMeasureName - Description: "Name of the multi-measure in the destination table.", + Description: "Name of the target multi-measure in the derived table. Required if MeasureNameColumn is not provided. If MeasureNameColumn is provided then the value from that column will be used as the multi-measure name.", Type: types.StringType, Computed: true, }, @@ -741,13 +741,13 @@ func scheduledQueryDataSourceType(ctx context.Context) (tfsdk.DataSourceType, er }, "table_name": { // Property: TableName - Description: "The source table to query.", + Description: "Name of Timestream table that the query result will be written to. The table should be within the same database that is provided in Timestream configuration.", Type: types.StringType, Computed: true, }, "time_column": { // Property: TimeColumn - Description: "Name of the \"time\" column.", + Description: "Column from query result that should be used as the time column in destination table. Column type for this should be TIMESTAMP.", Type: types.StringType, Computed: true, }, From e97d5165b75494ee7c57ec36de7fa778f8273f7c Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 13 Jan 2022 16:49:29 -0500 Subject: [PATCH 5/6] Run 'make docs'. --- docs/data-sources/apigateway_domain_name.md | 2 - ...eam_application_entitlement_association.md | 28 ++ docs/data-sources/appstream_entitlement.md | 40 ++ docs/data-sources/autoscaling_warm_pool.md | 8 + docs/data-sources/ec2_host.md | 30 ++ docs/data-sources/ec2_hosts.md | 23 + .../ec2_network_insights_access_scope.md | 222 ++++++++++ ..._network_insights_access_scope_analyses.md | 23 + ..._network_insights_access_scope_analysis.md | 43 ++ .../ec2_network_insights_access_scopes.md | 23 + docs/data-sources/forecast_dataset_group.md | 38 ++ docs/data-sources/forecast_dataset_groups.md | 23 + docs/data-sources/inspectorv2_filter.md | 403 +++++++++++++++++ docs/data-sources/inspectorv2_filters.md | 23 + docs/data-sources/iot_job_template.md | 18 + docs/data-sources/iotsitewise_gateway.md | 11 +- .../kinesisvideo_signaling_channel.md | 38 ++ docs/data-sources/kinesisvideo_stream.md | 40 ++ docs/data-sources/lightsail_alarm.md | 38 ++ docs/data-sources/lightsail_alarms.md | 23 + docs/data-sources/lightsail_bucket.md | 52 +++ docs/data-sources/lightsail_buckets.md | 23 + docs/data-sources/lightsail_load_balancer.md | 42 ++ ...lightsail_load_balancer_tls_certificate.md | 32 ++ docs/data-sources/lightsail_load_balancers.md | 23 + .../nimblestudio_launch_profile.md | 51 ++- .../redshift_event_subscription.md | 4 +- ...ute53resolver_resolver_rule_association.md | 29 ++ ...te53resolver_resolver_rule_associations.md | 23 + docs/data-sources/sagemaker_pipeline.md | 9 + .../timestream_scheduled_query.md | 94 ++-- docs/resources/apigateway_domain_name.md | 2 - ...eam_application_entitlement_association.md | 34 ++ docs/resources/appstream_entitlement.md | 49 +++ docs/resources/autoscaling_warm_pool.md | 8 + docs/resources/ec2_host.md | 39 ++ .../ec2_network_insights_access_scope.md | 228 ++++++++++ ..._network_insights_access_scope_analysis.md | 52 +++ docs/resources/forecast_dataset_group.md | 47 ++ docs/resources/inspectorv2_filter.md | 412 ++++++++++++++++++ docs/resources/iot_job_template.md | 18 + docs/resources/iotsitewise_gateway.md | 11 +- .../kinesisvideo_signaling_channel.md | 44 ++ docs/resources/kinesisvideo_stream.md | 46 ++ docs/resources/lightsail_alarm.md | 47 ++ docs/resources/lightsail_bucket.md | 61 +++ docs/resources/lightsail_load_balancer.md | 51 +++ ...lightsail_load_balancer_tls_certificate.md | 41 ++ docs/resources/nimblestudio_launch_profile.md | 51 ++- docs/resources/redshift_event_subscription.md | 4 +- ...ute53resolver_resolver_rule_association.md | 38 ++ docs/resources/rum_app_monitor.md | 7 +- docs/resources/sagemaker_pipeline.md | 9 + docs/resources/timestream_scheduled_query.md | 94 ++-- .../import.sh | 1 + .../awscc_appstream_entitlement/import.sh | 1 + .../import.sh | 1 + .../import.sh | 1 + .../awscc_forecast_dataset_group/import.sh | 1 + .../awscc_inspectorv2_filter/import.sh | 1 + .../import.sh | 1 + .../awscc_kinesisvideo_stream/import.sh | 1 + .../resources/awscc_lightsail_alarm/import.sh | 1 + .../awscc_lightsail_bucket/import.sh | 1 + .../awscc_lightsail_load_balancer/import.sh | 1 + .../import.sh | 1 + .../import.sh | 1 + 67 files changed, 2765 insertions(+), 120 deletions(-) create mode 100644 docs/data-sources/appstream_application_entitlement_association.md create mode 100644 docs/data-sources/appstream_entitlement.md create mode 100644 docs/data-sources/ec2_host.md create mode 100644 docs/data-sources/ec2_hosts.md create mode 100644 docs/data-sources/ec2_network_insights_access_scope.md create mode 100644 docs/data-sources/ec2_network_insights_access_scope_analyses.md create mode 100644 docs/data-sources/ec2_network_insights_access_scope_analysis.md create mode 100644 docs/data-sources/ec2_network_insights_access_scopes.md create mode 100644 docs/data-sources/forecast_dataset_group.md create mode 100644 docs/data-sources/forecast_dataset_groups.md create mode 100644 docs/data-sources/inspectorv2_filter.md create mode 100644 docs/data-sources/inspectorv2_filters.md create mode 100644 docs/data-sources/kinesisvideo_signaling_channel.md create mode 100644 docs/data-sources/kinesisvideo_stream.md create mode 100644 docs/data-sources/lightsail_alarm.md create mode 100644 docs/data-sources/lightsail_alarms.md create mode 100644 docs/data-sources/lightsail_bucket.md create mode 100644 docs/data-sources/lightsail_buckets.md create mode 100644 docs/data-sources/lightsail_load_balancer.md create mode 100644 docs/data-sources/lightsail_load_balancer_tls_certificate.md create mode 100644 docs/data-sources/lightsail_load_balancers.md create mode 100644 docs/data-sources/route53resolver_resolver_rule_association.md create mode 100644 docs/data-sources/route53resolver_resolver_rule_associations.md create mode 100644 docs/resources/appstream_application_entitlement_association.md create mode 100644 docs/resources/appstream_entitlement.md create mode 100644 docs/resources/ec2_host.md create mode 100644 docs/resources/ec2_network_insights_access_scope.md create mode 100644 docs/resources/ec2_network_insights_access_scope_analysis.md create mode 100644 docs/resources/forecast_dataset_group.md create mode 100644 docs/resources/inspectorv2_filter.md create mode 100644 docs/resources/kinesisvideo_signaling_channel.md create mode 100644 docs/resources/kinesisvideo_stream.md create mode 100644 docs/resources/lightsail_alarm.md create mode 100644 docs/resources/lightsail_bucket.md create mode 100644 docs/resources/lightsail_load_balancer.md create mode 100644 docs/resources/lightsail_load_balancer_tls_certificate.md create mode 100644 docs/resources/route53resolver_resolver_rule_association.md create mode 100644 examples/resources/awscc_appstream_application_entitlement_association/import.sh create mode 100644 examples/resources/awscc_appstream_entitlement/import.sh create mode 100644 examples/resources/awscc_ec2_network_insights_access_scope/import.sh create mode 100644 examples/resources/awscc_ec2_network_insights_access_scope_analysis/import.sh create mode 100644 examples/resources/awscc_forecast_dataset_group/import.sh create mode 100644 examples/resources/awscc_inspectorv2_filter/import.sh create mode 100644 examples/resources/awscc_kinesisvideo_signaling_channel/import.sh create mode 100644 examples/resources/awscc_kinesisvideo_stream/import.sh create mode 100644 examples/resources/awscc_lightsail_alarm/import.sh create mode 100644 examples/resources/awscc_lightsail_bucket/import.sh create mode 100644 examples/resources/awscc_lightsail_load_balancer/import.sh create mode 100644 examples/resources/awscc_lightsail_load_balancer_tls_certificate/import.sh create mode 100644 examples/resources/awscc_route53resolver_resolver_rule_association/import.sh diff --git a/docs/data-sources/apigateway_domain_name.md b/docs/data-sources/apigateway_domain_name.md index 1b83b635cd..1eca3132d7 100644 --- a/docs/data-sources/apigateway_domain_name.md +++ b/docs/data-sources/apigateway_domain_name.md @@ -47,8 +47,6 @@ Read-Only: Read-Only: -- **certificate_revocation_check_type** (String) -- **certificate_revocation_source_uri** (String) - **truststore_uri** (String) - **truststore_version** (String) diff --git a/docs/data-sources/appstream_application_entitlement_association.md b/docs/data-sources/appstream_application_entitlement_association.md new file mode 100644 index 0000000000..1dcf98f793 --- /dev/null +++ b/docs/data-sources/appstream_application_entitlement_association.md @@ -0,0 +1,28 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_appstream_application_entitlement_association Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::AppStream::ApplicationEntitlementAssociation +--- + +# awscc_appstream_application_entitlement_association (Data Source) + +Data Source schema for AWS::AppStream::ApplicationEntitlementAssociation + + + + +## Schema + +### Required + +- **id** (String) Uniquely identifies the resource. + +### Read-Only + +- **application_identifier** (String) +- **entitlement_name** (String) +- **stack_name** (String) + + diff --git a/docs/data-sources/appstream_entitlement.md b/docs/data-sources/appstream_entitlement.md new file mode 100644 index 0000000000..e200db4b04 --- /dev/null +++ b/docs/data-sources/appstream_entitlement.md @@ -0,0 +1,40 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_appstream_entitlement Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::AppStream::Entitlement +--- + +# awscc_appstream_entitlement (Data Source) + +Data Source schema for AWS::AppStream::Entitlement + + + + +## Schema + +### Required + +- **id** (String) Uniquely identifies the resource. + +### Read-Only + +- **app_visibility** (String) +- **attributes** (Attributes Set) (see [below for nested schema](#nestedatt--attributes)) +- **created_time** (String) +- **description** (String) +- **last_modified_time** (String) +- **name** (String) +- **stack_name** (String) + + +### Nested Schema for `attributes` + +Read-Only: + +- **name** (String) +- **value** (String) + + diff --git a/docs/data-sources/autoscaling_warm_pool.md b/docs/data-sources/autoscaling_warm_pool.md index ae5c02056a..40fb45d31b 100644 --- a/docs/data-sources/autoscaling_warm_pool.md +++ b/docs/data-sources/autoscaling_warm_pool.md @@ -22,8 +22,16 @@ Data Source schema for AWS::AutoScaling::WarmPool ### Read-Only - **auto_scaling_group_name** (String) +- **instance_reuse_policy** (Attributes) (see [below for nested schema](#nestedatt--instance_reuse_policy)) - **max_group_prepared_capacity** (Number) - **min_size** (Number) - **pool_state** (String) + +### Nested Schema for `instance_reuse_policy` + +Read-Only: + +- **reuse_on_scale_in** (Boolean) + diff --git a/docs/data-sources/ec2_host.md b/docs/data-sources/ec2_host.md new file mode 100644 index 0000000000..ba0bafc658 --- /dev/null +++ b/docs/data-sources/ec2_host.md @@ -0,0 +1,30 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_host Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::EC2::Host +--- + +# awscc_ec2_host (Data Source) + +Data Source schema for AWS::EC2::Host + + + + +## Schema + +### Required + +- **id** (String) Uniquely identifies the resource. + +### Read-Only + +- **auto_placement** (String) Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID. +- **availability_zone** (String) The Availability Zone in which to allocate the Dedicated Host. +- **host_id** (String) Id of the host created. +- **host_recovery** (String) Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default. +- **instance_type** (String) Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only. + + diff --git a/docs/data-sources/ec2_hosts.md b/docs/data-sources/ec2_hosts.md new file mode 100644 index 0000000000..846c430f9f --- /dev/null +++ b/docs/data-sources/ec2_hosts.md @@ -0,0 +1,23 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_hosts Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::EC2::Host +--- + +# awscc_ec2_hosts (Data Source) + +Plural Data Source schema for AWS::EC2::Host + + + + +## Schema + +### Read-Only + +- **id** (String) Uniquely identifies the data source. +- **ids** (Set of String) Set of Resource Identifiers. + + diff --git a/docs/data-sources/ec2_network_insights_access_scope.md b/docs/data-sources/ec2_network_insights_access_scope.md new file mode 100644 index 0000000000..daee6c5781 --- /dev/null +++ b/docs/data-sources/ec2_network_insights_access_scope.md @@ -0,0 +1,222 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_network_insights_access_scope Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::EC2::NetworkInsightsAccessScope +--- + +# awscc_ec2_network_insights_access_scope (Data Source) + +Data Source schema for AWS::EC2::NetworkInsightsAccessScope + + + + +## Schema + +### Required + +- **id** (String) Uniquely identifies the resource. + +### Read-Only + +- **created_date** (String) +- **exclude_paths** (Attributes List) (see [below for nested schema](#nestedatt--exclude_paths)) +- **match_paths** (Attributes List) (see [below for nested schema](#nestedatt--match_paths)) +- **network_insights_access_scope_arn** (String) +- **network_insights_access_scope_id** (String) +- **tags** (Attributes List) (see [below for nested schema](#nestedatt--tags)) +- **updated_date** (String) + + +### Nested Schema for `exclude_paths` + +Read-Only: + +- **destination** (Attributes) (see [below for nested schema](#nestedatt--exclude_paths--destination)) +- **source** (Attributes) (see [below for nested schema](#nestedatt--exclude_paths--source)) +- **through_resources** (Attributes List) (see [below for nested schema](#nestedatt--exclude_paths--through_resources)) + + +### Nested Schema for `exclude_paths.destination` + +Read-Only: + +- **packet_header_statement** (Attributes) (see [below for nested schema](#nestedatt--exclude_paths--destination--packet_header_statement)) +- **resource_statement** (Attributes) (see [below for nested schema](#nestedatt--exclude_paths--destination--resource_statement)) + + +### Nested Schema for `exclude_paths.destination.packet_header_statement` + +Read-Only: + +- **destination_addresses** (List of String) +- **destination_ports** (List of String) +- **destination_prefix_lists** (List of String) +- **protocols** (List of String) +- **source_addresses** (List of String) +- **source_ports** (List of String) +- **source_prefix_lists** (List of String) + + + +### Nested Schema for `exclude_paths.destination.resource_statement` + +Read-Only: + +- **resource_types** (List of String) +- **resources** (List of String) + + + + +### Nested Schema for `exclude_paths.source` + +Read-Only: + +- **packet_header_statement** (Attributes) (see [below for nested schema](#nestedatt--exclude_paths--source--packet_header_statement)) +- **resource_statement** (Attributes) (see [below for nested schema](#nestedatt--exclude_paths--source--resource_statement)) + + +### Nested Schema for `exclude_paths.source.packet_header_statement` + +Read-Only: + +- **destination_addresses** (List of String) +- **destination_ports** (List of String) +- **destination_prefix_lists** (List of String) +- **protocols** (List of String) +- **source_addresses** (List of String) +- **source_ports** (List of String) +- **source_prefix_lists** (List of String) + + + +### Nested Schema for `exclude_paths.source.resource_statement` + +Read-Only: + +- **resource_types** (List of String) +- **resources** (List of String) + + + + +### Nested Schema for `exclude_paths.through_resources` + +Read-Only: + +- **resource_statement** (Attributes) (see [below for nested schema](#nestedatt--exclude_paths--through_resources--resource_statement)) + + +### Nested Schema for `exclude_paths.through_resources.resource_statement` + +Read-Only: + +- **resource_types** (List of String) +- **resources** (List of String) + + + + + +### Nested Schema for `match_paths` + +Read-Only: + +- **destination** (Attributes) (see [below for nested schema](#nestedatt--match_paths--destination)) +- **source** (Attributes) (see [below for nested schema](#nestedatt--match_paths--source)) +- **through_resources** (Attributes List) (see [below for nested schema](#nestedatt--match_paths--through_resources)) + + +### Nested Schema for `match_paths.destination` + +Read-Only: + +- **packet_header_statement** (Attributes) (see [below for nested schema](#nestedatt--match_paths--destination--packet_header_statement)) +- **resource_statement** (Attributes) (see [below for nested schema](#nestedatt--match_paths--destination--resource_statement)) + + +### Nested Schema for `match_paths.destination.packet_header_statement` + +Read-Only: + +- **destination_addresses** (List of String) +- **destination_ports** (List of String) +- **destination_prefix_lists** (List of String) +- **protocols** (List of String) +- **source_addresses** (List of String) +- **source_ports** (List of String) +- **source_prefix_lists** (List of String) + + + +### Nested Schema for `match_paths.destination.resource_statement` + +Read-Only: + +- **resource_types** (List of String) +- **resources** (List of String) + + + + +### Nested Schema for `match_paths.source` + +Read-Only: + +- **packet_header_statement** (Attributes) (see [below for nested schema](#nestedatt--match_paths--source--packet_header_statement)) +- **resource_statement** (Attributes) (see [below for nested schema](#nestedatt--match_paths--source--resource_statement)) + + +### Nested Schema for `match_paths.source.packet_header_statement` + +Read-Only: + +- **destination_addresses** (List of String) +- **destination_ports** (List of String) +- **destination_prefix_lists** (List of String) +- **protocols** (List of String) +- **source_addresses** (List of String) +- **source_ports** (List of String) +- **source_prefix_lists** (List of String) + + + +### Nested Schema for `match_paths.source.resource_statement` + +Read-Only: + +- **resource_types** (List of String) +- **resources** (List of String) + + + + +### Nested Schema for `match_paths.through_resources` + +Read-Only: + +- **resource_statement** (Attributes) (see [below for nested schema](#nestedatt--match_paths--through_resources--resource_statement)) + + +### Nested Schema for `match_paths.through_resources.resource_statement` + +Read-Only: + +- **resource_types** (List of String) +- **resources** (List of String) + + + + + +### Nested Schema for `tags` + +Read-Only: + +- **key** (String) +- **value** (String) + + diff --git a/docs/data-sources/ec2_network_insights_access_scope_analyses.md b/docs/data-sources/ec2_network_insights_access_scope_analyses.md new file mode 100644 index 0000000000..8007a96245 --- /dev/null +++ b/docs/data-sources/ec2_network_insights_access_scope_analyses.md @@ -0,0 +1,23 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_network_insights_access_scope_analyses Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::EC2::NetworkInsightsAccessScopeAnalysis +--- + +# awscc_ec2_network_insights_access_scope_analyses (Data Source) + +Plural Data Source schema for AWS::EC2::NetworkInsightsAccessScopeAnalysis + + + + +## Schema + +### Read-Only + +- **id** (String) Uniquely identifies the data source. +- **ids** (Set of String) Set of Resource Identifiers. + + diff --git a/docs/data-sources/ec2_network_insights_access_scope_analysis.md b/docs/data-sources/ec2_network_insights_access_scope_analysis.md new file mode 100644 index 0000000000..a3a944ac13 --- /dev/null +++ b/docs/data-sources/ec2_network_insights_access_scope_analysis.md @@ -0,0 +1,43 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_network_insights_access_scope_analysis Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::EC2::NetworkInsightsAccessScopeAnalysis +--- + +# awscc_ec2_network_insights_access_scope_analysis (Data Source) + +Data Source schema for AWS::EC2::NetworkInsightsAccessScopeAnalysis + + + + +## Schema + +### Required + +- **id** (String) Uniquely identifies the resource. + +### Read-Only + +- **analyzed_eni_count** (Number) +- **end_date** (String) +- **findings_found** (String) +- **network_insights_access_scope_analysis_arn** (String) +- **network_insights_access_scope_analysis_id** (String) +- **network_insights_access_scope_id** (String) +- **start_date** (String) +- **status** (String) +- **status_message** (String) +- **tags** (Attributes List) (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `tags` + +Read-Only: + +- **key** (String) +- **value** (String) + + diff --git a/docs/data-sources/ec2_network_insights_access_scopes.md b/docs/data-sources/ec2_network_insights_access_scopes.md new file mode 100644 index 0000000000..faf13a5573 --- /dev/null +++ b/docs/data-sources/ec2_network_insights_access_scopes.md @@ -0,0 +1,23 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_network_insights_access_scopes Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::EC2::NetworkInsightsAccessScope +--- + +# awscc_ec2_network_insights_access_scopes (Data Source) + +Plural Data Source schema for AWS::EC2::NetworkInsightsAccessScope + + + + +## Schema + +### Read-Only + +- **id** (String) Uniquely identifies the data source. +- **ids** (Set of String) Set of Resource Identifiers. + + diff --git a/docs/data-sources/forecast_dataset_group.md b/docs/data-sources/forecast_dataset_group.md new file mode 100644 index 0000000000..6179523441 --- /dev/null +++ b/docs/data-sources/forecast_dataset_group.md @@ -0,0 +1,38 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_forecast_dataset_group Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Forecast::DatasetGroup +--- + +# awscc_forecast_dataset_group (Data Source) + +Data Source schema for AWS::Forecast::DatasetGroup + + + + +## Schema + +### Required + +- **id** (String) Uniquely identifies the resource. + +### Read-Only + +- **dataset_arns** (List of String) An array of Amazon Resource Names (ARNs) of the datasets that you want to include in the dataset group. +- **dataset_group_arn** (String) The Amazon Resource Name (ARN) of the dataset group to delete. +- **dataset_group_name** (String) A name for the dataset group. +- **domain** (String) The domain associated with the dataset group. When you add a dataset to a dataset group, this value and the value specified for the Domain parameter of the CreateDataset operation must match. +- **tags** (Attributes List) The tags of Application Insights application. (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `tags` + +Read-Only: + +- **key** (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- **value** (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + diff --git a/docs/data-sources/forecast_dataset_groups.md b/docs/data-sources/forecast_dataset_groups.md new file mode 100644 index 0000000000..141e741bf8 --- /dev/null +++ b/docs/data-sources/forecast_dataset_groups.md @@ -0,0 +1,23 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_forecast_dataset_groups Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Forecast::DatasetGroup +--- + +# awscc_forecast_dataset_groups (Data Source) + +Plural Data Source schema for AWS::Forecast::DatasetGroup + + + + +## Schema + +### Read-Only + +- **id** (String) Uniquely identifies the data source. +- **ids** (Set of String) Set of Resource Identifiers. + + diff --git a/docs/data-sources/inspectorv2_filter.md b/docs/data-sources/inspectorv2_filter.md new file mode 100644 index 0000000000..b73d987455 --- /dev/null +++ b/docs/data-sources/inspectorv2_filter.md @@ -0,0 +1,403 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_inspectorv2_filter Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::InspectorV2::Filter +--- + +# awscc_inspectorv2_filter (Data Source) + +Data Source schema for AWS::InspectorV2::Filter + + + + +## Schema + +### Required + +- **id** (String) Uniquely identifies the resource. + +### Read-Only + +- **arn** (String) Findings filter ARN. +- **description** (String) Findings filter description. +- **filter_action** (String) Findings filter action. +- **filter_criteria** (Attributes) Findings filter criteria. (see [below for nested schema](#nestedatt--filter_criteria)) +- **name** (String) Findings filter name. + + +### Nested Schema for `filter_criteria` + +Read-Only: + +- **aws_account_id** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--aws_account_id)) +- **component_id** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--component_id)) +- **component_type** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--component_type)) +- **ec_2_instance_image_id** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ec_2_instance_image_id)) +- **ec_2_instance_subnet_id** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ec_2_instance_subnet_id)) +- **ec_2_instance_vpc_id** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ec_2_instance_vpc_id)) +- **ecr_image_architecture** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ecr_image_architecture)) +- **ecr_image_hash** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ecr_image_hash)) +- **ecr_image_pushed_at** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ecr_image_pushed_at)) +- **ecr_image_registry** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ecr_image_registry)) +- **ecr_image_repository_name** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ecr_image_repository_name)) +- **ecr_image_tags** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ecr_image_tags)) +- **finding_arn** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--finding_arn)) +- **finding_status** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--finding_status)) +- **finding_type** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--finding_type)) +- **first_observed_at** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--first_observed_at)) +- **inspector_score** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--inspector_score)) +- **last_observed_at** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--last_observed_at)) +- **network_protocol** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--network_protocol)) +- **port_range** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--port_range)) +- **related_vulnerabilities** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--related_vulnerabilities)) +- **resource_id** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--resource_id)) +- **resource_tags** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--resource_tags)) +- **resource_type** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--resource_type)) +- **severity** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--severity)) +- **title** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--title)) +- **updated_at** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--updated_at)) +- **vendor_severity** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--vendor_severity)) +- **vulnerability_id** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--vulnerability_id)) +- **vulnerability_source** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--vulnerability_source)) +- **vulnerable_packages** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--vulnerable_packages)) + + +### Nested Schema for `filter_criteria.aws_account_id` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.component_id` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.component_type` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ec_2_instance_image_id` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ec_2_instance_subnet_id` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ec_2_instance_vpc_id` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ecr_image_architecture` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ecr_image_hash` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ecr_image_pushed_at` + +Read-Only: + +- **end_inclusive** (Number) +- **start_inclusive** (Number) + + + +### Nested Schema for `filter_criteria.ecr_image_registry` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ecr_image_repository_name` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ecr_image_tags` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.finding_arn` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.finding_status` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.finding_type` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.first_observed_at` + +Read-Only: + +- **end_inclusive** (Number) +- **start_inclusive** (Number) + + + +### Nested Schema for `filter_criteria.inspector_score` + +Read-Only: + +- **lower_inclusive** (Number) +- **upper_inclusive** (Number) + + + +### Nested Schema for `filter_criteria.last_observed_at` + +Read-Only: + +- **end_inclusive** (Number) +- **start_inclusive** (Number) + + + +### Nested Schema for `filter_criteria.network_protocol` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.port_range` + +Read-Only: + +- **begin_inclusive** (Number) +- **end_inclusive** (Number) + + + +### Nested Schema for `filter_criteria.related_vulnerabilities` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.resource_id` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.resource_tags` + +Read-Only: + +- **comparison** (String) +- **key** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.resource_type` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.severity` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.title` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.updated_at` + +Read-Only: + +- **end_inclusive** (Number) +- **start_inclusive** (Number) + + + +### Nested Schema for `filter_criteria.vendor_severity` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.vulnerability_id` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.vulnerability_source` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.vulnerable_packages` + +Read-Only: + +- **architecture** (Attributes) (see [below for nested schema](#nestedatt--filter_criteria--vulnerable_packages--architecture)) +- **epoch** (Attributes) (see [below for nested schema](#nestedatt--filter_criteria--vulnerable_packages--epoch)) +- **name** (Attributes) (see [below for nested schema](#nestedatt--filter_criteria--vulnerable_packages--name)) +- **release** (Attributes) (see [below for nested schema](#nestedatt--filter_criteria--vulnerable_packages--release)) +- **source_layer_hash** (Attributes) (see [below for nested schema](#nestedatt--filter_criteria--vulnerable_packages--source_layer_hash)) +- **version** (Attributes) (see [below for nested schema](#nestedatt--filter_criteria--vulnerable_packages--version)) + + +### Nested Schema for `filter_criteria.vulnerable_packages.architecture` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.vulnerable_packages.epoch` + +Read-Only: + +- **lower_inclusive** (Number) +- **upper_inclusive** (Number) + + + +### Nested Schema for `filter_criteria.vulnerable_packages.name` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.vulnerable_packages.release` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.vulnerable_packages.source_layer_hash` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.vulnerable_packages.version` + +Read-Only: + +- **comparison** (String) +- **value** (String) + + diff --git a/docs/data-sources/inspectorv2_filters.md b/docs/data-sources/inspectorv2_filters.md new file mode 100644 index 0000000000..c5f36070b0 --- /dev/null +++ b/docs/data-sources/inspectorv2_filters.md @@ -0,0 +1,23 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_inspectorv2_filters Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::InspectorV2::Filter +--- + +# awscc_inspectorv2_filters (Data Source) + +Plural Data Source schema for AWS::InspectorV2::Filter + + + + +## Schema + +### Read-Only + +- **id** (String) Uniquely identifies the data source. +- **ids** (Set of String) Set of Resource Identifiers. + + diff --git a/docs/data-sources/iot_job_template.md b/docs/data-sources/iot_job_template.md index bdffe93d40..fa33707f33 100644 --- a/docs/data-sources/iot_job_template.md +++ b/docs/data-sources/iot_job_template.md @@ -27,6 +27,7 @@ Data Source schema for AWS::IoT::JobTemplate - **document** (String) The job document. Required if you don't specify a value for documentSource. - **document_source** (String) An S3 link to the job document to use in the template. Required if you don't specify a value for document. - **job_arn** (String) Optional for copying a JobTemplate from a pre-existing Job configuration. +- **job_executions_retry_config** (Attributes) (see [below for nested schema](#nestedatt--job_executions_retry_config)) - **job_executions_rollout_config** (Attributes) Allows you to create a staged rollout of a job. (see [below for nested schema](#nestedatt--job_executions_rollout_config)) - **job_template_id** (String) - **presigned_url_config** (Attributes) Configuration for pre-signed S3 URLs. (see [below for nested schema](#nestedatt--presigned_url_config)) @@ -52,6 +53,23 @@ Read-Only: + +### Nested Schema for `job_executions_retry_config` + +Read-Only: + +- **retry_criteria_list** (Attributes List) (see [below for nested schema](#nestedatt--job_executions_retry_config--retry_criteria_list)) + + +### Nested Schema for `job_executions_retry_config.retry_criteria_list` + +Read-Only: + +- **failure_type** (String) +- **number_of_retries** (Number) + + + ### Nested Schema for `job_executions_rollout_config` diff --git a/docs/data-sources/iotsitewise_gateway.md b/docs/data-sources/iotsitewise_gateway.md index 19cfd2d036..519afb8cbf 100644 --- a/docs/data-sources/iotsitewise_gateway.md +++ b/docs/data-sources/iotsitewise_gateway.md @@ -41,7 +41,8 @@ Read-Only: Read-Only: -- **greengrass** (Attributes) A gateway that runs on AWS IoT Greengrass. (see [below for nested schema](#nestedatt--gateway_platform--greengrass)) +- **greengrass** (Attributes) A gateway that runs on AWS IoT Greengrass V1. (see [below for nested schema](#nestedatt--gateway_platform--greengrass)) +- **greengrass_v2** (Attributes) A gateway that runs on AWS IoT Greengrass V2. (see [below for nested schema](#nestedatt--gateway_platform--greengrass_v2)) ### Nested Schema for `gateway_platform.greengrass` @@ -51,6 +52,14 @@ Read-Only: - **group_arn** (String) The ARN of the Greengrass group. + +### Nested Schema for `gateway_platform.greengrass_v2` + +Read-Only: + +- **core_device_thing_name** (String) The name of the CoreDevice in GreenGrass V2. + + ### Nested Schema for `tags` diff --git a/docs/data-sources/kinesisvideo_signaling_channel.md b/docs/data-sources/kinesisvideo_signaling_channel.md new file mode 100644 index 0000000000..a94e02133f --- /dev/null +++ b/docs/data-sources/kinesisvideo_signaling_channel.md @@ -0,0 +1,38 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_kinesisvideo_signaling_channel Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::KinesisVideo::SignalingChannel +--- + +# awscc_kinesisvideo_signaling_channel (Data Source) + +Data Source schema for AWS::KinesisVideo::SignalingChannel + + + + +## Schema + +### Required + +- **id** (String) Uniquely identifies the resource. + +### Read-Only + +- **arn** (String) The Amazon Resource Name (ARN) of the Kinesis Video Signaling Channel. +- **message_ttl_seconds** (Number) The period of time a signaling channel retains undelivered messages before they are discarded. +- **name** (String) The name of the Kinesis Video Signaling Channel. +- **tags** (Attributes List) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- **type** (String) The type of the Kinesis Video Signaling Channel to create. Currently, SINGLE_MASTER is the only supported channel type. + + +### Nested Schema for `tags` + +Read-Only: + +- **key** (String) The key name of the tag. Specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- **value** (String) The value for the tag. Specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + diff --git a/docs/data-sources/kinesisvideo_stream.md b/docs/data-sources/kinesisvideo_stream.md new file mode 100644 index 0000000000..1e1b308654 --- /dev/null +++ b/docs/data-sources/kinesisvideo_stream.md @@ -0,0 +1,40 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_kinesisvideo_stream Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::KinesisVideo::Stream +--- + +# awscc_kinesisvideo_stream (Data Source) + +Data Source schema for AWS::KinesisVideo::Stream + + + + +## Schema + +### Required + +- **id** (String) Uniquely identifies the resource. + +### Read-Only + +- **arn** (String) The Amazon Resource Name (ARN) of the Kinesis Video stream. +- **data_retention_in_hours** (Number) The number of hours till which Kinesis Video will retain the data in the stream +- **device_name** (String) The name of the device that is writing to the stream. +- **kms_key_id** (String) AWS KMS key ID that Kinesis Video Streams uses to encrypt stream data. +- **media_type** (String) The media type of the stream. Consumers of the stream can use this information when processing the stream. +- **name** (String) The name of the Kinesis Video stream. +- **tags** (Attributes List) An array of key-value pairs associated with the Kinesis Video Stream. (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `tags` + +Read-Only: + +- **key** (String) The key name of the tag. Specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- **value** (String) The value for the tag. Specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + diff --git a/docs/data-sources/lightsail_alarm.md b/docs/data-sources/lightsail_alarm.md new file mode 100644 index 0000000000..50961c27b5 --- /dev/null +++ b/docs/data-sources/lightsail_alarm.md @@ -0,0 +1,38 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_lightsail_alarm Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Lightsail::Alarm +--- + +# awscc_lightsail_alarm (Data Source) + +Data Source schema for AWS::Lightsail::Alarm + + + + +## Schema + +### Required + +- **id** (String) Uniquely identifies the resource. + +### Read-Only + +- **alarm_arn** (String) +- **alarm_name** (String) The name for the alarm. Specify the name of an existing alarm to update, and overwrite the previous configuration of the alarm. +- **comparison_operator** (String) The arithmetic operation to use when comparing the specified statistic to the threshold. The specified statistic value is used as the first operand. +- **contact_protocols** (Set of String) The contact protocols to use for the alarm, such as Email, SMS (text messaging), or both. +- **datapoints_to_alarm** (Number) The number of data points that must be not within the specified threshold to trigger the alarm. If you are setting an "M out of N" alarm, this value (datapointsToAlarm) is the M. +- **evaluation_periods** (Number) The number of most recent periods over which data is compared to the specified threshold. If you are setting an "M out of N" alarm, this value (evaluationPeriods) is the N. +- **metric_name** (String) The name of the metric to associate with the alarm. +- **monitored_resource_name** (String) The validation status of the SSL/TLS certificate. +- **notification_enabled** (Boolean) Indicates whether the alarm is enabled. Notifications are enabled by default if you don't specify this parameter. +- **notification_triggers** (Set of String) The alarm states that trigger a notification. +- **state** (String) The current state of the alarm. +- **threshold** (Number) The value against which the specified statistic is compared. +- **treat_missing_data** (String) Sets how this alarm will handle missing data points. + + diff --git a/docs/data-sources/lightsail_alarms.md b/docs/data-sources/lightsail_alarms.md new file mode 100644 index 0000000000..94ab9b6edf --- /dev/null +++ b/docs/data-sources/lightsail_alarms.md @@ -0,0 +1,23 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_lightsail_alarms Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Lightsail::Alarm +--- + +# awscc_lightsail_alarms (Data Source) + +Plural Data Source schema for AWS::Lightsail::Alarm + + + + +## Schema + +### Read-Only + +- **id** (String) Uniquely identifies the data source. +- **ids** (Set of String) Set of Resource Identifiers. + + diff --git a/docs/data-sources/lightsail_bucket.md b/docs/data-sources/lightsail_bucket.md new file mode 100644 index 0000000000..e7600dc35b --- /dev/null +++ b/docs/data-sources/lightsail_bucket.md @@ -0,0 +1,52 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_lightsail_bucket Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Lightsail::Bucket +--- + +# awscc_lightsail_bucket (Data Source) + +Data Source schema for AWS::Lightsail::Bucket + + + + +## Schema + +### Required + +- **id** (String) Uniquely identifies the resource. + +### Read-Only + +- **able_to_update_bundle** (Boolean) Indicates whether the bundle that is currently applied to a bucket can be changed to another bundle. You can update a bucket's bundle only one time within a monthly AWS billing cycle. +- **access_rules** (Attributes) An object that sets the public accessibility of objects in the specified bucket. (see [below for nested schema](#nestedatt--access_rules)) +- **bucket_arn** (String) +- **bucket_name** (String) The name for the bucket. +- **bundle_id** (String) The ID of the bundle to use for the bucket. +- **object_versioning** (Boolean) Specifies whether to enable or disable versioning of objects in the bucket. +- **read_only_access_accounts** (Set of String) An array of strings to specify the AWS account IDs that can access the bucket. +- **resources_receiving_access** (Set of String) The names of the Lightsail resources for which to set bucket access. +- **tags** (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- **url** (String) The URL of the bucket. + + +### Nested Schema for `access_rules` + +Read-Only: + +- **allow_public_overrides** (Boolean) A Boolean value that indicates whether the access control list (ACL) permissions that are applied to individual objects override the getObject option that is currently specified. +- **get_object** (String) Specifies the anonymous access to all objects in a bucket. + + + +### Nested Schema for `tags` + +Read-Only: + +- **key** (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- **value** (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + diff --git a/docs/data-sources/lightsail_buckets.md b/docs/data-sources/lightsail_buckets.md new file mode 100644 index 0000000000..7a8c63f77b --- /dev/null +++ b/docs/data-sources/lightsail_buckets.md @@ -0,0 +1,23 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_lightsail_buckets Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Lightsail::Bucket +--- + +# awscc_lightsail_buckets (Data Source) + +Plural Data Source schema for AWS::Lightsail::Bucket + + + + +## Schema + +### Read-Only + +- **id** (String) Uniquely identifies the data source. +- **ids** (Set of String) Set of Resource Identifiers. + + diff --git a/docs/data-sources/lightsail_load_balancer.md b/docs/data-sources/lightsail_load_balancer.md new file mode 100644 index 0000000000..d1d193b3fa --- /dev/null +++ b/docs/data-sources/lightsail_load_balancer.md @@ -0,0 +1,42 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_lightsail_load_balancer Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Lightsail::LoadBalancer +--- + +# awscc_lightsail_load_balancer (Data Source) + +Data Source schema for AWS::Lightsail::LoadBalancer + + + + +## Schema + +### Required + +- **id** (String) Uniquely identifies the resource. + +### Read-Only + +- **attached_instances** (Set of String) The names of the instances attached to the load balancer. +- **health_check_path** (String) The path you provided to perform the load balancer health check. If you didn't specify a health check path, Lightsail uses the root path of your website (e.g., "/"). +- **instance_port** (Number) The instance port where you're creating your load balancer. +- **ip_address_type** (String) The IP address type for the load balancer. The possible values are ipv4 for IPv4 only, and dualstack for IPv4 and IPv6. The default value is dualstack. +- **load_balancer_arn** (String) +- **load_balancer_name** (String) The name of your load balancer. +- **session_stickiness_enabled** (Boolean) Configuration option to enable session stickiness. +- **session_stickiness_lb_cookie_duration_seconds** (String) Configuration option to adjust session stickiness cookie duration parameter. +- **tags** (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `tags` + +Read-Only: + +- **key** (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- **value** (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + diff --git a/docs/data-sources/lightsail_load_balancer_tls_certificate.md b/docs/data-sources/lightsail_load_balancer_tls_certificate.md new file mode 100644 index 0000000000..10eca2bcf8 --- /dev/null +++ b/docs/data-sources/lightsail_load_balancer_tls_certificate.md @@ -0,0 +1,32 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_lightsail_load_balancer_tls_certificate Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Lightsail::LoadBalancerTlsCertificate +--- + +# awscc_lightsail_load_balancer_tls_certificate (Data Source) + +Data Source schema for AWS::Lightsail::LoadBalancerTlsCertificate + + + + +## Schema + +### Required + +- **id** (String) Uniquely identifies the resource. + +### Read-Only + +- **certificate_alternative_names** (Set of String) An array of strings listing alternative domains and subdomains for your SSL/TLS certificate. +- **certificate_domain_name** (String) The domain name (e.g., example.com ) for your SSL/TLS certificate. +- **certificate_name** (String) The SSL/TLS certificate name. +- **is_attached** (Boolean) When true, the SSL/TLS certificate is attached to the Lightsail load balancer. +- **load_balancer_name** (String) The name of your load balancer. +- **load_balancer_tls_certificate_arn** (String) +- **status** (String) The validation status of the SSL/TLS certificate. + + diff --git a/docs/data-sources/lightsail_load_balancers.md b/docs/data-sources/lightsail_load_balancers.md new file mode 100644 index 0000000000..d204a27ddd --- /dev/null +++ b/docs/data-sources/lightsail_load_balancers.md @@ -0,0 +1,23 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_lightsail_load_balancers Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Lightsail::LoadBalancer +--- + +# awscc_lightsail_load_balancers (Data Source) + +Plural Data Source schema for AWS::Lightsail::LoadBalancer + + + + +## Schema + +### Read-Only + +- **id** (String) Uniquely identifies the data source. +- **ids** (Set of String) Set of Resource Identifiers. + + diff --git a/docs/data-sources/nimblestudio_launch_profile.md b/docs/data-sources/nimblestudio_launch_profile.md index bb635478fb..1bcb5c79ac 100644 --- a/docs/data-sources/nimblestudio_launch_profile.md +++ b/docs/data-sources/nimblestudio_launch_profile.md @@ -22,13 +22,16 @@ Data Source schema for AWS::NimbleStudio::LaunchProfile ### Read-Only - **description** (String)

The description.

-- **ec_2_subnet_ids** (List of String)

Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from. These subnets must support the specified instance types.

+- **ec_2_subnet_ids** (List of String)

Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from. + These subnets must support the specified instance types.

- **launch_profile_id** (String) -- **launch_profile_protocol_versions** (List of String)

The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".

+- **launch_profile_protocol_versions** (List of String)

The version number of the protocol that is used by the launch profile. The only valid + version is "2021-03-31".

- **name** (String)

The name for the launch profile.

- **stream_configuration** (Attributes)

A configuration for a streaming session.

(see [below for nested schema](#nestedatt--stream_configuration)) -- **studio_component_ids** (List of String)

Unique identifiers for a collection of studio components that can be used with this launch profile.

-- **studio_id** (String)

The studioId.

+- **studio_component_ids** (List of String)

Unique identifiers for a collection of studio components that can be used with this + launch profile.

+- **studio_id** (String)

The studio ID.

- **tags** (Map of String) @@ -37,8 +40,42 @@ Data Source schema for AWS::NimbleStudio::LaunchProfile Read-Only: - **clipboard_mode** (String) -- **ec_2_instance_types** (List of String)

The EC2 instance types that users can select from when launching a streaming session with this launch profile.

-- **max_session_length_in_minutes** (Number)

The length of time, in minutes, that a streaming session can run. After this point, Nimble Studio automatically terminates the session.

-- **streaming_image_ids** (List of String)

The streaming images that users can select from when launching a streaming session with this launch profile.

+- **ec_2_instance_types** (List of String)

The EC2 instance types that users can select from when launching a streaming session + with this launch profile.

+- **max_session_length_in_minutes** (Number)

The length of time, in minutes, that a streaming session can be active before it is + stopped or terminated. After this point, Nimble Studio automatically terminates or + stops the session. The default length of time is 690 minutes, and the maximum length of + time is 30 days.

+- **max_stopped_session_length_in_minutes** (Number)

Integer that determines if you can start and stop your sessions and how long a session + can stay in the STOPPED state. The default value is 0. The maximum value is 5760.

+

If the value is missing or set to 0, your sessions can?t be stopped. If you then call + StopStreamingSession, the session fails. If the time that a session stays in the READY + state exceeds the maxSessionLengthInMinutes value, the session will automatically be + terminated by AWS (instead of stopped).

+

If the value is set to a positive number, the session can be stopped. You can call + StopStreamingSession to stop sessions in the READY state. If the time that a session + stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will + automatically be stopped by AWS (instead of terminated).

+- **session_storage** (Attributes)

The configuration for a streaming session?s upload storage.

(see [below for nested schema](#nestedatt--stream_configuration--session_storage)) +- **streaming_image_ids** (List of String)

The streaming images that users can select from when launching a streaming session + with this launch profile.

+ + +### Nested Schema for `stream_configuration.session_storage` + +Read-Only: + +- **mode** (List of String)

Allows artists to upload files to their workstations. The only valid option is + UPLOAD.

+- **root** (Attributes)

The upload storage root location (folder) on streaming workstations where files are + uploaded.

(see [below for nested schema](#nestedatt--stream_configuration--session_storage--root)) + + +### Nested Schema for `stream_configuration.session_storage.root` + +Read-Only: + +- **linux** (String)

The folder path in Linux workstations where files are uploaded.

+- **windows** (String)

The folder path in Windows workstations where files are uploaded.

diff --git a/docs/data-sources/redshift_event_subscription.md b/docs/data-sources/redshift_event_subscription.md index 1447172121..73ab80d075 100644 --- a/docs/data-sources/redshift_event_subscription.md +++ b/docs/data-sources/redshift_event_subscription.md @@ -24,8 +24,8 @@ Data Source schema for AWS::Redshift::EventSubscription - **cust_subscription_id** (String) The name of the Amazon Redshift event notification subscription. - **customer_aws_id** (String) The AWS account associated with the Amazon Redshift event notification subscription. - **enabled** (Boolean) A boolean value; set to true to activate the subscription, and set to false to create the subscription but not activate it. -- **event_categories** (List of String) Specifies the Amazon Redshift event categories to be published by the event notification subscription. -- **event_categories_list** (List of String) The list of Amazon Redshift event categories specified in the event notification subscription. +- **event_categories** (Set of String) Specifies the Amazon Redshift event categories to be published by the event notification subscription. +- **event_categories_list** (Set of String) The list of Amazon Redshift event categories specified in the event notification subscription. - **severity** (String) Specifies the Amazon Redshift event severity to be published by the event notification subscription. - **sns_topic_arn** (String) The Amazon Resource Name (ARN) of the Amazon SNS topic used to transmit the event notifications. - **source_ids** (List of String) A list of one or more identifiers of Amazon Redshift source objects. diff --git a/docs/data-sources/route53resolver_resolver_rule_association.md b/docs/data-sources/route53resolver_resolver_rule_association.md new file mode 100644 index 0000000000..35e9dc1294 --- /dev/null +++ b/docs/data-sources/route53resolver_resolver_rule_association.md @@ -0,0 +1,29 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_route53resolver_resolver_rule_association Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Route53Resolver::ResolverRuleAssociation +--- + +# awscc_route53resolver_resolver_rule_association (Data Source) + +Data Source schema for AWS::Route53Resolver::ResolverRuleAssociation + + + + +## Schema + +### Required + +- **id** (String) Uniquely identifies the resource. + +### Read-Only + +- **name** (String) The name of an association between a Resolver rule and a VPC. +- **resolver_rule_association_id** (String) Primary Identifier for Resolver Rule Association +- **resolver_rule_id** (String) The ID of the Resolver rule that you associated with the VPC that is specified by VPCId. +- **vpc_id** (String) The ID of the VPC that you associated the Resolver rule with. + + diff --git a/docs/data-sources/route53resolver_resolver_rule_associations.md b/docs/data-sources/route53resolver_resolver_rule_associations.md new file mode 100644 index 0000000000..6b0efd8ac6 --- /dev/null +++ b/docs/data-sources/route53resolver_resolver_rule_associations.md @@ -0,0 +1,23 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_route53resolver_resolver_rule_associations Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Route53Resolver::ResolverRuleAssociation +--- + +# awscc_route53resolver_resolver_rule_associations (Data Source) + +Plural Data Source schema for AWS::Route53Resolver::ResolverRuleAssociation + + + + +## Schema + +### Read-Only + +- **id** (String) Uniquely identifies the data source. +- **ids** (Set of String) Set of Resource Identifiers. + + diff --git a/docs/data-sources/sagemaker_pipeline.md b/docs/data-sources/sagemaker_pipeline.md index 396f992af4..c4799be196 100644 --- a/docs/data-sources/sagemaker_pipeline.md +++ b/docs/data-sources/sagemaker_pipeline.md @@ -21,6 +21,7 @@ Data Source schema for AWS::SageMaker::Pipeline ### Read-Only +- **parallelism_configuration** (Attributes) (see [below for nested schema](#nestedatt--parallelism_configuration)) - **pipeline_definition** (Attributes) (see [below for nested schema](#nestedatt--pipeline_definition)) - **pipeline_description** (String) The description of the Pipeline. - **pipeline_display_name** (String) The display name of the Pipeline. @@ -28,6 +29,14 @@ Data Source schema for AWS::SageMaker::Pipeline - **role_arn** (String) Role Arn - **tags** (Attributes List) (see [below for nested schema](#nestedatt--tags)) + +### Nested Schema for `parallelism_configuration` + +Read-Only: + +- **max_parallel_execution_steps** (Number) Maximum parallel execution steps + + ### Nested Schema for `pipeline_definition` diff --git a/docs/data-sources/timestream_scheduled_query.md b/docs/data-sources/timestream_scheduled_query.md index 3acd1b824b..7e20403a5b 100644 --- a/docs/data-sources/timestream_scheduled_query.md +++ b/docs/data-sources/timestream_scheduled_query.md @@ -22,40 +22,40 @@ Data Source schema for AWS::Timestream::ScheduledQuery ### Read-Only - **arn** (String) Amazon Resource Name of the scheduled query that is generated upon creation. -- **client_token** (String) Token provided to ensure idempotency when creating scheduled queries. -- **error_report_configuration** (Attributes) Configuration for where error reports will be placed, how they will be named, and how they will be encrypted. (see [below for nested schema](#nestedatt--error_report_configuration)) -- **kms_key_id** (String) The KMS key for the scheduled query. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS key located in your account. -- **notification_configuration** (Attributes) Configuration for notification upon scheduled query execution. (see [below for nested schema](#nestedatt--notification_configuration)) -- **query_string** (String) The query scheduled to be executed. -- **schedule_configuration** (Attributes) Configuration that indicates when the scheduled query is executed. (see [below for nested schema](#nestedatt--schedule_configuration)) -- **scheduled_query_execution_role_arn** (String) Role that AWS Timestream will assume to execute scheduled query. -- **scheduled_query_name** (String) The name for the scheduled query. -- **sq_error_report_configuration** (String) Configuration for where error reports will be placed, how they will be named, and how they will be encrypted. -- **sq_kms_key_id** (String) The KMS key for the scheduled query. If the KMS key is not specified, the database will be encrypted with a Timestream owned KMS key located in the Timestream account. -- **sq_name** (String) The name for the scheduled query. -- **sq_notification_configuration** (String) Configuration for notification upon scheduled query execution. -- **sq_query_string** (String) The query scheduled to be executed. -- **sq_schedule_configuration** (String) Configuration that indicates when the scheduled query is executed. -- **sq_scheduled_query_execution_role_arn** (String) Role that AWS Timestream will assume to execute scheduled query. -- **sq_target_configuration** (String) Target data source to export query results from. -- **tags** (Attributes List) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) -- **target_configuration** (Attributes) Configuration of target destination table to query. (see [below for nested schema](#nestedatt--target_configuration)) +- **client_token** (String) Using a ClientToken makes the call to CreateScheduledQuery idempotent, in other words, making the same request repeatedly will produce the same result. Making multiple identical CreateScheduledQuery requests has the same effect as making a single request. If CreateScheduledQuery is called without a ClientToken, the Query SDK generates a ClientToken on your behalf. After 8 hours, any request with the same ClientToken is treated as a new request. +- **error_report_configuration** (Attributes) Configuration for error reporting. Error reports will be generated when a problem is encountered when writing the query results. (see [below for nested schema](#nestedatt--error_report_configuration)) +- **kms_key_id** (String) The Amazon KMS key used to encrypt the scheduled query resource, at-rest. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix the name with alias/. If ErrorReportConfiguration uses SSE_KMS as encryption type, the same KmsKeyId is used to encrypt the error report at rest. +- **notification_configuration** (Attributes) Notification configuration for the scheduled query. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it. (see [below for nested schema](#nestedatt--notification_configuration)) +- **query_string** (String) The query string to run. Parameter names can be specified in the query string @ character followed by an identifier. The named Parameter @scheduled_runtime is reserved and can be used in the query to get the time at which the query is scheduled to run. The timestamp calculated according to the ScheduleConfiguration parameter, will be the value of @scheduled_runtime paramater for each query run. For example, consider an instance of a scheduled query executing on 2021-12-01 00:00:00. For this instance, the @scheduled_runtime parameter is initialized to the timestamp 2021-12-01 00:00:00 when invoking the query. +- **schedule_configuration** (Attributes) Configuration for when the scheduled query is executed. (see [below for nested schema](#nestedatt--schedule_configuration)) +- **scheduled_query_execution_role_arn** (String) The ARN for the IAM role that Timestream will assume when running the scheduled query. +- **scheduled_query_name** (String) The name of the scheduled query. Scheduled query names must be unique within each Region. +- **sq_error_report_configuration** (String) Configuration for error reporting. Error reports will be generated when a problem is encountered when writing the query results. +- **sq_kms_key_id** (String) The Amazon KMS key used to encrypt the scheduled query resource, at-rest. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix the name with alias/. If ErrorReportConfiguration uses SSE_KMS as encryption type, the same KmsKeyId is used to encrypt the error report at rest. +- **sq_name** (String) The name of the scheduled query. Scheduled query names must be unique within each Region. +- **sq_notification_configuration** (String) Notification configuration for the scheduled query. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it. +- **sq_query_string** (String) The query string to run. Parameter names can be specified in the query string @ character followed by an identifier. The named Parameter @scheduled_runtime is reserved and can be used in the query to get the time at which the query is scheduled to run. The timestamp calculated according to the ScheduleConfiguration parameter, will be the value of @scheduled_runtime paramater for each query run. For example, consider an instance of a scheduled query executing on 2021-12-01 00:00:00. For this instance, the @scheduled_runtime parameter is initialized to the timestamp 2021-12-01 00:00:00 when invoking the query. +- **sq_schedule_configuration** (String) Configuration for when the scheduled query is executed. +- **sq_scheduled_query_execution_role_arn** (String) The ARN for the IAM role that Timestream will assume when running the scheduled query. +- **sq_target_configuration** (String) Configuration of target store where scheduled query results are written to. +- **tags** (Attributes List) A list of key-value pairs to label the scheduled query. (see [below for nested schema](#nestedatt--tags)) +- **target_configuration** (Attributes) Configuration of target store where scheduled query results are written to. (see [below for nested schema](#nestedatt--target_configuration)) ### Nested Schema for `error_report_configuration` Read-Only: -- **s3_configuration** (Attributes) S3 configuration for where error reports will be placed, how they will be named, and how they will be encrypted. (see [below for nested schema](#nestedatt--error_report_configuration--s3_configuration)) +- **s3_configuration** (Attributes) Details on S3 location for error reports that result from running a query. (see [below for nested schema](#nestedatt--error_report_configuration--s3_configuration)) ### Nested Schema for `error_report_configuration.s3_configuration` Read-Only: -- **bucket_name** (String) S3 bucket where error reports will be placed. -- **encryption_option** (String) How error reports will be encrypted. -- **object_key_prefix** (String) Prefix for error report names. +- **bucket_name** (String) Name of the S3 bucket under which error reports will be created. +- **encryption_option** (String) Encryption at rest options for the error reports. If no encryption option is specified, Timestream will choose SSE_S3 as default. +- **object_key_prefix** (String) Prefix for error report keys. @@ -71,7 +71,7 @@ Read-Only: Read-Only: -- **topic_arn** (String) SNS Topic to be notified upon scheduled query execution. +- **topic_arn** (String) SNS topic ARN that the scheduled query status notifications will be sent to. @@ -80,7 +80,7 @@ Read-Only: Read-Only: -- **schedule_expression** (String) The cron expression that indicates when the scheduled query is executed. +- **schedule_expression** (String) An expression that denotes when to trigger the scheduled query run. This can be a cron expression or a rate expression. @@ -97,28 +97,28 @@ Read-Only: Read-Only: -- **timestream_configuration** (Attributes) Timestream configuration of destination table to query. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration)) +- **timestream_configuration** (Attributes) Configuration needed to write data into the Timestream database and table. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration)) ### Nested Schema for `target_configuration.timestream_configuration` Read-Only: -- **database_name** (String) The source database to query. -- **dimension_mappings** (Attributes List) Mappings of dimension names to dimension value types. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--dimension_mappings)) -- **measure_name_column** (String) Name of the source measure names column. -- **mixed_measure_mappings** (Attributes List) Mapping of measure names and measure value columns from the source table to the destination table. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--mixed_measure_mappings)) -- **multi_measure_mappings** (Attributes) Mapping of measure value columns from the source table to the destination table. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--multi_measure_mappings)) -- **table_name** (String) The source table to query. -- **time_column** (String) Name of the "time" column. +- **database_name** (String) Name of Timestream database to which the query result will be written. +- **dimension_mappings** (Attributes List) This is to allow mapping column(s) from the query result to the dimension in the destination table. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--dimension_mappings)) +- **measure_name_column** (String) Name of the measure name column from the query result. +- **mixed_measure_mappings** (Attributes List) Specifies how to map measures to multi-measure records. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--mixed_measure_mappings)) +- **multi_measure_mappings** (Attributes) Only one of MixedMeasureMappings or MultiMeasureMappings is to be provided. MultiMeasureMappings can be used to ingest data as multi measures in the derived table. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--multi_measure_mappings)) +- **table_name** (String) Name of Timestream table that the query result will be written to. The table should be within the same database that is provided in Timestream configuration. +- **time_column** (String) Column from query result that should be used as the time column in destination table. Column type for this should be TIMESTAMP. ### Nested Schema for `target_configuration.timestream_configuration.dimension_mappings` Read-Only: -- **dimension_value_type** (String) Value type of the dimension column. -- **name** (String) Name of the dimension column. +- **dimension_value_type** (String) Type for the dimension. +- **name** (String) Column name from query result. @@ -126,20 +126,20 @@ Read-Only: Read-Only: -- **measure_name** (String) Name of the measure in source table. -- **measure_value_type** (String) Value type of the measure value column in the destination table. -- **multi_measure_attribute_mappings** (Attributes List) List of multi-measure value column mappings. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--mixed_measure_mappings--multi_measure_attribute_mappings)) -- **source_column** (String) Name of the measure value column in the source table. -- **target_measure_name** (String) Name of the measure in the destination table. +- **measure_name** (String) Refers to the value of the measure name in a result row. This field is required if MeasureNameColumn is provided. +- **measure_value_type** (String) Type of the value that is to be read from SourceColumn. If the mapping is for MULTI, use MeasureValueType.MULTI. +- **multi_measure_attribute_mappings** (Attributes List) Required. Attribute mappings to be used for mapping query results to ingest data for multi-measure attributes. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--mixed_measure_mappings--multi_measure_attribute_mappings)) +- **source_column** (String) This field refers to the source column from which the measure value is to be read for result materialization. +- **target_measure_name** (String) Target measure name to be used. If not provided, the target measure name by default would be MeasureName if provided, or SourceColumn otherwise. ### Nested Schema for `target_configuration.timestream_configuration.mixed_measure_mappings.target_measure_name` Read-Only: -- **measure_value_type** (String) Value type of the measure value column in the destination table. -- **source_column** (String) Name of the measure value column in the source table. -- **target_multi_measure_attribute_name** (String) Name of the measure value column in the destination table. +- **measure_value_type** (String) Value type of the measure value column to be read from the query result. +- **source_column** (String) Source measure value column in the query result where the attribute value is to be read. +- **target_multi_measure_attribute_name** (String) Custom name to be used for attribute name in derived table. If not provided, source column name would be used. @@ -148,16 +148,16 @@ Read-Only: Read-Only: -- **multi_measure_attribute_mappings** (Attributes List) List of multi-measure value column mappings. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--multi_measure_mappings--multi_measure_attribute_mappings)) -- **target_multi_measure_name** (String) Name of the multi-measure in the destination table. +- **multi_measure_attribute_mappings** (Attributes List) Required. Attribute mappings to be used for mapping query results to ingest data for multi-measure attributes. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--multi_measure_mappings--multi_measure_attribute_mappings)) +- **target_multi_measure_name** (String) Name of the target multi-measure in the derived table. Required if MeasureNameColumn is not provided. If MeasureNameColumn is provided then the value from that column will be used as the multi-measure name. ### Nested Schema for `target_configuration.timestream_configuration.multi_measure_mappings.target_multi_measure_name` Read-Only: -- **measure_value_type** (String) Value type of the measure value column in the destination table. -- **source_column** (String) Name of the measure value column in the source table. -- **target_multi_measure_attribute_name** (String) Name of the measure value column in the destination table. +- **measure_value_type** (String) Value type of the measure value column to be read from the query result. +- **source_column** (String) Source measure value column in the query result where the attribute value is to be read. +- **target_multi_measure_attribute_name** (String) Custom name to be used for attribute name in derived table. If not provided, source column name would be used. diff --git a/docs/resources/apigateway_domain_name.md b/docs/resources/apigateway_domain_name.md index d2d2d3d84c..160665c0f7 100644 --- a/docs/resources/apigateway_domain_name.md +++ b/docs/resources/apigateway_domain_name.md @@ -47,8 +47,6 @@ Optional: Optional: -- **certificate_revocation_check_type** (String) -- **certificate_revocation_source_uri** (String) - **truststore_uri** (String) - **truststore_version** (String) diff --git a/docs/resources/appstream_application_entitlement_association.md b/docs/resources/appstream_application_entitlement_association.md new file mode 100644 index 0000000000..0429c27c82 --- /dev/null +++ b/docs/resources/appstream_application_entitlement_association.md @@ -0,0 +1,34 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_appstream_application_entitlement_association Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::AppStream::ApplicationEntitlementAssociation +--- + +# awscc_appstream_application_entitlement_association (Resource) + +Resource Type definition for AWS::AppStream::ApplicationEntitlementAssociation + + + + +## Schema + +### Required + +- **application_identifier** (String) +- **entitlement_name** (String) +- **stack_name** (String) + +### Read-Only + +- **id** (String) Uniquely identifies the resource. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_appstream_application_entitlement_association.example +``` diff --git a/docs/resources/appstream_entitlement.md b/docs/resources/appstream_entitlement.md new file mode 100644 index 0000000000..3acbee11ba --- /dev/null +++ b/docs/resources/appstream_entitlement.md @@ -0,0 +1,49 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_appstream_entitlement Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::AppStream::Entitlement +--- + +# awscc_appstream_entitlement (Resource) + +Resource Type definition for AWS::AppStream::Entitlement + + + + +## Schema + +### Required + +- **app_visibility** (String) +- **attributes** (Attributes Set) (see [below for nested schema](#nestedatt--attributes)) +- **name** (String) +- **stack_name** (String) + +### Optional + +- **description** (String) + +### Read-Only + +- **created_time** (String) +- **id** (String) Uniquely identifies the resource. +- **last_modified_time** (String) + + +### Nested Schema for `attributes` + +Required: + +- **name** (String) +- **value** (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_appstream_entitlement.example +``` diff --git a/docs/resources/autoscaling_warm_pool.md b/docs/resources/autoscaling_warm_pool.md index ce320b805c..5028fae2d2 100644 --- a/docs/resources/autoscaling_warm_pool.md +++ b/docs/resources/autoscaling_warm_pool.md @@ -21,6 +21,7 @@ Resource schema for AWS::AutoScaling::WarmPool. ### Optional +- **instance_reuse_policy** (Attributes) (see [below for nested schema](#nestedatt--instance_reuse_policy)) - **max_group_prepared_capacity** (Number) - **min_size** (Number) - **pool_state** (String) @@ -29,6 +30,13 @@ Resource schema for AWS::AutoScaling::WarmPool. - **id** (String) Uniquely identifies the resource. + +### Nested Schema for `instance_reuse_policy` + +Optional: + +- **reuse_on_scale_in** (Boolean) + ## Import Import is supported using the following syntax: diff --git a/docs/resources/ec2_host.md b/docs/resources/ec2_host.md new file mode 100644 index 0000000000..a03e37f067 --- /dev/null +++ b/docs/resources/ec2_host.md @@ -0,0 +1,39 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_host Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::EC2::Host +--- + +# awscc_ec2_host (Resource) + +Resource Type definition for AWS::EC2::Host + + + + +## Schema + +### Required + +- **availability_zone** (String) The Availability Zone in which to allocate the Dedicated Host. +- **instance_type** (String) Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only. + +### Optional + +- **auto_placement** (String) Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID. +- **host_recovery** (String) Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default. + +### Read-Only + +- **host_id** (String) Id of the host created. +- **id** (String) Uniquely identifies the resource. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_ec2_host.example +``` diff --git a/docs/resources/ec2_network_insights_access_scope.md b/docs/resources/ec2_network_insights_access_scope.md new file mode 100644 index 0000000000..b3380ffc7b --- /dev/null +++ b/docs/resources/ec2_network_insights_access_scope.md @@ -0,0 +1,228 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_network_insights_access_scope Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource schema for AWS::EC2::NetworkInsightsAccessScope +--- + +# awscc_ec2_network_insights_access_scope (Resource) + +Resource schema for AWS::EC2::NetworkInsightsAccessScope + + + + +## Schema + +### Optional + +- **exclude_paths** (Attributes List) (see [below for nested schema](#nestedatt--exclude_paths)) +- **match_paths** (Attributes List) (see [below for nested schema](#nestedatt--match_paths)) +- **tags** (Attributes List) (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- **created_date** (String) +- **id** (String) Uniquely identifies the resource. +- **network_insights_access_scope_arn** (String) +- **network_insights_access_scope_id** (String) +- **updated_date** (String) + + +### Nested Schema for `exclude_paths` + +Optional: + +- **destination** (Attributes) (see [below for nested schema](#nestedatt--exclude_paths--destination)) +- **source** (Attributes) (see [below for nested schema](#nestedatt--exclude_paths--source)) +- **through_resources** (Attributes List) (see [below for nested schema](#nestedatt--exclude_paths--through_resources)) + + +### Nested Schema for `exclude_paths.destination` + +Optional: + +- **packet_header_statement** (Attributes) (see [below for nested schema](#nestedatt--exclude_paths--destination--packet_header_statement)) +- **resource_statement** (Attributes) (see [below for nested schema](#nestedatt--exclude_paths--destination--resource_statement)) + + +### Nested Schema for `exclude_paths.destination.packet_header_statement` + +Optional: + +- **destination_addresses** (List of String) +- **destination_ports** (List of String) +- **destination_prefix_lists** (List of String) +- **protocols** (List of String) +- **source_addresses** (List of String) +- **source_ports** (List of String) +- **source_prefix_lists** (List of String) + + + +### Nested Schema for `exclude_paths.destination.resource_statement` + +Optional: + +- **resource_types** (List of String) +- **resources** (List of String) + + + + +### Nested Schema for `exclude_paths.source` + +Optional: + +- **packet_header_statement** (Attributes) (see [below for nested schema](#nestedatt--exclude_paths--source--packet_header_statement)) +- **resource_statement** (Attributes) (see [below for nested schema](#nestedatt--exclude_paths--source--resource_statement)) + + +### Nested Schema for `exclude_paths.source.packet_header_statement` + +Optional: + +- **destination_addresses** (List of String) +- **destination_ports** (List of String) +- **destination_prefix_lists** (List of String) +- **protocols** (List of String) +- **source_addresses** (List of String) +- **source_ports** (List of String) +- **source_prefix_lists** (List of String) + + + +### Nested Schema for `exclude_paths.source.resource_statement` + +Optional: + +- **resource_types** (List of String) +- **resources** (List of String) + + + + +### Nested Schema for `exclude_paths.through_resources` + +Optional: + +- **resource_statement** (Attributes) (see [below for nested schema](#nestedatt--exclude_paths--through_resources--resource_statement)) + + +### Nested Schema for `exclude_paths.through_resources.resource_statement` + +Optional: + +- **resource_types** (List of String) +- **resources** (List of String) + + + + + +### Nested Schema for `match_paths` + +Optional: + +- **destination** (Attributes) (see [below for nested schema](#nestedatt--match_paths--destination)) +- **source** (Attributes) (see [below for nested schema](#nestedatt--match_paths--source)) +- **through_resources** (Attributes List) (see [below for nested schema](#nestedatt--match_paths--through_resources)) + + +### Nested Schema for `match_paths.destination` + +Optional: + +- **packet_header_statement** (Attributes) (see [below for nested schema](#nestedatt--match_paths--destination--packet_header_statement)) +- **resource_statement** (Attributes) (see [below for nested schema](#nestedatt--match_paths--destination--resource_statement)) + + +### Nested Schema for `match_paths.destination.packet_header_statement` + +Optional: + +- **destination_addresses** (List of String) +- **destination_ports** (List of String) +- **destination_prefix_lists** (List of String) +- **protocols** (List of String) +- **source_addresses** (List of String) +- **source_ports** (List of String) +- **source_prefix_lists** (List of String) + + + +### Nested Schema for `match_paths.destination.resource_statement` + +Optional: + +- **resource_types** (List of String) +- **resources** (List of String) + + + + +### Nested Schema for `match_paths.source` + +Optional: + +- **packet_header_statement** (Attributes) (see [below for nested schema](#nestedatt--match_paths--source--packet_header_statement)) +- **resource_statement** (Attributes) (see [below for nested schema](#nestedatt--match_paths--source--resource_statement)) + + +### Nested Schema for `match_paths.source.packet_header_statement` + +Optional: + +- **destination_addresses** (List of String) +- **destination_ports** (List of String) +- **destination_prefix_lists** (List of String) +- **protocols** (List of String) +- **source_addresses** (List of String) +- **source_ports** (List of String) +- **source_prefix_lists** (List of String) + + + +### Nested Schema for `match_paths.source.resource_statement` + +Optional: + +- **resource_types** (List of String) +- **resources** (List of String) + + + + +### Nested Schema for `match_paths.through_resources` + +Optional: + +- **resource_statement** (Attributes) (see [below for nested schema](#nestedatt--match_paths--through_resources--resource_statement)) + + +### Nested Schema for `match_paths.through_resources.resource_statement` + +Optional: + +- **resource_types** (List of String) +- **resources** (List of String) + + + + + +### Nested Schema for `tags` + +Optional: + +- **key** (String) +- **value** (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_ec2_network_insights_access_scope.example +``` diff --git a/docs/resources/ec2_network_insights_access_scope_analysis.md b/docs/resources/ec2_network_insights_access_scope_analysis.md new file mode 100644 index 0000000000..e86c090f47 --- /dev/null +++ b/docs/resources/ec2_network_insights_access_scope_analysis.md @@ -0,0 +1,52 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_network_insights_access_scope_analysis Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource schema for AWS::EC2::NetworkInsightsAccessScopeAnalysis +--- + +# awscc_ec2_network_insights_access_scope_analysis (Resource) + +Resource schema for AWS::EC2::NetworkInsightsAccessScopeAnalysis + + + + +## Schema + +### Required + +- **network_insights_access_scope_id** (String) + +### Optional + +- **tags** (Attributes List) (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- **analyzed_eni_count** (Number) +- **end_date** (String) +- **findings_found** (String) +- **id** (String) Uniquely identifies the resource. +- **network_insights_access_scope_analysis_arn** (String) +- **network_insights_access_scope_analysis_id** (String) +- **start_date** (String) +- **status** (String) +- **status_message** (String) + + +### Nested Schema for `tags` + +Optional: + +- **key** (String) +- **value** (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_ec2_network_insights_access_scope_analysis.example +``` diff --git a/docs/resources/forecast_dataset_group.md b/docs/resources/forecast_dataset_group.md new file mode 100644 index 0000000000..78bc46c61a --- /dev/null +++ b/docs/resources/forecast_dataset_group.md @@ -0,0 +1,47 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_forecast_dataset_group Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Represents a dataset group that holds a collection of related datasets +--- + +# awscc_forecast_dataset_group (Resource) + +Represents a dataset group that holds a collection of related datasets + + + + +## Schema + +### Required + +- **dataset_group_name** (String) A name for the dataset group. +- **domain** (String) The domain associated with the dataset group. When you add a dataset to a dataset group, this value and the value specified for the Domain parameter of the CreateDataset operation must match. + +### Optional + +- **dataset_arns** (List of String) An array of Amazon Resource Names (ARNs) of the datasets that you want to include in the dataset group. +- **tags** (Attributes List) The tags of Application Insights application. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- **dataset_group_arn** (String) The Amazon Resource Name (ARN) of the dataset group to delete. +- **id** (String) Uniquely identifies the resource. + + +### Nested Schema for `tags` + +Optional: + +- **key** (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- **value** (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_forecast_dataset_group.example +``` diff --git a/docs/resources/inspectorv2_filter.md b/docs/resources/inspectorv2_filter.md new file mode 100644 index 0000000000..0b5aea198b --- /dev/null +++ b/docs/resources/inspectorv2_filter.md @@ -0,0 +1,412 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_inspectorv2_filter Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Inspector Filter resource schema +--- + +# awscc_inspectorv2_filter (Resource) + +Inspector Filter resource schema + + + + +## Schema + +### Required + +- **filter_action** (String) Findings filter action. +- **filter_criteria** (Attributes) Findings filter criteria. (see [below for nested schema](#nestedatt--filter_criteria)) +- **name** (String) Findings filter name. + +### Optional + +- **description** (String) Findings filter description. + +### Read-Only + +- **arn** (String) Findings filter ARN. +- **id** (String) Uniquely identifies the resource. + + +### Nested Schema for `filter_criteria` + +Required: + +- **aws_account_id** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--aws_account_id)) +- **component_id** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--component_id)) +- **component_type** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--component_type)) +- **ec_2_instance_image_id** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ec_2_instance_image_id)) +- **ec_2_instance_subnet_id** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ec_2_instance_subnet_id)) +- **ec_2_instance_vpc_id** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ec_2_instance_vpc_id)) +- **ecr_image_architecture** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ecr_image_architecture)) +- **ecr_image_hash** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ecr_image_hash)) +- **ecr_image_pushed_at** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ecr_image_pushed_at)) +- **ecr_image_registry** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ecr_image_registry)) +- **ecr_image_repository_name** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ecr_image_repository_name)) +- **ecr_image_tags** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--ecr_image_tags)) +- **finding_arn** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--finding_arn)) +- **finding_status** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--finding_status)) +- **finding_type** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--finding_type)) +- **first_observed_at** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--first_observed_at)) +- **inspector_score** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--inspector_score)) +- **last_observed_at** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--last_observed_at)) +- **network_protocol** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--network_protocol)) +- **port_range** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--port_range)) +- **related_vulnerabilities** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--related_vulnerabilities)) +- **resource_id** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--resource_id)) +- **resource_tags** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--resource_tags)) +- **resource_type** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--resource_type)) +- **severity** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--severity)) +- **title** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--title)) +- **updated_at** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--updated_at)) +- **vendor_severity** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--vendor_severity)) +- **vulnerability_id** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--vulnerability_id)) +- **vulnerability_source** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--vulnerability_source)) +- **vulnerable_packages** (Attributes List) (see [below for nested schema](#nestedatt--filter_criteria--vulnerable_packages)) + + +### Nested Schema for `filter_criteria.aws_account_id` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.component_id` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.component_type` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ec_2_instance_image_id` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ec_2_instance_subnet_id` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ec_2_instance_vpc_id` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ecr_image_architecture` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ecr_image_hash` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ecr_image_pushed_at` + +Required: + +- **end_inclusive** (Number) +- **start_inclusive** (Number) + + + +### Nested Schema for `filter_criteria.ecr_image_registry` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ecr_image_repository_name` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.ecr_image_tags` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.finding_arn` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.finding_status` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.finding_type` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.first_observed_at` + +Required: + +- **end_inclusive** (Number) +- **start_inclusive** (Number) + + + +### Nested Schema for `filter_criteria.inspector_score` + +Required: + +- **lower_inclusive** (Number) +- **upper_inclusive** (Number) + + + +### Nested Schema for `filter_criteria.last_observed_at` + +Required: + +- **end_inclusive** (Number) +- **start_inclusive** (Number) + + + +### Nested Schema for `filter_criteria.network_protocol` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.port_range` + +Required: + +- **begin_inclusive** (Number) +- **end_inclusive** (Number) + + + +### Nested Schema for `filter_criteria.related_vulnerabilities` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.resource_id` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.resource_tags` + +Required: + +- **comparison** (String) +- **key** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.resource_type` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.severity` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.title` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.updated_at` + +Required: + +- **end_inclusive** (Number) +- **start_inclusive** (Number) + + + +### Nested Schema for `filter_criteria.vendor_severity` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.vulnerability_id` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.vulnerability_source` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.vulnerable_packages` + +Required: + +- **architecture** (Attributes) (see [below for nested schema](#nestedatt--filter_criteria--vulnerable_packages--architecture)) +- **epoch** (Attributes) (see [below for nested schema](#nestedatt--filter_criteria--vulnerable_packages--epoch)) +- **name** (Attributes) (see [below for nested schema](#nestedatt--filter_criteria--vulnerable_packages--name)) +- **release** (Attributes) (see [below for nested schema](#nestedatt--filter_criteria--vulnerable_packages--release)) +- **source_layer_hash** (Attributes) (see [below for nested schema](#nestedatt--filter_criteria--vulnerable_packages--source_layer_hash)) +- **version** (Attributes) (see [below for nested schema](#nestedatt--filter_criteria--vulnerable_packages--version)) + + +### Nested Schema for `filter_criteria.vulnerable_packages.architecture` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.vulnerable_packages.epoch` + +Required: + +- **lower_inclusive** (Number) +- **upper_inclusive** (Number) + + + +### Nested Schema for `filter_criteria.vulnerable_packages.name` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.vulnerable_packages.release` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.vulnerable_packages.source_layer_hash` + +Required: + +- **comparison** (String) +- **value** (String) + + + +### Nested Schema for `filter_criteria.vulnerable_packages.version` + +Required: + +- **comparison** (String) +- **value** (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_inspectorv2_filter.example +``` diff --git a/docs/resources/iot_job_template.md b/docs/resources/iot_job_template.md index 52d8079783..d36206f3e7 100644 --- a/docs/resources/iot_job_template.md +++ b/docs/resources/iot_job_template.md @@ -26,6 +26,7 @@ Job templates enable you to preconfigure jobs so that you can deploy them to mul - **document** (String) The job document. Required if you don't specify a value for documentSource. - **document_source** (String) An S3 link to the job document to use in the template. Required if you don't specify a value for document. - **job_arn** (String) Optional for copying a JobTemplate from a pre-existing Job configuration. +- **job_executions_retry_config** (Attributes) (see [below for nested schema](#nestedatt--job_executions_retry_config)) - **job_executions_rollout_config** (Attributes) Allows you to create a staged rollout of a job. (see [below for nested schema](#nestedatt--job_executions_rollout_config)) - **presigned_url_config** (Attributes) Configuration for pre-signed S3 URLs. (see [below for nested schema](#nestedatt--presigned_url_config)) - **tags** (Attributes Set) Metadata that can be used to manage the JobTemplate. (see [below for nested schema](#nestedatt--tags)) @@ -55,6 +56,23 @@ Optional: + +### Nested Schema for `job_executions_retry_config` + +Optional: + +- **retry_criteria_list** (Attributes List) (see [below for nested schema](#nestedatt--job_executions_retry_config--retry_criteria_list)) + + +### Nested Schema for `job_executions_retry_config.retry_criteria_list` + +Optional: + +- **failure_type** (String) +- **number_of_retries** (Number) + + + ### Nested Schema for `job_executions_rollout_config` diff --git a/docs/resources/iotsitewise_gateway.md b/docs/resources/iotsitewise_gateway.md index ee4300f481..3539c8599f 100644 --- a/docs/resources/iotsitewise_gateway.md +++ b/docs/resources/iotsitewise_gateway.md @@ -35,7 +35,8 @@ Resource schema for AWS::IoTSiteWise::Gateway Required: -- **greengrass** (Attributes) A gateway that runs on AWS IoT Greengrass. (see [below for nested schema](#nestedatt--gateway_platform--greengrass)) +- **greengrass** (Attributes) A gateway that runs on AWS IoT Greengrass V1. (see [below for nested schema](#nestedatt--gateway_platform--greengrass)) +- **greengrass_v2** (Attributes) A gateway that runs on AWS IoT Greengrass V2. (see [below for nested schema](#nestedatt--gateway_platform--greengrass_v2)) ### Nested Schema for `gateway_platform.greengrass` @@ -45,6 +46,14 @@ Required: - **group_arn** (String) The ARN of the Greengrass group. + +### Nested Schema for `gateway_platform.greengrass_v2` + +Required: + +- **core_device_thing_name** (String) The name of the CoreDevice in GreenGrass V2. + + ### Nested Schema for `gateway_capability_summaries` diff --git a/docs/resources/kinesisvideo_signaling_channel.md b/docs/resources/kinesisvideo_signaling_channel.md new file mode 100644 index 0000000000..6cb12c4a1c --- /dev/null +++ b/docs/resources/kinesisvideo_signaling_channel.md @@ -0,0 +1,44 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_kinesisvideo_signaling_channel Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type Definition for AWS::KinesisVideo::SignalingChannel +--- + +# awscc_kinesisvideo_signaling_channel (Resource) + +Resource Type Definition for AWS::KinesisVideo::SignalingChannel + + + + +## Schema + +### Optional + +- **message_ttl_seconds** (Number) The period of time a signaling channel retains undelivered messages before they are discarded. +- **name** (String) The name of the Kinesis Video Signaling Channel. +- **tags** (Attributes List) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- **type** (String) The type of the Kinesis Video Signaling Channel to create. Currently, SINGLE_MASTER is the only supported channel type. + +### Read-Only + +- **arn** (String) The Amazon Resource Name (ARN) of the Kinesis Video Signaling Channel. +- **id** (String) Uniquely identifies the resource. + + +### Nested Schema for `tags` + +Optional: + +- **key** (String) The key name of the tag. Specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- **value** (String) The value for the tag. Specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_kinesisvideo_signaling_channel.example +``` diff --git a/docs/resources/kinesisvideo_stream.md b/docs/resources/kinesisvideo_stream.md new file mode 100644 index 0000000000..920f6c04a9 --- /dev/null +++ b/docs/resources/kinesisvideo_stream.md @@ -0,0 +1,46 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_kinesisvideo_stream Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type Definition for AWS::KinesisVideo::Stream +--- + +# awscc_kinesisvideo_stream (Resource) + +Resource Type Definition for AWS::KinesisVideo::Stream + + + + +## Schema + +### Optional + +- **data_retention_in_hours** (Number) The number of hours till which Kinesis Video will retain the data in the stream +- **device_name** (String) The name of the device that is writing to the stream. +- **kms_key_id** (String) AWS KMS key ID that Kinesis Video Streams uses to encrypt stream data. +- **media_type** (String) The media type of the stream. Consumers of the stream can use this information when processing the stream. +- **name** (String) The name of the Kinesis Video stream. +- **tags** (Attributes List) An array of key-value pairs associated with the Kinesis Video Stream. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- **arn** (String) The Amazon Resource Name (ARN) of the Kinesis Video stream. +- **id** (String) Uniquely identifies the resource. + + +### Nested Schema for `tags` + +Optional: + +- **key** (String) The key name of the tag. Specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- **value** (String) The value for the tag. Specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. The following characters can be used: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_kinesisvideo_stream.example +``` diff --git a/docs/resources/lightsail_alarm.md b/docs/resources/lightsail_alarm.md new file mode 100644 index 0000000000..b1006433dd --- /dev/null +++ b/docs/resources/lightsail_alarm.md @@ -0,0 +1,47 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_lightsail_alarm Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Lightsail::Alarm +--- + +# awscc_lightsail_alarm (Resource) + +Resource Type definition for AWS::Lightsail::Alarm + + + + +## Schema + +### Required + +- **alarm_name** (String) The name for the alarm. Specify the name of an existing alarm to update, and overwrite the previous configuration of the alarm. +- **comparison_operator** (String) The arithmetic operation to use when comparing the specified statistic to the threshold. The specified statistic value is used as the first operand. +- **evaluation_periods** (Number) The number of most recent periods over which data is compared to the specified threshold. If you are setting an "M out of N" alarm, this value (evaluationPeriods) is the N. +- **metric_name** (String) The name of the metric to associate with the alarm. +- **monitored_resource_name** (String) The validation status of the SSL/TLS certificate. +- **threshold** (Number) The value against which the specified statistic is compared. + +### Optional + +- **contact_protocols** (Set of String) The contact protocols to use for the alarm, such as Email, SMS (text messaging), or both. +- **datapoints_to_alarm** (Number) The number of data points that must be not within the specified threshold to trigger the alarm. If you are setting an "M out of N" alarm, this value (datapointsToAlarm) is the M. +- **notification_enabled** (Boolean) Indicates whether the alarm is enabled. Notifications are enabled by default if you don't specify this parameter. +- **notification_triggers** (Set of String) The alarm states that trigger a notification. +- **treat_missing_data** (String) Sets how this alarm will handle missing data points. + +### Read-Only + +- **alarm_arn** (String) +- **id** (String) Uniquely identifies the resource. +- **state** (String) The current state of the alarm. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_lightsail_alarm.example +``` diff --git a/docs/resources/lightsail_bucket.md b/docs/resources/lightsail_bucket.md new file mode 100644 index 0000000000..2a7fac101b --- /dev/null +++ b/docs/resources/lightsail_bucket.md @@ -0,0 +1,61 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_lightsail_bucket Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Lightsail::Bucket +--- + +# awscc_lightsail_bucket (Resource) + +Resource Type definition for AWS::Lightsail::Bucket + + + + +## Schema + +### Required + +- **bucket_name** (String) The name for the bucket. +- **bundle_id** (String) The ID of the bundle to use for the bucket. + +### Optional + +- **access_rules** (Attributes) An object that sets the public accessibility of objects in the specified bucket. (see [below for nested schema](#nestedatt--access_rules)) +- **object_versioning** (Boolean) Specifies whether to enable or disable versioning of objects in the bucket. +- **read_only_access_accounts** (Set of String) An array of strings to specify the AWS account IDs that can access the bucket. +- **resources_receiving_access** (Set of String) The names of the Lightsail resources for which to set bucket access. +- **tags** (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- **able_to_update_bundle** (Boolean) Indicates whether the bundle that is currently applied to a bucket can be changed to another bundle. You can update a bucket's bundle only one time within a monthly AWS billing cycle. +- **bucket_arn** (String) +- **id** (String) Uniquely identifies the resource. +- **url** (String) The URL of the bucket. + + +### Nested Schema for `access_rules` + +Optional: + +- **allow_public_overrides** (Boolean) A Boolean value that indicates whether the access control list (ACL) permissions that are applied to individual objects override the getObject option that is currently specified. +- **get_object** (String) Specifies the anonymous access to all objects in a bucket. + + + +### Nested Schema for `tags` + +Optional: + +- **key** (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- **value** (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_lightsail_bucket.example +``` diff --git a/docs/resources/lightsail_load_balancer.md b/docs/resources/lightsail_load_balancer.md new file mode 100644 index 0000000000..f0621d694b --- /dev/null +++ b/docs/resources/lightsail_load_balancer.md @@ -0,0 +1,51 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_lightsail_load_balancer Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Lightsail::LoadBalancer +--- + +# awscc_lightsail_load_balancer (Resource) + +Resource Type definition for AWS::Lightsail::LoadBalancer + + + + +## Schema + +### Required + +- **instance_port** (Number) The instance port where you're creating your load balancer. +- **load_balancer_name** (String) The name of your load balancer. + +### Optional + +- **attached_instances** (Set of String) The names of the instances attached to the load balancer. +- **health_check_path** (String) The path you provided to perform the load balancer health check. If you didn't specify a health check path, Lightsail uses the root path of your website (e.g., "/"). +- **ip_address_type** (String) The IP address type for the load balancer. The possible values are ipv4 for IPv4 only, and dualstack for IPv4 and IPv6. The default value is dualstack. +- **session_stickiness_enabled** (Boolean) Configuration option to enable session stickiness. +- **session_stickiness_lb_cookie_duration_seconds** (String) Configuration option to adjust session stickiness cookie duration parameter. +- **tags** (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- **id** (String) Uniquely identifies the resource. +- **load_balancer_arn** (String) + + +### Nested Schema for `tags` + +Optional: + +- **key** (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- **value** (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_lightsail_load_balancer.example +``` diff --git a/docs/resources/lightsail_load_balancer_tls_certificate.md b/docs/resources/lightsail_load_balancer_tls_certificate.md new file mode 100644 index 0000000000..3f697859b2 --- /dev/null +++ b/docs/resources/lightsail_load_balancer_tls_certificate.md @@ -0,0 +1,41 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_lightsail_load_balancer_tls_certificate Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Lightsail::LoadBalancerTlsCertificate +--- + +# awscc_lightsail_load_balancer_tls_certificate (Resource) + +Resource Type definition for AWS::Lightsail::LoadBalancerTlsCertificate + + + + +## Schema + +### Required + +- **certificate_domain_name** (String) The domain name (e.g., example.com ) for your SSL/TLS certificate. +- **certificate_name** (String) The SSL/TLS certificate name. +- **load_balancer_name** (String) The name of your load balancer. + +### Optional + +- **certificate_alternative_names** (Set of String) An array of strings listing alternative domains and subdomains for your SSL/TLS certificate. +- **is_attached** (Boolean) When true, the SSL/TLS certificate is attached to the Lightsail load balancer. + +### Read-Only + +- **id** (String) Uniquely identifies the resource. +- **load_balancer_tls_certificate_arn** (String) +- **status** (String) The validation status of the SSL/TLS certificate. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_lightsail_load_balancer_tls_certificate.example +``` diff --git a/docs/resources/nimblestudio_launch_profile.md b/docs/resources/nimblestudio_launch_profile.md index 45457d18cf..ad1e0abee4 100644 --- a/docs/resources/nimblestudio_launch_profile.md +++ b/docs/resources/nimblestudio_launch_profile.md @@ -17,12 +17,15 @@ Represents a launch profile which delegates access to a collection of studio com ### Required -- **ec_2_subnet_ids** (List of String)

Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from. These subnets must support the specified instance types.

-- **launch_profile_protocol_versions** (List of String)

The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".

+- **ec_2_subnet_ids** (List of String)

Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from. + These subnets must support the specified instance types.

+- **launch_profile_protocol_versions** (List of String)

The version number of the protocol that is used by the launch profile. The only valid + version is "2021-03-31".

- **name** (String)

The name for the launch profile.

- **stream_configuration** (Attributes)

A configuration for a streaming session.

(see [below for nested schema](#nestedatt--stream_configuration)) -- **studio_component_ids** (List of String)

Unique identifiers for a collection of studio components that can be used with this launch profile.

-- **studio_id** (String)

The studioId.

+- **studio_component_ids** (List of String)

Unique identifiers for a collection of studio components that can be used with this + launch profile.

+- **studio_id** (String)

The studio ID.

### Optional @@ -40,9 +43,43 @@ Represents a launch profile which delegates access to a collection of studio com Required: - **clipboard_mode** (String) -- **ec_2_instance_types** (List of String)

The EC2 instance types that users can select from when launching a streaming session with this launch profile.

-- **max_session_length_in_minutes** (Number)

The length of time, in minutes, that a streaming session can run. After this point, Nimble Studio automatically terminates the session.

-- **streaming_image_ids** (List of String)

The streaming images that users can select from when launching a streaming session with this launch profile.

+- **ec_2_instance_types** (List of String)

The EC2 instance types that users can select from when launching a streaming session + with this launch profile.

+- **max_session_length_in_minutes** (Number)

The length of time, in minutes, that a streaming session can be active before it is + stopped or terminated. After this point, Nimble Studio automatically terminates or + stops the session. The default length of time is 690 minutes, and the maximum length of + time is 30 days.

+- **max_stopped_session_length_in_minutes** (Number)

Integer that determines if you can start and stop your sessions and how long a session + can stay in the STOPPED state. The default value is 0. The maximum value is 5760.

+

If the value is missing or set to 0, your sessions can?t be stopped. If you then call + StopStreamingSession, the session fails. If the time that a session stays in the READY + state exceeds the maxSessionLengthInMinutes value, the session will automatically be + terminated by AWS (instead of stopped).

+

If the value is set to a positive number, the session can be stopped. You can call + StopStreamingSession to stop sessions in the READY state. If the time that a session + stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will + automatically be stopped by AWS (instead of terminated).

+- **session_storage** (Attributes)

The configuration for a streaming session?s upload storage.

(see [below for nested schema](#nestedatt--stream_configuration--session_storage)) +- **streaming_image_ids** (List of String)

The streaming images that users can select from when launching a streaming session + with this launch profile.

+ + +### Nested Schema for `stream_configuration.session_storage` + +Required: + +- **mode** (List of String)

Allows artists to upload files to their workstations. The only valid option is + UPLOAD.

+- **root** (Attributes)

The upload storage root location (folder) on streaming workstations where files are + uploaded.

(see [below for nested schema](#nestedatt--stream_configuration--session_storage--root)) + + +### Nested Schema for `stream_configuration.session_storage.root` + +Required: + +- **linux** (String)

The folder path in Linux workstations where files are uploaded.

+- **windows** (String)

The folder path in Windows workstations where files are uploaded.

## Import diff --git a/docs/resources/redshift_event_subscription.md b/docs/resources/redshift_event_subscription.md index 3099e5143b..72392ef731 100644 --- a/docs/resources/redshift_event_subscription.md +++ b/docs/resources/redshift_event_subscription.md @@ -22,7 +22,7 @@ The `AWS::Redshift::EventSubscription` resource creates an Amazon Redshift Event ### Optional - **enabled** (Boolean) A boolean value; set to true to activate the subscription, and set to false to create the subscription but not activate it. -- **event_categories** (List of String) Specifies the Amazon Redshift event categories to be published by the event notification subscription. +- **event_categories** (Set of String) Specifies the Amazon Redshift event categories to be published by the event notification subscription. - **severity** (String) Specifies the Amazon Redshift event severity to be published by the event notification subscription. - **sns_topic_arn** (String) The Amazon Resource Name (ARN) of the Amazon SNS topic used to transmit the event notifications. - **source_ids** (List of String) A list of one or more identifiers of Amazon Redshift source objects. @@ -33,7 +33,7 @@ The `AWS::Redshift::EventSubscription` resource creates an Amazon Redshift Event - **cust_subscription_id** (String) The name of the Amazon Redshift event notification subscription. - **customer_aws_id** (String) The AWS account associated with the Amazon Redshift event notification subscription. -- **event_categories_list** (List of String) The list of Amazon Redshift event categories specified in the event notification subscription. +- **event_categories_list** (Set of String) The list of Amazon Redshift event categories specified in the event notification subscription. - **id** (String) Uniquely identifies the resource. - **source_ids_list** (List of String) A list of the sources that publish events to the Amazon Redshift event notification subscription. - **status** (String) The status of the Amazon Redshift event notification subscription. diff --git a/docs/resources/route53resolver_resolver_rule_association.md b/docs/resources/route53resolver_resolver_rule_association.md new file mode 100644 index 0000000000..e367977fe0 --- /dev/null +++ b/docs/resources/route53resolver_resolver_rule_association.md @@ -0,0 +1,38 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_route53resolver_resolver_rule_association Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Route53Resolver::ResolverRuleAssociation +--- + +# awscc_route53resolver_resolver_rule_association (Resource) + +Resource Type definition for AWS::Route53Resolver::ResolverRuleAssociation + + + + +## Schema + +### Required + +- **resolver_rule_id** (String) The ID of the Resolver rule that you associated with the VPC that is specified by VPCId. +- **vpc_id** (String) The ID of the VPC that you associated the Resolver rule with. + +### Optional + +- **name** (String) The name of an association between a Resolver rule and a VPC. + +### Read-Only + +- **id** (String) Uniquely identifies the resource. +- **resolver_rule_association_id** (String) Primary Identifier for Resolver Rule Association + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_route53resolver_resolver_rule_association.example +``` diff --git a/docs/resources/rum_app_monitor.md b/docs/resources/rum_app_monitor.md index 003935e518..4787f10077 100644 --- a/docs/resources/rum_app_monitor.md +++ b/docs/resources/rum_app_monitor.md @@ -15,12 +15,15 @@ Resource Type definition for AWS::RUM::AppMonitor ## Schema +### Required + +- **domain** (String) The top-level internet domain name for which your application has administrative authority. +- **name** (String) A name for the app monitor + ### Optional - **app_monitor_configuration** (Attributes) AppMonitor configuration (see [below for nested schema](#nestedatt--app_monitor_configuration)) - **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 - **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 diff --git a/docs/resources/sagemaker_pipeline.md b/docs/resources/sagemaker_pipeline.md index b2a4a2ccb4..24ce3eeb21 100644 --- a/docs/resources/sagemaker_pipeline.md +++ b/docs/resources/sagemaker_pipeline.md @@ -23,6 +23,7 @@ Resource Type definition for AWS::SageMaker::Pipeline ### Optional +- **parallelism_configuration** (Attributes) (see [below for nested schema](#nestedatt--parallelism_configuration)) - **pipeline_description** (String) The description of the Pipeline. - **pipeline_display_name** (String) The display name of the Pipeline. - **tags** (Attributes List) (see [below for nested schema](#nestedatt--tags)) @@ -51,6 +52,14 @@ Required: + +### Nested Schema for `parallelism_configuration` + +Optional: + +- **max_parallel_execution_steps** (Number) Maximum parallel execution steps + + ### Nested Schema for `tags` diff --git a/docs/resources/timestream_scheduled_query.md b/docs/resources/timestream_scheduled_query.md index d464f320cc..f34700dd69 100644 --- a/docs/resources/timestream_scheduled_query.md +++ b/docs/resources/timestream_scheduled_query.md @@ -17,48 +17,48 @@ The AWS::Timestream::ScheduledQuery resource creates a Timestream Scheduled Quer ### Required -- **error_report_configuration** (Attributes) Configuration for where error reports will be placed, how they will be named, and how they will be encrypted. (see [below for nested schema](#nestedatt--error_report_configuration)) -- **notification_configuration** (Attributes) Configuration for notification upon scheduled query execution. (see [below for nested schema](#nestedatt--notification_configuration)) -- **query_string** (String) The query scheduled to be executed. -- **schedule_configuration** (Attributes) Configuration that indicates when the scheduled query is executed. (see [below for nested schema](#nestedatt--schedule_configuration)) -- **scheduled_query_execution_role_arn** (String) Role that AWS Timestream will assume to execute scheduled query. +- **error_report_configuration** (Attributes) Configuration for error reporting. Error reports will be generated when a problem is encountered when writing the query results. (see [below for nested schema](#nestedatt--error_report_configuration)) +- **notification_configuration** (Attributes) Notification configuration for the scheduled query. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it. (see [below for nested schema](#nestedatt--notification_configuration)) +- **query_string** (String) The query string to run. Parameter names can be specified in the query string @ character followed by an identifier. The named Parameter @scheduled_runtime is reserved and can be used in the query to get the time at which the query is scheduled to run. The timestamp calculated according to the ScheduleConfiguration parameter, will be the value of @scheduled_runtime paramater for each query run. For example, consider an instance of a scheduled query executing on 2021-12-01 00:00:00. For this instance, the @scheduled_runtime parameter is initialized to the timestamp 2021-12-01 00:00:00 when invoking the query. +- **schedule_configuration** (Attributes) Configuration for when the scheduled query is executed. (see [below for nested schema](#nestedatt--schedule_configuration)) +- **scheduled_query_execution_role_arn** (String) The ARN for the IAM role that Timestream will assume when running the scheduled query. ### Optional -- **client_token** (String) Token provided to ensure idempotency when creating scheduled queries. -- **kms_key_id** (String) The KMS key for the scheduled query. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS key located in your account. -- **scheduled_query_name** (String) The name for the scheduled query. -- **tags** (Attributes List) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) -- **target_configuration** (Attributes) Configuration of target destination table to query. (see [below for nested schema](#nestedatt--target_configuration)) +- **client_token** (String) Using a ClientToken makes the call to CreateScheduledQuery idempotent, in other words, making the same request repeatedly will produce the same result. Making multiple identical CreateScheduledQuery requests has the same effect as making a single request. If CreateScheduledQuery is called without a ClientToken, the Query SDK generates a ClientToken on your behalf. After 8 hours, any request with the same ClientToken is treated as a new request. +- **kms_key_id** (String) The Amazon KMS key used to encrypt the scheduled query resource, at-rest. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix the name with alias/. If ErrorReportConfiguration uses SSE_KMS as encryption type, the same KmsKeyId is used to encrypt the error report at rest. +- **scheduled_query_name** (String) The name of the scheduled query. Scheduled query names must be unique within each Region. +- **tags** (Attributes List) A list of key-value pairs to label the scheduled query. (see [below for nested schema](#nestedatt--tags)) +- **target_configuration** (Attributes) Configuration of target store where scheduled query results are written to. (see [below for nested schema](#nestedatt--target_configuration)) ### Read-Only - **arn** (String) Amazon Resource Name of the scheduled query that is generated upon creation. - **id** (String) Uniquely identifies the resource. -- **sq_error_report_configuration** (String) Configuration for where error reports will be placed, how they will be named, and how they will be encrypted. -- **sq_kms_key_id** (String) The KMS key for the scheduled query. If the KMS key is not specified, the database will be encrypted with a Timestream owned KMS key located in the Timestream account. -- **sq_name** (String) The name for the scheduled query. -- **sq_notification_configuration** (String) Configuration for notification upon scheduled query execution. -- **sq_query_string** (String) The query scheduled to be executed. -- **sq_schedule_configuration** (String) Configuration that indicates when the scheduled query is executed. -- **sq_scheduled_query_execution_role_arn** (String) Role that AWS Timestream will assume to execute scheduled query. -- **sq_target_configuration** (String) Target data source to export query results from. +- **sq_error_report_configuration** (String) Configuration for error reporting. Error reports will be generated when a problem is encountered when writing the query results. +- **sq_kms_key_id** (String) The Amazon KMS key used to encrypt the scheduled query resource, at-rest. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix the name with alias/. If ErrorReportConfiguration uses SSE_KMS as encryption type, the same KmsKeyId is used to encrypt the error report at rest. +- **sq_name** (String) The name of the scheduled query. Scheduled query names must be unique within each Region. +- **sq_notification_configuration** (String) Notification configuration for the scheduled query. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it. +- **sq_query_string** (String) The query string to run. Parameter names can be specified in the query string @ character followed by an identifier. The named Parameter @scheduled_runtime is reserved and can be used in the query to get the time at which the query is scheduled to run. The timestamp calculated according to the ScheduleConfiguration parameter, will be the value of @scheduled_runtime paramater for each query run. For example, consider an instance of a scheduled query executing on 2021-12-01 00:00:00. For this instance, the @scheduled_runtime parameter is initialized to the timestamp 2021-12-01 00:00:00 when invoking the query. +- **sq_schedule_configuration** (String) Configuration for when the scheduled query is executed. +- **sq_scheduled_query_execution_role_arn** (String) The ARN for the IAM role that Timestream will assume when running the scheduled query. +- **sq_target_configuration** (String) Configuration of target store where scheduled query results are written to. ### Nested Schema for `error_report_configuration` Required: -- **s3_configuration** (Attributes) S3 configuration for where error reports will be placed, how they will be named, and how they will be encrypted. (see [below for nested schema](#nestedatt--error_report_configuration--s3_configuration)) +- **s3_configuration** (Attributes) Details on S3 location for error reports that result from running a query. (see [below for nested schema](#nestedatt--error_report_configuration--s3_configuration)) ### Nested Schema for `error_report_configuration.s3_configuration` Required: -- **bucket_name** (String) S3 bucket where error reports will be placed. -- **encryption_option** (String) How error reports will be encrypted. -- **object_key_prefix** (String) Prefix for error report names. +- **bucket_name** (String) Name of the S3 bucket under which error reports will be created. +- **encryption_option** (String) Encryption at rest options for the error reports. If no encryption option is specified, Timestream will choose SSE_S3 as default. +- **object_key_prefix** (String) Prefix for error report keys. @@ -74,7 +74,7 @@ Required: Required: -- **topic_arn** (String) SNS Topic to be notified upon scheduled query execution. +- **topic_arn** (String) SNS topic ARN that the scheduled query status notifications will be sent to. @@ -83,7 +83,7 @@ Required: Required: -- **schedule_expression** (String) The cron expression that indicates when the scheduled query is executed. +- **schedule_expression** (String) An expression that denotes when to trigger the scheduled query run. This can be a cron expression or a rate expression. @@ -100,28 +100,28 @@ Optional: Optional: -- **timestream_configuration** (Attributes) Timestream configuration of destination table to query. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration)) +- **timestream_configuration** (Attributes) Configuration needed to write data into the Timestream database and table. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration)) ### Nested Schema for `target_configuration.timestream_configuration` Optional: -- **database_name** (String) The source database to query. -- **dimension_mappings** (Attributes List) Mappings of dimension names to dimension value types. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--dimension_mappings)) -- **measure_name_column** (String) Name of the source measure names column. -- **mixed_measure_mappings** (Attributes List) Mapping of measure names and measure value columns from the source table to the destination table. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--mixed_measure_mappings)) -- **multi_measure_mappings** (Attributes) Mapping of measure value columns from the source table to the destination table. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--multi_measure_mappings)) -- **table_name** (String) The source table to query. -- **time_column** (String) Name of the "time" column. +- **database_name** (String) Name of Timestream database to which the query result will be written. +- **dimension_mappings** (Attributes List) This is to allow mapping column(s) from the query result to the dimension in the destination table. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--dimension_mappings)) +- **measure_name_column** (String) Name of the measure name column from the query result. +- **mixed_measure_mappings** (Attributes List) Specifies how to map measures to multi-measure records. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--mixed_measure_mappings)) +- **multi_measure_mappings** (Attributes) Only one of MixedMeasureMappings or MultiMeasureMappings is to be provided. MultiMeasureMappings can be used to ingest data as multi measures in the derived table. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--multi_measure_mappings)) +- **table_name** (String) Name of Timestream table that the query result will be written to. The table should be within the same database that is provided in Timestream configuration. +- **time_column** (String) Column from query result that should be used as the time column in destination table. Column type for this should be TIMESTAMP. ### Nested Schema for `target_configuration.timestream_configuration.dimension_mappings` Optional: -- **dimension_value_type** (String) Value type of the dimension column. -- **name** (String) Name of the dimension column. +- **dimension_value_type** (String) Type for the dimension. +- **name** (String) Column name from query result. @@ -129,20 +129,20 @@ Optional: Optional: -- **measure_name** (String) Name of the measure in source table. -- **measure_value_type** (String) Value type of the measure value column in the destination table. -- **multi_measure_attribute_mappings** (Attributes List) List of multi-measure value column mappings. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--mixed_measure_mappings--multi_measure_attribute_mappings)) -- **source_column** (String) Name of the measure value column in the source table. -- **target_measure_name** (String) Name of the measure in the destination table. +- **measure_name** (String) Refers to the value of the measure name in a result row. This field is required if MeasureNameColumn is provided. +- **measure_value_type** (String) Type of the value that is to be read from SourceColumn. If the mapping is for MULTI, use MeasureValueType.MULTI. +- **multi_measure_attribute_mappings** (Attributes List) Required. Attribute mappings to be used for mapping query results to ingest data for multi-measure attributes. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--mixed_measure_mappings--multi_measure_attribute_mappings)) +- **source_column** (String) This field refers to the source column from which the measure value is to be read for result materialization. +- **target_measure_name** (String) Target measure name to be used. If not provided, the target measure name by default would be MeasureName if provided, or SourceColumn otherwise. ### Nested Schema for `target_configuration.timestream_configuration.mixed_measure_mappings.target_measure_name` Optional: -- **measure_value_type** (String) Value type of the measure value column in the destination table. -- **source_column** (String) Name of the measure value column in the source table. -- **target_multi_measure_attribute_name** (String) Name of the measure value column in the destination table. +- **measure_value_type** (String) Value type of the measure value column to be read from the query result. +- **source_column** (String) Source measure value column in the query result where the attribute value is to be read. +- **target_multi_measure_attribute_name** (String) Custom name to be used for attribute name in derived table. If not provided, source column name would be used. @@ -151,17 +151,17 @@ Optional: Optional: -- **multi_measure_attribute_mappings** (Attributes List) List of multi-measure value column mappings. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--multi_measure_mappings--multi_measure_attribute_mappings)) -- **target_multi_measure_name** (String) Name of the multi-measure in the destination table. +- **multi_measure_attribute_mappings** (Attributes List) Required. Attribute mappings to be used for mapping query results to ingest data for multi-measure attributes. (see [below for nested schema](#nestedatt--target_configuration--timestream_configuration--multi_measure_mappings--multi_measure_attribute_mappings)) +- **target_multi_measure_name** (String) Name of the target multi-measure in the derived table. Required if MeasureNameColumn is not provided. If MeasureNameColumn is provided then the value from that column will be used as the multi-measure name. ### Nested Schema for `target_configuration.timestream_configuration.multi_measure_mappings.target_multi_measure_name` Optional: -- **measure_value_type** (String) Value type of the measure value column in the destination table. -- **source_column** (String) Name of the measure value column in the source table. -- **target_multi_measure_attribute_name** (String) Name of the measure value column in the destination table. +- **measure_value_type** (String) Value type of the measure value column to be read from the query result. +- **source_column** (String) Source measure value column in the query result where the attribute value is to be read. +- **target_multi_measure_attribute_name** (String) Custom name to be used for attribute name in derived table. If not provided, source column name would be used. ## Import diff --git a/examples/resources/awscc_appstream_application_entitlement_association/import.sh b/examples/resources/awscc_appstream_application_entitlement_association/import.sh new file mode 100644 index 0000000000..62a293e72d --- /dev/null +++ b/examples/resources/awscc_appstream_application_entitlement_association/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_appstream_application_entitlement_association.example \ No newline at end of file diff --git a/examples/resources/awscc_appstream_entitlement/import.sh b/examples/resources/awscc_appstream_entitlement/import.sh new file mode 100644 index 0000000000..3ae661f175 --- /dev/null +++ b/examples/resources/awscc_appstream_entitlement/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_appstream_entitlement.example \ No newline at end of file diff --git a/examples/resources/awscc_ec2_network_insights_access_scope/import.sh b/examples/resources/awscc_ec2_network_insights_access_scope/import.sh new file mode 100644 index 0000000000..1fc3162d3b --- /dev/null +++ b/examples/resources/awscc_ec2_network_insights_access_scope/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_ec2_network_insights_access_scope.example \ No newline at end of file diff --git a/examples/resources/awscc_ec2_network_insights_access_scope_analysis/import.sh b/examples/resources/awscc_ec2_network_insights_access_scope_analysis/import.sh new file mode 100644 index 0000000000..cc2e764066 --- /dev/null +++ b/examples/resources/awscc_ec2_network_insights_access_scope_analysis/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_ec2_network_insights_access_scope_analysis.example \ No newline at end of file diff --git a/examples/resources/awscc_forecast_dataset_group/import.sh b/examples/resources/awscc_forecast_dataset_group/import.sh new file mode 100644 index 0000000000..c86e84052c --- /dev/null +++ b/examples/resources/awscc_forecast_dataset_group/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_forecast_dataset_group.example \ No newline at end of file diff --git a/examples/resources/awscc_inspectorv2_filter/import.sh b/examples/resources/awscc_inspectorv2_filter/import.sh new file mode 100644 index 0000000000..77f94f5686 --- /dev/null +++ b/examples/resources/awscc_inspectorv2_filter/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_inspectorv2_filter.example \ No newline at end of file diff --git a/examples/resources/awscc_kinesisvideo_signaling_channel/import.sh b/examples/resources/awscc_kinesisvideo_signaling_channel/import.sh new file mode 100644 index 0000000000..06c13185bd --- /dev/null +++ b/examples/resources/awscc_kinesisvideo_signaling_channel/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_kinesisvideo_signaling_channel.example \ No newline at end of file diff --git a/examples/resources/awscc_kinesisvideo_stream/import.sh b/examples/resources/awscc_kinesisvideo_stream/import.sh new file mode 100644 index 0000000000..e744dad5b5 --- /dev/null +++ b/examples/resources/awscc_kinesisvideo_stream/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_kinesisvideo_stream.example \ No newline at end of file diff --git a/examples/resources/awscc_lightsail_alarm/import.sh b/examples/resources/awscc_lightsail_alarm/import.sh new file mode 100644 index 0000000000..335eee1563 --- /dev/null +++ b/examples/resources/awscc_lightsail_alarm/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_lightsail_alarm.example \ No newline at end of file diff --git a/examples/resources/awscc_lightsail_bucket/import.sh b/examples/resources/awscc_lightsail_bucket/import.sh new file mode 100644 index 0000000000..e5045f7224 --- /dev/null +++ b/examples/resources/awscc_lightsail_bucket/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_lightsail_bucket.example \ No newline at end of file diff --git a/examples/resources/awscc_lightsail_load_balancer/import.sh b/examples/resources/awscc_lightsail_load_balancer/import.sh new file mode 100644 index 0000000000..47b230601d --- /dev/null +++ b/examples/resources/awscc_lightsail_load_balancer/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_lightsail_load_balancer.example \ No newline at end of file diff --git a/examples/resources/awscc_lightsail_load_balancer_tls_certificate/import.sh b/examples/resources/awscc_lightsail_load_balancer_tls_certificate/import.sh new file mode 100644 index 0000000000..850d7dff75 --- /dev/null +++ b/examples/resources/awscc_lightsail_load_balancer_tls_certificate/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_lightsail_load_balancer_tls_certificate.example \ No newline at end of file diff --git a/examples/resources/awscc_route53resolver_resolver_rule_association/import.sh b/examples/resources/awscc_route53resolver_resolver_rule_association/import.sh new file mode 100644 index 0000000000..edd23b870a --- /dev/null +++ b/examples/resources/awscc_route53resolver_resolver_rule_association/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_route53resolver_resolver_rule_association.example \ No newline at end of file From a8bc34fbd89fe4b405061fda4167de91f6458b23 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 13 Jan 2022 16:51:49 -0500 Subject: [PATCH 6/6] Add CHANGELOG entries. --- CHANGELOG.md | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e5b0122c6c..1b7740128a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,45 @@ ## 0.10.0 (Unreleased) +FEATURES: + +* **New Data Source:** `awscc_appstream_application_entitlement_association` +* **New Data Source:** `awscc_appstream_entitlement` +* **New Data Source:** `awscc_ec2_host` +* **New Data Source:** `awscc_ec2_hosts` +* **New Data Source:** `awscc_ec2_network_insights_access_scope` +* **New Data Source:** `awscc_ec2_network_insights_access_scope_analyses` +* **New Data Source:** `awscc_ec2_network_insights_access_scope_analysis` +* **New Data Source:** `awscc_ec2_network_insights_access_scopes` +* **New Data Source:** `awscc_forecast_dataset_group` +* **New Data Source:** `awscc_forecast_dataset_groups` +* **New Data Source:** `awscc_inspectorv2_filter` +* **New Data Source:** `awscc_inspectorv2_filters` +* **New Data Source:** `awscc_kinesisvideo_signaling_channel` +* **New Data Source:** `awscc_kinesisvideo_stream` +* **New Data Source:** `awscc_lightsail_alarm` +* **New Data Source:** `awscc_lightsail_alarms` +* **New Data Source:** `awscc_lightsail_bucket` +* **New Data Source:** `awscc_lightsail_buckets` +* **New Data Source:** `awscc_lightsail_load_balancer` +* **New Data Source:** `awscc_lightsail_load_balancer_tls_certificate` +* **New Data Source:** `awscc_lightsail_load_balancers` +* **New Data Source:** `awscc_route53resolver_resolver_rule_association` +* **New Data Source:** `awscc_route53resolver_resolver_rule_associations` +* **New Resource:** `awscc_appstream_application_entitlement_association` +* **New Resource:** `awscc_appstream_entitlement` +* **New Resource:** `awscc_ec2_host` +* **New Resource:** `awscc_ec2_network_insights_access_scope` +* **New Resource:** `awscc_ec2_network_insights_access_scope_analysis` +* **New Resource:** `awscc_forecast_dataset_group` +* **New Resource:** `awscc_inspectorv2_filter` +* **New Resource:** `awscc_kinesisvideo_signaling_channel` +* **New Resource:** `awscc_kinesisvideo_stream` +* **New Resource:** `awscc_lightsail_alarm` +* **New Resource:** `awscc_lightsail_bucket` +* **New Resource:** `awscc_lightsail_load_balancer` +* **New Resource:** `awscc_lightsail_load_balancer_tls_certificate` +* **New Resource:** `awscc_route53resolver_resolver_rule_association` + BUG FIXES: * Prevent errors like `Unable to set Terraform State Unknown values from Cloud Control API Properties.` during `terraform apply` ([#331](https://github.com/hashicorp/terraform-provider-awscc/issues/331))