From 61379c1f96d79ffe877b112eb97bd96049afd691 Mon Sep 17 00:00:00 2001 From: kddejong <36457093+kddejong@users.noreply.github.com> Date: Sun, 26 Oct 2025 00:16:45 +0000 Subject: [PATCH] CloudFormation Template Schema upgrade https://github.com/aws-cloudformation/cloudformation-template-schema/tree/main --- server/schema/resources.schema.json | 426 ++++- .../schema/resources/aws-amazonmq-broker.json | 15 - ...licationsignals-groupingconfiguration.json | 119 ++ .../resources/aws-aps-anomalydetector.json | 292 ++++ .../resources/aws-arcregionswitch-plan.json | 22 +- .../resources/aws-backup-backupplan.json | 342 ++-- .../aws-backup-restoretestingplan.json | 223 +-- .../schema/resources/aws-bedrock-agent.json | 18 +- .../resources/aws-bedrock-guardrail.json | 4 +- .../aws-bedrockagentcore-browsercustom.json | 70 +- ...edrockagentcore-codeinterpretercustom.json | 70 +- .../aws-bedrockagentcore-gateway.json | 375 ++++ .../aws-bedrockagentcore-gatewaytarget.json | 557 ++++++ .../aws-bedrockagentcore-memory.json | 938 ++++++++++ .../aws-bedrockagentcore-runtime.json | 60 +- .../aws-billingconductor-billinggroup.json | 2 +- .../aws-billingconductor-pricingplan.json | 4 +- .../aws-cloudfront-anycastiplist.json | 28 + .../aws-cloudfront-distribution.json | 11 +- .../resources/aws-cloudfront-publickey.json | 6 +- .../resources/aws-cloudfront-vpcorigin.json | 11 + .../resources/aws-connect-emailaddress.json | 30 + .../resources/aws-connect-evaluationform.json | 971 +++++++---- .../aws-customerprofiles-objecttype.json | 13 +- .../schema/resources/aws-datazone-domain.json | 2 +- ...one-environmentblueprintconfiguration.json | 2 +- .../aws-datazone-projectprofile.json | 4 +- .../schema/resources/aws-docdb-dbcluster.json | 3 +- .../resources/aws-dynamodb-globaltable.json | 28 +- .../schema/resources/aws-dynamodb-table.json | 9 - .../aws-ec2-capacitymanagerdataexport.json | 147 ++ server/schema/resources/aws-ec2-ec2fleet.json | 1228 ++++++------- .../schema/resources/aws-ec2-natgateway.json | 48 +- .../schema/resources/aws-ec2-spotfleet.json | 1552 ++++++++--------- server/schema/resources/aws-ec2-subnet.json | 4 + .../schema/resources/aws-ecr-repository.json | 12 +- server/schema/resources/aws-ecs-cluster.json | 4 +- ...s-clustercapacityproviderassociations.json | 2 +- server/schema/resources/aws-ecs-service.json | 64 +- .../resources/aws-ecs-taskdefinition.json | 4 +- .../aws-elasticloadbalancingv2-listener.json | 16 +- ...s-elasticloadbalancingv2-listenerrule.json | 122 +- .../schema/resources/aws-events-eventbus.json | 14 +- .../resources/aws-events-eventbuspolicy.json | 133 +- .../schema/resources/aws-fsx-filesystem.json | 4 + .../resources/aws-imagebuilder-component.json | 312 ++-- .../resources/aws-imagebuilder-image.json | 141 +- .../aws-imagebuilder-imagepipeline.json | 500 +++--- .../aws-imagebuilder-imagerecipe.json | 440 ++--- .../resources/aws-imagebuilder-workflow.json | 258 +-- .../schema/resources/aws-lambda-version.json | 5 + .../resources/aws-lightsail-disksnapshot.json | 276 +++ .../aws-location-geofencecollection.json | 22 +- server/schema/resources/aws-location-map.json | 22 +- .../resources/aws-location-placeindex.json | 22 +- .../aws-location-routecalculator.json | 22 +- .../resources/aws-location-tracker.json | 22 +- .../aws-logs-deliverydestination.json | 17 +- .../resources/aws-logs-metricfilter.json | 17 + .../aws-logs-subscriptionfilter.json | 17 + .../resources/aws-medialive-channel.json | 60 + .../resources/aws-medialive-cluster.json | 1 + .../aws-mediapackagev2-originendpoint.json | 82 +- ...aws-mediatailor-playbackconfiguration.json | 18 +- .../resources/aws-neptune-dbinstance.json | 5 + .../aws-neptune-eventsubscription.json | 135 +- ...yadmin-organizationcentralizationrule.json | 303 ++++ .../resources/aws-organizations-account.json | 25 + .../schema/resources/aws-osis-pipeline.json | 40 +- server/schema/resources/aws-pcs-cluster.json | 522 +++--- server/schema/resources/aws-pcs-queue.json | 341 ++-- .../aws-quicksight-custompermissions.json | 206 +-- .../resources/aws-quicksight-dashboard.json | 13 + .../schema/resources/aws-rds-dbcluster.json | 4 +- .../schema/resources/aws-rtbfabric-link.json | 364 ++++ .../aws-rtbfabric-requestergateway.json | 291 ++++ .../aws-rtbfabric-respondergateway.json | 437 +++++ server/schema/resources/aws-s3-bucket.json | 108 +- .../schema/resources/aws-sagemaker-app.json | 124 +- .../resources/aws-sagemaker-cluster.json | 28 + .../resources/aws-sagemaker-domain.json | 85 +- .../resources/aws-sagemaker-userprofile.json | 124 +- ...ecatalog-launchnotificationconstraint.json | 54 +- .../aws-servicecatalog-portfolioshare.json | 75 +- ...rvicecatalog-resourceupdateconstraint.json | 69 +- ...s-servicecatalog-tagoptionassociation.json | 63 +- .../resources/aws-ses-mailmanagerarchive.json | 1 + server/schema/resources/aws-sqs-queue.json | 2 +- ...aws-ssmquicksetup-lifecycleautomation.json | 150 ++ .../resources/aws-synthetics-canary.json | 27 +- .../schema/resources/aws-transfer-server.json | 9 +- .../aws-vpclattice-accesslogsubscription.json | 6 +- .../aws-vpclattice-resourcegateway.json | 7 +- .../aws-vpclattice-resourcepolicy.json | 2 +- .../schema/resources/aws-wisdom-aiprompt.json | 8 +- 95 files changed, 10159 insertions(+), 3732 deletions(-) create mode 100644 server/schema/resources/aws-applicationsignals-groupingconfiguration.json create mode 100644 server/schema/resources/aws-aps-anomalydetector.json create mode 100644 server/schema/resources/aws-bedrockagentcore-gateway.json create mode 100644 server/schema/resources/aws-bedrockagentcore-gatewaytarget.json create mode 100644 server/schema/resources/aws-bedrockagentcore-memory.json create mode 100644 server/schema/resources/aws-ec2-capacitymanagerdataexport.json create mode 100644 server/schema/resources/aws-lightsail-disksnapshot.json create mode 100644 server/schema/resources/aws-observabilityadmin-organizationcentralizationrule.json create mode 100644 server/schema/resources/aws-rtbfabric-link.json create mode 100644 server/schema/resources/aws-rtbfabric-requestergateway.json create mode 100644 server/schema/resources/aws-rtbfabric-respondergateway.json create mode 100644 server/schema/resources/aws-ssmquicksetup-lifecycleautomation.json diff --git a/server/schema/resources.schema.json b/server/schema/resources.schema.json index 82e70ad0..00824e1b 100644 --- a/server/schema/resources.schema.json +++ b/server/schema/resources.schema.json @@ -3284,8 +3284,7 @@ } }, "required": [ - "Type", - "Properties" + "Type" ] }, { @@ -3449,7 +3448,7 @@ }, "AWS_ServiceCatalog_ResourceUpdateConstraint": { "type": "object", - "markdownDescription": "Resource Type definition for AWS::ServiceCatalog::ResourceUpdateConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html)", + "markdownDescription": "Resource type definition for AWS::ServiceCatalog::ResourceUpdateConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html)", "allOf": [ { "type": "object", @@ -3460,7 +3459,7 @@ "AWS::ServiceCatalog::ResourceUpdateConstraint" ], "markdownEnumDescriptions": [ - "Resource Type definition for AWS::ServiceCatalog::ResourceUpdateConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html)" + "Resource type definition for AWS::ServiceCatalog::ResourceUpdateConstraint \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html)" ] }, "Properties": { @@ -12220,7 +12219,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ] }, { @@ -13496,6 +13496,37 @@ ], "additionalProperties": false }, + "AWS_ApplicationSignals_GroupingConfiguration": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::ApplicationSignals::GroupingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-groupingconfiguration.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::ApplicationSignals::GroupingConfiguration" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::ApplicationSignals::GroupingConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-groupingconfiguration.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-applicationsignals-groupingconfiguration.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, "AWS_ApiGatewayV2_ApiMapping": { "type": "object", "markdownDescription": "The ``AWS::ApiGatewayV2::ApiMapping`` resource contains an API mapping. An API mapping relates a path of your custom domain name to a stage of your API. A custom domain name can have multiple API mappings, but the paths can't overlap. A custom domain can map only to APIs of the same protocol type. For more information, see [CreateApiMapping](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/domainnames-domainname-apimappings.html#CreateApiMapping) in the *Amazon API Gateway V2 API Reference*. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html)", @@ -17663,6 +17694,37 @@ ], "additionalProperties": false }, + "AWS_RTBFabric_Link": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::RTBFabric::Link Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-link.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::RTBFabric::Link" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::RTBFabric::Link Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-link.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-rtbfabric-link.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, "AWS_ODB_CloudExadataInfrastructure": { "type": "object", "markdownDescription": "The AWS::ODB::CloudExadataInfrastructure resource creates an Exadata Infrastructure \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-cloudexadatainfrastructure.html)", @@ -19516,6 +19578,37 @@ ], "additionalProperties": false }, + "AWS_Lightsail_DiskSnapshot": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::Lightsail::DiskSnapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disksnapshot.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::Lightsail::DiskSnapshot" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::Lightsail::DiskSnapshot \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disksnapshot.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-lightsail-disksnapshot.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, "AWS_ApiGateway_Method": { "type": "object", "markdownDescription": "The ``AWS::ApiGateway::Method`` resource creates API Gateway methods that define the parameters and body that clients must send in their requests. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html)", @@ -24978,6 +25071,37 @@ ], "additionalProperties": false }, + "AWS_BedrockAgentCore_Gateway": { + "type": "object", + "markdownDescription": "Definition of AWS::BedrockAgentCore::Gateway Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-gateway.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::BedrockAgentCore::Gateway" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::BedrockAgentCore::Gateway Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-gateway.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-bedrockagentcore-gateway.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, "AWS_MemoryDB_User": { "type": "object", "markdownDescription": "Resource Type definition for AWS::MemoryDB::User \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-user.html)", @@ -25751,6 +25875,37 @@ ], "additionalProperties": false }, + "AWS_RTBFabric_ResponderGateway": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::RTBFabric::ResponderGateway Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-respondergateway.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::RTBFabric::ResponderGateway" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::RTBFabric::ResponderGateway Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-respondergateway.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-rtbfabric-respondergateway.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, "AWS_ImageBuilder_InfrastructureConfiguration": { "type": "object", "markdownDescription": "Resource schema for AWS::ImageBuilder::InfrastructureConfiguration \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html)", @@ -26835,7 +26990,7 @@ }, "AWS_VpcLattice_ResourceGateway": { "type": "object", - "markdownDescription": "Creates a resource gateway for a service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourcegateway.html)", + "markdownDescription": "Creates a resource gateway for a service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourcegateway.html)", "allOf": [ { "type": "object", @@ -26846,7 +27001,7 @@ "AWS::VpcLattice::ResourceGateway" ], "markdownEnumDescriptions": [ - "Creates a resource gateway for a service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourcegateway.html)" + "Creates a resource gateway for a service. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-vpclattice-resourcegateway.html)" ] }, "Properties": { @@ -27789,6 +27944,37 @@ ], "additionalProperties": false }, + "AWS_EC2_CapacityManagerDataExport": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::EC2::CapacityManagerDataExport \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacitymanagerdataexport.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::EC2::CapacityManagerDataExport" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::EC2::CapacityManagerDataExport \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacitymanagerdataexport.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ec2-capacitymanagerdataexport.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, "AWS_S3Express_BucketPolicy": { "type": "object", "markdownDescription": "Resource Type definition for AWS::S3Express::BucketPolicy. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-bucketpolicy.html)", @@ -31248,6 +31434,37 @@ ], "additionalProperties": false }, + "AWS_BedrockAgentCore_GatewayTarget": { + "type": "object", + "markdownDescription": "Definition of AWS::BedrockAgentCore::GatewayTarget Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-gatewaytarget.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::BedrockAgentCore::GatewayTarget" + ], + "markdownEnumDescriptions": [ + "Definition of AWS::BedrockAgentCore::GatewayTarget Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-gatewaytarget.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-bedrockagentcore-gatewaytarget.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, "AWS_RAM_ResourceShare": { "type": "object", "markdownDescription": "Resource type definition for AWS::RAM::ResourceShare \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ram-resourceshare.html)", @@ -32665,6 +32882,37 @@ ], "additionalProperties": false }, + "AWS_SSMQuickSetup_LifecycleAutomation": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::SSMQuickSetup::LifecycleAutomation that executes SSM Automation documents in response to CloudFormation lifecycle events. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmquicksetup-lifecycleautomation.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::SSMQuickSetup::LifecycleAutomation" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::SSMQuickSetup::LifecycleAutomation that executes SSM Automation documents in response to CloudFormation lifecycle events. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmquicksetup-lifecycleautomation.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-ssmquicksetup-lifecycleautomation.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, "AWS_MediaPackageV2_OriginEndpointPolicy": { "type": "object", "markdownDescription": "

Represents a resource policy that allows or denies access to an origin endpoint.

\n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackagev2-originendpointpolicy.html)", @@ -35440,6 +35688,37 @@ ], "additionalProperties": false }, + "AWS_RTBFabric_RequesterGateway": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::RTBFabric::RequesterGateway Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-requestergateway.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::RTBFabric::RequesterGateway" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::RTBFabric::RequesterGateway Resource Type. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rtbfabric-requestergateway.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-rtbfabric-requestergateway.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, "AWS_ODB_CloudAutonomousVmCluster": { "type": "object", "markdownDescription": "The AWS::ODB::CloudAutonomousVmCluster resource creates a Cloud Autonomous VM Cluster \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-odb-cloudautonomousvmcluster.html)", @@ -35781,7 +36060,7 @@ }, "AWS_CloudFront_PublicKey": { "type": "object", - "markdownDescription": "A public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-publickey.html)", + "markdownDescription": "A public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).\n CloudFront supports signed URLs and signed cookies with RSA 2048 or ECDSA 256 key signatures. Field-level encryption is only compatible with RSA 2048 key signatures. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-publickey.html)", "allOf": [ { "type": "object", @@ -35792,7 +36071,7 @@ "AWS::CloudFront::PublicKey" ], "markdownEnumDescriptions": [ - "A public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html). \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-publickey.html)" + "A public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).\n CloudFront supports signed URLs and signed cookies with RSA 2048 or ECDSA 256 key signatures. Field-level encryption is only compatible with RSA 2048 key signatures. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-publickey.html)" ] }, "Properties": { @@ -36857,6 +37136,37 @@ ], "additionalProperties": false }, + "AWS_BedrockAgentCore_Memory": { + "type": "object", + "markdownDescription": "Resource Type definition for AWS::BedrockAgentCore::Memory \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-memory.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::BedrockAgentCore::Memory" + ], + "markdownEnumDescriptions": [ + "Resource Type definition for AWS::BedrockAgentCore::Memory \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-memory.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-bedrockagentcore-memory.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, "AWS_DataZone_EnvironmentBlueprintConfiguration": { "type": "object", "markdownDescription": "Definition of AWS::DataZone::EnvironmentBlueprintConfiguration Resource Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentblueprintconfiguration.html)", @@ -37906,6 +38216,37 @@ ], "additionalProperties": false }, + "AWS_ObservabilityAdmin_OrganizationCentralizationRule": { + "type": "object", + "markdownDescription": "Resource schema for AWS:ObservabilityAdmin:OrganizationCentralizationRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-organizationcentralizationrule.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::ObservabilityAdmin::OrganizationCentralizationRule" + ], + "markdownEnumDescriptions": [ + "Resource schema for AWS:ObservabilityAdmin:OrganizationCentralizationRule \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-observabilityadmin-organizationcentralizationrule.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-observabilityadmin-organizationcentralizationrule.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, "AWS_EC2_IPAM": { "type": "object", "markdownDescription": "Resource Schema of AWS::EC2::IPAM Type \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html)", @@ -43576,6 +43917,37 @@ ], "additionalProperties": false }, + "AWS_APS_AnomalyDetector": { + "type": "object", + "markdownDescription": "AnomalyDetector schema for cloudformation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-anomalydetector.html)", + "allOf": [ + { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "AWS::APS::AnomalyDetector" + ], + "markdownEnumDescriptions": [ + "AnomalyDetector schema for cloudformation. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-anomalydetector.html)" + ] + }, + "Properties": { + "$ref": "resources/aws-aps-anomalydetector.json" + } + }, + "required": [ + "Type", + "Properties" + ] + }, + { + "$ref": "resource.attributes.schema.json#/definitions/ResourceAttributes" + } + ], + "additionalProperties": false + }, "AWS_NetworkManager_CustomerGatewayAssociation": { "type": "object", "markdownDescription": "The AWS::NetworkManager::CustomerGatewayAssociation type associates a customer gateway with a device and optionally, with a link. \n[Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-customergatewayassociation.html)", @@ -46534,6 +46906,9 @@ { "$ref": "#/definitions/AWS_KMS_Alias" }, + { + "$ref": "#/definitions/AWS_ApplicationSignals_GroupingConfiguration" + }, { "$ref": "#/definitions/AWS_ApiGatewayV2_ApiMapping" }, @@ -46939,6 +47314,9 @@ { "$ref": "#/definitions/AWS_AutoScaling_ScalingPolicy" }, + { + "$ref": "#/definitions/AWS_RTBFabric_Link" + }, { "$ref": "#/definitions/AWS_ODB_CloudExadataInfrastructure" }, @@ -47119,6 +47497,9 @@ { "$ref": "#/definitions/AWS_EC2_VPNGatewayRoutePropagation" }, + { + "$ref": "#/definitions/AWS_Lightsail_DiskSnapshot" + }, { "$ref": "#/definitions/AWS_ApiGateway_Method" }, @@ -47650,6 +48031,9 @@ { "$ref": "#/definitions/AWS_EFS_FileSystem" }, + { + "$ref": "#/definitions/AWS_BedrockAgentCore_Gateway" + }, { "$ref": "#/definitions/AWS_MemoryDB_User" }, @@ -47725,6 +48109,9 @@ { "$ref": "#/definitions/AWS_CleanRooms_IdMappingTable" }, + { + "$ref": "#/definitions/AWS_RTBFabric_ResponderGateway" + }, { "$ref": "#/definitions/AWS_ImageBuilder_InfrastructureConfiguration" }, @@ -47923,6 +48310,9 @@ { "$ref": "#/definitions/AWS_DataZone_SubscriptionTarget" }, + { + "$ref": "#/definitions/AWS_EC2_CapacityManagerDataExport" + }, { "$ref": "#/definitions/AWS_S3Express_BucketPolicy" }, @@ -48259,6 +48649,9 @@ { "$ref": "#/definitions/AWS_OpenSearchServerless_VpcEndpoint" }, + { + "$ref": "#/definitions/AWS_BedrockAgentCore_GatewayTarget" + }, { "$ref": "#/definitions/AWS_RAM_ResourceShare" }, @@ -48397,6 +48790,9 @@ { "$ref": "#/definitions/AWS_IoTTwinMaker_Scene" }, + { + "$ref": "#/definitions/AWS_SSMQuickSetup_LifecycleAutomation" + }, { "$ref": "#/definitions/AWS_MediaPackageV2_OriginEndpointPolicy" }, @@ -48667,6 +49063,9 @@ { "$ref": "#/definitions/AWS_Route53RecoveryControl_SafetyRule" }, + { + "$ref": "#/definitions/AWS_RTBFabric_RequesterGateway" + }, { "$ref": "#/definitions/AWS_ODB_CloudAutonomousVmCluster" }, @@ -48805,6 +49204,9 @@ { "$ref": "#/definitions/AWS_MediaConnect_Flow" }, + { + "$ref": "#/definitions/AWS_BedrockAgentCore_Memory" + }, { "$ref": "#/definitions/AWS_DataZone_EnvironmentBlueprintConfiguration" }, @@ -48907,6 +49309,9 @@ { "$ref": "#/definitions/AWS_EC2_Route" }, + { + "$ref": "#/definitions/AWS_ObservabilityAdmin_OrganizationCentralizationRule" + }, { "$ref": "#/definitions/AWS_EC2_IPAM" }, @@ -49459,6 +49864,9 @@ { "$ref": "#/definitions/AWS_AmplifyUIBuilder_Theme" }, + { + "$ref": "#/definitions/AWS_APS_AnomalyDetector" + }, { "$ref": "#/definitions/AWS_NetworkManager_CustomerGatewayAssociation" }, diff --git a/server/schema/resources/aws-amazonmq-broker.json b/server/schema/resources/aws-amazonmq-broker.json index 83f2828e..d660fa06 100644 --- a/server/schema/resources/aws-amazonmq-broker.json +++ b/server/schema/resources/aws-amazonmq-broker.json @@ -77,21 +77,6 @@ }, "AuthenticationStrategy": { "type": "string", - "anyOf": [ - { - "enum": [ - "SIMPLE", - "LDAP" - ], - "type": "string" - }, - { - "pattern": "^[Ss][Ii][Mm][Pp][Ll][Ee]$" - }, - { - "pattern": "^[Ll][Dd][Aa][Pp]$" - } - ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "LdapServerMetadata": { diff --git a/server/schema/resources/aws-applicationsignals-groupingconfiguration.json b/server/schema/resources/aws-applicationsignals-groupingconfiguration.json new file mode 100644 index 00000000..ebe17cad --- /dev/null +++ b/server/schema/resources/aws-applicationsignals-groupingconfiguration.json @@ -0,0 +1,119 @@ +{ + "typeName": "AWS::ApplicationSignals::GroupingConfiguration", + "description": "Resource Type definition for AWS::ApplicationSignals::GroupingConfiguration", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-applicationsignals", + "definitions": { + "AccountId": { + "description": "The identifier for the specified AWS account.", + "type": "string", + "maxLength": 12, + "minLength": 12, + "markdownDescription": "The identifier for the specified AWS account.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nMaximum Length: 12 \nPattern: ^[0-9]{12}$ \nUpdate requires: No interruption\n" + }, + "GroupingString": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "GroupingAttributeDefinition": { + "type": "object", + "properties": { + "GroupingName": { + "$ref": "#/definitions/GroupingString" + }, + "GroupingSourceKeys": { + "type": "array", + "insertionOrder": true, + "minItems": 1, + "items": { + "$ref": "#/definitions/GroupingString" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "DefaultGroupingValue": { + "$ref": "#/definitions/GroupingString" + } + }, + "required": [ + "GroupingName", + "GroupingSourceKeys" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GroupingAttributeDefinitions": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GroupingAttributeDefinition" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Timestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "properties": { + "GroupingAttributeDefinitions": { + "$ref": "#/definitions/GroupingAttributeDefinitions" + }, + "UpdatedAt": { + "$ref": "#/definitions/Timestamp" + }, + "AccountId": { + "$ref": "#/definitions/AccountId" + } + }, + "additionalProperties": false, + "required": [ + "GroupingAttributeDefinitions" + ], + "readOnlyProperties": [ + "/properties/UpdatedAt", + "/properties/AccountId" + ], + "primaryIdentifier": [ + "/properties/AccountId" + ], + "handlers": { + "create": { + "permissions": [ + "application-signals:PutGroupingConfiguration", + "application-signals:ListGroupingAttributeDefinitions" + ] + }, + "read": { + "permissions": [ + "application-signals:ListGroupingAttributeDefinitions" + ] + }, + "update": { + "permissions": [ + "application-signals:PutGroupingConfiguration", + "application-signals:ListGroupingAttributeDefinitions" + ] + }, + "delete": { + "permissions": [ + "application-signals:DeleteGroupingConfiguration", + "application-signals:ListGroupingAttributeDefinitions" + ] + }, + "list": { + "permissions": [] + } + }, + "tagging": { + "taggable": false + }, + "attributes": { + "UpdatedAt": { + "$ref": "#/definitions/Timestamp" + }, + "AccountId": { + "$ref": "#/definitions/AccountId" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-aps-anomalydetector.json b/server/schema/resources/aws-aps-anomalydetector.json new file mode 100644 index 00000000..15af67ed --- /dev/null +++ b/server/schema/resources/aws-aps-anomalydetector.json @@ -0,0 +1,292 @@ +{ + "typeName": "AWS::APS::AnomalyDetector", + "description": "AnomalyDetector schema for cloudformation.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-aps", + "definitions": { + "Tag": { + "description": "A key-value pair to associate a tag level security for the 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, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "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, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate a tag level security for the resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Label": { + "description": "A key-value pair to provide meta-data and multi-dimensional data analysis for filtering and aggregation.", + "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, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "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, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to provide meta-data and multi-dimensional data analysis for filtering and aggregation.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MissingDataAction": { + "properties": { + "MarkAsAnomaly": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Skip": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "MarkAsAnomaly" + ] + }, + { + "required": [ + "Skip" + ] + } + ] + }, + "IgnoreNearExpected": { + "properties": { + "Amount": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: Number \nUpdate requires: No interruption\n" + }, + "Ratio": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: Number \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Amount" + ] + }, + { + "required": [ + "Ratio" + ] + } + ] + }, + "RandomCutForestConfiguration": { + "type": "object", + "properties": { + "Query": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "ShingleSize": { + "type": "integer", + "minimum": 2, + "maximum": 1024, + "default": 8, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "SampleSize": { + "type": "integer", + "minimum": 256, + "maximum": 1024, + "default": 256, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "IgnoreNearExpectedFromAbove": { + "$ref": "#/definitions/IgnoreNearExpected" + }, + "IgnoreNearExpectedFromBelow": { + "$ref": "#/definitions/IgnoreNearExpected" + } + }, + "required": [ + "Query" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AnomalyDetectorConfiguration": { + "type": "object", + "properties": { + "RandomCutForest": { + "$ref": "#/definitions/RandomCutForestConfiguration" + } + }, + "required": [ + "RandomCutForest" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Workspace": { + "description": "Required to identify a specific APS Workspace associated with this Anomaly Detector.", + "type": "string", + "markdownDescription": "Required to identify a specific APS Workspace associated with this Anomaly Detector.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:(aws|aws-us-gov|aws-cn):aps:[a-z0-9-]+:[0-9]+:workspace/[a-zA-Z0-9-]+$ \nUpdate requires: Replacement\n" + }, + "Alias": { + "description": "The AnomalyDetector alias.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "The AnomalyDetector alias.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: Replacement\n" + }, + "EvaluationIntervalInSeconds": { + "description": "The AnomalyDetector period of detection and metric generation.", + "type": "integer", + "default": 60, + "markdownDescription": "The AnomalyDetector period of detection and metric generation.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Arn": { + "description": "The AnomalyDetector ARN.", + "type": "string", + "markdownDescription": "The AnomalyDetector ARN.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-us-gov|aws-cn):aps:[a-z0-9-]+:[0-9]+:anomalydetector/[a-zA-Z0-9-]+/[0-9A-Za-z][-.0-9A-Z_a-z]*$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Labels": { + "description": "An array of key-value pairs to provide meta-data.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Label" + }, + "markdownDescription": "An array of key-value pairs to provide meta-data.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "MissingDataAction": { + "description": "The action to perform when running the expression returns no data.", + "$ref": "#/definitions/MissingDataAction", + "markdownDescription": "The action to perform when running the expression returns no data.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Configuration": { + "description": "Determines the anomaly detector's algorithm and its configuration.", + "$ref": "#/definitions/AnomalyDetectorConfiguration", + "markdownDescription": "Determines the anomaly detector's algorithm and its configuration.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Workspace", + "Configuration", + "Alias" + ], + "createOnlyProperties": [ + "/properties/Alias", + "/properties/Workspace" + ], + "readOnlyProperties": [ + "/properties/Arn" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "aps:TagResource", + "aps:UntagResource" + ] + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "handlers": { + "create": { + "permissions": [ + "aps:CreateAnomalyDetector", + "aps:DescribeAnomalyDetector", + "aps:TagResource" + ] + }, + "read": { + "permissions": [ + "aps:DescribeAnomalyDetector", + "aps:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "aps:PutAnomalyDetector", + "aps:DescribeAnomalyDetector", + "aps:TagResource", + "aps:UntagResource", + "aps:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "aps:DeleteAnomalyDetector", + "aps:DescribeAnomalyDetector" + ] + }, + "list": { + "permissions": [ + "aps:ListAnomalyDetectors", + "aps:ListTagsForResource" + ], + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/Workspace" + } + }, + "required": [ + "Arn" + ] + } + } + }, + "attributes": { + "Arn": { + "description": "The AnomalyDetector ARN.", + "type": "string", + "markdownDescription": "The AnomalyDetector ARN.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws|aws-us-gov|aws-cn):aps:[a-z0-9-]+:[0-9]+:anomalydetector/[a-zA-Z0-9-]+/[0-9A-Za-z][-.0-9A-Z_a-z]*$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-arcregionswitch-plan.json b/server/schema/resources/aws-arcregionswitch-plan.json index 1d628458..91620dd5 100644 --- a/server/schema/resources/aws-arcregionswitch-plan.json +++ b/server/schema/resources/aws-arcregionswitch-plan.json @@ -1187,6 +1187,14 @@ }, "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PlanHealthChecks": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } }, "required": [ @@ -1201,7 +1209,8 @@ "/properties/Owner", "/properties/Version", "/properties/HealthChecksForPlan", - "/properties/Route53HealthChecks" + "/properties/Route53HealthChecks", + "/properties/PlanHealthChecks" ], "createOnlyProperties": [ "/properties/Name", @@ -1210,7 +1219,8 @@ "/properties/Regions" ], "deprecatedProperties": [ - "/properties/HealthChecksForPlan" + "/properties/HealthChecksForPlan", + "/properties/Route53HealthChecks" ], "primaryIdentifier": [ "/properties/Arn" @@ -1310,6 +1320,14 @@ }, "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PlanHealthChecks": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-backup-backupplan.json b/server/schema/resources/aws-backup-backupplan.json index c92301d6..a042df34 100644 --- a/server/schema/resources/aws-backup-backupplan.json +++ b/server/schema/resources/aws-backup-backupplan.json @@ -1,109 +1,103 @@ { - "typeName": "AWS::Backup::BackupPlan", - "description": "Resource Type definition for AWS::Backup::BackupPlan", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "properties": { - "BackupPlan": { - "$ref": "#/definitions/BackupPlanResourceType" - }, - "BackupPlanTags": { - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^.{1,128}$": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "BackupPlanArn": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "BackupPlanId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "VersionId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - } - }, - "additionalProperties": false, - "required": [ - "BackupPlan" - ], "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/BackupPlanTags", "permissions": [ "backup:TagResource", "backup:UntagResource", "backup:ListTags" - ] + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/BackupPlanTags", + "cloudFormationSystemTags": true }, + "handlers": { + "read": { + "permissions": [ + "backup:GetBackupPlan", + "backup:ListTags" + ] + }, + "create": { + "permissions": [ + "backup:GetBackupPlan", + "backup:TagResource", + "backup:CreateBackupPlan" + ] + }, + "update": { + "permissions": [ + "backup:UpdateBackupPlan", + "backup:ListTags", + "backup:TagResource", + "backup:UntagResource" + ] + }, + "list": { + "permissions": [ + "backup:ListBackupPlans" + ] + }, + "delete": { + "permissions": [ + "backup:GetBackupPlan", + "backup:DeleteBackupPlan" + ] + } + }, + "typeName": "AWS::Backup::BackupPlan", "readOnlyProperties": [ "/properties/BackupPlanId", "/properties/VersionId", "/properties/BackupPlanArn" ], + "description": "Resource Type definition for AWS::Backup::BackupPlan", + "additionalProperties": false, "primaryIdentifier": [ "/properties/BackupPlanId" ], "definitions": { - "BackupPlanResourceType": { - "type": "object", + "ResourceTypes": { + "uniqueItems": true, + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/ResourceType" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CopyActionResourceType": { "additionalProperties": false, + "type": "object", "properties": { - "BackupPlanName": { + "Lifecycle": { + "$ref": "#/definitions/LifecycleResourceType" + }, + "DestinationBackupVaultArn": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "AdvancedBackupSettings": { - "type": "array", - "insertionOrder": true, - "uniqueItems": false, - "items": { - "$ref": "#/definitions/AdvancedBackupSettingResourceType" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "BackupPlanRule": { - "type": "array", - "insertionOrder": true, - "uniqueItems": false, - "items": { - "$ref": "#/definitions/BackupRuleResourceType" - }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" } }, "required": [ - "BackupPlanName", - "BackupPlanRule" + "DestinationBackupVaultArn" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "BackupRuleResourceType": { + "IndexActionsResourceType": { + "additionalProperties": false, "type": "object", + "properties": { + "ResourceTypes": { + "$ref": "#/definitions/ResourceTypes" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "BackupRuleResourceType": { "additionalProperties": false, + "type": "object", "properties": { - "RuleName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "TargetBackupVault": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "StartWindowMinutes": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - }, "CompletionWindowMinutes": { "type": "number", "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" @@ -112,45 +106,57 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "ScheduleExpressionTimezone": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "IndexActions": { - "type": "array", - "insertionOrder": true, - "uniqueItems": false, - "items": { - "$ref": "#/definitions/IndexActionsResourceType" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, "RecoveryPointTags": { - "type": "object", - "additionalProperties": false, "patternProperties": { "^.{1,128}$": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, + "additionalProperties": false, + "type": "object", "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "CopyActions": { - "type": "array", - "insertionOrder": true, "uniqueItems": false, + "insertionOrder": true, + "type": "array", "items": { "$ref": "#/definitions/CopyActionResourceType" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "Lifecycle": { - "$ref": "#/definitions/LifecycleResourceType" - }, "EnableContinuousBackup": { "type": "boolean", "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Lifecycle": { + "$ref": "#/definitions/LifecycleResourceType" + }, + "IndexActions": { + "uniqueItems": false, + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/IndexActionsResourceType" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "TargetBackupVault": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "StartWindowMinutes": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "ScheduleExpressionTimezone": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "RuleName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ @@ -159,121 +165,115 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "AdvancedBackupSettingResourceType": { - "type": "object", + "ResourceType": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "BackupPlanResourceType": { "additionalProperties": false, + "type": "object", "properties": { - "BackupOptions": { - "type": "object", - "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" - }, - "ResourceType": { + "BackupPlanName": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "AdvancedBackupSettings": { + "uniqueItems": false, + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/AdvancedBackupSettingResourceType" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "BackupPlanRule": { + "uniqueItems": false, + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/BackupRuleResourceType" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" } }, "required": [ - "BackupOptions", - "ResourceType" + "BackupPlanName", + "BackupPlanRule" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "CopyActionResourceType": { - "type": "object", + "AdvancedBackupSettingResourceType": { "additionalProperties": false, + "type": "object", "properties": { - "Lifecycle": { - "$ref": "#/definitions/LifecycleResourceType" + "BackupOptions": { + "type": "object", + "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" }, - "DestinationBackupVaultArn": { + "ResourceType": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ - "DestinationBackupVaultArn" + "BackupOptions", + "ResourceType" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "IndexActionsResourceType": { - "type": "object", - "additionalProperties": false, - "properties": { - "ResourceTypes": { - "$ref": "#/definitions/ResourceTypes" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "ResourceTypes": { - "type": "array", - "insertionOrder": true, - "uniqueItems": true, - "items": { - "$ref": "#/definitions/ResourceType" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "ResourceType": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, "LifecycleResourceType": { - "type": "object", "additionalProperties": false, + "type": "object", "properties": { - "MoveToColdStorageAfterDays": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + "OptInToArchiveForSupportedResources": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "DeleteAfterDays": { "type": "number", "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, - "OptInToArchiveForSupportedResources": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "MoveToColdStorageAfterDays": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, - "handlers": { - "read": { - "permissions": [ - "backup:GetBackupPlan", - "backup:ListTags" - ] + "properties": { + "VersionId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "create": { - "permissions": [ - "backup:GetBackupPlan", - "backup:TagResource", - "backup:CreateBackupPlan" - ] + "BackupPlan": { + "$ref": "#/definitions/BackupPlanResourceType" }, - "delete": { - "permissions": [ - "backup:GetBackupPlan", - "backup:DeleteBackupPlan" - ] + "BackupPlanId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "update": { - "permissions": [ - "backup:UpdateBackupPlan", - "backup:ListTags", - "backup:TagResource", - "backup:UntagResource" - ] + "BackupPlanTags": { + "patternProperties": { + "^.{1,128}$": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "type": "object", + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "list": { - "permissions": [ - "backup:ListBackupPlans" - ] + "BackupPlanArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } }, + "required": [ + "BackupPlan" + ], "attributes": { - "BackupPlanArn": { + "VersionId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, @@ -281,7 +281,7 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "VersionId": { + "BackupPlanArn": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } diff --git a/server/schema/resources/aws-backup-restoretestingplan.json b/server/schema/resources/aws-backup-restoretestingplan.json index cae38da9..27af9281 100644 --- a/server/schema/resources/aws-backup-restoretestingplan.json +++ b/server/schema/resources/aws-backup-restoretestingplan.json @@ -1,89 +1,29 @@ { - "tagging": { - "permissions": [ - "backup:TagResource", - "backup:UntagResource", - "backup:ListTags" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "handlers": { - "read": { - "permissions": [ - "backup:GetRestoreTestingPlan", - "backup:ListTags" - ], - "timeoutInMinutes": 5 - }, - "create": { - "permissions": [ - "backup:CreateRestoreTestingPlan", - "backup:TagResource", - "backup:GetRestoreTestingPlan", - "backup:ListTags" - ], - "timeoutInMinutes": 5 - }, - "update": { - "permissions": [ - "backup:UpdateRestoreTestingPlan", - "backup:TagResource", - "backup:UntagResource", - "backup:GetRestoreTestingPlan", - "backup:ListTags" - ], - "timeoutInMinutes": 5 - }, - "list": { - "permissions": [ - "backup:ListRestoreTestingPlans" - ], - "timeoutInMinutes": 5 - }, - "delete": { - "permissions": [ - "backup:DeleteRestoreTestingPlan", - "backup:GetRestoreTestingPlan" - ], - "timeoutInMinutes": 5 - } - }, "typeName": "AWS::Backup::RestoreTestingPlan", - "readOnlyProperties": [ - "/properties/RestoreTestingPlanArn" - ], "description": "Definition of AWS::Backup::RestoreTestingPlan Resource Type", - "createOnlyProperties": [ - "/properties/RestoreTestingPlanName" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/RestoreTestingPlanName" - ], "definitions": { "RestoreTestingRecoveryPointSelection": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { + "Algorithm": { + "$ref": "#/definitions/RestoreTestingRecoveryPointSelectionAlgorithm" + }, "SelectionWindowDays": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "RecoveryPointTypes": { - "insertionOrder": false, "type": "array", + "insertionOrder": false, "items": { "$ref": "#/definitions/RestoreTestingRecoveryPointType" }, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, "IncludeVaults": { - "insertionOrder": false, "type": "array", + "insertionOrder": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -91,16 +31,13 @@ "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, "ExcludeVaults": { - "insertionOrder": false, "type": "array", + "insertionOrder": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Algorithm": { - "$ref": "#/definitions/RestoreTestingRecoveryPointSelectionAlgorithm" } }, "required": [ @@ -110,31 +47,6 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Tag": { - "additionalProperties": false, - "type": "object", - "properties": { - "Value": { - "minLength": 0, - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "type": "string", - "maxLength": 256, - "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" - }, - "Key": { - "minLength": 1, - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "type": "string", - "maxLength": 128, - "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Key", - "Value" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, "RestoreTestingRecoveryPointSelectionAlgorithm": { "type": "string", "enum": [ @@ -150,22 +62,34 @@ "CONTINUOUS" ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: SNAPSHOT | CONTINUOUS \nUpdate requires: No interruption\n" + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "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, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, - "required": [ - "RecoveryPointSelection", - "ScheduleExpression", - "RestoreTestingPlanName" - ], "properties": { - "ScheduleExpression": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "StartWindowHours": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, "RecoveryPointSelection": { "$ref": "#/definitions/RestoreTestingRecoveryPointSelection" }, @@ -177,20 +101,97 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, + "ScheduleExpression": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, "ScheduleExpressionTimezone": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "StartWindowHours": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, "Tags": { - "uniqueItems": true, - "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/Tag" }, + "type": "array", + "insertionOrder": false, + "uniqueItems": true, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "backup:TagResource", + "backup:UntagResource", + "backup:ListTags" + ] + }, + "additionalProperties": false, + "required": [ + "RecoveryPointSelection", + "ScheduleExpression", + "RestoreTestingPlanName" + ], + "readOnlyProperties": [ + "/properties/RestoreTestingPlanArn" + ], + "createOnlyProperties": [ + "/properties/RestoreTestingPlanName" + ], + "primaryIdentifier": [ + "/properties/RestoreTestingPlanName" + ], + "handlers": { + "create": { + "permissions": [ + "backup:CreateRestoreTestingPlan", + "backup:TagResource", + "backup:GetRestoreTestingPlan", + "backup:ListTags", + "iam:CreateServiceLinkedRole" + ], + "timeoutInMinutes": 5 + }, + "read": { + "permissions": [ + "backup:GetRestoreTestingPlan", + "backup:ListTags" + ], + "timeoutInMinutes": 5 + }, + "update": { + "permissions": [ + "backup:UpdateRestoreTestingPlan", + "backup:TagResource", + "backup:UntagResource", + "backup:GetRestoreTestingPlan", + "backup:ListTags" + ], + "timeoutInMinutes": 5 + }, + "delete": { + "permissions": [ + "backup:DeleteRestoreTestingPlan", + "backup:GetRestoreTestingPlan" + ], + "timeoutInMinutes": 5 + }, + "list": { + "permissions": [ + "backup:ListRestoreTestingPlans" + ], + "timeoutInMinutes": 5 + } + }, "attributes": { "RestoreTestingPlanArn": { "type": "string", diff --git a/server/schema/resources/aws-bedrock-agent.json b/server/schema/resources/aws-bedrock-agent.json index f0fb0886..dc0ce878 100644 --- a/server/schema/resources/aws-bedrock-agent.json +++ b/server/schema/resources/aws-bedrock-agent.json @@ -45,7 +45,7 @@ "Lambda": { "type": "string", "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z0-9-]{1,20}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", "description": "ARN of a Lambda." } }, @@ -158,7 +158,7 @@ "AliasArn": { "type": "string", "description": "Alias ARN for agent descriptor", - "markdownDescription": "Alias ARN for agent descriptor\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\n" + "markdownDescription": "Alias ARN for agent descriptor\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:(aws[a-zA-Z-]*)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\n" } }, "additionalProperties": false, @@ -408,7 +408,7 @@ }, "MaximumLength": { "type": "number", - "maximum": 4096, + "maximum": 131072, "minimum": 0, "description": "Maximum length of output", "markdownDescription": "Maximum length of output\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" @@ -447,7 +447,7 @@ "type": "string", "maxLength": 2048, "description": "ARN of a Lambda.", - "markdownDescription": "ARN of a Lambda.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$ \nUpdate requires: No interruption\n" + "markdownDescription": "ARN of a Lambda.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 2048 \nPattern: ^arn:(aws[a-zA-Z-]*)?:lambda:[a-z0-9-]{1,20}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -556,7 +556,7 @@ "type": "string", "maxLength": 2048, "description": "ARN of a Lambda.", - "markdownDescription": "ARN of a Lambda.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$ \nUpdate requires: No interruption\n" + "markdownDescription": "ARN of a Lambda.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:(aws[a-zA-Z-]*)?:lambda:[a-z0-9-]{1,20}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -669,7 +669,7 @@ "type": "string", "maxLength": 2048, "description": "Arn representation of the Agent.", - "markdownDescription": "Arn representation of the Agent.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "Arn representation of the Agent.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "AgentId": { "type": "string", @@ -717,7 +717,7 @@ "maxLength": 2048, "minLength": 1, "description": "A KMS key ARN", - "markdownDescription": "A KMS key ARN\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$ \nUpdate requires: No interruption\n" + "markdownDescription": "A KMS key ARN\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:aws(-[^:]+)?:kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$ \nUpdate requires: No interruption\n" }, "SkipResourceInUseCheckOnDelete": { "description": "Specifies whether to allow deleting agent while it is in use.", @@ -756,7 +756,7 @@ }, "IdleSessionTTLInSeconds": { "type": "number", - "maximum": 3600, + "maximum": 5400, "minimum": 60, "description": "Max Session Time.", "markdownDescription": "Max Session Time.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" @@ -962,7 +962,7 @@ "type": "string", "maxLength": 2048, "description": "Arn representation of the Agent.", - "markdownDescription": "Arn representation of the Agent.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "Arn representation of the Agent.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nPattern: ^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "AgentId": { "type": "string", diff --git a/server/schema/resources/aws-bedrock-guardrail.json b/server/schema/resources/aws-bedrock-guardrail.json index 4b4a122f..d6898d08 100644 --- a/server/schema/resources/aws-bedrock-guardrail.json +++ b/server/schema/resources/aws-bedrock-guardrail.json @@ -501,10 +501,10 @@ }, "Definition": { "type": "string", - "maxLength": 200, + "maxLength": 1000, "minLength": 1, "description": "Definition of topic in topic policy", - "markdownDescription": "Definition of topic in topic policy\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 200 \nUpdate requires: No interruption\n" + "markdownDescription": "Definition of topic in topic policy\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 1000 \nUpdate requires: No interruption\n" }, "Examples": { "type": "array", diff --git a/server/schema/resources/aws-bedrockagentcore-browsercustom.json b/server/schema/resources/aws-bedrockagentcore-browsercustom.json index 10e160bd..55e69bd7 100644 --- a/server/schema/resources/aws-bedrockagentcore-browsercustom.json +++ b/server/schema/resources/aws-bedrockagentcore-browsercustom.json @@ -16,10 +16,11 @@ "BrowserNetworkMode": { "type": "string", "enum": [ - "PUBLIC" + "PUBLIC", + "VPC" ], "description": "Network modes supported by browser", - "markdownDescription": "Network modes supported by browser\n\n---\n\nRequired: No \nType: String \nAllowed Values: PUBLIC \nUpdate requires: No interruption\n" + "markdownDescription": "Network modes supported by browser\n\n---\n\nRequired: No \nType: String \nAllowed Values: PUBLIC | VPC \nUpdate requires: No interruption\n" }, "BrowserNetworkConfiguration": { "type": "object", @@ -27,6 +28,9 @@ "NetworkMode": { "$ref": "#/definitions/BrowserNetworkMode", "default": "PUBLIC" + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" } }, "required": [ @@ -73,6 +77,56 @@ "description": "S3 Location Configuration", "markdownDescription": "S3 Location Configuration\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "VpcConfig": { + "type": "object", + "description": "Network mode configuration for VPC", + "properties": { + "SecurityGroups": { + "$ref": "#/definitions/SecurityGroups" + }, + "Subnets": { + "$ref": "#/definitions/Subnets" + } + }, + "required": [ + "SecurityGroups", + "Subnets" + ], + "additionalProperties": false, + "markdownDescription": "Network mode configuration for VPC\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SecurityGroups": { + "type": "array", + "description": "Security groups for VPC", + "minItems": 1, + "maxItems": 16, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityGroupId" + }, + "markdownDescription": "Security groups for VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SecurityGroupId": { + "type": "string", + "description": "Security group id", + "markdownDescription": "Security group id\n\n---\n\nRequired: No \nType: String \nPattern: ^sg-[0-9a-zA-Z]{8,17}$ \nUpdate requires: No interruption\n" + }, + "Subnets": { + "type": "array", + "description": "Subnets for VPC", + "minItems": 1, + "maxItems": 16, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetId" + }, + "markdownDescription": "Subnets for VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SubnetId": { + "type": "string", + "description": "Subnet id", + "markdownDescription": "Subnet id\n\n---\n\nRequired: No \nType: String \nPattern: ^subnet-[0-9a-zA-Z]{8,17}$ \nUpdate requires: No interruption\n" + }, "BrowserStatus": { "type": "string", "enum": [ @@ -197,6 +251,11 @@ "description": "Status of browser.", "markdownDescription": "Status of browser.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" }, + "FailureReason": { + "type": "string", + "description": "The reason for failure if the browser creation or operation failed.", + "markdownDescription": "The reason for failure if the browser creation or operation failed.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "CreatedAt": { "type": "string", "format": "date-time", @@ -222,6 +281,7 @@ "/properties/BrowserId", "/properties/BrowserArn", "/properties/Status", + "/properties/FailureReason", "/properties/CreatedAt", "/properties/LastUpdatedAt" ], @@ -247,6 +307,7 @@ "bedrock-agentcore:GetBrowser", "bedrock-agentcore:TagResource", "bedrock-agentcore:ListTagsForResource", + "iam:CreateServiceLinkedRole", "iam:PassRole" ] }, @@ -305,6 +366,11 @@ "description": "Status of browser.", "markdownDescription": "Status of browser.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" }, + "FailureReason": { + "type": "string", + "description": "The reason for failure if the browser creation or operation failed.", + "markdownDescription": "The reason for failure if the browser creation or operation failed.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "CreatedAt": { "type": "string", "format": "date-time", diff --git a/server/schema/resources/aws-bedrockagentcore-codeinterpretercustom.json b/server/schema/resources/aws-bedrockagentcore-codeinterpretercustom.json index baa13b2f..a0228a82 100644 --- a/server/schema/resources/aws-bedrockagentcore-codeinterpretercustom.json +++ b/server/schema/resources/aws-bedrockagentcore-codeinterpretercustom.json @@ -17,10 +17,11 @@ "type": "string", "enum": [ "PUBLIC", - "SANDBOX" + "SANDBOX", + "VPC" ], "description": "Network modes supported by code interpreter", - "markdownDescription": "Network modes supported by code interpreter\n\n---\n\nRequired: No \nType: String \nAllowed Values: PUBLIC | SANDBOX \nUpdate requires: No interruption\n" + "markdownDescription": "Network modes supported by code interpreter\n\n---\n\nRequired: No \nType: String \nAllowed Values: PUBLIC | SANDBOX | VPC \nUpdate requires: No interruption\n" }, "CodeInterpreterNetworkConfiguration": { "type": "object", @@ -28,6 +29,9 @@ "NetworkMode": { "$ref": "#/definitions/CodeInterpreterNetworkMode", "default": "SANDBOX" + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" } }, "required": [ @@ -112,6 +116,56 @@ "description": "List of code interpreters", "markdownDescription": "List of code interpreters\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "VpcConfig": { + "type": "object", + "description": "Network mode configuration for VPC", + "properties": { + "SecurityGroups": { + "$ref": "#/definitions/SecurityGroups" + }, + "Subnets": { + "$ref": "#/definitions/Subnets" + } + }, + "required": [ + "SecurityGroups", + "Subnets" + ], + "additionalProperties": false, + "markdownDescription": "Network mode configuration for VPC\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SecurityGroups": { + "type": "array", + "description": "Security groups for VPC", + "minItems": 1, + "maxItems": 16, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityGroupId" + }, + "markdownDescription": "Security groups for VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SecurityGroupId": { + "type": "string", + "description": "Security group id", + "markdownDescription": "Security group id\n\n---\n\nRequired: No \nType: String \nPattern: ^sg-[0-9a-zA-Z]{8,17}$ \nUpdate requires: No interruption\n" + }, + "Subnets": { + "type": "array", + "description": "Subnets for VPC", + "minItems": 1, + "maxItems": 16, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetId" + }, + "markdownDescription": "Subnets for VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SubnetId": { + "type": "string", + "description": "Subnet id", + "markdownDescription": "Subnet id\n\n---\n\nRequired: No \nType: String \nPattern: ^subnet-[0-9a-zA-Z]{8,17}$ \nUpdate requires: No interruption\n" + }, "TagsMap": { "type": "object", "description": "A map of tag keys and values", @@ -164,6 +218,11 @@ "description": "Status of code interpreter.", "markdownDescription": "Status of code interpreter.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" }, + "FailureReason": { + "type": "string", + "description": "The reason for failure if the code interpreter creation or operation failed.", + "markdownDescription": "The reason for failure if the code interpreter creation or operation failed.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "CreatedAt": { "type": "string", "format": "date-time", @@ -189,6 +248,7 @@ "/properties/CodeInterpreterId", "/properties/CodeInterpreterArn", "/properties/Status", + "/properties/FailureReason", "/properties/CreatedAt", "/properties/LastUpdatedAt" ], @@ -213,6 +273,7 @@ "bedrock-agentcore:GetCodeInterpreter", "bedrock-agentcore:TagResource", "bedrock-agentcore:ListTagsForResource", + "iam:CreateServiceLinkedRole", "iam:PassRole" ] }, @@ -271,6 +332,11 @@ "description": "Status of code interpreter.", "markdownDescription": "Status of code interpreter.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" }, + "FailureReason": { + "type": "string", + "description": "The reason for failure if the code interpreter creation or operation failed.", + "markdownDescription": "The reason for failure if the code interpreter creation or operation failed.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "CreatedAt": { "type": "string", "format": "date-time", diff --git a/server/schema/resources/aws-bedrockagentcore-gateway.json b/server/schema/resources/aws-bedrockagentcore-gateway.json new file mode 100644 index 00000000..6dac7da7 --- /dev/null +++ b/server/schema/resources/aws-bedrockagentcore-gateway.json @@ -0,0 +1,375 @@ +{ + "typeName": "AWS::BedrockAgentCore::Gateway", + "description": "Definition of AWS::BedrockAgentCore::Gateway Resource Type", + "definitions": { + "AuthorizerConfiguration": { + "oneOf": [ + { + "type": "object", + "title": "CustomJWTAuthorizer", + "properties": { + "CustomJWTAuthorizer": { + "$ref": "#/definitions/CustomJWTAuthorizerConfiguration" + } + }, + "required": [ + "CustomJWTAuthorizer" + ], + "additionalProperties": false + } + ] + }, + "AuthorizerType": { + "type": "string", + "enum": [ + "CUSTOM_JWT", + "AWS_IAM" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CUSTOM_JWT | AWS_IAM \nUpdate requires: No interruption\n" + }, + "CustomJWTAuthorizerConfiguration": { + "type": "object", + "properties": { + "DiscoveryUrl": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^.+/\\.well-known/openid-configuration$ \nUpdate requires: No interruption\n" + }, + "AllowedAudience": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AllowedClients": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "DiscoveryUrl" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ExceptionLevel": { + "type": "string", + "enum": [ + "DEBUG" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: DEBUG \nUpdate requires: No interruption\n" + }, + "GatewayProtocolConfiguration": { + "oneOf": [ + { + "type": "object", + "title": "Mcp", + "properties": { + "Mcp": { + "$ref": "#/definitions/MCPGatewayConfiguration" + } + }, + "required": [ + "Mcp" + ], + "additionalProperties": false + } + ] + }, + "GatewayProtocolType": { + "type": "string", + "enum": [ + "MCP" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: MCP \nUpdate requires: No interruption\n" + }, + "GatewayStatus": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "UPDATE_UNSUCCESSFUL", + "DELETING", + "READY", + "FAILED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | UPDATING | UPDATE_UNSUCCESSFUL | DELETING | READY | FAILED \nUpdate requires: No interruption\n" + }, + "MCPGatewayConfiguration": { + "type": "object", + "properties": { + "SupportedVersions": { + "type": "array", + "items": { + "type": "string", + "default": "2025-03-26", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Instructions": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "SearchType": { + "$ref": "#/definitions/SearchType" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SearchType": { + "type": "string", + "enum": [ + "SEMANTIC" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: SEMANTIC \nUpdate requires: No interruption\n" + }, + "TagsMap": { + "type": "object", + "maxProperties": 50, + "minProperties": 0, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nPattern: ^[a-zA-Z0-9\\s._:/=+@-]*$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WorkloadIdentityDetails": { + "type": "object", + "properties": { + "WorkloadIdentityArn": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "WorkloadIdentityArn" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "AuthorizerConfiguration": { + "$ref": "#/definitions/AuthorizerConfiguration" + }, + "AuthorizerType": { + "$ref": "#/definitions/AuthorizerType" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 200 \nUpdate requires: No interruption\n" + }, + "ExceptionLevel": { + "$ref": "#/definitions/ExceptionLevel" + }, + "GatewayArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(|-cn|-us-gov):bedrock-agentcore:[a-z0-9-]{1,20}:[0-9]{12}:gateway/([0-9a-z][-]?){1,100}-[a-z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GatewayIdentifier": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^([0-9a-z][-]?){1,100}-[0-9a-z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GatewayUrl": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "KmsKeyArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$ \nUpdate requires: No interruption\n" + }, + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^([0-9a-zA-Z][-]?){1,100}$ \nUpdate requires: No interruption\n" + }, + "ProtocolConfiguration": { + "$ref": "#/definitions/GatewayProtocolConfiguration" + }, + "ProtocolType": { + "$ref": "#/definitions/GatewayProtocolType" + }, + "RoleArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nPattern: ^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/.+$ \nUpdate requires: No interruption\n" + }, + "Status": { + "$ref": "#/definitions/GatewayStatus" + }, + "StatusReasons": { + "type": "array", + "items": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "maxItems": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "WorkloadIdentityDetails": { + "$ref": "#/definitions/WorkloadIdentityDetails" + } + }, + "required": [ + "AuthorizerType", + "Name", + "ProtocolType", + "RoleArn" + ], + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/GatewayArn", + "/properties/GatewayIdentifier", + "/properties/GatewayUrl", + "/properties/Status", + "/properties/StatusReasons", + "/properties/UpdatedAt", + "/properties/WorkloadIdentityDetails" + ], + "primaryIdentifier": [ + "/properties/GatewayIdentifier" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock-agentcore:CreateGateway", + "bedrock-agentcore:CreateWorkloadIdentity", + "bedrock-agentcore:DeleteWorkloadIdentity", + "bedrock-agentcore:GetGateway", + "bedrock-agentcore:ListTagsForResource", + "bedrock-agentcore:SynchronizeGatewayTargets", + "bedrock-agentcore:TagResource", + "iam:PassRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey" + ] + }, + "read": { + "permissions": [ + "bedrock-agentcore:GetGateway", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock-agentcore:GetGateway", + "bedrock-agentcore:ListTagsForResource", + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:UpdateGateway", + "iam:PassRole", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:ListGrants" + ] + }, + "delete": { + "permissions": [ + "bedrock-agentcore:DeleteGateway", + "bedrock-agentcore:DeleteWorkloadIdentity", + "bedrock-agentcore:GetGateway" + ] + }, + "list": { + "permissions": [ + "bedrock-agentcore:ListGateways" + ] + } + }, + "additionalProperties": false, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "bedrock-agentcore:ListTagsForResource", + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource" + ] + }, + "attributes": { + "CreatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GatewayArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(|-cn|-us-gov):bedrock-agentcore:[a-z0-9-]{1,20}:[0-9]{12}:gateway/([0-9a-z][-]?){1,100}-[a-z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GatewayIdentifier": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^([0-9a-z][-]?){1,100}-[0-9a-z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GatewayUrl": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/GatewayStatus" + }, + "StatusReasons": { + "type": "array", + "items": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "maxItems": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "WorkloadIdentityDetails": { + "$ref": "#/definitions/WorkloadIdentityDetails" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockagentcore-gatewaytarget.json b/server/schema/resources/aws-bedrockagentcore-gatewaytarget.json new file mode 100644 index 00000000..bb514287 --- /dev/null +++ b/server/schema/resources/aws-bedrockagentcore-gatewaytarget.json @@ -0,0 +1,557 @@ +{ + "typeName": "AWS::BedrockAgentCore::GatewayTarget", + "description": "Definition of AWS::BedrockAgentCore::GatewayTarget Resource Type", + "definitions": { + "ApiKeyCredentialLocation": { + "type": "string", + "enum": [ + "HEADER", + "QUERY_PARAMETER" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: HEADER | QUERY_PARAMETER \nUpdate requires: No interruption\n" + }, + "ApiKeyCredentialProvider": { + "type": "object", + "properties": { + "ProviderArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:([^:]*):([^:]*):([^:]*):([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\n" + }, + "CredentialParameterName": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "CredentialPrefix": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "CredentialLocation": { + "$ref": "#/definitions/ApiKeyCredentialLocation" + } + }, + "required": [ + "ProviderArn" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ApiSchemaConfiguration": { + "oneOf": [ + { + "type": "object", + "title": "S3", + "properties": { + "S3": { + "$ref": "#/definitions/S3Configuration" + } + }, + "required": [ + "S3" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "InlinePayload", + "properties": { + "InlinePayload": { + "type": "string" + } + }, + "required": [ + "InlinePayload" + ], + "additionalProperties": false + } + ] + }, + "CredentialProvider": { + "oneOf": [ + { + "type": "object", + "title": "OauthCredentialProvider", + "properties": { + "OauthCredentialProvider": { + "$ref": "#/definitions/OAuthCredentialProvider" + } + }, + "required": [ + "OauthCredentialProvider" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "ApiKeyCredentialProvider", + "properties": { + "ApiKeyCredentialProvider": { + "$ref": "#/definitions/ApiKeyCredentialProvider" + } + }, + "required": [ + "ApiKeyCredentialProvider" + ], + "additionalProperties": false + } + ] + }, + "CredentialProviderConfiguration": { + "type": "object", + "properties": { + "CredentialProviderType": { + "$ref": "#/definitions/CredentialProviderType" + }, + "CredentialProvider": { + "$ref": "#/definitions/CredentialProvider" + } + }, + "required": [ + "CredentialProviderType" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CredentialProviderType": { + "type": "string", + "enum": [ + "GATEWAY_IAM_ROLE", + "OAUTH", + "API_KEY" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: GATEWAY_IAM_ROLE | OAUTH | API_KEY \nUpdate requires: No interruption\n" + }, + "McpLambdaTargetConfiguration": { + "type": "object", + "properties": { + "LambdaArn": { + "type": "string", + "maxLength": 170, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 170 \nPattern: ^arn:(aws[a-zA-Z-]*)?:lambda:([a-z]{2}(-gov)?-[a-z]+-\\d{1}):(\\d{12}):function:([a-zA-Z0-9-_.]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?$ \nUpdate requires: No interruption\n" + }, + "ToolSchema": { + "$ref": "#/definitions/ToolSchema" + } + }, + "required": [ + "LambdaArn", + "ToolSchema" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "McpTargetConfiguration": { + "oneOf": [ + { + "type": "object", + "title": "OpenApiSchema", + "properties": { + "OpenApiSchema": { + "$ref": "#/definitions/ApiSchemaConfiguration" + } + }, + "required": [ + "OpenApiSchema" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "SmithyModel", + "properties": { + "SmithyModel": { + "$ref": "#/definitions/ApiSchemaConfiguration" + } + }, + "required": [ + "SmithyModel" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Lambda", + "properties": { + "Lambda": { + "$ref": "#/definitions/McpLambdaTargetConfiguration" + } + }, + "required": [ + "Lambda" + ], + "additionalProperties": false + } + ] + }, + "OAuthCredentialProvider": { + "type": "object", + "properties": { + "ProviderArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:([^:]*):([^:]*):([^:]*):([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\n" + }, + "Scopes": { + "type": "array", + "items": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nUpdate requires: No interruption\n" + }, + "maxItems": 100, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "CustomParameters": { + "$ref": "#/definitions/OAuthCustomParameters" + } + }, + "required": [ + "ProviderArn", + "Scopes" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OAuthCustomParameters": { + "type": "object", + "maxProperties": 10, + "minProperties": 1, + "patternProperties": { + ".+": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "S3Configuration": { + "type": "object", + "properties": { + "Uri": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^s3://.{1,2043}$ \nUpdate requires: No interruption\n" + }, + "BucketOwnerAccountId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9]{12}$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SchemaDefinition": { + "type": "object", + "properties": { + "Type": { + "$ref": "#/definitions/SchemaType" + }, + "Properties": { + "$ref": "#/definitions/SchemaProperties" + }, + "Required": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Items": { + "$ref": "#/definitions/SchemaDefinition" + }, + "Description": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Type" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SchemaProperties": { + "type": "object", + "patternProperties": { + ".+": { + "$ref": "#/definitions/SchemaDefinition" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SchemaType": { + "type": "string", + "enum": [ + "string", + "number", + "object", + "array", + "boolean", + "integer" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: string | number | object | array | boolean | integer \nUpdate requires: No interruption\n" + }, + "TargetConfiguration": { + "oneOf": [ + { + "type": "object", + "title": "Mcp", + "properties": { + "Mcp": { + "$ref": "#/definitions/McpTargetConfiguration" + } + }, + "required": [ + "Mcp" + ], + "additionalProperties": false + } + ] + }, + "TargetStatus": { + "type": "string", + "enum": [ + "CREATING", + "UPDATING", + "UPDATE_UNSUCCESSFUL", + "DELETING", + "READY", + "FAILED" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | UPDATING | UPDATE_UNSUCCESSFUL | DELETING | READY | FAILED \nUpdate requires: No interruption\n" + }, + "ToolDefinition": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "InputSchema": { + "$ref": "#/definitions/SchemaDefinition" + }, + "OutputSchema": { + "$ref": "#/definitions/SchemaDefinition" + } + }, + "required": [ + "Description", + "InputSchema", + "Name" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ToolSchema": { + "oneOf": [ + { + "type": "object", + "title": "S3", + "properties": { + "S3": { + "$ref": "#/definitions/S3Configuration" + } + }, + "required": [ + "S3" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "InlinePayload", + "properties": { + "InlinePayload": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolDefinition" + } + } + }, + "required": [ + "InlinePayload" + ], + "additionalProperties": false + } + ] + } + }, + "properties": { + "CreatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CredentialProviderConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/CredentialProviderConfiguration" + }, + "maxItems": 1, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 200 \nUpdate requires: No interruption\n" + }, + "GatewayArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(|-cn|-us-gov):bedrock-agentcore:[a-z0-9-]{1,20}:[0-9]{12}:gateway/([0-9a-z][-]?){1,100}-[a-z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GatewayIdentifier": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^([0-9a-z][-]?){1,100}-[0-9a-z]{10}$ \nUpdate requires: Replacement\n" + }, + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^([0-9a-zA-Z][-]?){1,100}$ \nUpdate requires: No interruption\n" + }, + "Status": { + "$ref": "#/definitions/TargetStatus" + }, + "StatusReasons": { + "type": "array", + "items": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "maxItems": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TargetConfiguration": { + "$ref": "#/definitions/TargetConfiguration" + }, + "TargetId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "required": [ + "CredentialProviderConfigurations", + "Name", + "TargetConfiguration" + ], + "createOnlyProperties": [ + "/properties/GatewayIdentifier" + ], + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/GatewayArn", + "/properties/Status", + "/properties/StatusReasons", + "/properties/TargetId", + "/properties/UpdatedAt" + ], + "primaryIdentifier": [ + "/properties/GatewayIdentifier", + "/properties/TargetId" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock-agentcore:CreateGatewayTarget", + "bedrock-agentcore:GetGatewayTarget", + "bedrock-agentcore:GetResourceOauth2Token", + "bedrock-agentcore:GetWorkloadAccessToken", + "bedrock-agentcore:SynchronizeGatewayTargets", + "kms:Decrypt", + "kms:GenerateDataKey", + "kms:ListGrants", + "s3:GetObject", + "secretsmanager:GetSecretValue" + ] + }, + "read": { + "permissions": [ + "bedrock-agentcore:GetGatewayTarget" + ] + }, + "update": { + "permissions": [ + "bedrock-agentcore:GetGatewayTarget", + "bedrock-agentcore:GetResourceOauth2Token", + "bedrock-agentcore:GetWorkloadAccessToken", + "bedrock-agentcore:SynchronizeGatewayTargets", + "bedrock-agentcore:UpdateGatewayTarget", + "kms:Decrypt", + "kms:GenerateDataKey", + "kms:ListGrants", + "s3:GetObject", + "secretsmanager:GetSecretValue" + ] + }, + "delete": { + "permissions": [ + "bedrock-agentcore:DeleteGatewayTarget", + "bedrock-agentcore:GetGatewayTarget", + "kms:Decrypt", + "kms:GenerateDataKey", + "kms:ListGrants" + ] + }, + "list": { + "permissions": [ + "bedrock-agentcore:ListGatewayTargets" + ] + } + }, + "additionalProperties": false, + "tagging": { + "taggable": false, + "cloudFormationSystemTags": false + }, + "attributes": { + "CreatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "GatewayArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws(|-cn|-us-gov):bedrock-agentcore:[a-z0-9-]{1,20}:[0-9]{12}:gateway/([0-9a-z][-]?){1,100}-[a-z0-9]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Status": { + "$ref": "#/definitions/TargetStatus" + }, + "StatusReasons": { + "type": "array", + "items": { + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2048 \nUpdate requires: No interruption\n" + }, + "maxItems": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "TargetId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[0-9a-zA-Z]{10}$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockagentcore-memory.json b/server/schema/resources/aws-bedrockagentcore-memory.json new file mode 100644 index 00000000..e05a3676 --- /dev/null +++ b/server/schema/resources/aws-bedrockagentcore-memory.json @@ -0,0 +1,938 @@ +{ + "typeName": "AWS::BedrockAgentCore::Memory", + "description": "Resource Type definition for AWS::BedrockAgentCore::Memory", + "definitions": { + "Name": { + "type": "string", + "description": "Name of the Memory resource", + "markdownDescription": "Name of the Memory resource\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z][a-zA-Z0-9_]{0,47}$ \nUpdate requires: No interruption\n" + }, + "MemoryArn": { + "type": "string", + "description": "ARN of the Memory resource", + "markdownDescription": "ARN of the Memory resource\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws:bedrock-agentcore:[a-z0-9-]+:[0-9]{12}:memory/[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" + }, + "MemoryId": { + "type": "string", + "minLength": 12, + "description": "Unique identifier for the Memory resource", + "markdownDescription": "Unique identifier for the Memory resource\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nPattern: ^[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "description": "Description of the Memory resource", + "markdownDescription": "Description of the Memory resource\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Arn": { + "type": "string", + "description": "ARN format", + "markdownDescription": "ARN format\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$ \nUpdate requires: No interruption\n" + }, + "MemoryStatus": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "FAILED", + "DELETING" + ], + "description": "Status of the Memory resource", + "markdownDescription": "Status of the Memory resource\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | FAILED | DELETING \nUpdate requires: No interruption\n" + }, + "SemanticMemoryStrategy": { + "type": "object", + "properties": { + "Name": { + "$ref": "#/definitions/Name" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "Namespaces": { + "$ref": "#/definitions/NamespacesList" + }, + "StrategyId": { + "type": "string", + "minLength": 12, + "description": "Unique identifier for the memory strategy", + "markdownDescription": "Unique identifier for the memory strategy\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nPattern: ^[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" + }, + "Type": { + "type": "string", + "enum": [ + "SEMANTIC", + "SUMMARIZATION", + "USER_PREFERENCE", + "CUSTOM" + ], + "description": "Type of memory strategy", + "markdownDescription": "Type of memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: SEMANTIC | SUMMARIZATION | USER_PREFERENCE | CUSTOM \nUpdate requires: No interruption\n" + }, + "Status": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "DELETING", + "FAILED" + ], + "description": "Status of the memory strategy", + "markdownDescription": "Status of the memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | DELETING | FAILED \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp of the memory strategy", + "markdownDescription": "Creation timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp of the memory strategy", + "markdownDescription": "Last update timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SummaryMemoryStrategy": { + "type": "object", + "properties": { + "Name": { + "$ref": "#/definitions/Name" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "Namespaces": { + "$ref": "#/definitions/NamespacesList" + }, + "StrategyId": { + "type": "string", + "minLength": 12, + "description": "Unique identifier for the memory strategy", + "markdownDescription": "Unique identifier for the memory strategy\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nPattern: ^[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" + }, + "Type": { + "type": "string", + "enum": [ + "SEMANTIC", + "SUMMARIZATION", + "USER_PREFERENCE", + "CUSTOM" + ], + "description": "Type of memory strategy", + "markdownDescription": "Type of memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: SEMANTIC | SUMMARIZATION | USER_PREFERENCE | CUSTOM \nUpdate requires: No interruption\n" + }, + "Status": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "DELETING", + "FAILED" + ], + "description": "Status of the memory strategy", + "markdownDescription": "Status of the memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | DELETING | FAILED \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp of the memory strategy", + "markdownDescription": "Creation timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp of the memory strategy", + "markdownDescription": "Last update timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UserPreferenceMemoryStrategy": { + "type": "object", + "properties": { + "Name": { + "$ref": "#/definitions/Name" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "Namespaces": { + "$ref": "#/definitions/NamespacesList" + }, + "StrategyId": { + "type": "string", + "minLength": 12, + "description": "Unique identifier for the memory strategy", + "markdownDescription": "Unique identifier for the memory strategy\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nPattern: ^[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" + }, + "Type": { + "type": "string", + "enum": [ + "SEMANTIC", + "SUMMARIZATION", + "USER_PREFERENCE", + "CUSTOM" + ], + "description": "Type of memory strategy", + "markdownDescription": "Type of memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: SEMANTIC | SUMMARIZATION | USER_PREFERENCE | CUSTOM \nUpdate requires: No interruption\n" + }, + "Status": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "DELETING", + "FAILED" + ], + "description": "Status of the memory strategy", + "markdownDescription": "Status of the memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | DELETING | FAILED \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp of the memory strategy", + "markdownDescription": "Creation timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp of the memory strategy", + "markdownDescription": "Last update timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CustomMemoryStrategy": { + "type": "object", + "properties": { + "Name": { + "$ref": "#/definitions/Name" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "Namespaces": { + "$ref": "#/definitions/NamespacesList" + }, + "Configuration": { + "$ref": "#/definitions/CustomConfigurationInput" + }, + "StrategyId": { + "type": "string", + "minLength": 12, + "description": "Unique identifier for the memory strategy", + "markdownDescription": "Unique identifier for the memory strategy\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nPattern: ^[a-zA-Z][a-zA-Z0-9-_]{0,99}-[a-zA-Z0-9]{10}$ \nUpdate requires: No interruption\n" + }, + "Type": { + "type": "string", + "enum": [ + "SEMANTIC", + "SUMMARIZATION", + "USER_PREFERENCE", + "CUSTOM" + ], + "description": "Type of memory strategy", + "markdownDescription": "Type of memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: SEMANTIC | SUMMARIZATION | USER_PREFERENCE | CUSTOM \nUpdate requires: No interruption\n" + }, + "Status": { + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "DELETING", + "FAILED" + ], + "description": "Status of the memory strategy", + "markdownDescription": "Status of the memory strategy\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | DELETING | FAILED \nUpdate requires: No interruption\n" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp of the memory strategy", + "markdownDescription": "Creation timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp of the memory strategy", + "markdownDescription": "Last update timestamp of the memory strategy\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MemoryStrategy": { + "type": "object", + "properties": { + "SemanticMemoryStrategy": { + "$ref": "#/definitions/SemanticMemoryStrategy" + }, + "SummaryMemoryStrategy": { + "$ref": "#/definitions/SummaryMemoryStrategy" + }, + "UserPreferenceMemoryStrategy": { + "$ref": "#/definitions/UserPreferenceMemoryStrategy" + }, + "CustomMemoryStrategy": { + "$ref": "#/definitions/CustomMemoryStrategy" + } + }, + "additionalProperties": false, + "maxProperties": 1, + "minProperties": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MemoryStrategies": { + "type": "array", + "items": { + "$ref": "#/definitions/MemoryStrategy" + }, + "insertionOrder": false, + "description": "List of memory strategies attached to this memory", + "markdownDescription": "List of memory strategies attached to this memory\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "StrategyConfiguration": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "SEMANTIC_OVERRIDE", + "SUMMARY_OVERRIDE", + "USER_PREFERENCE_OVERRIDE" + ], + "description": "Type of strategy configuration override", + "markdownDescription": "Type of strategy configuration override\n\n---\n\nRequired: No \nType: String \nAllowed Values: SEMANTIC_OVERRIDE | SUMMARY_OVERRIDE | USER_PREFERENCE_OVERRIDE \nUpdate requires: No interruption\n" + }, + "Extraction": { + "$ref": "#/definitions/ExtractionConfiguration" + }, + "Consolidation": { + "$ref": "#/definitions/ConsolidationConfiguration" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ExtractionConfiguration": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/CustomExtractionConfiguration" + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CustomExtractionConfiguration": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/SemanticExtractionOverride" + }, + { + "$ref": "#/definitions/UserPreferenceExtractionOverride" + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SemanticExtractionOverride": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "description": "ID of the model to use", + "markdownDescription": "ID of the model to use\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UserPreferenceExtractionOverride": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "description": "ID of the model to use", + "markdownDescription": "ID of the model to use\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ConsolidationConfiguration": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/CustomConsolidationConfiguration" + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CustomConsolidationConfiguration": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/SemanticConsolidationOverride" + }, + { + "$ref": "#/definitions/SummaryConsolidationOverride" + }, + { + "$ref": "#/definitions/UserPreferenceConsolidationOverride" + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SemanticConsolidationOverride": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "description": "ID of the model to use", + "markdownDescription": "ID of the model to use\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SummaryConsolidationOverride": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "description": "ID of the model to use", + "markdownDescription": "ID of the model to use\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UserPreferenceConsolidationOverride": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "description": "ID of the model to use", + "markdownDescription": "ID of the model to use\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Namespace": { + "type": "string", + "description": "Namespace for the memory strategy", + "markdownDescription": "Namespace for the memory strategy\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9\\-_/]*(\\{(actorId|sessionId|memoryStrategyId)\\}[a-zA-Z0-9\\-_/]*)*$ \nUpdate requires: No interruption\n" + }, + "NamespacesList": { + "type": "array", + "items": { + "$ref": "#/definitions/Namespace" + }, + "minItems": 1, + "insertionOrder": false, + "description": "List of namespaces for memory strategy", + "markdownDescription": "List of namespaces for memory strategy\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Prompt": { + "type": "string", + "minLength": 1, + "maxLength": 30000, + "description": "Text prompt for model instructions", + "markdownDescription": "Text prompt for model instructions\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30000 \nUpdate requires: No interruption\n" + }, + "CustomConfigurationInput": { + "type": "object", + "properties": { + "SemanticOverride": { + "$ref": "#/definitions/SemanticOverride" + }, + "SummaryOverride": { + "$ref": "#/definitions/SummaryOverride" + }, + "UserPreferenceOverride": { + "$ref": "#/definitions/UserPreferenceOverride" + }, + "SelfManagedConfiguration": { + "$ref": "#/definitions/SelfManagedConfiguration" + } + }, + "additionalProperties": false, + "maxProperties": 1, + "minProperties": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SelfManagedConfiguration": { + "type": "object", + "properties": { + "TriggerConditions": { + "$ref": "#/definitions/TriggerConditionList" + }, + "InvocationConfiguration": { + "$ref": "#/definitions/InvocationConfigurationInput" + }, + "HistoricalContextWindowSize": { + "type": "integer", + "minimum": 0, + "maximum": 50, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TriggerConditionList": { + "type": "array", + "items": { + "$ref": "#/definitions/TriggerConditionInput" + }, + "additionalProperties": false, + "insertionOrder": false, + "minItems": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "TriggerConditionInput": { + "type": "object", + "properties": { + "MessageBasedTrigger": { + "$ref": "#/definitions/MessageBasedTriggerInput" + }, + "TokenBasedTrigger": { + "$ref": "#/definitions/TokenBasedTriggerInput" + }, + "TimeBasedTrigger": { + "$ref": "#/definitions/TimeBasedTriggerInput" + } + }, + "additionalProperties": false, + "maxProperties": 1, + "minProperties": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MessageBasedTriggerInput": { + "type": "object", + "properties": { + "MessageCount": { + "type": "integer", + "minimum": 1, + "maximum": 50, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TokenBasedTriggerInput": { + "type": "object", + "properties": { + "TokenCount": { + "type": "integer", + "minimum": 100, + "maximum": 500000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TimeBasedTriggerInput": { + "type": "object", + "properties": { + "IdleSessionTimeout": { + "type": "integer", + "minimum": 10, + "maximum": 3000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "InvocationConfigurationInput": { + "type": "object", + "properties": { + "TopicArn": { + "$ref": "#/definitions/Arn" + }, + "PayloadDeliveryBucketName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SemanticOverride": { + "type": "object", + "properties": { + "Extraction": { + "$ref": "#/definitions/SemanticOverrideExtractionConfigurationInput" + }, + "Consolidation": { + "$ref": "#/definitions/SemanticOverrideConsolidationConfigurationInput" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SemanticOverrideExtractionConfigurationInput": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SemanticOverrideConsolidationConfigurationInput": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SummaryOverride": { + "type": "object", + "properties": { + "Consolidation": { + "$ref": "#/definitions/SummaryOverrideConsolidationConfigurationInput" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SummaryOverrideConsolidationConfigurationInput": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UserPreferenceOverride": { + "type": "object", + "properties": { + "Extraction": { + "$ref": "#/definitions/UserPreferenceOverrideExtractionConfigurationInput" + }, + "Consolidation": { + "$ref": "#/definitions/UserPreferenceOverrideConsolidationConfigurationInput" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UserPreferenceOverrideExtractionConfigurationInput": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "UserPreferenceOverrideConsolidationConfigurationInput": { + "type": "object", + "properties": { + "AppendToPrompt": { + "$ref": "#/definitions/Prompt" + }, + "ModelId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AppendToPrompt", + "ModelId" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TagsMap": { + "type": "object", + "description": "A map of tag keys and values", + "maxProperties": 50, + "minProperties": 0, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]{1,128}$": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "description": "Value of a tag", + "markdownDescription": "Value of a tag\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nPattern: ^[a-zA-Z0-9\\s._:/=+@-]*$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "A map of tag keys and values\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Name": { + "$ref": "#/definitions/Name" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "EncryptionKeyArn": { + "$ref": "#/definitions/Arn" + }, + "MemoryExecutionRoleArn": { + "$ref": "#/definitions/Arn" + }, + "EventExpiryDuration": { + "type": "integer", + "minimum": 7, + "maximum": 365, + "description": "Duration in days until memory events expire", + "markdownDescription": "Duration in days until memory events expire\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "MemoryArn": { + "$ref": "#/definitions/MemoryArn" + }, + "MemoryId": { + "$ref": "#/definitions/MemoryId" + }, + "Status": { + "$ref": "#/definitions/MemoryStatus" + }, + "FailureReason": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "MemoryStrategies": { + "$ref": "#/definitions/MemoryStrategies" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + } + }, + "required": [ + "Name", + "EventExpiryDuration" + ], + "primaryIdentifier": [ + "/properties/MemoryArn" + ], + "additionalIdentifiers": [ + [ + "/properties/MemoryId" + ] + ], + "readOnlyProperties": [ + "/properties/MemoryArn", + "/properties/MemoryId", + "/properties/Status", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/FailureReason", + "/properties/MemoryStrategies/*/SemanticMemoryStrategy/CreatedAt", + "/properties/MemoryStrategies/*/SemanticMemoryStrategy/UpdatedAt", + "/properties/MemoryStrategies/*/SemanticMemoryStrategy/StrategyId", + "/properties/MemoryStrategies/*/SemanticMemoryStrategy/Status", + "/properties/MemoryStrategies/*/SemanticMemoryStrategy/Type", + "/properties/MemoryStrategies/*/SummaryMemoryStrategy/CreatedAt", + "/properties/MemoryStrategies/*/SummaryMemoryStrategy/UpdatedAt", + "/properties/MemoryStrategies/*/SummaryMemoryStrategy/StrategyId", + "/properties/MemoryStrategies/*/SummaryMemoryStrategy/Status", + "/properties/MemoryStrategies/*/SummaryMemoryStrategy/Type", + "/properties/MemoryStrategies/*/UserPreferenceMemoryStrategy/CreatedAt", + "/properties/MemoryStrategies/*/UserPreferenceMemoryStrategy/UpdatedAt", + "/properties/MemoryStrategies/*/UserPreferenceMemoryStrategy/StrategyId", + "/properties/MemoryStrategies/*/UserPreferenceMemoryStrategy/Status", + "/properties/MemoryStrategies/*/UserPreferenceMemoryStrategy/Type", + "/properties/MemoryStrategies/*/CustomMemoryStrategy/CreatedAt", + "/properties/MemoryStrategies/*/CustomMemoryStrategy/UpdatedAt", + "/properties/MemoryStrategies/*/CustomMemoryStrategy/StrategyId", + "/properties/MemoryStrategies/*/CustomMemoryStrategy/Status", + "/properties/MemoryStrategies/*/CustomMemoryStrategy/Type" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/EncryptionKeyArn" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock-agentcore:CreateMemory", + "bedrock-agentcore:GetMemory", + "iam:PassRole", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncryptTo", + "kms:ReEncryptFrom", + "kms:GenerateDataKey", + "bedrock-agentcore:TagResource" + ], + "timeoutInMinutes": 45 + }, + "read": { + "permissions": [ + "bedrock-agentcore:GetMemory", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock-agentcore:UpdateMemory", + "bedrock-agentcore:GetMemory", + "iam:PassRole", + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "bedrock-agentcore:DeleteMemory", + "bedrock-agentcore:GetMemory" + ] + }, + "list": { + "permissions": [ + "bedrock-agentcore:ListMemories" + ] + } + }, + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true, + "permissions": [ + "bedrock-agentcore:TagResource", + "bedrock-agentcore:UntagResource", + "bedrock-agentcore:ListTagsForResource" + ] + }, + "additionalProperties": false, + "attributes": { + "MemoryArn": { + "$ref": "#/definitions/MemoryArn" + }, + "MemoryId": { + "$ref": "#/definitions/MemoryId" + }, + "Status": { + "$ref": "#/definitions/MemoryStatus" + }, + "FailureReason": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "UpdatedAt": { + "type": "string", + "format": "date-time", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-bedrockagentcore-runtime.json b/server/schema/resources/aws-bedrockagentcore-runtime.json index d59322ad..09b2f0b5 100644 --- a/server/schema/resources/aws-bedrockagentcore-runtime.json +++ b/server/schema/resources/aws-bedrockagentcore-runtime.json @@ -59,6 +59,9 @@ "properties": { "NetworkMode": { "$ref": "#/definitions/NetworkMode" + }, + "NetworkModeConfig": { + "$ref": "#/definitions/VpcConfig" } }, "required": [ @@ -71,9 +74,60 @@ "type": "string", "description": "Network mode configuration type", "enum": [ - "PUBLIC" + "PUBLIC", + "VPC" ], - "markdownDescription": "Network mode configuration type\n\n---\n\nRequired: No \nType: String \nAllowed Values: PUBLIC \nUpdate requires: No interruption\n" + "markdownDescription": "Network mode configuration type\n\n---\n\nRequired: No \nType: String \nAllowed Values: PUBLIC | VPC \nUpdate requires: No interruption\n" + }, + "VpcConfig": { + "type": "object", + "description": "Network mode configuration for VPC", + "properties": { + "SecurityGroups": { + "$ref": "#/definitions/SecurityGroups" + }, + "Subnets": { + "$ref": "#/definitions/Subnets" + } + }, + "required": [ + "SecurityGroups", + "Subnets" + ], + "additionalProperties": false, + "markdownDescription": "Network mode configuration for VPC\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SecurityGroups": { + "type": "array", + "description": "Security groups for VPC", + "minItems": 1, + "maxItems": 16, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityGroupId" + }, + "markdownDescription": "Security groups for VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SecurityGroupId": { + "type": "string", + "description": "Security group id", + "markdownDescription": "Security group id\n\n---\n\nRequired: No \nType: String \nPattern: ^sg-[0-9a-zA-Z]{8,17}$ \nUpdate requires: No interruption\n" + }, + "Subnets": { + "type": "array", + "description": "Subnets for VPC", + "minItems": 1, + "maxItems": 16, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetId" + }, + "markdownDescription": "Subnets for VPC\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SubnetId": { + "type": "string", + "description": "Subnet id", + "markdownDescription": "Subnet id\n\n---\n\nRequired: No \nType: String \nPattern: ^subnet-[0-9a-zA-Z]{8,17}$ \nUpdate requires: No interruption\n" }, "ProtocolConfiguration": { "type": "string", @@ -360,6 +414,7 @@ "bedrock-agentcore:CreateWorkloadIdentity", "bedrock-agentcore:TagResource", "bedrock-agentcore:ListTagsForResource", + "iam:CreateServiceLinkedRole", "iam:PassRole" ] }, @@ -379,6 +434,7 @@ "bedrock-agentcore:TagResource", "bedrock-agentcore:UntagResource", "bedrock-agentcore:ListTagsForResource", + "iam:CreateServiceLinkedRole", "iam:PassRole" ] }, diff --git a/server/schema/resources/aws-billingconductor-billinggroup.json b/server/schema/resources/aws-billingconductor-billinggroup.json index 64bf020d..336d7669 100644 --- a/server/schema/resources/aws-billingconductor-billinggroup.json +++ b/server/schema/resources/aws-billingconductor-billinggroup.json @@ -18,7 +18,7 @@ "PricingPlanArn": { "description": "ARN of the attached pricing plan", "type": "string", - "markdownDescription": "ARN of the attached pricing plan\n\n---\n\nRequired: Yes \nType: String \nPattern: arn:aws(-cn)?:billingconductor::[0-9]{12}:pricingplan/[a-zA-Z0-9]{10} \nUpdate requires: No interruption\n" + "markdownDescription": "ARN of the attached pricing plan\n\n---\n\nRequired: Yes \nType: String \nPattern: arn:aws(-cn)?:billingconductor::(aws|[0-9]{12}):pricingplan/(BasicPricingPlan|[a-zA-Z0-9]{10}) \nUpdate requires: No interruption\n" } }, "required": [ diff --git a/server/schema/resources/aws-billingconductor-pricingplan.json b/server/schema/resources/aws-billingconductor-pricingplan.json index a5c8d0bc..42c36929 100644 --- a/server/schema/resources/aws-billingconductor-pricingplan.json +++ b/server/schema/resources/aws-billingconductor-pricingplan.json @@ -36,7 +36,7 @@ "Arn": { "description": "Pricing Plan ARN", "type": "string", - "markdownDescription": "Pricing Plan ARN\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws(-cn)?:billingconductor::[0-9]{12}:pricingplan/[a-zA-Z0-9]{10} \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "Pricing Plan ARN\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws(-cn)?:billingconductor::(aws|[0-9]{12}):pricingplan/(BasicPricingPlan|[a-zA-Z0-9]{10}) \nUpdate requires: No interruption\nRead only property: Yes" }, "Name": { "type": "string", @@ -154,7 +154,7 @@ "Arn": { "description": "Pricing Plan ARN", "type": "string", - "markdownDescription": "Pricing Plan ARN\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws(-cn)?:billingconductor::[0-9]{12}:pricingplan/[a-zA-Z0-9]{10} \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "Pricing Plan ARN\n\n---\n\nRequired: No \nType: String \nPattern: arn:aws(-cn)?:billingconductor::(aws|[0-9]{12}):pricingplan/(BasicPricingPlan|[a-zA-Z0-9]{10}) \nUpdate requires: No interruption\nRead only property: Yes" }, "Size": { "type": "integer", diff --git a/server/schema/resources/aws-cloudfront-anycastiplist.json b/server/schema/resources/aws-cloudfront-anycastiplist.json index 9020603e..0b340f51 100644 --- a/server/schema/resources/aws-cloudfront-anycastiplist.json +++ b/server/schema/resources/aws-cloudfront-anycastiplist.json @@ -33,6 +33,11 @@ "description": "The number of IP addresses in the Anycast static IP list.", "markdownDescription": "The number of IP addresses in the Anycast static IP list.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" }, + "IpAddressType": { + "$ref": "#/definitions/IpAddressType", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "LastModifiedTime": { "format": "date-time", "type": "string", @@ -105,6 +110,14 @@ "type": "object", "description": "A complex type that contains zero or more ``Tag`` elements.", "markdownDescription": "A complex type that contains zero or more ``Tag`` elements.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IpAddressType": { + "enum": [ + "ipv4", + "dualstack" + ], + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ipv4 | dualstack \nUpdate requires: No interruption\n" } }, "description": "An Anycast static IP list. For more information, see [Request Anycast static IPs to use for allowlisting](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/request-static-ips.html) in the *Amazon CloudFront Developer Guide*.", @@ -121,6 +134,15 @@ "cloudfront:GetAnycastIpList" ] }, + "update": { + "permissions": [ + "cloudfront:UpdateAnycastIpList", + "cloudfront:GetAnycastIpList", + "cloudfront:ListTagsForResource", + "cloudfront:TagResource", + "cloudfront:UntagResource" + ] + }, "list": { "permissions": [ "cloudfront:ListAnycastIpLists" @@ -157,6 +179,11 @@ "description": "The number of IP addresses in the Anycast static IP list.", "markdownDescription": "The number of IP addresses in the Anycast static IP list.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: Replacement\n" }, + "IpAddressType": { + "$ref": "#/definitions/IpAddressType", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "Name": { "maxLength": 64, "minLength": 1, @@ -183,6 +210,7 @@ "cloudFormationSystemTags": false, "permissions": [ "cloudfront:TagResource", + "cloudfront:UntagResource", "cloudfront:ListTagsForResource" ], "tagOnCreate": true, diff --git a/server/schema/resources/aws-cloudfront-distribution.json b/server/schema/resources/aws-cloudfront-distribution.json index 59c2acd2..d3d67e64 100644 --- a/server/schema/resources/aws-cloudfront-distribution.json +++ b/server/schema/resources/aws-cloudfront-distribution.json @@ -280,8 +280,8 @@ "ipv6", "dualstack" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ipv4 | ipv6 | dualstack \nUpdate requires: No interruption\n" + "description": "Specifies which IP protocol CloudFront uses when connecting to your origin. If your origin uses both IPv4 and IPv6 protocols, you can choose ``dualstack`` to help optimize reliability.", + "markdownDescription": "Specifies which IP protocol CloudFront uses when connecting to your origin. If your origin uses both IPv4 and IPv6 protocols, you can choose ``dualstack`` to help optimize reliability.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ipv4 | ipv6 | dualstack \nUpdate requires: No interruption\n" } }, "required": [ @@ -1267,6 +1267,11 @@ "description": "Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 120 seconds, and the default (if you don't specify otherwise) is 30 seconds.\n For more information, see [Response timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistValuesOrigin.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*.", "markdownDescription": "Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 120 seconds, and the default (if you don't specify otherwise) is 30 seconds.\n For more information, see [Response timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistValuesOrigin.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, + "OwnerAccountId": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "VpcOriginId": { "type": "string", "description": "The VPC origin ID.", @@ -1295,6 +1300,7 @@ "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", + "cloudfront:GetVpcOrigin", "cloudfront:TagResource" ], "timeoutInMinutes": 60 @@ -1324,6 +1330,7 @@ "cloudfront:GetConnectionGroup", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", + "cloudfront:GetVpcOrigin", "cloudfront:UpdateDistribution", "cloudfront:UpdateDistributionWithStagingConfig", "cloudfront:ListTagsForResource", diff --git a/server/schema/resources/aws-cloudfront-publickey.json b/server/schema/resources/aws-cloudfront-publickey.json index 68ec0749..7c9afaf3 100644 --- a/server/schema/resources/aws-cloudfront-publickey.json +++ b/server/schema/resources/aws-cloudfront-publickey.json @@ -31,11 +31,11 @@ "EncodedKey" ], "type": "object", - "description": "Configuration information about a public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).", - "markdownDescription": "Configuration information about a public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "Configuration information about a public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).\n CloudFront supports signed URLs and signed cookies with RSA 2048 or ECDSA 256 key signatures. Field-level encryption is only compatible with RSA 2048 key signatures.", + "markdownDescription": "Configuration information about a public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).\n CloudFront supports signed URLs and signed cookies with RSA 2048 or ECDSA 256 key signatures. Field-level encryption is only compatible with RSA 2048 key signatures.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, - "description": "A public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).", + "description": "A public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html).\n CloudFront supports signed URLs and signed cookies with RSA 2048 or ECDSA 256 key signatures. Field-level encryption is only compatible with RSA 2048 key signatures.", "handlers": { "create": { "permissions": [ diff --git a/server/schema/resources/aws-cloudfront-vpcorigin.json b/server/schema/resources/aws-cloudfront-vpcorigin.json index 82f6adc4..b59373c1 100644 --- a/server/schema/resources/aws-cloudfront-vpcorigin.json +++ b/server/schema/resources/aws-cloudfront-vpcorigin.json @@ -140,6 +140,11 @@ "description": "", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "AccountId": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "CreatedTime": { "type": "string", "description": "", @@ -178,6 +183,7 @@ "readOnlyProperties": [ "/properties/Id", "/properties/Arn", + "/properties/AccountId", "/properties/Status", "/properties/CreatedTime", "/properties/LastModifiedTime" @@ -204,6 +210,11 @@ "description": "", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "AccountId": { + "type": "string", + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "CreatedTime": { "type": "string", "description": "", diff --git a/server/schema/resources/aws-connect-emailaddress.json b/server/schema/resources/aws-connect-emailaddress.json index 46e86cf1..48ebe768 100644 --- a/server/schema/resources/aws-connect-emailaddress.json +++ b/server/schema/resources/aws-connect-emailaddress.json @@ -27,6 +27,22 @@ ], "additionalProperties": false, "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AliasConfiguration": { + "description": "Configuration for an email address alias", + "type": "object", + "properties": { + "EmailAddressArn": { + "description": "The identifier of the email address alias", + "type": "string", + "markdownDescription": "The identifier of the email address alias\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:(aws|aws-us-gov):connect:[a-z]{2}-[a-z]+-[0-9]{1}:[0-9]{1,20}:instance/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/email-address/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EmailAddressArn" + ], + "additionalProperties": false, + "markdownDescription": "Configuration for an email address alias\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -63,6 +79,16 @@ "maxLength": 256, "markdownDescription": "The display name for the email address.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nPattern: (^[\\S].*[\\S]$)|(^[\\S]$) \nUpdate requires: No interruption\n" }, + "AliasConfigurations": { + "description": "List of alias configurations for the email address", + "type": "array", + "items": { + "$ref": "#/definitions/AliasConfiguration" + }, + "maxItems": 1, + "insertionOrder": false, + "markdownDescription": "List of alias configurations for the email address\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "Tags": { "type": "array", "maxItems": 50, @@ -104,6 +130,7 @@ "create": { "permissions": [ "connect:CreateEmailAddress", + "connect:AssociateEmailAddressAlias", "connect:TagResource", "connect:ListIntegrationAssociations", "ses:GetEmailIdentity", @@ -120,6 +147,8 @@ "update": { "permissions": [ "connect:UpdateEmailAddressMetadata", + "connect:AssociateEmailAddressAlias", + "connect:DisassociateEmailAddressAlias", "connect:TagResource", "connect:UntagResource" ] @@ -127,6 +156,7 @@ "delete": { "permissions": [ "connect:DeleteEmailAddress", + "connect:DisassociateEmailAddressAlias", "connect:UntagResource", "iam:PassRole", "ses:DescribeReceiptRule", diff --git a/server/schema/resources/aws-connect-evaluationform.json b/server/schema/resources/aws-connect-evaluationform.json index 436eb26c..39d4541b 100644 --- a/server/schema/resources/aws-connect-evaluationform.json +++ b/server/schema/resources/aws-connect-evaluationform.json @@ -1,67 +1,44 @@ { + "typeName": "AWS::Connect::EvaluationForm", + "description": "Creates an evaluation form for the specified CON instance.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", - "tagging": { - "permissions": [ - "connect:ListTagsForResource", - "connect:UntagResource", - "connect:TagResource" - ], - "taggable": true, - "tagOnCreate": false, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "handlers": { - "read": { - "permissions": [ - "connect:DescribeEvaluationForm", - "connect:ListEvaluationFormVersions" - ] + "definitions": { + "RefId": { + "description": "The identifier to reference the item.", + "type": "string", + "markdownDescription": "The identifier to reference the item.\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9._-]{1,40}$ \nUpdate requires: No interruption\n" }, - "create": { - "permissions": [ - "connect:CreateEvaluationForm", - "connect:ActivateEvaluationForm", - "connect:TagResource" - ] + "Weight": { + "description": "The item weight used for scoring.", + "type": "number", + "minimum": 0, + "maximum": 100, + "markdownDescription": "The item weight used for scoring.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, - "update": { - "permissions": [ - "connect:UpdateEvaluationForm", - "connect:ListEvaluationFormVersions", - "connect:ActivateEvaluationForm", - "connect:DeactivateEvaluationForm", - "connect:TagResource", - "connect:UntagResource" - ] + "Score": { + "description": "The score of an answer option.", + "type": "integer", + "minimum": 0, + "maximum": 10, + "markdownDescription": "The score of an answer option.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "list": { - "permissions": [ - "connect:ListEvaluationForms" - ] + "AutomaticFailConfiguration": { + "description": "", + "type": "object", + "additionalProperties": false, + "properties": { + "TargetSection": { + "description": "The target section refId to control failure propagation boundary.", + "type": "string", + "markdownDescription": "The target section refId to control failure propagation boundary.\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9._-]{1,40}$ \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "delete": { - "permissions": [ - "connect:DeleteEvaluationForm", - "connect:UntagResource" - ] - } - }, - "typeName": "AWS::Connect::EvaluationForm", - "readOnlyProperties": [ - "/properties/EvaluationFormArn" - ], - "description": "Creates an evaluation form for the specified CON instance.", - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/EvaluationFormArn" - ], - "definitions": { "EvaluationFormBaseItem": { "description": "An item at the root level. All items must be sections.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "Section": { "description": "A subsection or inner section of an item.", @@ -74,15 +51,33 @@ ], "markdownDescription": "An item at the root level. All items must be sections.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "EvaluationFormItem": { + "description": "Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.", + "type": "object", + "additionalProperties": false, + "properties": { + "Section": { + "description": "The information of the section.", + "$ref": "#/definitions/EvaluationFormSection", + "markdownDescription": "The information of the section.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Question": { + "description": "The information of the question.", + "$ref": "#/definitions/EvaluationFormQuestion", + "markdownDescription": "The information of the question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "EvaluationFormSection": { "description": "Information about a section from an evaluation form. A section can contain sections and/or questions. Evaluation forms can only contain sections and subsections (two level nesting).", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "Title": { - "minLength": 1, "description": "The title of the section.\n *Length Constraints*: Minimum length of 1. Maximum length of 128.", "type": "string", + "minLength": 1, "maxLength": 128, "markdownDescription": "The title of the section.\n *Length Constraints*: Minimum length of 1. Maximum length of 128.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" }, @@ -92,22 +87,22 @@ "maxLength": 1024, "markdownDescription": "The instructions of the section.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption\n" }, + "RefId": { + "description": "The identifier of the section. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", + "$ref": "#/definitions/RefId", + "markdownDescription": "The identifier of the section. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, "Items": { - "minItems": 1, - "maxItems": 200, "description": "The items of the section.\n *Minimum*: 1", - "insertionOrder": true, "type": "array", + "insertionOrder": true, + "minItems": 1, + "maxItems": 200, "items": { "$ref": "#/definitions/EvaluationFormItem" }, "markdownDescription": "The items of the section.\n *Minimum*: 1\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "RefId": { - "description": "The identifier of the section. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", - "$ref": "#/definitions/RefId", - "markdownDescription": "The identifier of the section. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" - }, "Weight": { "description": "The scoring weight of the section.\n *Minimum*: 0 \n *Maximum*: 100", "$ref": "#/definitions/Weight", @@ -120,164 +115,169 @@ ], "markdownDescription": "Information about a section from an evaluation form. A section can contain sections and/or questions. Evaluation forms can only contain sections and subsections (two level nesting).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "EvaluationFormSingleSelectQuestionProperties": { - "description": "Information about the options in single select questions.", - "additionalProperties": false, + "EvaluationFormItemEnablementConfiguration": { + "description": "", "type": "object", + "additionalProperties": false, "properties": { - "DisplayAs": { - "description": "The display mode of the single select question.\n *Allowed values*: ``DROPDOWN`` | ``RADIO``", + "Condition": { + "description": "Specifies the logical condition that determines when to apply the enablement rules.", + "$ref": "#/definitions/EvaluationFormItemEnablementCondition", + "markdownDescription": "Specifies the logical condition that determines when to apply the enablement rules.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "Action": { + "description": "Defines the enablement status to be applied when the specified condition is met.", "type": "string", "enum": [ - "DROPDOWN", - "RADIO" + "DISABLE", + "ENABLE" ], - "markdownDescription": "The display mode of the single select question.\n *Allowed values*: ``DROPDOWN`` | ``RADIO``\n\n---\n\nRequired: No \nType: String \nAllowed Values: DROPDOWN | RADIO \nUpdate requires: No interruption\n" - }, - "Options": { - "minItems": 2, - "maxItems": 256, - "description": "The answer options of the single select question.\n *Minimum*: 2\n *Maximum*: 256", - "insertionOrder": true, - "type": "array", - "items": { - "$ref": "#/definitions/EvaluationFormSingleSelectQuestionOption" - }, - "markdownDescription": "The answer options of the single select question.\n *Minimum*: 2\n *Maximum*: 256\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "Defines the enablement status to be applied when the specified condition is met.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: DISABLE | ENABLE \nUpdate requires: No interruption\n" }, - "Automation": { - "description": "The display mode of the single select question.", - "$ref": "#/definitions/EvaluationFormSingleSelectQuestionAutomation", - "markdownDescription": "The display mode of the single select question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "DefaultAction": { + "description": "Specifies the default enablement status to be applied when the condition is not satisfied.", + "type": "string", + "enum": [ + "DISABLE", + "ENABLE" + ], + "markdownDescription": "Specifies the default enablement status to be applied when the condition is not satisfied.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DISABLE | ENABLE \nUpdate requires: No interruption\n" } }, "required": [ - "Options" + "Condition", + "Action" ], - "markdownDescription": "Information about the options in single select questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "EvaluationFormQuestion": { - "description": "Information about a question from an evaluation form.", - "additionalProperties": false, + "EvaluationFormItemEnablementCondition": { + "description": "", "type": "object", + "additionalProperties": false, "properties": { - "NotApplicableEnabled": { - "description": "The flag to enable not applicable answers to the question.", - "type": "boolean", - "markdownDescription": "The flag to enable not applicable answers to the question.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "Title": { - "minLength": 1, - "description": "The title of the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 350.", - "type": "string", - "maxLength": 350, - "markdownDescription": "The title of the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 350.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 350 \nUpdate requires: No interruption\n" + "Operands": { + "description": "The list of operands that compose the condition. Each operand represents a specific criteria to be evaluated.", + "type": "array", + "insertionOrder": true, + "minItems": 1, + "items": { + "$ref": "#/definitions/EvaluationFormItemEnablementConditionOperand" + }, + "markdownDescription": "The list of operands that compose the condition. Each operand represents a specific criteria to be evaluated.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, - "QuestionType": { - "description": "The type of the question.\n *Allowed values*: ``NUMERIC`` | ``SINGLESELECT`` | ``TEXT``", + "Operator": { + "description": "The logical operator used to combine multiple operands, determining how the condition is evaluated as a whole.", "type": "string", "enum": [ - "NUMERIC", - "SINGLESELECT", - "TEXT" + "OR", + "AND" ], - "markdownDescription": "The type of the question.\n *Allowed values*: ``NUMERIC`` | ``SINGLESELECT`` | ``TEXT``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: NUMERIC | SINGLESELECT | TEXT \nUpdate requires: No interruption\n" - }, - "Instructions": { - "description": "The instructions of the section.\n *Length Constraints*: Minimum length of 0. Maximum length of 1024.", - "type": "string", - "maxLength": 1024, - "markdownDescription": "The instructions of the section.\n *Length Constraints*: Minimum length of 0. Maximum length of 1024.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption\n" - }, - "RefId": { - "description": "The identifier of the question. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", - "$ref": "#/definitions/RefId", - "markdownDescription": "The identifier of the question. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" - }, - "QuestionTypeProperties": { - "description": "The properties of the type of question. Text questions do not have to define question type properties.", - "$ref": "#/definitions/EvaluationFormQuestionTypeProperties", - "markdownDescription": "The properties of the type of question. Text questions do not have to define question type properties.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - }, - "Weight": { - "description": "The scoring weight of the section.\n *Minimum*: 0\n *Maximum*: 100", - "$ref": "#/definitions/Weight", - "markdownDescription": "The scoring weight of the section.\n *Minimum*: 0\n *Maximum*: 100\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "The logical operator used to combine multiple operands, determining how the condition is evaluated as a whole.\n\n---\n\nRequired: No \nType: String \nAllowed Values: OR | AND \nUpdate requires: No interruption\n" } }, "required": [ - "RefId", - "Title", - "QuestionType" + "Operands" ], - "markdownDescription": "Information about a question from an evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "EvaluationFormSingleSelectQuestionAutomation": { - "description": "Information about the automation configuration in single select questions. Automation options are evaluated in order, and the first matched option is applied. If no automation option matches, and there is a default option, then the default option is applied.", + "EvaluationFormItemEnablementConditionOperand": { + "description": "", + "type": "object", "additionalProperties": false, + "properties": { + "Expression": { + "description": "A direct comparison expression that evaluates a form item's value against specified criteria.", + "$ref": "#/definitions/EvaluationFormItemEnablementExpression", + "markdownDescription": "A direct comparison expression that evaluates a form item's value against specified criteria.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormItemEnablementExpression": { + "description": "", "type": "object", + "additionalProperties": false, "properties": { - "Options": { - "minItems": 1, - "maxItems": 20, - "description": "The automation options of the single select question.\n *Minimum*: 1\n *Maximum*: 20", - "insertionOrder": true, + "Source": { + "description": "Identifies the form item whose value will be evaluated in the expression.", + "$ref": "#/definitions/EvaluationFormItemEnablementSource", + "markdownDescription": "Identifies the form item whose value will be evaluated in the expression.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "Values": { + "description": "The list of possible values to compare against the source form item's value.", "type": "array", + "insertionOrder": true, + "minItems": 1, "items": { - "$ref": "#/definitions/EvaluationFormSingleSelectQuestionAutomationOption" + "$ref": "#/definitions/EvaluationFormItemEnablementSourceValue" }, - "markdownDescription": "The automation options of the single select question.\n *Minimum*: 1\n *Maximum*: 20\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "The list of possible values to compare against the source form item's value.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, - "DefaultOptionRefId": { - "description": "The identifier of the default answer option, when none of the automation options match the criteria.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", - "$ref": "#/definitions/RefId", - "markdownDescription": "The identifier of the default answer option, when none of the automation options match the criteria.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "Comparator": { + "description": "Specifies the comparison method to determine if the source value matches any of the specified values.", + "type": "string", + "enum": [ + "IN", + "NOT_IN" + ], + "markdownDescription": "Specifies the comparison method to determine if the source value matches any of the specified values.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: IN | NOT_IN \nUpdate requires: No interruption\n" } }, "required": [ - "Options" + "Source", + "Values", + "Comparator" ], - "markdownDescription": "Information about the automation configuration in single select questions. Automation options are evaluated in order, and the first matched option is applied. If no automation option matches, and there is a default option, then the default option is applied.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "EvaluationFormSingleSelectQuestionAutomationOption": { - "description": "The automation options of the single select question.", - "additionalProperties": false, + "EvaluationFormItemEnablementSource": { + "description": "", "type": "object", + "additionalProperties": false, "properties": { - "RuleCategory": { - "description": "The automation option based on a rule category for the single select question.", - "$ref": "#/definitions/SingleSelectQuestionRuleCategoryAutomation", - "markdownDescription": "The automation option based on a rule category for the single select question.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + "Type": { + "description": "The type of the source entity.", + "type": "string", + "enum": [ + "QUESTION_REF_ID" + ], + "markdownDescription": "The type of the source entity.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: QUESTION_REF_ID \nUpdate requires: No interruption\n" + }, + "RefId": { + "$ref": "#/definitions/RefId" } }, "required": [ - "RuleCategory" + "Type" ], - "markdownDescription": "The automation options of the single select question.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "EvaluationFormNumericQuestionAutomation": { - "description": "Information about the automation configuration in numeric questions.", - "additionalProperties": false, + "EvaluationFormItemEnablementSourceValue": { + "description": "", "type": "object", + "additionalProperties": false, "properties": { - "PropertyValue": { - "description": "The property value of the automation.", - "$ref": "#/definitions/NumericQuestionPropertyValueAutomation", - "markdownDescription": "The property value of the automation.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "Type": { + "description": "Type of the source entity value.", + "type": "string", + "enum": [ + "OPTION_REF_ID" + ], + "markdownDescription": "Type of the source entity value.\n\n---\n\nRequired: No \nType: String \nAllowed Values: OPTION_REF_ID \nUpdate requires: No interruption\n" + }, + "RefId": { + "description": "The reference id of the source entity value.", + "$ref": "#/definitions/RefId", + "markdownDescription": "The reference id of the source entity value.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Information about the automation configuration in numeric questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "EvaluationFormNumericQuestionOption": { "description": "Information about the option range used for scoring in numeric questions.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { - "Score": { - "description": "The score assigned to answer values within the range option.\n *Minimum*: 0\n *Maximum*: 10", - "$ref": "#/definitions/Score", - "markdownDescription": "The score assigned to answer values within the range option.\n *Minimum*: 0\n *Maximum*: 10\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - }, "MinValue": { "description": "The minimum answer value of the range option.", "type": "integer", @@ -288,10 +288,20 @@ "type": "integer", "markdownDescription": "The maximum answer value of the range option.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" }, + "Score": { + "description": "The score assigned to answer values within the range option.\n *Minimum*: 0\n *Maximum*: 10", + "$ref": "#/definitions/Score", + "markdownDescription": "The score assigned to answer values within the range option.\n *Minimum*: 0\n *Maximum*: 10\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "AutomaticFail": { "description": "The flag to mark the option as automatic fail. If an automatic fail answer is provided, the overall evaluation gets a score of 0.", "type": "boolean", "markdownDescription": "The flag to mark the option as automatic fail. If an automatic fail answer is provided, the overall evaluation gets a score of 0.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "AutomaticFailConfiguration": { + "description": "", + "$ref": "#/definitions/AutomaticFailConfiguration", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "required": [ @@ -300,95 +310,119 @@ ], "markdownDescription": "Information about the option range used for scoring in numeric questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "RefId": { - "description": "The identifier to reference the item.", - "type": "string", - "markdownDescription": "The identifier to reference the item.\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9._-]{1,40}$ \nUpdate requires: No interruption\n" - }, - "ScoringStrategy": { - "description": "A scoring strategy of the evaluation form.", - "additionalProperties": false, + "NumericQuestionPropertyValueAutomation": { + "description": "Information about the property value used in automation of a numeric questions.", "type": "object", + "additionalProperties": false, "properties": { - "Status": { - "description": "The scoring status of the evaluation form.\n *Allowed values*: ``ENABLED`` | ``DISABLED``", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "markdownDescription": "The scoring status of the evaluation form.\n *Allowed values*: ``ENABLED`` | ``DISABLED``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" - }, - "Mode": { - "description": "The scoring mode of the evaluation form.\n *Allowed values*: ``QUESTION_ONLY`` | ``SECTION_ONLY``", + "Label": { + "description": "The property label of the automation.", "type": "string", "enum": [ - "QUESTION_ONLY", - "SECTION_ONLY" + "OVERALL_CUSTOMER_SENTIMENT_SCORE", + "OVERALL_AGENT_SENTIMENT_SCORE", + "NON_TALK_TIME", + "NON_TALK_TIME_PERCENTAGE", + "NUMBER_OF_INTERRUPTIONS", + "CONTACT_DURATION", + "AGENT_INTERACTION_DURATION", + "CUSTOMER_HOLD_TIME", + "LONGEST_HOLD_DURATION", + "NUMBER_OF_HOLDS", + "AGENT_INTERACTION_AND_HOLD_DURATION" ], - "markdownDescription": "The scoring mode of the evaluation form.\n *Allowed values*: ``QUESTION_ONLY`` | ``SECTION_ONLY``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: QUESTION_ONLY | SECTION_ONLY \nUpdate requires: No interruption\n" + "markdownDescription": "The property label of the automation.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: OVERALL_CUSTOMER_SENTIMENT_SCORE | OVERALL_AGENT_SENTIMENT_SCORE | NON_TALK_TIME | NON_TALK_TIME_PERCENTAGE | NUMBER_OF_INTERRUPTIONS | CONTACT_DURATION | AGENT_INTERACTION_DURATION | CUSTOMER_HOLD_TIME | LONGEST_HOLD_DURATION | NUMBER_OF_HOLDS | AGENT_INTERACTION_AND_HOLD_DURATION \nUpdate requires: No interruption\n" } }, "required": [ - "Mode", - "Status" + "Label" ], - "markdownDescription": "A scoring strategy of the evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about the property value used in automation of a numeric questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "AutoEvaluationConfiguration": { - "description": "", - "additionalProperties": false, + "EvaluationFormNumericQuestionAutomation": { + "description": "Information about the automation configuration in numeric questions.", "type": "object", + "additionalProperties": false, "properties": { - "Enabled": { + "PropertyValue": { + "description": "The property value of the automation.", + "$ref": "#/definitions/NumericQuestionPropertyValueAutomation", + "markdownDescription": "The property value of the automation.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "AnswerSource": { "description": "", - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "$ref": "#/definitions/EvaluationFormQuestionAutomationAnswerSource", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about the automation configuration in numeric questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "EvaluationFormQuestionTypeProperties": { - "description": "Information about properties for a question in an evaluation form. The question type properties must be either for a numeric question or a single select question.", - "additionalProperties": false, + "EvaluationFormNumericQuestionProperties": { + "description": "Information about properties for a numeric question in an evaluation form.", "type": "object", + "additionalProperties": false, "properties": { - "Numeric": { - "description": "The properties of the numeric question.", - "$ref": "#/definitions/EvaluationFormNumericQuestionProperties", - "markdownDescription": "The properties of the numeric question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "MinValue": { + "description": "The minimum answer value.", + "type": "integer", + "markdownDescription": "The minimum answer value.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" }, - "SingleSelect": { - "description": "The properties of the numeric question.", - "$ref": "#/definitions/EvaluationFormSingleSelectQuestionProperties", - "markdownDescription": "The properties of the numeric question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "MaxValue": { + "description": "The maximum answer value.", + "type": "integer", + "markdownDescription": "The maximum answer value.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + }, + "Options": { + "description": "The scoring options of the numeric question.", + "type": "array", + "insertionOrder": true, + "minItems": 1, + "maxItems": 10, + "items": { + "$ref": "#/definitions/EvaluationFormNumericQuestionOption" + }, + "markdownDescription": "The scoring options of the numeric question.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Automation": { + "description": "The automation properties of the numeric question.", + "$ref": "#/definitions/EvaluationFormNumericQuestionAutomation", + "markdownDescription": "The automation properties of the numeric question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Information about properties for a question in an evaluation form. The question type properties must be either for a numeric question or a single select question.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "required": [ + "MinValue", + "MaxValue" + ], + "markdownDescription": "Information about properties for a numeric question in an evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "EvaluationFormItem": { - "description": "Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.", - "additionalProperties": false, + "EvaluationFormSingleSelectQuestionAutomationOption": { + "description": "The automation options of the single select question.", "type": "object", + "additionalProperties": false, "properties": { - "Question": { - "description": "The information of the question.", - "$ref": "#/definitions/EvaluationFormQuestion", - "markdownDescription": "The information of the question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - }, - "Section": { - "description": "The information of the section.", - "$ref": "#/definitions/EvaluationFormSection", - "markdownDescription": "The information of the section.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "RuleCategory": { + "description": "The automation option based on a rule category for the single select question.", + "$ref": "#/definitions/SingleSelectQuestionRuleCategoryAutomation", + "markdownDescription": "The automation option based on a rule category for the single select question.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "required": [ + "RuleCategory" + ], + "markdownDescription": "The automation options of the single select question.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "SingleSelectQuestionRuleCategoryAutomation": { "description": "Information about the automation option based on a rule category for a single select question.\n *Length Constraints*: Minimum length of 1. Maximum length of 50.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { + "Category": { + "description": "The category name, as defined in Rules.\n *Minimum*: 1\n *Maximum*: 50", + "type": "string", + "minLength": 1, + "maxLength": 50, + "markdownDescription": "The category name, as defined in Rules.\n *Minimum*: 1\n *Maximum*: 50\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 50 \nUpdate requires: No interruption\n" + }, "Condition": { "description": "The condition to apply for the automation option. If the condition is PRESENT, then the option is applied when the contact data includes the category. Similarly, if the condition is NOT_PRESENT, then the option is applied when the contact data does not include the category.\n *Allowed values*: ``PRESENT`` | ``NOT_PRESENT``\n *Maximum*: 50", "type": "string", @@ -398,13 +432,6 @@ ], "markdownDescription": "The condition to apply for the automation option. If the condition is PRESENT, then the option is applied when the contact data includes the category. Similarly, if the condition is NOT_PRESENT, then the option is applied when the contact data does not include the category.\n *Allowed values*: ``PRESENT`` | ``NOT_PRESENT``\n *Maximum*: 50\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: PRESENT | NOT_PRESENT \nUpdate requires: No interruption\n" }, - "Category": { - "minLength": 1, - "description": "The category name, as defined in Rules.\n *Minimum*: 1\n *Maximum*: 50", - "type": "string", - "maxLength": 50, - "markdownDescription": "The category name, as defined in Rules.\n *Minimum*: 1\n *Maximum*: 50\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 50 \nUpdate requires: No interruption\n" - }, "OptionRefId": { "description": "The identifier of the answer option. An identifier must be unique within the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", "$ref": "#/definitions/RefId", @@ -418,109 +445,69 @@ ], "markdownDescription": "Information about the automation option based on a rule category for a single select question.\n *Length Constraints*: Minimum length of 1. Maximum length of 50.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Weight": { - "description": "The item weight used for scoring.", - "maximum": 100, - "type": "number", - "minimum": 0, - "markdownDescription": "The item weight used for scoring.\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - }, - "Score": { - "description": "The score of an answer option.", - "maximum": 10, - "type": "integer", - "minimum": 0, - "markdownDescription": "The score of an answer option.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "EvaluationFormNumericQuestionProperties": { - "description": "Information about properties for a numeric question in an evaluation form.", - "additionalProperties": false, + "EvaluationFormSingleSelectQuestionAutomation": { + "description": "Information about the automation configuration in single select questions. Automation options are evaluated in order, and the first matched option is applied. If no automation option matches, and there is a default option, then the default option is applied.", "type": "object", + "additionalProperties": false, "properties": { "Options": { - "minItems": 1, - "maxItems": 10, - "description": "The scoring options of the numeric question.", - "insertionOrder": true, + "description": "The automation options of the single select question.\n *Minimum*: 1\n *Maximum*: 20", "type": "array", + "insertionOrder": true, + "minItems": 1, + "maxItems": 20, "items": { - "$ref": "#/definitions/EvaluationFormNumericQuestionOption" + "$ref": "#/definitions/EvaluationFormSingleSelectQuestionAutomationOption" }, - "markdownDescription": "The scoring options of the numeric question.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Automation": { - "description": "The automation properties of the numeric question.", - "$ref": "#/definitions/EvaluationFormNumericQuestionAutomation", - "markdownDescription": "The automation properties of the numeric question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "The automation options of the single select question.\n *Minimum*: 1\n *Maximum*: 20\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, - "MinValue": { - "description": "The minimum answer value.", - "type": "integer", - "markdownDescription": "The minimum answer value.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + "DefaultOptionRefId": { + "description": "The identifier of the default answer option, when none of the automation options match the criteria.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", + "$ref": "#/definitions/RefId", + "markdownDescription": "The identifier of the default answer option, when none of the automation options match the criteria.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, - "MaxValue": { - "description": "The maximum answer value.", - "type": "integer", - "markdownDescription": "The maximum answer value.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + "AnswerSource": { + "description": "", + "$ref": "#/definitions/EvaluationFormQuestionAutomationAnswerSource", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "required": [ - "MinValue", - "MaxValue" + "Options" ], - "markdownDescription": "Information about properties for a numeric question in an evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information about the automation configuration in single select questions. Automation options are evaluated in order, and the first matched option is applied. If no automation option matches, and there is a default option, then the default option is applied.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Tag": { - "description": "A key-value pair to associate with a resource.", - "additionalProperties": false, + "EvaluationFormSingleSelectQuestionOption": { + "description": "Information about the automation configuration in single select questions.", "type": "object", + "additionalProperties": false, "properties": { - "Value": { - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -", - "type": "string", - "maxLength": 256, - "markdownDescription": "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 -\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + "RefId": { + "description": "The identifier of the answer option. An identifier must be unique within the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", + "$ref": "#/definitions/RefId", + "markdownDescription": "The identifier of the answer option. An identifier must be unique within the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" }, - "Key": { - "minLength": 1, - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -", + "Text": { + "description": "The title of the answer option.\n *Length Constraints*: Minimum length of 1. Maximum length of 128.", "type": "string", + "minLength": 1, "maxLength": 128, - "markdownDescription": "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 -\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:)[a-zA-Z+-=._:/]+$ \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Key", - "Value" - ], - "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "EvaluationFormSingleSelectQuestionOption": { - "description": "Information about the automation configuration in single select questions.", - "additionalProperties": false, - "type": "object", - "properties": { + "markdownDescription": "The title of the answer option.\n *Length Constraints*: Minimum length of 1. Maximum length of 128.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, "Score": { "description": "The score assigned to the answer option.\n *Minimum*: 0\n *Maximum*: 10", "$ref": "#/definitions/Score", "markdownDescription": "The score assigned to the answer option.\n *Minimum*: 0\n *Maximum*: 10\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, - "Text": { - "minLength": 1, - "description": "The title of the answer option.\n *Length Constraints*: Minimum length of 1. Maximum length of 128.", - "type": "string", - "maxLength": 128, - "markdownDescription": "The title of the answer option.\n *Length Constraints*: Minimum length of 1. Maximum length of 128.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" - }, - "RefId": { - "description": "The identifier of the answer option. An identifier must be unique within the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", - "$ref": "#/definitions/RefId", - "markdownDescription": "The identifier of the answer option. An identifier must be unique within the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" - }, "AutomaticFail": { "description": "The flag to mark the option as automatic fail. If an automatic fail answer is provided, the overall evaluation gets a score of 0.", "type": "boolean", "markdownDescription": "The flag to mark the option as automatic fail. If an automatic fail answer is provided, the overall evaluation gets a score of 0.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "AutomaticFailConfiguration": { + "description": "", + "$ref": "#/definitions/AutomaticFailConfiguration", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "required": [ @@ -529,56 +516,248 @@ ], "markdownDescription": "Information about the automation configuration in single select questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "NumericQuestionPropertyValueAutomation": { - "description": "Information about the property value used in automation of a numeric questions.", + "EvaluationFormSingleSelectQuestionProperties": { + "description": "Information about the options in single select questions.", + "type": "object", "additionalProperties": false, + "properties": { + "Options": { + "description": "The answer options of the single select question.\n *Minimum*: 2\n *Maximum*: 256", + "type": "array", + "insertionOrder": true, + "minItems": 2, + "maxItems": 256, + "items": { + "$ref": "#/definitions/EvaluationFormSingleSelectQuestionOption" + }, + "markdownDescription": "The answer options of the single select question.\n *Minimum*: 2\n *Maximum*: 256\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "DisplayAs": { + "description": "The display mode of the single select question.\n *Allowed values*: ``DROPDOWN`` | ``RADIO``", + "type": "string", + "enum": [ + "DROPDOWN", + "RADIO" + ], + "markdownDescription": "The display mode of the single select question.\n *Allowed values*: ``DROPDOWN`` | ``RADIO``\n\n---\n\nRequired: No \nType: String \nAllowed Values: DROPDOWN | RADIO \nUpdate requires: No interruption\n" + }, + "Automation": { + "description": "The display mode of the single select question.", + "$ref": "#/definitions/EvaluationFormSingleSelectQuestionAutomation", + "markdownDescription": "The display mode of the single select question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Options" + ], + "markdownDescription": "Information about the options in single select questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormQuestionAutomationAnswerSource": { + "description": "", "type": "object", + "additionalProperties": false, "properties": { - "Label": { - "description": "The property label of the automation.", + "SourceType": { + "description": "The type of the answer sourcr", "type": "string", "enum": [ - "OVERALL_CUSTOMER_SENTIMENT_SCORE", - "OVERALL_AGENT_SENTIMENT_SCORE", - "NON_TALK_TIME", - "NON_TALK_TIME_PERCENTAGE", - "NUMBER_OF_INTERRUPTIONS", - "CONTACT_DURATION", - "AGENT_INTERACTION_DURATION", - "CUSTOMER_HOLD_TIME", - "LONGEST_HOLD_DURATION", - "NUMBER_OF_HOLDS", - "AGENT_INTERACTION_AND_HOLD_DURATION" + "CONTACT_LENS_DATA", + "GEN_AI" ], - "markdownDescription": "The property label of the automation.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: OVERALL_CUSTOMER_SENTIMENT_SCORE | OVERALL_AGENT_SENTIMENT_SCORE | NON_TALK_TIME | NON_TALK_TIME_PERCENTAGE | NUMBER_OF_INTERRUPTIONS | CONTACT_DURATION | AGENT_INTERACTION_DURATION | CUSTOMER_HOLD_TIME | LONGEST_HOLD_DURATION | NUMBER_OF_HOLDS | AGENT_INTERACTION_AND_HOLD_DURATION \nUpdate requires: No interruption\n" + "markdownDescription": "The type of the answer sourcr\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: CONTACT_LENS_DATA | GEN_AI \nUpdate requires: No interruption\n" } }, "required": [ - "Label" + "SourceType" ], - "markdownDescription": "Information about the property value used in automation of a numeric questions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } - }, - "properties": { + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormTextQuestionProperties": { + "description": "", + "type": "object", + "additionalProperties": false, + "properties": { + "Automation": { + "description": "Specifies how the question can be automatically answered.", + "$ref": "#/definitions/EvaluationFormTextQuestionAutomation", + "markdownDescription": "Specifies how the question can be automatically answered.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormTextQuestionAutomation": { + "description": "", + "type": "object", + "additionalProperties": false, + "properties": { + "AnswerSource": { + "description": "The source of automation answer of the question.", + "$ref": "#/definitions/EvaluationFormQuestionAutomationAnswerSource", + "markdownDescription": "The source of automation answer of the question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormQuestionTypeProperties": { + "description": "Information about properties for a question in an evaluation form. The question type properties must be either for a numeric question or a single select question.", + "type": "object", + "additionalProperties": false, + "properties": { + "Numeric": { + "description": "The properties of the numeric question.", + "$ref": "#/definitions/EvaluationFormNumericQuestionProperties", + "markdownDescription": "The properties of the numeric question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "SingleSelect": { + "description": "The properties of the numeric question.", + "$ref": "#/definitions/EvaluationFormSingleSelectQuestionProperties", + "markdownDescription": "The properties of the numeric question.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Text": { + "description": "", + "$ref": "#/definitions/EvaluationFormTextQuestionProperties", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Information about properties for a question in an evaluation form. The question type properties must be either for a numeric question or a single select question.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "EvaluationFormQuestion": { + "description": "Information about a question from an evaluation form.", + "type": "object", + "additionalProperties": false, + "properties": { + "Title": { + "description": "The title of the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 350.", + "type": "string", + "minLength": 1, + "maxLength": 350, + "markdownDescription": "The title of the question.\n *Length Constraints*: Minimum length of 1. Maximum length of 350.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 350 \nUpdate requires: No interruption\n" + }, + "Instructions": { + "description": "The instructions of the section.\n *Length Constraints*: Minimum length of 0. Maximum length of 1024.", + "type": "string", + "maxLength": 1024, + "markdownDescription": "The instructions of the section.\n *Length Constraints*: Minimum length of 0. Maximum length of 1024.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption\n" + }, + "RefId": { + "description": "The identifier of the question. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.", + "$ref": "#/definitions/RefId", + "markdownDescription": "The identifier of the question. An identifier must be unique within the evaluation form.\n *Length Constraints*: Minimum length of 1. Maximum length of 40.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + }, + "NotApplicableEnabled": { + "description": "The flag to enable not applicable answers to the question.", + "type": "boolean", + "markdownDescription": "The flag to enable not applicable answers to the question.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "QuestionType": { + "description": "The type of the question.\n *Allowed values*: ``NUMERIC`` | ``SINGLESELECT`` | ``TEXT``", + "type": "string", + "enum": [ + "NUMERIC", + "SINGLESELECT", + "TEXT" + ], + "markdownDescription": "The type of the question.\n *Allowed values*: ``NUMERIC`` | ``SINGLESELECT`` | ``TEXT``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: NUMERIC | SINGLESELECT | TEXT \nUpdate requires: No interruption\n" + }, + "QuestionTypeProperties": { + "description": "The properties of the type of question. Text questions do not have to define question type properties.", + "$ref": "#/definitions/EvaluationFormQuestionTypeProperties", + "markdownDescription": "The properties of the type of question. Text questions do not have to define question type properties.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Weight": { + "description": "The scoring weight of the section.\n *Minimum*: 0\n *Maximum*: 100", + "$ref": "#/definitions/Weight", + "markdownDescription": "The scoring weight of the section.\n *Minimum*: 0\n *Maximum*: 100\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Enablement": { + "description": "", + "$ref": "#/definitions/EvaluationFormItemEnablementConfiguration", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + } + }, + "required": [ + "RefId", + "Title", + "QuestionType" + ], + "markdownDescription": "Information about a question from an evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ScoringStrategy": { "description": "A scoring strategy of the evaluation form.", - "$ref": "#/definitions/ScoringStrategy", - "markdownDescription": "A scoring strategy of the evaluation form.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - }, - "Status": { - "default": "DRAFT", - "description": "The status of the evaluation form.\n *Allowed values*: ``DRAFT`` | ``ACTIVE``", - "type": "string", - "enum": [ - "DRAFT", - "ACTIVE" + "type": "object", + "additionalProperties": false, + "properties": { + "Mode": { + "description": "The scoring mode of the evaluation form.\n *Allowed values*: ``QUESTION_ONLY`` | ``SECTION_ONLY``", + "type": "string", + "enum": [ + "QUESTION_ONLY", + "SECTION_ONLY" + ], + "markdownDescription": "The scoring mode of the evaluation form.\n *Allowed values*: ``QUESTION_ONLY`` | ``SECTION_ONLY``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: QUESTION_ONLY | SECTION_ONLY \nUpdate requires: No interruption\n" + }, + "Status": { + "description": "The scoring status of the evaluation form.\n *Allowed values*: ``ENABLED`` | ``DISABLED``", + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ], + "markdownDescription": "The scoring status of the evaluation form.\n *Allowed values*: ``ENABLED`` | ``DISABLED``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Mode", + "Status" ], - "markdownDescription": "The status of the evaluation form.\n *Allowed values*: ``DRAFT`` | ``ACTIVE``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: DRAFT | ACTIVE \nUpdate requires: No interruption\n" + "markdownDescription": "A scoring strategy of the evaluation form.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "AutoEvaluationConfiguration": { "description": "", - "$ref": "#/definitions/AutoEvaluationConfiguration", - "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "type": "object", + "additionalProperties": false, + "properties": { + "Enabled": { + "description": "", + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(?!aws:)[a-zA-Z+-=._:/]+$ \nUpdate requires: No interruption\n" + }, + "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 -", + "maxLength": 256, + "markdownDescription": "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 -\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Title": { + "description": "A title of the evaluation form.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "A title of the evaluation form.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" }, "Description": { "description": "The description of the evaluation form.\n *Length Constraints*: Minimum length of 0. Maximum length of 1024.", @@ -586,52 +765,120 @@ "maxLength": 1024, "markdownDescription": "The description of the evaluation form.\n *Length Constraints*: Minimum length of 0. Maximum length of 1024.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption\n" }, + "EvaluationFormArn": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/evaluation-form/[-a-zA-Z0-9]*$ \nUpdate requires: No interruption\nRead only property: Yes" + }, "InstanceArn": { "description": "The identifier of the Amazon Connect instance.", "type": "string", "markdownDescription": "The identifier of the Amazon Connect instance.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$ \nUpdate requires: No interruption\n" }, - "Title": { - "minLength": 1, - "description": "A title of the evaluation form.", - "type": "string", - "maxLength": 128, - "markdownDescription": "A title of the evaluation form.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" - }, "Items": { - "minItems": 1, - "maxItems": 200, "description": "Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.\n *Minimum size*: 1\n *Maximum size*: 100", - "insertionOrder": true, "type": "array", + "insertionOrder": true, + "minItems": 1, + "maxItems": 200, "items": { "$ref": "#/definitions/EvaluationFormBaseItem" }, "markdownDescription": "Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.\n *Minimum size*: 1\n *Maximum size*: 100\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" }, - "EvaluationFormArn": { + "ScoringStrategy": { + "description": "A scoring strategy of the evaluation form.", + "$ref": "#/definitions/ScoringStrategy", + "markdownDescription": "A scoring strategy of the evaluation form.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "AutoEvaluationConfiguration": { "description": "", + "$ref": "#/definitions/AutoEvaluationConfiguration", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Status": { + "description": "The status of the evaluation form.\n *Allowed values*: ``DRAFT`` | ``ACTIVE``", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/evaluation-form/[-a-zA-Z0-9]*$ \nUpdate requires: No interruption\nRead only property: Yes" + "default": "DRAFT", + "enum": [ + "DRAFT", + "ACTIVE" + ], + "markdownDescription": "The status of the evaluation form.\n *Allowed values*: ``DRAFT`` | ``ACTIVE``\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: DRAFT | ACTIVE \nUpdate requires: No interruption\n" }, "Tags": { + "description": "The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.", + "type": "array", "maxItems": 50, "uniqueItems": true, - "description": "The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.", "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/Tag" }, "markdownDescription": "The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, + "additionalProperties": false, "required": [ "Title", "InstanceArn", "Items", "Status" ], + "readOnlyProperties": [ + "/properties/EvaluationFormArn" + ], + "primaryIdentifier": [ + "/properties/EvaluationFormArn" + ], + "tagging": { + "taggable": true, + "tagOnCreate": false, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "connect:ListTagsForResource", + "connect:UntagResource", + "connect:TagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "connect:CreateEvaluationForm", + "connect:ActivateEvaluationForm", + "connect:TagResource" + ] + }, + "read": { + "permissions": [ + "connect:DescribeEvaluationForm", + "connect:ListEvaluationFormVersions" + ] + }, + "list": { + "permissions": [ + "connect:ListEvaluationForms" + ] + }, + "update": { + "permissions": [ + "connect:UpdateEvaluationForm", + "connect:ListEvaluationFormVersions", + "connect:ActivateEvaluationForm", + "connect:DeactivateEvaluationForm", + "connect:TagResource", + "connect:UntagResource" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteEvaluationForm", + "connect:UntagResource" + ] + } + }, "attributes": { "EvaluationFormArn": { "description": "", diff --git a/server/schema/resources/aws-customerprofiles-objecttype.json b/server/schema/resources/aws-customerprofiles-objecttype.json index 601fa475..f13a1661 100644 --- a/server/schema/resources/aws-customerprofiles-objecttype.json +++ b/server/schema/resources/aws-customerprofiles-objecttype.json @@ -125,9 +125,18 @@ "NEW_ONLY", "ASSET", "CASE", - "ORDER" + "ORDER", + "AIR_PREFERENCE", + "AIR_BOOKING", + "AIR_SEGMENT", + "HOTEL_PREFERENCE", + "HOTEL_STAY_REVENUE", + "HOTEL_RESERVATION", + "LOYALTY", + "LOYALTY_TRANSACTION", + "LOYALTY_PROMOTION" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PROFILE | UNIQUE | SECONDARY | LOOKUP_ONLY | NEW_ONLY | ASSET | CASE | ORDER \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PROFILE | UNIQUE | SECONDARY | LOOKUP_ONLY | NEW_ONLY | ASSET | CASE | ORDER | AIR_PREFERENCE | AIR_BOOKING | AIR_SEGMENT | HOTEL_PREFERENCE | HOTEL_STAY_REVENUE | HOTEL_RESERVATION | LOYALTY | LOYALTY_TRANSACTION | LOYALTY_PROMOTION \nUpdate requires: No interruption\n" }, "markdownDescription": "The types of keys that a ProfileObject can have. Each ProfileObject can have only 1 UNIQUE key but multiple PROFILE keys. PROFILE means that this key can be used to tie an object to a PROFILE. UNIQUE means that it can be used to uniquely identify an object. If a key a is marked as SECONDARY, it will be used to search for profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key is only used to match a profile but is not persisted to be used for searching of the profile. A NEW_ONLY key is only used if the profile does not already exist before the object is ingested, otherwise it is only used for matching objects to profiles.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } diff --git a/server/schema/resources/aws-datazone-domain.json b/server/schema/resources/aws-datazone-domain.json index 4485df41..a18efb33 100644 --- a/server/schema/resources/aws-datazone-domain.json +++ b/server/schema/resources/aws-datazone-domain.json @@ -116,7 +116,7 @@ "ServiceRole": { "type": "string", "description": "The service role of the domain that is created.", - "markdownDescription": "The service role of the domain that is created.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:(role|role/service-role)/[\\w+=,.@-]*$ \nUpdate requires: No interruption\n" + "markdownDescription": "The service role of the domain that is created.\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:role(/[a-zA-Z0-9+=,.@_-]+)*/[a-zA-Z0-9+=,.@_-]+$ \nUpdate requires: No interruption\n" }, "DomainVersion": { "type": "string", diff --git a/server/schema/resources/aws-datazone-environmentblueprintconfiguration.json b/server/schema/resources/aws-datazone-environmentblueprintconfiguration.json index 2c5898b0..95f58f5c 100644 --- a/server/schema/resources/aws-datazone-environmentblueprintconfiguration.json +++ b/server/schema/resources/aws-datazone-environmentblueprintconfiguration.json @@ -190,7 +190,7 @@ }, "ProvisioningRoleArn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:(role|role/service-role)/[\\w+=,.@-]*$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^arn:aws[^:]*:iam::\\d{12}:role(/[a-zA-Z0-9+=,.@_-]+)*/[a-zA-Z0-9+=,.@_-]+$ \nUpdate requires: No interruption\n" }, "DomainId": { "type": "string", diff --git a/server/schema/resources/aws-datazone-projectprofile.json b/server/schema/resources/aws-datazone-projectprofile.json index c05c8b7c..9b5ed31f 100644 --- a/server/schema/resources/aws-datazone-projectprofile.json +++ b/server/schema/resources/aws-datazone-projectprofile.json @@ -49,7 +49,7 @@ "minLength": 1, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[\\w -]+$ \nUpdate requires: No interruption\n" }, - "Id": { + "EnvironmentConfigurationId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-zA-Z0-9_-]{1,36}$ \nUpdate requires: No interruption\n" }, @@ -256,7 +256,7 @@ "/properties/Id", "/properties/Identifier", "/properties/LastUpdatedAt", - "/properties/EnvironmentConfigurations/*/Id", + "/properties/EnvironmentConfigurations/*/EnvironmentConfigurationId", "/properties/EnvironmentConfigurations/*/ConfigurationParameters/ResolvedParameters" ], "writeOnlyProperties": [ diff --git a/server/schema/resources/aws-docdb-dbcluster.json b/server/schema/resources/aws-docdb-dbcluster.json index 69933ba9..e3edbf1f 100644 --- a/server/schema/resources/aws-docdb-dbcluster.json +++ b/server/schema/resources/aws-docdb-dbcluster.json @@ -58,7 +58,7 @@ }, "GlobalClusterIdentifier": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "RestoreType": { "type": "string", @@ -203,7 +203,6 @@ "/properties/KmsKeyId", "/properties/MasterUsername", "/properties/SourceDBClusterIdentifier", - "/properties/GlobalClusterIdentifier", "/properties/DBClusterIdentifier", "/properties/AvailabilityZones", "/properties/DBSubnetGroupName", diff --git a/server/schema/resources/aws-dynamodb-globaltable.json b/server/schema/resources/aws-dynamodb-globaltable.json index ebf4e5c1..66fde00d 100644 --- a/server/schema/resources/aws-dynamodb-globaltable.json +++ b/server/schema/resources/aws-dynamodb-globaltable.json @@ -137,14 +137,12 @@ "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", - "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", - "/properties/GlobalTableSourceArn" + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" ], "createOnlyProperties": [ "/properties/LocalSecondaryIndexes", "/properties/TableName", - "/properties/KeySchema", - "/properties/GlobalTableSourceArn" + "/properties/KeySchema" ], "additionalProperties": false, "primaryIdentifier": [ @@ -719,6 +717,11 @@ "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, + "required": [ + "KeySchema", + "AttributeDefinitions", + "Replicas" + ], "properties": { "MultiRegionConsistency": { "type": "string", @@ -738,14 +741,6 @@ "StreamSpecification": { "$ref": "#/definitions/StreamSpecification" }, - "GlobalTableSettingsReplicationMode": { - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" - }, "WarmThroughput": { "$ref": "#/definitions/WarmThroughput" }, @@ -762,10 +757,6 @@ "WriteProvisionedThroughputSettings": { "$ref": "#/definitions/WriteProvisionedThroughputSettings" }, - "GlobalTableSourceArn": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, "WriteOnDemandThroughputSettings": { "$ref": "#/definitions/WriteOnDemandThroughputSettings" }, @@ -838,11 +829,6 @@ "$ref": "#/definitions/TimeToLiveSpecification" } }, - "required": [ - "KeySchema", - "AttributeDefinitions", - "Replicas" - ], "attributes": { "TableId": { "type": "string", diff --git a/server/schema/resources/aws-dynamodb-table.json b/server/schema/resources/aws-dynamodb-table.json index 0e8750ae..45bb9ee5 100644 --- a/server/schema/resources/aws-dynamodb-table.json +++ b/server/schema/resources/aws-dynamodb-table.json @@ -739,15 +739,6 @@ "$ref": "#/definitions/ImportSourceSpecification", "markdownDescription": "Specifies the properties of data being imported from the S3 bucket source to the\" table.\n If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, the ``DeletionProtectionEnabled`` property, or the ``WarmThroughput`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\n" }, - "GlobalTableSettingsReplicationMode": { - "description": "", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" - }, "PointInTimeRecoverySpecification": { "description": "The settings used to enable point in time recovery.", "$ref": "#/definitions/PointInTimeRecoverySpecification", diff --git a/server/schema/resources/aws-ec2-capacitymanagerdataexport.json b/server/schema/resources/aws-ec2-capacitymanagerdataexport.json new file mode 100644 index 00000000..d477a0d4 --- /dev/null +++ b/server/schema/resources/aws-ec2-capacitymanagerdataexport.json @@ -0,0 +1,147 @@ +{ + "typeName": "AWS::EC2::CapacityManagerDataExport", + "description": "Resource Type definition for AWS::EC2::CapacityManagerDataExport", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2-capacity-manager-data-export.git", + "additionalProperties": false, + "properties": { + "CapacityManagerDataExportId": { + "type": "string", + "description": "The unique identifier of the capacity manager data export.", + "markdownDescription": "The unique identifier of the capacity manager data export.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "S3BucketName": { + "type": "string", + "description": "The name of the Amazon S3 bucket where the capacity manager data export will be stored. The bucket must exist and be accessible by EC2 Capacity Manager service.", + "markdownDescription": "The name of the Amazon S3 bucket where the capacity manager data export will be stored. The bucket must exist and be accessible by EC2 Capacity Manager service.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "S3BucketPrefix": { + "type": "string", + "description": "The prefix for the S3 bucket location where exported files will be placed. If not specified, files will be placed in the root of the bucket.", + "markdownDescription": "The prefix for the S3 bucket location where exported files will be placed. If not specified, files will be placed in the root of the bucket.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Schedule": { + "type": "string", + "enum": [ + "hourly" + ], + "description": "The schedule for the capacity manager data export. Currently supports hourly exports that provide periodic snapshots of capacity manager data.", + "markdownDescription": "The schedule for the capacity manager data export. Currently supports hourly exports that provide periodic snapshots of capacity manager data.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: hourly \nUpdate requires: Replacement\n" + }, + "OutputFormat": { + "type": "string", + "enum": [ + "csv", + "parquet" + ], + "description": "The format of the exported capacity manager data. Choose 'csv' for comma-separated values or 'parquet' for optimized columnar storage format.", + "markdownDescription": "The format of the exported capacity manager data. Choose 'csv' for comma-separated values or 'parquet' for optimized columnar storage format.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: csv | parquet \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "description": "An array of key-value pairs to apply to the capacity manager data export.", + "markdownDescription": "An array of key-value pairs to apply to the capacity manager data export.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "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, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "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, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "S3BucketName", + "Schedule", + "OutputFormat" + ], + "primaryIdentifier": [ + "/properties/CapacityManagerDataExportId" + ], + "readOnlyProperties": [ + "/properties/CapacityManagerDataExportId" + ], + "createOnlyProperties": [ + "/properties/S3BucketName", + "/properties/S3BucketPrefix", + "/properties/OutputFormat", + "/properties/Schedule" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCapacityManagerDataExport", + "ec2:CreateTags", + "ec2:DescribeCapacityManagerDataExports" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCapacityManagerDataExports", + "ec2:DescribeTags" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeCapacityManagerDataExports", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeCapacityManagerDataExports", + "ec2:DeleteCapacityManagerDataExport", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityManagerDataExports" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "attributes": { + "CapacityManagerDataExportId": { + "type": "string", + "description": "The unique identifier of the capacity manager data export.", + "markdownDescription": "The unique identifier of the capacity manager data export.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-ec2-ec2fleet.json b/server/schema/resources/aws-ec2-ec2fleet.json index 5a53e477..dcef4349 100644 --- a/server/schema/resources/aws-ec2-ec2fleet.json +++ b/server/schema/resources/aws-ec2-ec2fleet.json @@ -1,165 +1,69 @@ { - "typeName": "AWS::EC2::EC2Fleet", - "description": "Resource Type definition for AWS::EC2::EC2Fleet", "sourceUrl": "https://github.com/aws-cloudformation", - "additionalProperties": false, - "properties": { - "TargetCapacitySpecification": { - "$ref": "#/definitions/TargetCapacitySpecificationRequest" + "tagging": { + "taggable": false + }, + "handlers": { + "read": { + "permissions": [ + "ec2:DescribeFleets" + ] }, - "OnDemandOptions": { - "$ref": "#/definitions/OnDemandOptionsRequest" + "create": { + "permissions": [ + "ec2:CreateFleet", + "ec2:DescribeFleets" + ] }, - "Type": { - "type": "string", - "enum": [ - "maintain", - "request", - "instant" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: maintain | request | instant \nUpdate requires: Replacement\n" + "update": { + "permissions": [ + "ec2:ModifyFleet", + "ec2:DescribeFleets" + ] }, - "ExcessCapacityTerminationPolicy": { - "type": "string", - "enum": [ - "termination", - "no-termination" + "list": { + "permissions": [ + "ec2:DescribeFleets" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: termination | no-termination \nUpdate requires: No interruption\n" - }, - "TagSpecifications": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/TagSpecification" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" - }, - "SpotOptions": { - "$ref": "#/definitions/SpotOptionsRequest" - }, - "ValidFrom": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "ReplaceUnhealthyInstances": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" - }, - "LaunchTemplateConfigs": { - "type": "array", - "uniqueItems": false, - "maxItems": 50, - "items": { - "$ref": "#/definitions/FleetLaunchTemplateConfigRequest" - }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: Replacement\n" - }, - "FleetId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "TerminateInstancesWithExpiration": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" - }, - "ValidUntil": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "handlerSchema": { + "properties": { + "Type": { + "$ref": "resource-schema.json#/properties/Type" + } + } + } }, - "Context": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "delete": { + "permissions": [ + "ec2:DescribeFleets", + "ec2:DeleteFleets" + ] } }, + "typeName": "AWS::EC2::EC2Fleet", + "readOnlyProperties": [ + "/properties/FleetId" + ], + "description": "Resource Type definition for AWS::EC2::EC2Fleet", + "createOnlyProperties": [ + "/properties/LaunchTemplateConfigs", + "/properties/OnDemandOptions", + "/properties/ReplaceUnhealthyInstances", + "/properties/SpotOptions", + "/properties/TagSpecifications", + "/properties/TerminateInstancesWithExpiration", + "/properties/Type", + "/properties/ValidFrom", + "/properties/ValidUntil" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/FleetId" + ], "definitions": { - "OnDemandOptionsRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "SingleAvailabilityZone": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "AllocationStrategy": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "SingleInstanceType": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "MinTargetCapacity": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "MaxTotalPrice": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "CapacityReservationOptions": { - "$ref": "#/definitions/CapacityReservationOptionsRequest" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "SpotOptionsRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "MaintenanceStrategies": { - "$ref": "#/definitions/MaintenanceStrategies" - }, - "SingleAvailabilityZone": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "AllocationStrategy": { - "type": "string", - "enum": [ - "lowest-price", - "lowestPrice", - "diversified", - "capacityOptimized", - "capacity-optimized", - "capacityOptimizedPrioritized", - "capacity-optimized-prioritized", - "priceCapacityOptimized", - "price-capacity-optimized" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: lowest-price | lowestPrice | diversified | capacityOptimized | capacity-optimized | capacityOptimizedPrioritized | capacity-optimized-prioritized | priceCapacityOptimized | price-capacity-optimized \nUpdate requires: No interruption\n" - }, - "SingleInstanceType": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "MinTargetCapacity": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "MaxTotalPrice": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "InstanceInterruptionBehavior": { - "type": "string", - "enum": [ - "hibernate", - "stop", - "terminate" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: hibernate | stop | terminate \nUpdate requires: No interruption\n" - }, - "InstancePoolsToUseCount": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, "TargetCapacitySpecificationRequest": { - "type": "object", "additionalProperties": false, + "type": "object", "properties": { "DefaultTargetCapacityType": { "type": "string", @@ -169,15 +73,6 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: on-demand | spot \nUpdate requires: No interruption\n" }, - "TargetCapacityUnitType": { - "type": "string", - "enum": [ - "vcpu", - "memory-mib", - "units" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: vcpu | memory-mib | units \nUpdate requires: No interruption\n" - }, "TotalTargetCapacity": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" @@ -189,6 +84,15 @@ "SpotTargetCapacity": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "TargetCapacityUnitType": { + "type": "string", + "enum": [ + "vcpu", + "memory-mib", + "units" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: vcpu | memory-mib | units \nUpdate requires: No interruption\n" } }, "required": [ @@ -197,22 +101,22 @@ "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "FleetLaunchTemplateSpecificationRequest": { - "type": "object", "additionalProperties": false, + "type": "object", "properties": { "LaunchTemplateName": { - "type": "string", "minLength": 3, + "type": "string", "maxLength": 128, "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 128 \nPattern: [a-zA-Z0-9\\(\\)\\.\\-/_]+ \nUpdate requires: No interruption\n" }, - "LaunchTemplateId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, "Version": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "LaunchTemplateId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "required": [ @@ -220,351 +124,442 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Placement": { - "type": "object", + "MemoryGiBPerVCpuRequest": { "additionalProperties": false, + "type": "object", "properties": { - "GroupName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "Min": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, - "Tenancy": { + "Max": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CapacityReservationOptionsRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "UsageStrategy": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "enum": [ + "use-capacity-reservations-first" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: use-capacity-reservations-first \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TotalLocalStorageGBRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, - "SpreadDomain": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "Max": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NetworkBandwidthGbpsRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, - "PartitionNumber": { + "Max": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "VCpuCountRangeRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "AvailabilityZone": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Affinity": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "HostId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "Max": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "HostResourceGroupArn": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "Max": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "BlockDeviceMapping": { + "NetworkInterfaceCountRequest": { + "additionalProperties": false, "type": "object", + "properties": { + "Min": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Max": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "OnDemandOptionsRequest": { "additionalProperties": false, + "type": "object", "properties": { - "DeviceName": { + "SingleAvailabilityZone": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "AllocationStrategy": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Ebs": { - "$ref": "#/definitions/EbsBlockDevice" + "SingleInstanceType": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, - "NoDevice": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "MinTargetCapacity": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "VirtualName": { + "MaxTotalPrice": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "CapacityReservationOptions": { + "$ref": "#/definitions/CapacityReservationOptionsRequest" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "EbsBlockDevice": { - "type": "object", + "SpotOptionsRequest": { "additionalProperties": false, + "type": "object", "properties": { - "DeleteOnTermination": { + "SingleAvailabilityZone": { "type": "boolean", "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, - "Encrypted": { + "AllocationStrategy": { + "type": "string", + "enum": [ + "lowest-price", + "lowestPrice", + "diversified", + "capacityOptimized", + "capacity-optimized", + "capacityOptimizedPrioritized", + "capacity-optimized-prioritized", + "priceCapacityOptimized", + "price-capacity-optimized" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: lowest-price | lowestPrice | diversified | capacityOptimized | capacity-optimized | capacityOptimizedPrioritized | capacity-optimized-prioritized | priceCapacityOptimized | price-capacity-optimized \nUpdate requires: No interruption\n" + }, + "SingleInstanceType": { "type": "boolean", "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, - "Iops": { + "MinTargetCapacity": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "KmsKeyId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "SnapshotId": { + "MaxTotalPrice": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "VolumeSize": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "MaintenanceStrategies": { + "$ref": "#/definitions/MaintenanceStrategies" }, - "VolumeType": { + "InstanceInterruptionBehavior": { "type": "string", "enum": [ - "gp2", - "gp3", - "io1", - "io2", - "sc1", - "st1", - "standard" + "hibernate", + "stop", + "terminate" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: gp2 | gp3 | io1 | io2 | sc1 | st1 | standard \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "FleetLaunchTemplateConfigRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "LaunchTemplateSpecification": { - "$ref": "#/definitions/FleetLaunchTemplateSpecificationRequest" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: hibernate | stop | terminate \nUpdate requires: No interruption\n" }, - "Overrides": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/FleetLaunchTemplateOverridesRequest" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "InstancePoolsToUseCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "CapacityReservationOptionsRequest": { - "type": "object", + "Placement": { "additionalProperties": false, - "properties": { - "UsageStrategy": { - "type": "string", - "enum": [ - "use-capacity-reservations-first" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: use-capacity-reservations-first \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "FleetLaunchTemplateOverridesRequest": { "type": "object", - "additionalProperties": false, "properties": { - "WeightedCapacity": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + "GroupName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Placement": { - "$ref": "#/definitions/Placement" + "Tenancy": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Priority": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + "SpreadDomain": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "PartitionNumber": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "AvailabilityZone": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "SubnetId": { + "Affinity": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "InstanceType": { + "HostId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "InstanceRequirements": { - "$ref": "#/definitions/InstanceRequirementsRequest" - }, - "MaxPrice": { + "HostResourceGroupArn": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "BlockDeviceMappings": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/BlockDeviceMapping" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Tag": { - "type": "object", + "PerformanceFactorReferenceRequest": { "additionalProperties": false, + "type": "object", "properties": { - "Value": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "Key": { + "InstanceFamily": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "required": [ - "Value", - "Key" - ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "TagSpecification": { + "CpuPerformanceFactorRequest": { + "additionalProperties": false, "type": "object", + "properties": { + "References": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/PerformanceFactorReferenceRequest" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MaintenanceStrategies": { "additionalProperties": false, + "type": "object", "properties": { - "ResourceType": { + "CapacityRebalance": { + "$ref": "#/definitions/CapacityRebalance" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "type": "object", + "properties": { + "Ebs": { + "$ref": "#/definitions/EbsBlockDevice" + }, + "NoDevice": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "VirtualName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "DeviceName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AcceleratorCountRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Max": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CapacityRebalance": { + "additionalProperties": false, + "type": "object", + "properties": { + "TerminationDelay": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "ReplacementStrategy": { "type": "string", "enum": [ - "client-vpn-endpoint", - "customer-gateway", - "dedicated-host", - "dhcp-options", - "egress-only-internet-gateway", - "elastic-gpu", - "elastic-ip", - "export-image-task", - "export-instance-task", - "fleet", - "fpga-image", - "host-reservation", - "image", - "import-image-task", - "import-snapshot-task", - "instance", - "internet-gateway", - "key-pair", - "launch-template", - "local-gateway-route-table-vpc-association", - "natgateway", - "network-acl", - "network-insights-analysis", - "network-insights-path", - "network-interface", - "placement-group", - "reserved-instances", - "route-table", - "security-group", - "snapshot", - "spot-fleet-request", - "spot-instances-request", - "subnet", - "traffic-mirror-filter", - "traffic-mirror-session", - "traffic-mirror-target", - "transit-gateway", - "transit-gateway-attachment", - "transit-gateway-connect-peer", - "transit-gateway-multicast-domain", - "transit-gateway-route-table", - "volume", - "vpc", - "vpc-flow-log", - "vpc-peering-connection", - "vpn-connection", - "vpn-gateway" + "launch", + "launch-before-terminate" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: client-vpn-endpoint | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | internet-gateway | key-pair | launch-template | local-gateway-route-table-vpc-association | natgateway | network-acl | network-insights-analysis | network-insights-path | network-interface | placement-group | reserved-instances | route-table | security-group | snapshot | spot-fleet-request | spot-instances-request | subnet | traffic-mirror-filter | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-route-table | volume | vpc | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-gateway \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: launch | launch-before-terminate \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FleetLaunchTemplateConfigRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/FleetLaunchTemplateSpecificationRequest" }, - "Tags": { - "type": "array", + "Overrides": { "uniqueItems": false, + "type": "array", "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/FleetLaunchTemplateOverridesRequest" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "InstanceRequirementsRequest": { - "type": "object", + "FleetLaunchTemplateOverridesRequest": { "additionalProperties": false, + "type": "object", "properties": { - "VCpuCount": { - "$ref": "#/definitions/VCpuCountRangeRequest" + "WeightedCapacity": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, - "MemoryMiB": { - "$ref": "#/definitions/MemoryMiBRequest" + "Placement": { + "$ref": "#/definitions/Placement" }, - "CpuManufacturers": { + "Priority": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "BlockDeviceMappings": { + "uniqueItems": true, "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AvailabilityZone": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "SubnetId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "InstanceRequirements": { + "$ref": "#/definitions/InstanceRequirementsRequest" + }, + "InstanceType": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "MaxPrice": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "InstanceRequirementsRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "InstanceGenerations": { "uniqueItems": false, + "type": "array", "items": { "type": "string", "enum": [ - "intel", - "amd", - "amazon-web-services", - "apple" + "current", + "previous" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: intel | amd | amazon-web-services | apple \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: current | previous \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "MemoryGiBPerVCpu": { "$ref": "#/definitions/MemoryGiBPerVCpuRequest" }, - "AllowedInstanceTypes": { - "type": "array", + "AcceleratorTypes": { "uniqueItems": false, - "items": { - "type": "string", - "minLength": 1, - "maxLength": 30, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30 \nPattern: [a-zA-Z0-9\\.\\*]+ \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "ExcludedInstanceTypes": { "type": "array", - "uniqueItems": false, "items": { "type": "string", - "minLength": 1, - "maxLength": 30, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30 \nPattern: [a-zA-Z0-9\\.\\*]+ \nUpdate requires: No interruption\n" + "enum": [ + "gpu", + "fpga", + "inference" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: gpu | fpga | inference \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "InstanceGenerations": { - "type": "array", + "VCpuCount": { + "$ref": "#/definitions/VCpuCountRangeRequest" + }, + "AcceleratorManufacturers": { "uniqueItems": false, + "type": "array", "items": { "type": "string", "enum": [ - "current", - "previous" + "amazon-web-services", + "amd", + "habana", + "nvidia", + "xilinx" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: current | previous \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: amazon-web-services | amd | habana | nvidia | xilinx \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "SpotMaxPricePercentageOverLowestPrice": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "OnDemandMaxPricePercentageOverLowestPrice": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "BareMetal": { + "LocalStorage": { "type": "string", "enum": [ "included", @@ -573,7 +568,22 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: included | required | excluded \nUpdate requires: No interruption\n" }, - "BurstablePerformance": { + "CpuManufacturers": { + "uniqueItems": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "intel", + "amd", + "amazon-web-services", + "apple" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: intel | amd | amazon-web-services | apple \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "BareMetal": { "type": "string", "enum": [ "included", @@ -586,24 +596,20 @@ "type": "boolean", "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, - "NetworkBandwidthGbps": { - "$ref": "#/definitions/NetworkBandwidthGbpsRequest" + "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "NetworkInterfaceCount": { - "$ref": "#/definitions/NetworkInterfaceCountRequest" + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "LocalStorage": { - "type": "string", - "enum": [ - "included", - "required", - "excluded" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: included | required | excluded \nUpdate requires: No interruption\n" + "MemoryMiB": { + "$ref": "#/definitions/MemoryMiBRequest" }, "LocalStorageTypes": { - "type": "array", "uniqueItems": false, + "type": "array", "items": { "type": "string", "enum": [ @@ -614,48 +620,50 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "TotalLocalStorageGB": { - "$ref": "#/definitions/TotalLocalStorageGBRequest" - }, - "BaselineEbsBandwidthMbps": { - "$ref": "#/definitions/BaselineEbsBandwidthMbpsRequest" + "NetworkInterfaceCount": { + "$ref": "#/definitions/NetworkInterfaceCountRequest" }, - "AcceleratorTypes": { - "type": "array", + "ExcludedInstanceTypes": { "uniqueItems": false, + "type": "array", "items": { + "minLength": 1, "type": "string", - "enum": [ - "gpu", - "fpga", - "inference" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: gpu | fpga | inference \nUpdate requires: No interruption\n" + "maxLength": 30, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30 \nPattern: [a-zA-Z0-9\\.\\*]+ \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "AcceleratorCount": { - "$ref": "#/definitions/AcceleratorCountRequest" - }, - "AcceleratorManufacturers": { - "type": "array", + "AllowedInstanceTypes": { "uniqueItems": false, + "type": "array", "items": { + "minLength": 1, "type": "string", - "enum": [ - "amazon-web-services", - "amd", - "habana", - "nvidia", - "xilinx" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: amazon-web-services | amd | habana | nvidia | xilinx \nUpdate requires: No interruption\n" + "maxLength": 30, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30 \nPattern: [a-zA-Z0-9\\.\\*]+ \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/NetworkBandwidthGbpsRequest" + }, + "AcceleratorCount": { + "$ref": "#/definitions/AcceleratorCountRequest" + }, + "BaselinePerformanceFactors": { + "$ref": "#/definitions/BaselinePerformanceFactorsRequest" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/BaselineEbsBandwidthMbpsRequest" + }, "AcceleratorNames": { - "type": "array", "uniqueItems": false, + "type": "array", "items": { "type": "string", "enum": [ @@ -679,30 +687,24 @@ "AcceleratorTotalMemoryMiB": { "$ref": "#/definitions/AcceleratorTotalMemoryMiBRequest" }, - "BaselinePerformanceFactors": { - "$ref": "#/definitions/BaselinePerformanceFactorsRequest" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "VCpuCountRangeRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "Min": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "BurstablePerformance": { + "type": "string", + "enum": [ + "included", + "required", + "excluded" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: included | required | excluded \nUpdate requires: No interruption\n" }, - "Max": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "TotalLocalStorageGB": { + "$ref": "#/definitions/TotalLocalStorageGBRequest" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "MemoryMiBRequest": { - "type": "object", "additionalProperties": false, + "type": "object", "properties": { "Min": { "type": "integer", @@ -715,84 +717,87 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "MemoryGiBPerVCpuRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "Min": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - }, - "Max": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "NetworkBandwidthGbpsRequest": { - "type": "object", + "TagSpecification": { "additionalProperties": false, - "properties": { - "Min": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - }, - "Max": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "NetworkInterfaceCountRequest": { "type": "object", - "additionalProperties": false, "properties": { - "Min": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "ResourceType": { + "type": "string", + "enum": [ + "client-vpn-endpoint", + "customer-gateway", + "dedicated-host", + "dhcp-options", + "egress-only-internet-gateway", + "elastic-gpu", + "elastic-ip", + "export-image-task", + "export-instance-task", + "fleet", + "fpga-image", + "host-reservation", + "image", + "import-image-task", + "import-snapshot-task", + "instance", + "internet-gateway", + "key-pair", + "launch-template", + "local-gateway-route-table-vpc-association", + "natgateway", + "network-acl", + "network-insights-analysis", + "network-insights-path", + "network-interface", + "placement-group", + "reserved-instances", + "route-table", + "security-group", + "snapshot", + "spot-fleet-request", + "spot-instances-request", + "subnet", + "traffic-mirror-filter", + "traffic-mirror-session", + "traffic-mirror-target", + "transit-gateway", + "transit-gateway-attachment", + "transit-gateway-connect-peer", + "transit-gateway-multicast-domain", + "transit-gateway-route-table", + "volume", + "vpc", + "vpc-flow-log", + "vpc-peering-connection", + "vpn-connection", + "vpn-gateway" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: client-vpn-endpoint | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | internet-gateway | key-pair | launch-template | local-gateway-route-table-vpc-association | natgateway | network-acl | network-insights-analysis | network-insights-path | network-interface | placement-group | reserved-instances | route-table | security-group | snapshot | spot-fleet-request | spot-instances-request | subnet | traffic-mirror-filter | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-route-table | volume | vpc | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-gateway \nUpdate requires: No interruption\n" }, - "Max": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "Tags": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "TotalLocalStorageGBRequest": { - "type": "object", + "BaselinePerformanceFactorsRequest": { "additionalProperties": false, - "properties": { - "Min": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - }, - "Max": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "BaselineEbsBandwidthMbpsRequest": { "type": "object", - "additionalProperties": false, "properties": { - "Min": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "Max": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "Cpu": { + "$ref": "#/definitions/CpuPerformanceFactorRequest" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "AcceleratorCountRequest": { - "type": "object", + "AcceleratorTotalMemoryMiBRequest": { "additionalProperties": false, + "type": "object", "properties": { "Min": { "type": "integer", @@ -805,84 +810,67 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "AcceleratorTotalMemoryMiBRequest": { - "type": "object", + "EbsBlockDevice": { "additionalProperties": false, + "type": "object", "properties": { - "Min": { + "SnapshotId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "VolumeType": { + "type": "string", + "enum": [ + "gp2", + "gp3", + "io1", + "io2", + "sc1", + "st1", + "standard" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: gp2 | gp3 | io1 | io2 | sc1 | st1 | standard \nUpdate requires: No interruption\n" + }, + "KmsKeyId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Encrypted": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Iops": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "Max": { + "VolumeSize": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "DeleteOnTermination": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "BaselinePerformanceFactorsRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "Cpu": { - "$ref": "#/definitions/CpuPerformanceFactorRequest" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "CpuPerformanceFactorRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "References": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/PerformanceFactorReferenceRequest" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "PerformanceFactorReferenceRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "InstanceFamily": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "MaintenanceStrategies": { - "type": "object", + "Tag": { "additionalProperties": false, - "properties": { - "CapacityRebalance": { - "$ref": "#/definitions/CapacityRebalance" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "CapacityRebalance": { "type": "object", - "additionalProperties": false, "properties": { - "ReplacementStrategy": { + "Value": { "type": "string", - "enum": [ - "launch", - "launch-before-terminate" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: launch | launch-before-terminate \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "TerminationDelay": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "Key": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, + "required": [ + "Value", + "Key" + ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, @@ -890,63 +878,75 @@ "TargetCapacitySpecification", "LaunchTemplateConfigs" ], - "createOnlyProperties": [ - "/properties/LaunchTemplateConfigs", - "/properties/OnDemandOptions", - "/properties/ReplaceUnhealthyInstances", - "/properties/SpotOptions", - "/properties/TagSpecifications", - "/properties/TerminateInstancesWithExpiration", - "/properties/Type", - "/properties/ValidFrom", - "/properties/ValidUntil" - ], - "primaryIdentifier": [ - "/properties/FleetId" - ], - "readOnlyProperties": [ - "/properties/FleetId" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:CreateFleet", - "ec2:DescribeFleets" - ] + "properties": { + "Context": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "delete": { - "permissions": [ - "ec2:DescribeFleets", - "ec2:DeleteFleets" - ] + "TargetCapacitySpecification": { + "$ref": "#/definitions/TargetCapacitySpecificationRequest" }, - "list": { - "handlerSchema": { - "properties": { - "Type": { - "$ref": "resource-schema.json#/properties/Type" - } - } + "OnDemandOptions": { + "$ref": "#/definitions/OnDemandOptionsRequest" + }, + "ExcessCapacityTerminationPolicy": { + "type": "string", + "enum": [ + "termination", + "no-termination" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: termination | no-termination \nUpdate requires: No interruption\n" + }, + "TagSpecifications": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/TagSpecification" }, - "permissions": [ - "ec2:DescribeFleets" - ] + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, - "read": { - "permissions": [ - "ec2:DescribeFleets" - ] + "SpotOptions": { + "$ref": "#/definitions/SpotOptionsRequest" }, - "update": { - "permissions": [ - "ec2:ModifyFleet", - "ec2:DescribeFleets" - ] + "LaunchTemplateConfigs": { + "maxItems": 50, + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/FleetLaunchTemplateConfigRequest" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: Replacement\n" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + }, + "ValidUntil": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Type": { + "type": "string", + "enum": [ + "maintain", + "request", + "instant" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: maintain | request | instant \nUpdate requires: Replacement\n" + }, + "FleetId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ValidFrom": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "ReplaceUnhealthyInstances": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" } }, - "tagging": { - "taggable": false - }, "attributes": { "FleetId": { "type": "string", diff --git a/server/schema/resources/aws-ec2-natgateway.json b/server/schema/resources/aws-ec2-natgateway.json index d3e4601f..02725bff 100644 --- a/server/schema/resources/aws-ec2-natgateway.json +++ b/server/schema/resources/aws-ec2-natgateway.json @@ -32,7 +32,8 @@ "ec2:DisassociateNatGatewayAddress", "ec2:AssignPrivateNatGatewayAddress", "ec2:UnassignPrivateNatGatewayAddress" - ] + ], + "timeoutInMinutes": 90 }, "list": { "permissions": [ @@ -48,13 +49,15 @@ }, "typeName": "AWS::EC2::NatGateway", "readOnlyProperties": [ - "/properties/NatGatewayId" + "/properties/NatGatewayId", + "/properties/EniId" ], "description": "Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.\n With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*.\n If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property.\n When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*.", "writeOnlyProperties": [ "/properties/MaxDrainDurationSeconds" ], "createOnlyProperties": [ + "/properties/VpcId", "/properties/SubnetId", "/properties/ConnectivityType", "/properties/AllocationId", @@ -86,32 +89,6 @@ "Key" ], "markdownDescription": "Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "AvailabilityZoneAddress": { - "description": "", - "additionalProperties": false, - "type": "object", - "properties": { - "AvailabilityZone": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "AllocationIds": { - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" - } - }, - "required": [ - "AvailabilityZone", - "AllocationIds" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -137,6 +114,11 @@ "minimum": 1, "markdownDescription": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, + "EniId": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "AllocationId": { "description": "[Public NAT gateway only] The allocation ID of the Elastic IP address that's associated with the NAT gateway. This property is required for a public NAT gateway and cannot be specified with a private NAT gateway.", "type": "string", @@ -163,6 +145,11 @@ }, "markdownDescription": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "VpcId": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, "NatGatewayId": { "description": "", "type": "string", @@ -185,6 +172,11 @@ } }, "attributes": { + "EniId": { + "description": "", + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, "NatGatewayId": { "description": "", "type": "string", diff --git a/server/schema/resources/aws-ec2-spotfleet.json b/server/schema/resources/aws-ec2-spotfleet.json index e294e34a..51ef4da0 100644 --- a/server/schema/resources/aws-ec2-spotfleet.json +++ b/server/schema/resources/aws-ec2-spotfleet.json @@ -1,315 +1,569 @@ { - "typeName": "AWS::EC2::SpotFleet", - "description": "Resource Type definition for AWS::EC2::SpotFleet", - "additionalProperties": false, - "properties": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "tagging": { + "taggable": false + }, + "handlers": { + "read": { + "permissions": [ + "ec2:DescribeSpotFleetRequests" + ] }, - "SpotFleetRequestConfigData": { - "$ref": "#/definitions/SpotFleetRequestConfigData" + "create": { + "permissions": [ + "iam:PassRole", + "ec2:CreateTags", + "ec2:RequestSpotFleet", + "ec2:DescribeSpotFleetRequests", + "ec2:RunInstances" + ] + }, + "update": { + "permissions": [ + "ec2:ModifySpotFleetRequest", + "ec2:DescribeSpotFleetRequests" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSpotFleetRequests" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSpotFleetRequests", + "ec2:CancelSpotFleetRequests" + ] } }, + "typeName": "AWS::EC2::SpotFleet", + "readOnlyProperties": [ + "/properties/Id" + ], + "description": "Resource Type definition for AWS::EC2::SpotFleet", + "writeOnlyProperties": [ + "/properties/SpotFleetRequestConfigData/TagSpecifications", + "/properties/SpotFleetRequestConfigData/LaunchSpecifications/*/NetworkInterfaces/*/Groups" + ], + "createOnlyProperties": [ + "/properties/SpotFleetRequestConfigData/AllocationStrategy", + "/properties/SpotFleetRequestConfigData/IamFleetRole", + "/properties/SpotFleetRequestConfigData/InstanceInterruptionBehavior", + "/properties/SpotFleetRequestConfigData/InstancePoolsToUseCount", + "/properties/SpotFleetRequestConfigData/LaunchSpecifications", + "/properties/SpotFleetRequestConfigData/LaunchTemplateConfigs", + "/properties/SpotFleetRequestConfigData/LoadBalancersConfig", + "/properties/SpotFleetRequestConfigData/OnDemandAllocationStrategy", + "/properties/SpotFleetRequestConfigData/OnDemandMaxTotalPrice", + "/properties/SpotFleetRequestConfigData/OnDemandTargetCapacity", + "/properties/SpotFleetRequestConfigData/ReplaceUnhealthyInstances", + "/properties/SpotFleetRequestConfigData/SpotMaintenanceStrategies", + "/properties/SpotFleetRequestConfigData/SpotMaxTotalPrice", + "/properties/SpotFleetRequestConfigData/SpotPrice", + "/properties/SpotFleetRequestConfigData/TagSpecifications", + "/properties/SpotFleetRequestConfigData/TerminateInstancesWithExpiration", + "/properties/SpotFleetRequestConfigData/Type", + "/properties/SpotFleetRequestConfigData/ValidFrom", + "/properties/SpotFleetRequestConfigData/ValidUntil" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id" + ], "definitions": { - "SpotFleetRequestConfigData": { + "ClassicLoadBalancersConfig": { + "additionalProperties": false, "type": "object", + "properties": { + "ClassicLoadBalancers": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/definitions/ClassicLoadBalancer" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClassicLoadBalancers" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "MemoryGiBPerVCpuRequest": { "additionalProperties": false, + "type": "object", "properties": { - "AllocationStrategy": { - "type": "string", - "enum": [ - "capacityOptimized", - "capacityOptimizedPrioritized", - "diversified", - "lowestPrice", - "priceCapacityOptimized" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: capacityOptimized | capacityOptimizedPrioritized | diversified | lowestPrice | priceCapacityOptimized \nUpdate requires: No interruption\n" + "Min": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, - "Context": { + "Max": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "type": "object", + "properties": { + "Ipv6Address": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Ipv6Address" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SpotFleetMonitoring": { + "additionalProperties": false, + "type": "object", + "properties": { + "Enabled": { + "default": false, + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TotalLocalStorageGBRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, - "ExcessCapacityTerminationPolicy": { - "type": "string", - "enum": [ - "Default", - "NoTermination", - "default", - "noTermination" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: Default | NoTermination | default | noTermination \nUpdate requires: No interruption\n" + "Max": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NetworkBandwidthGbpsRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, - "IamFleetRole": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "Max": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "VCpuCountRangeRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "InstanceInterruptionBehavior": { - "type": "string", - "enum": [ - "hibernate", - "stop", - "terminate" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: hibernate | stop | terminate \nUpdate requires: No interruption\n" + "Max": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "InstancePoolsToUseCount": { + "Max": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "FleetLaunchTemplateSpecification": { + "additionalProperties": false, + "type": "object", + "properties": { + "LaunchTemplateName": { + "minLength": 3, + "type": "string", + "maxLength": 128, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 128 \nPattern: [a-zA-Z0-9\\(\\)\\.\\-/_]+ \nUpdate requires: No interruption\n" }, - "LaunchSpecifications": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/SpotFleetLaunchSpecification" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "Version": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "LaunchTemplateConfigs": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/LaunchTemplateConfig" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "LaunchTemplateId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Version" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "type": "object", + "properties": { + "PrivateIpAddress": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "LoadBalancersConfig": { - "$ref": "#/definitions/LoadBalancersConfig" + "Primary": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + } + }, + "required": [ + "PrivateIpAddress" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "NetworkInterfaceCountRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "OnDemandAllocationStrategy": { + "Max": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "PerformanceFactorReferenceRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "InstanceFamily": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "OnDemandMaxTotalPrice": { + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LaunchTemplateOverrides": { + "additionalProperties": false, + "type": "object", + "properties": { + "SpotPrice": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "OnDemandTargetCapacity": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "ReplaceUnhealthyInstances": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "WeightedCapacity": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, - "SpotMaintenanceStrategies": { - "$ref": "#/definitions/SpotMaintenanceStrategies" + "Priority": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, - "SpotMaxTotalPrice": { + "AvailabilityZone": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "SpotPrice": { + "SubnetId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "TargetCapacity": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + "InstanceRequirements": { + "$ref": "#/definitions/InstanceRequirementsRequest" }, - "TerminateInstancesWithExpiration": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "InstanceType": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SpotPlacement": { + "additionalProperties": false, + "type": "object", + "properties": { + "GroupName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Type": { + "Tenancy": { "type": "string", "enum": [ - "maintain", - "request" + "dedicated", + "default", + "host" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: maintain | request \nUpdate requires: No interruption\n" - }, - "ValidFrom": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: dedicated | default | host \nUpdate requires: No interruption\n" }, - "ValidUntil": { + "AvailabilityZone": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "TagSpecifications": { + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CpuPerformanceFactorRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "References": { + "uniqueItems": false, "type": "array", - "uniqueItems": true, "items": { - "$ref": "#/definitions/SpotFleetTagSpecification" + "$ref": "#/definitions/PerformanceFactorReferenceRequest" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "TargetCapacityUnitType": { + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TargetGroup": { + "additionalProperties": false, + "type": "object", + "properties": { + "Arn": { "type": "string", - "enum": [ - "vcpu", - "memory-mib", - "units" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: vcpu | memory-mib | units \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, "required": [ - "IamFleetRole", - "TargetCapacity" + "Arn" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "SpotFleetLaunchSpecification": { - "type": "object", + "BlockDeviceMapping": { "additionalProperties": false, + "type": "object", "properties": { - "BlockDeviceMappings": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/BlockDeviceMapping" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "Ebs": { + "$ref": "#/definitions/EbsBlockDevice" }, - "EbsOptimized": { - "type": "boolean", - "default": false, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "NoDevice": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "IamInstanceProfile": { - "$ref": "#/definitions/IamInstanceProfileSpecification" + "VirtualName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "ImageId": { + "DeviceName": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "DeviceName" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TargetGroupsConfig": { + "additionalProperties": false, + "type": "object", + "properties": { + "TargetGroups": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/definitions/TargetGroup" + }, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "TargetGroups" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SpotCapacityRebalance": { + "additionalProperties": false, + "type": "object", + "properties": { + "TerminationDelay": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "InstanceType": { + "ReplacementStrategy": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "enum": [ + "launch", + "launch-before-terminate" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: launch | launch-before-terminate \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AcceleratorCountRequest": { + "additionalProperties": false, + "type": "object", + "properties": { + "Min": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "KernelId": { + "Max": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SpotFleetRequestConfigData": { + "additionalProperties": false, + "type": "object", + "properties": { + "Context": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "KeyName": { + "SpotMaxTotalPrice": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Monitoring": { - "$ref": "#/definitions/SpotFleetMonitoring" + "ExcessCapacityTerminationPolicy": { + "type": "string", + "enum": [ + "Default", + "NoTermination", + "default", + "noTermination" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: Default | NoTermination | default | noTermination \nUpdate requires: No interruption\n" }, - "NetworkInterfaces": { + "TagSpecifications": { + "uniqueItems": true, "type": "array", + "items": { + "$ref": "#/definitions/SpotFleetTagSpecification" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "InstancePoolsToUseCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "LaunchTemplateConfigs": { "uniqueItems": true, + "type": "array", "items": { - "$ref": "#/definitions/InstanceNetworkInterfaceSpecification" + "$ref": "#/definitions/LaunchTemplateConfig" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "Placement": { - "$ref": "#/definitions/SpotPlacement" + "TargetCapacityUnitType": { + "type": "string", + "enum": [ + "vcpu", + "memory-mib", + "units" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: vcpu | memory-mib | units \nUpdate requires: No interruption\n" }, - "RamdiskId": { + "IamFleetRole": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "SecurityGroups": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/GroupIdentifier" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "SpotMaintenanceStrategies": { + "$ref": "#/definitions/SpotMaintenanceStrategies" }, - "SpotPrice": { + "TerminateInstancesWithExpiration": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "ValidUntil": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "SubnetId": { + "OnDemandMaxTotalPrice": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "TagSpecifications": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/SpotFleetTagSpecification" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "UserData": { + "OnDemandAllocationStrategy": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "WeightedCapacity": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - }, - "InstanceRequirements": { - "$ref": "#/definitions/InstanceRequirementsRequest" - } - }, - "required": [ - "ImageId" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "LoadBalancersConfig": { - "type": "object", - "additionalProperties": false, - "properties": { - "ClassicLoadBalancersConfig": { - "$ref": "#/definitions/ClassicLoadBalancersConfig" + "SpotPrice": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "TargetGroupsConfig": { - "$ref": "#/definitions/TargetGroupsConfig" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "SpotMaintenanceStrategies": { - "type": "object", - "additionalProperties": false, - "properties": { - "CapacityRebalance": { - "$ref": "#/definitions/SpotCapacityRebalance" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "SpotCapacityRebalance": { - "type": "object", - "additionalProperties": false, - "properties": { - "ReplacementStrategy": { + "AllocationStrategy": { "type": "string", "enum": [ - "launch", - "launch-before-terminate" + "capacityOptimized", + "capacityOptimizedPrioritized", + "diversified", + "lowestPrice", + "priceCapacityOptimized" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: launch | launch-before-terminate \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: capacityOptimized | capacityOptimizedPrioritized | diversified | lowestPrice | priceCapacityOptimized \nUpdate requires: No interruption\n" }, - "TerminationDelay": { + "OnDemandTargetCapacity": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "LaunchTemplateConfig": { - "type": "object", - "additionalProperties": false, - "properties": { - "LaunchTemplateSpecification": { - "$ref": "#/definitions/FleetLaunchTemplateSpecification" }, - "Overrides": { - "type": "array", + "Type": { + "type": "string", + "enum": [ + "maintain", + "request" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: maintain | request \nUpdate requires: No interruption\n" + }, + "LaunchSpecifications": { "uniqueItems": true, + "type": "array", "items": { - "$ref": "#/definitions/LaunchTemplateOverrides" + "$ref": "#/definitions/SpotFleetLaunchSpecification" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "InstanceInterruptionBehavior": { + "type": "string", + "enum": [ + "hibernate", + "stop", + "terminate" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: hibernate | stop | terminate \nUpdate requires: No interruption\n" + }, + "LoadBalancersConfig": { + "$ref": "#/definitions/LoadBalancersConfig" + }, + "ValidFrom": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "ReplaceUnhealthyInstances": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "TargetCapacity": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" } }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "required": [ + "IamFleetRole", + "TargetCapacity" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" }, "SpotFleetTagSpecification": { - "type": "object", "additionalProperties": false, + "type": "object", "properties": { "ResourceType": { "type": "string", @@ -354,466 +608,205 @@ "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", - "transit-gateway-route-table", - "volume", - "vpc", - "vpc-flow-log", - "vpc-peering-connection", - "vpn-connection", - "vpn-gateway" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: client-vpn-endpoint | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | internet-gateway | key-pair | launch-template | local-gateway-route-table-vpc-association | natgateway | network-acl | network-insights-analysis | network-insights-path | network-interface | placement-group | reserved-instances | route-table | security-group | snapshot | spot-fleet-request | spot-instances-request | subnet | traffic-mirror-filter | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-route-table | volume | vpc | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-gateway \nUpdate requires: No interruption\n" - }, - "Tags": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "FleetLaunchTemplateSpecification": { - "type": "object", - "additionalProperties": false, - "properties": { - "LaunchTemplateId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "LaunchTemplateName": { - "type": "string", - "minLength": 3, - "maxLength": 128, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 3 \nMaximum Length: 128 \nPattern: [a-zA-Z0-9\\(\\)\\.\\-/_]+ \nUpdate requires: No interruption\n" - }, - "Version": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Version" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "GroupIdentifier": { - "type": "object", - "additionalProperties": false, - "properties": { - "GroupId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "GroupId" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "IamInstanceProfileSpecification": { - "type": "object", - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "ClassicLoadBalancersConfig": { - "type": "object", - "additionalProperties": false, - "properties": { - "ClassicLoadBalancers": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/ClassicLoadBalancer" - }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" - } - }, - "required": [ - "ClassicLoadBalancers" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "LaunchTemplateOverrides": { - "type": "object", - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "InstanceType": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "SpotPrice": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "SubnetId": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "WeightedCapacity": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - }, - "InstanceRequirements": { - "$ref": "#/definitions/InstanceRequirementsRequest" + "transit-gateway-route-table", + "volume", + "vpc", + "vpc-flow-log", + "vpc-peering-connection", + "vpn-connection", + "vpn-gateway" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: client-vpn-endpoint | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | internet-gateway | key-pair | launch-template | local-gateway-route-table-vpc-association | natgateway | network-acl | network-insights-analysis | network-insights-path | network-interface | placement-group | reserved-instances | route-table | security-group | snapshot | spot-fleet-request | spot-instances-request | subnet | traffic-mirror-filter | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-route-table | volume | vpc | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-gateway \nUpdate requires: No interruption\n" }, - "Priority": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "SpotFleetMonitoring": { - "type": "object", - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean", - "default": false, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "Tags": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "SpotPlacement": { - "type": "object", + "SpotFleetLaunchSpecification": { "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "GroupName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Tenancy": { - "type": "string", - "enum": [ - "dedicated", - "default", - "host" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: dedicated | default | host \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "InstanceNetworkInterfaceSpecification": { "type": "object", - "additionalProperties": false, "properties": { - "AssociatePublicIpAddress": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "DeleteOnTermination": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "Description": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "DeviceIndex": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "Groups": { - "type": "array", + "SecurityGroups": { "uniqueItems": true, + "type": "array", "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "$ref": "#/definitions/GroupIdentifier" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "Ipv6AddressCount": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "Ipv6Addresses": { - "type": "array", + "TagSpecifications": { "uniqueItems": true, + "type": "array", "items": { - "$ref": "#/definitions/InstanceIpv6Address" + "$ref": "#/definitions/SpotFleetTagSpecification" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "NetworkInterfaceId": { + "UserData": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "PrivateIpAddresses": { - "type": "array", + "BlockDeviceMappings": { "uniqueItems": true, + "type": "array", "items": { - "$ref": "#/definitions/PrivateIpAddressSpecification" + "$ref": "#/definitions/BlockDeviceMapping" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "SecondaryPrivateIpAddressCount": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "IamInstanceProfile": { + "$ref": "#/definitions/IamInstanceProfileSpecification" }, - "SubnetId": { + "KernelId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "BlockDeviceMapping": { - "type": "object", - "additionalProperties": false, - "properties": { - "DeviceName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "Ebs": { - "$ref": "#/definitions/EbsBlockDevice" - }, - "NoDevice": { + "SubnetId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "VirtualName": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "DeviceName" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "TargetGroupsConfig": { - "type": "object", - "additionalProperties": false, - "properties": { - "TargetGroups": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/TargetGroup" - }, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" - } - }, - "required": [ - "TargetGroups" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "EbsBlockDevice": { - "type": "object", - "additionalProperties": false, - "properties": { - "DeleteOnTermination": { + "EbsOptimized": { + "default": false, "type": "boolean", "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, - "Encrypted": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "KeyName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Iops": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "RamdiskId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "SnapshotId": { + "SpotPrice": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "VolumeSize": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "WeightedCapacity": { + "type": "number", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" }, - "VolumeType": { - "type": "string", - "enum": [ - "gp2", - "gp3", - "io1", - "io2", - "sc1", - "st1", - "standard" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: gp2 | gp3 | io1 | io2 | sc1 | st1 | standard \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "TargetGroup": { - "type": "object", - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Arn" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "Tag": { - "type": "object", - "additionalProperties": false, - "properties": { - "Key": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "Placement": { + "$ref": "#/definitions/SpotPlacement" }, - "Value": { + "NetworkInterfaces": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/definitions/InstanceNetworkInterfaceSpecification" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ImageId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Value", - "Key" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "PrivateIpAddressSpecification": { - "type": "object", - "additionalProperties": false, - "properties": { - "Primary": { - "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, - "PrivateIpAddress": { + "InstanceRequirements": { + "$ref": "#/definitions/InstanceRequirementsRequest" + }, + "InstanceType": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Monitoring": { + "$ref": "#/definitions/SpotFleetMonitoring" } }, "required": [ - "PrivateIpAddress" + "ImageId" ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ClassicLoadBalancer": { - "type": "object", + "IamInstanceProfileSpecification": { "additionalProperties": false, + "type": "object", "properties": { - "Name": { + "Arn": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "required": [ - "Name" - ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "InstanceIpv6Address": { - "type": "object", + "LaunchTemplateConfig": { "additionalProperties": false, + "type": "object", "properties": { - "Ipv6Address": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "LaunchTemplateSpecification": { + "$ref": "#/definitions/FleetLaunchTemplateSpecification" + }, + "Overrides": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/definitions/LaunchTemplateOverrides" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "required": [ - "Ipv6Address" - ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "InstanceRequirementsRequest": { - "type": "object", "additionalProperties": false, + "type": "object", "properties": { - "VCpuCount": { - "$ref": "#/definitions/VCpuCountRangeRequest" - }, - "MemoryMiB": { - "$ref": "#/definitions/MemoryMiBRequest" - }, - "CpuManufacturers": { - "type": "array", + "InstanceGenerations": { "uniqueItems": false, + "type": "array", "items": { "type": "string", "enum": [ - "intel", - "amd", - "amazon-web-services", - "apple" + "current", + "previous" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: intel | amd | amazon-web-services | apple \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: current | previous \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "MemoryGiBPerVCpu": { "$ref": "#/definitions/MemoryGiBPerVCpuRequest" }, - "AllowedInstanceTypes": { - "type": "array", + "AcceleratorTypes": { "uniqueItems": false, - "items": { - "type": "string", - "minLength": 1, - "maxLength": 30, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30 \nPattern: [a-zA-Z0-9\\.\\*]+ \nUpdate requires: No interruption\n" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "ExcludedInstanceTypes": { "type": "array", - "uniqueItems": false, "items": { "type": "string", - "minLength": 1, - "maxLength": 30, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30 \nPattern: [a-zA-Z0-9\\.\\*]+ \nUpdate requires: No interruption\n" + "enum": [ + "gpu", + "fpga", + "inference" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: gpu | fpga | inference \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "InstanceGenerations": { - "type": "array", + "VCpuCount": { + "$ref": "#/definitions/VCpuCountRangeRequest" + }, + "AcceleratorManufacturers": { "uniqueItems": false, + "type": "array", "items": { "type": "string", "enum": [ - "current", - "previous" + "amazon-web-services", + "amd", + "habana", + "nvidia", + "xilinx" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: current | previous \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: amazon-web-services | amd | habana | nvidia | xilinx \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "SpotMaxPricePercentageOverLowestPrice": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "OnDemandMaxPricePercentageOverLowestPrice": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "BareMetal": { + "LocalStorage": { "type": "string", "enum": [ "included", @@ -822,7 +815,22 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: included | required | excluded \nUpdate requires: No interruption\n" }, - "BurstablePerformance": { + "CpuManufacturers": { + "uniqueItems": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "intel", + "amd", + "amazon-web-services", + "apple" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: intel | amd | amazon-web-services | apple \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "BareMetal": { "type": "string", "enum": [ "included", @@ -835,24 +843,20 @@ "type": "boolean", "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, - "NetworkBandwidthGbps": { - "$ref": "#/definitions/NetworkBandwidthGbpsRequest" + "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "NetworkInterfaceCount": { - "$ref": "#/definitions/NetworkInterfaceCountRequest" + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "LocalStorage": { - "type": "string", - "enum": [ - "included", - "required", - "excluded" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: included | required | excluded \nUpdate requires: No interruption\n" + "MemoryMiB": { + "$ref": "#/definitions/MemoryMiBRequest" }, "LocalStorageTypes": { - "type": "array", "uniqueItems": false, + "type": "array", "items": { "type": "string", "enum": [ @@ -863,48 +867,50 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "TotalLocalStorageGB": { - "$ref": "#/definitions/TotalLocalStorageGBRequest" - }, - "BaselineEbsBandwidthMbps": { - "$ref": "#/definitions/BaselineEbsBandwidthMbpsRequest" + "NetworkInterfaceCount": { + "$ref": "#/definitions/NetworkInterfaceCountRequest" }, - "AcceleratorTypes": { - "type": "array", + "ExcludedInstanceTypes": { "uniqueItems": false, + "type": "array", "items": { + "minLength": 1, "type": "string", - "enum": [ - "gpu", - "fpga", - "inference" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: gpu | fpga | inference \nUpdate requires: No interruption\n" + "maxLength": 30, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30 \nPattern: [a-zA-Z0-9\\.\\*]+ \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, - "AcceleratorCount": { - "$ref": "#/definitions/AcceleratorCountRequest" - }, - "AcceleratorManufacturers": { - "type": "array", + "AllowedInstanceTypes": { "uniqueItems": false, + "type": "array", "items": { + "minLength": 1, "type": "string", - "enum": [ - "amazon-web-services", - "amd", - "habana", - "nvidia", - "xilinx" - ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: amazon-web-services | amd | habana | nvidia | xilinx \nUpdate requires: No interruption\n" + "maxLength": 30, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 30 \nPattern: [a-zA-Z0-9\\.\\*]+ \nUpdate requires: No interruption\n" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/NetworkBandwidthGbpsRequest" + }, + "AcceleratorCount": { + "$ref": "#/definitions/AcceleratorCountRequest" + }, + "BaselinePerformanceFactors": { + "$ref": "#/definitions/BaselinePerformanceFactorsRequest" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/BaselineEbsBandwidthMbpsRequest" + }, "AcceleratorNames": { - "type": "array", "uniqueItems": false, + "type": "array", "items": { "type": "string", "enum": [ @@ -928,75 +934,24 @@ "AcceleratorTotalMemoryMiB": { "$ref": "#/definitions/AcceleratorTotalMemoryMiBRequest" }, - "BaselinePerformanceFactors": { - "$ref": "#/definitions/BaselinePerformanceFactorsRequest" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "VCpuCountRangeRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "Min": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "Max": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "MemoryMiBRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "Min": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "Max": { - "type": "integer", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "MemoryGiBPerVCpuRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "Min": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - }, - "Max": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "NetworkBandwidthGbpsRequest": { - "type": "object", - "additionalProperties": false, - "properties": { - "Min": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + "BurstablePerformance": { + "type": "string", + "enum": [ + "included", + "required", + "excluded" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: included | required | excluded \nUpdate requires: No interruption\n" }, - "Max": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + "TotalLocalStorageGB": { + "$ref": "#/definitions/TotalLocalStorageGBRequest" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "NetworkInterfaceCountRequest": { - "type": "object", + "MemoryMiBRequest": { "additionalProperties": false, + "type": "object", "properties": { "Min": { "type": "integer", @@ -1009,39 +964,107 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "TotalLocalStorageGBRequest": { - "type": "object", + "BaselinePerformanceFactorsRequest": { "additionalProperties": false, + "type": "object", "properties": { - "Min": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" - }, - "Max": { - "type": "number", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + "Cpu": { + "$ref": "#/definitions/CpuPerformanceFactorRequest" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "BaselineEbsBandwidthMbpsRequest": { - "type": "object", + "InstanceNetworkInterfaceSpecification": { "additionalProperties": false, + "type": "object", "properties": { - "Min": { + "Description": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "PrivateIpAddresses": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SecondaryPrivateIpAddressCount": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "Max": { + "DeviceIndex": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Groups": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Ipv6AddressCount": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "Ipv6Addresses": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SubnetId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "AssociatePublicIpAddress": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "NetworkInterfaceId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "DeleteOnTermination": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "AcceleratorCountRequest": { + "SpotMaintenanceStrategies": { + "additionalProperties": false, + "type": "object", + "properties": { + "CapacityRebalance": { + "$ref": "#/definitions/SpotCapacityRebalance" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "GroupIdentifier": { + "additionalProperties": false, "type": "object", + "properties": { + "GroupId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "GroupId" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "AcceleratorTotalMemoryMiBRequest": { "additionalProperties": false, + "type": "object", "properties": { "Min": { "type": "integer", @@ -1054,128 +1077,105 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "AcceleratorTotalMemoryMiBRequest": { - "type": "object", + "EbsBlockDevice": { "additionalProperties": false, + "type": "object", "properties": { - "Min": { + "SnapshotId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "VolumeType": { + "type": "string", + "enum": [ + "gp2", + "gp3", + "io1", + "io2", + "sc1", + "st1", + "standard" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: gp2 | gp3 | io1 | io2 | sc1 | st1 | standard \nUpdate requires: No interruption\n" + }, + "Encrypted": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Iops": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "Max": { + "VolumeSize": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "DeleteOnTermination": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "BaselinePerformanceFactorsRequest": { - "type": "object", + "LoadBalancersConfig": { "additionalProperties": false, + "type": "object", "properties": { - "Cpu": { - "$ref": "#/definitions/CpuPerformanceFactorRequest" + "ClassicLoadBalancersConfig": { + "$ref": "#/definitions/ClassicLoadBalancersConfig" + }, + "TargetGroupsConfig": { + "$ref": "#/definitions/TargetGroupsConfig" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "CpuPerformanceFactorRequest": { - "type": "object", + "Tag": { "additionalProperties": false, + "type": "object", "properties": { - "References": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/PerformanceFactorReferenceRequest" - }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "Value": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, + "required": [ + "Value", + "Key" + ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "PerformanceFactorReferenceRequest": { - "type": "object", + "ClassicLoadBalancer": { "additionalProperties": false, + "type": "object", "properties": { - "InstanceFamily": { + "Name": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, + "required": [ + "Name" + ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "required": [ "SpotFleetRequestConfigData" ], - "createOnlyProperties": [ - "/properties/SpotFleetRequestConfigData/AllocationStrategy", - "/properties/SpotFleetRequestConfigData/IamFleetRole", - "/properties/SpotFleetRequestConfigData/InstanceInterruptionBehavior", - "/properties/SpotFleetRequestConfigData/InstancePoolsToUseCount", - "/properties/SpotFleetRequestConfigData/LaunchSpecifications", - "/properties/SpotFleetRequestConfigData/LaunchTemplateConfigs", - "/properties/SpotFleetRequestConfigData/LoadBalancersConfig", - "/properties/SpotFleetRequestConfigData/OnDemandAllocationStrategy", - "/properties/SpotFleetRequestConfigData/OnDemandMaxTotalPrice", - "/properties/SpotFleetRequestConfigData/OnDemandTargetCapacity", - "/properties/SpotFleetRequestConfigData/ReplaceUnhealthyInstances", - "/properties/SpotFleetRequestConfigData/SpotMaintenanceStrategies", - "/properties/SpotFleetRequestConfigData/SpotMaxTotalPrice", - "/properties/SpotFleetRequestConfigData/SpotPrice", - "/properties/SpotFleetRequestConfigData/TagSpecifications", - "/properties/SpotFleetRequestConfigData/TerminateInstancesWithExpiration", - "/properties/SpotFleetRequestConfigData/Type", - "/properties/SpotFleetRequestConfigData/ValidFrom", - "/properties/SpotFleetRequestConfigData/ValidUntil" - ], - "readOnlyProperties": [ - "/properties/Id" - ], - "writeOnlyProperties": [ - "/properties/SpotFleetRequestConfigData/TagSpecifications", - "/properties/SpotFleetRequestConfigData/LaunchSpecifications/*/NetworkInterfaces/*/Groups" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "handlers": { - "create": { - "permissions": [ - "iam:PassRole", - "ec2:CreateTags", - "ec2:RequestSpotFleet", - "ec2:DescribeSpotFleetRequests", - "ec2:RunInstances" - ] - }, - "delete": { - "permissions": [ - "ec2:DescribeSpotFleetRequests", - "ec2:CancelSpotFleetRequests" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSpotFleetRequests" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSpotFleetRequests" - ] + "properties": { + "SpotFleetRequestConfigData": { + "$ref": "#/definitions/SpotFleetRequestConfigData" }, - "update": { - "permissions": [ - "ec2:ModifySpotFleetRequest", - "ec2:DescribeSpotFleetRequests" - ] + "Id": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } }, - "tagging": { - "taggable": false - }, "attributes": { "Id": { "type": "string", diff --git a/server/schema/resources/aws-ec2-subnet.json b/server/schema/resources/aws-ec2-subnet.json index f30bc96c..df970c33 100644 --- a/server/schema/resources/aws-ec2-subnet.json +++ b/server/schema/resources/aws-ec2-subnet.json @@ -2,6 +2,10 @@ "typeName": "AWS::EC2::Subnet", "description": "Specifies a subnet for the specified VPC.\n For an IPv4 only subnet, specify an IPv4 CIDR block. If the VPC has an IPv6 CIDR block, you can create an IPv6 only subnet or a dual stack subnet instead. For an IPv6 only subnet, specify an IPv6 CIDR block. For a dual stack subnet, specify both an IPv4 CIDR block and an IPv6 CIDR block.\n For more information, see [Subnets for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) in the *Amazon VPC User Guide*.", "additionalProperties": false, + "propertyTransform": { + "/properties/Ipv6CidrBlock": "Ipv6CidrBlock~>function($c){$split($c,\"/\")~>function($p){$number($p[1])~>function($n){$split($p[0],\":\")~>function($r){($map([0,1,2,3,4,5,6,7],function($i){$pad($r[$i],-4,\"0\")~>function($h){($i<$floor($n/16)?$h:($i=$floor($n/16)?$floor(($n%16)/4)~>function($k){($h~>$substring(0,$k))&$substring(\"0000\",0,4-$k)}:\"0000\"))~>$replace(/^0{1,3}/,\"\")}})~>$join(\":\")~>$replace(/(:0)+$/,\"::\"))&\"/\"&$p[1]}}}}", + "/properties/CidrBlock": "CidrBlock~>function($cidr){$split($cidr,\"/\")~>function($split_cidr){$number($split_cidr[1])~>function($sub_mask){$split($split_cidr[0],/[.]/).$number()~>function($octets){($octets.$formatBase($,2).$pad(-8,\"0\")~>$join())~>function($ip_bin_str){$substring($ip_bin_str,0,$sub_mask).$pad(32,\"0\")~>function($canon_ip_bin_str){$map($map([0..3],function($i){$substring($canon_ip_bin_str,$i*8,8)}),function($s){$split($s,\"\")})~>function($canon_octet_arrs){$map($canon_octet_arrs,function($section){$sum($map([0..7],function($bit){$number($section[$bit])*$power(2,7-$bit)}))})~>function($canon_octets){($canon_octets.$string()~>$join(\".\"))&\"/\"&$sub_mask}}}}}}}}" + }, "properties": { "AssignIpv6AddressOnCreation": { "type": "boolean", diff --git a/server/schema/resources/aws-ecr-repository.json b/server/schema/resources/aws-ecr-repository.json index 80d9ece9..36b413ec 100644 --- a/server/schema/resources/aws-ecr-repository.json +++ b/server/schema/resources/aws-ecr-repository.json @@ -124,7 +124,7 @@ }, "ImageTagMutabilityExclusionFilter": { "type": "object", - "description": "Overrides the default image tag mutability setting of the repository for image tags that match the specified filters.", + "description": "A filter that specifies which image tags should be excluded from the repository's image tag mutability setting.", "properties": { "ImageTagMutabilityExclusionFilterType": { "$ref": "#/definitions/ImageTagMutabilityExclusionFilterType", @@ -142,7 +142,7 @@ "ImageTagMutabilityExclusionFilterValue" ], "additionalProperties": false, - "markdownDescription": "Overrides the default image tag mutability setting of the repository for image tags that match the specified filters.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "A filter that specifies which image tags should be excluded from the repository's image tag mutability setting.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "ImageTagMutabilityExclusionFilterType": { "type": "string", @@ -220,19 +220,19 @@ }, "ImageTagMutabilityExclusionFilters": { "type": "array", - "description": "The image tag mutability exclusion filters associated with the repository. These filters specify which image tags can override the repository's default image tag mutability setting.", + "description": "A list of filters that specify which image tags are excluded from the repository's image tag mutability setting.", "minItems": 1, "maxItems": 5, "insertionOrder": true, "items": { "$ref": "#/definitions/ImageTagMutabilityExclusionFilter" }, - "markdownDescription": "The image tag mutability exclusion filters associated with the repository. These filters specify which image tags can override the repository's default image tag mutability setting.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "A list of filters that specify which image tags are excluded from the repository's image tag mutability setting.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "ImageScanningConfiguration": { "$ref": "#/definitions/ImageScanningConfiguration", - "description": "The image scanning configuration for the repository. This determines whether images are scanned for known vulnerabilities after being pushed to the repository.", - "markdownDescription": "The image scanning configuration for the repository. This determines whether images are scanned for known vulnerabilities after being pushed to the repository.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "description": "The ``imageScanningConfiguration`` parameter is being deprecated, in favor of specifying the image scanning configuration at the registry level. For more information, see ``PutRegistryScanningConfiguration``.\n The image scanning configuration for the repository. This determines whether images are scanned for known vulnerabilities after being pushed to the repository.", + "markdownDescription": "The ``imageScanningConfiguration`` parameter is being deprecated, in favor of specifying the image scanning configuration at the registry level. For more information, see ``PutRegistryScanningConfiguration``.\n The image scanning configuration for the repository. This determines whether images are scanned for known vulnerabilities after being pushed to the repository.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "EncryptionConfiguration": { "$ref": "#/definitions/EncryptionConfiguration", diff --git a/server/schema/resources/aws-ecs-cluster.json b/server/schema/resources/aws-ecs-cluster.json index 8e715379..b18555e9 100644 --- a/server/schema/resources/aws-ecs-cluster.json +++ b/server/schema/resources/aws-ecs-cluster.json @@ -141,9 +141,9 @@ "markdownDescription": "The value to set for the cluster setting. The supported values are ``enhanced``, ``enabled``, and ``disabled``. \n To use Container Insights with enhanced observability, set the ``containerInsights`` account setting to ``enhanced``.\n To use Container Insights, set the ``containerInsights`` account setting to ``enabled``.\n If a cluster value is specified, it will override the ``containerInsights`` value set with [PutAccountSetting](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html) or [PutAccountSettingDefault](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html).\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Name": { - "description": "The name of the cluster setting. The value is ``containerInsights`` .", + "description": "The name of the cluster setting. The value is ``containerInsights``.", "type": "string", - "markdownDescription": "The name of the cluster setting. The value is ``containerInsights`` .\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The name of the cluster setting. The value is ``containerInsights``.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "markdownDescription": "The settings to use when creating a cluster. This parameter is used to turn on CloudWatch Container Insights with enhanced observability or CloudWatch Container Insights for a cluster.\n Container Insights with enhanced observability provides all the Container Insights metrics, plus additional task and container metrics. This version supports enhanced observability for Amazon ECS clusters using the Amazon EC2 and Fargate launch types. After you configure Container Insights with enhanced observability on Amazon ECS, Container Insights auto-collects detailed infrastructure telemetry from the cluster level down to the container level in your environment and displays these critical performance data in curated dashboards removing the heavy lifting in observability set-up. \n For more information, see [Monitor Amazon ECS containers using Container Insights with enhanced observability](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" diff --git a/server/schema/resources/aws-ecs-clustercapacityproviderassociations.json b/server/schema/resources/aws-ecs-clustercapacityproviderassociations.json index 8d92bb8a..29b49752 100644 --- a/server/schema/resources/aws-ecs-clustercapacityproviderassociations.json +++ b/server/schema/resources/aws-ecs-clustercapacityproviderassociations.json @@ -22,6 +22,7 @@ "update": { "permissions": [ "ecs:DescribeClusters", + "ecs:DescribeCapacityProviders", "ecs:PutClusterCapacityProviders" ] }, @@ -129,7 +130,6 @@ } }, "required": [ - "CapacityProviders", "Cluster", "DefaultCapacityProviderStrategy" ], diff --git a/server/schema/resources/aws-ecs-service.json b/server/schema/resources/aws-ecs-service.json index a4ab79fb..5cb50dd9 100644 --- a/server/schema/resources/aws-ecs-service.json +++ b/server/schema/resources/aws-ecs-service.json @@ -402,6 +402,27 @@ ], "markdownDescription": "The advanced settings for a load balancer used in blue/green deployments. Specify the alternate target group, listener rules, and IAM role required for traffic shifting during blue/green deployments. For more information, see [Required resources for Amazon ECS blue/green deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/blue-green-deployment-implementation.html) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "LinearConfiguration": { + "description": "", + "additionalProperties": false, + "type": "object", + "properties": { + "StepBakeTimeInMinutes": { + "maximum": 1440, + "type": "integer", + "minimum": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "StepPercent": { + "multipleOf": 0.1, + "maximum": 100, + "type": "number", + "minimum": 3, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "CapacityProviderStrategyItem": { "description": "The details of a capacity provider strategy. A capacity provider strategy can be set when using the ``RunTask`` or ``CreateService`` APIs or as the default capacity provider strategy for a cluster with the ``CreateCluster`` API.\n Only capacity providers that are already associated with a cluster and have an ``ACTIVE`` or ``UPDATING`` status can be used in a capacity provider strategy. The ``PutClusterCapacityProviders`` API is used to associate a capacity provider with a cluster.\n If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the ``CreateCapacityProvider`` API operation.\n To use an FARGATElong capacity provider, specify either the ``FARGATE`` or ``FARGATE_SPOT`` capacity providers. The FARGATElong capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.", "additionalProperties": false, @@ -425,6 +446,27 @@ }, "markdownDescription": "The details of a capacity provider strategy. A capacity provider strategy can be set when using the ``RunTask`` or ``CreateService`` APIs or as the default capacity provider strategy for a cluster with the ``CreateCluster`` API.\n Only capacity providers that are already associated with a cluster and have an ``ACTIVE`` or ``UPDATING`` status can be used in a capacity provider strategy. The ``PutClusterCapacityProviders`` API is used to associate a capacity provider with a cluster.\n If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the ``CreateCapacityProvider`` API operation.\n To use an FARGATElong capacity provider, specify either the ``FARGATE`` or ``FARGATE_SPOT`` capacity providers. The FARGATElong capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "CanaryConfiguration": { + "description": "", + "additionalProperties": false, + "type": "object", + "properties": { + "CanaryPercent": { + "multipleOf": 0.1, + "maximum": 100, + "type": "number", + "minimum": 0.1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + }, + "CanaryBakeTimeInMinutes": { + "maximum": 1440, + "type": "integer", + "minimum": 0, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ForceNewDeployment": { "description": "Determines whether to force a new deployment of the service. By default, deployments aren't forced. You can use this option to start a new deployment with no service definition changes. For example, you can update a service's tasks to use a newer Docker image with the same image/tag combination (``my_image:latest``) or to roll Fargate tasks onto a newer platform version.", "additionalProperties": false, @@ -846,6 +888,10 @@ "additionalProperties": false, "type": "object", "properties": { + "CanaryConfiguration": { + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "BakeTimeInMinutes": { "maximum": 1440, "description": "The duration when both blue and green service revisions are running simultaneously after the production traffic has shifted.\n The following rules apply when you don't specify a value:\n + For rolling deployments, the value is set to 3 hours (180 minutes).\n + When you use an external deployment controller (``EXTERNAL``), or the ACD blue/green deployment controller (``CODE_DEPLOY``), the value is set to 3 hours (180 minutes).\n + For all other cases, the value is set to 36 hours (2160 minutes).", @@ -871,9 +917,11 @@ "type": "string", "enum": [ "ROLLING", - "BLUE_GREEN" + "BLUE_GREEN", + "LINEAR", + "CANARY" ], - "markdownDescription": "The deployment strategy for the service. Choose from these valid values:\n + ``ROLLING`` - When you create a service which uses the rolling update (``ROLLING``) deployment strategy, the Amazon ECS service scheduler replaces the currently running tasks with new tasks. The number of tasks that Amazon ECS adds or removes from the service during a rolling update is controlled by the service deployment configuration.\n + ``BLUE_GREEN`` - A blue/green deployment strategy (``BLUE_GREEN``) is a release methodology that reduces downtime and risk by running two identical production environments called blue and green. With Amazon ECS blue/green deployments, you can validate new service revisions before directing production traffic to them. This approach provides a safer way to deploy changes with the ability to quickly roll back if needed.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ROLLING | BLUE_GREEN \nUpdate requires: No interruption\n" + "markdownDescription": "The deployment strategy for the service. Choose from these valid values:\n + ``ROLLING`` - When you create a service which uses the rolling update (``ROLLING``) deployment strategy, the Amazon ECS service scheduler replaces the currently running tasks with new tasks. The number of tasks that Amazon ECS adds or removes from the service during a rolling update is controlled by the service deployment configuration.\n + ``BLUE_GREEN`` - A blue/green deployment strategy (``BLUE_GREEN``) is a release methodology that reduces downtime and risk by running two identical production environments called blue and green. With Amazon ECS blue/green deployments, you can validate new service revisions before directing production traffic to them. This approach provides a safer way to deploy changes with the ability to quickly roll back if needed.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ROLLING | BLUE_GREEN | LINEAR | CANARY \nUpdate requires: No interruption\n" }, "DeploymentCircuitBreaker": { "description": "The deployment circuit breaker can only be used for services using the rolling update (``ECS``) deployment type.\n The *deployment circuit breaker* determines whether a service deployment will fail if the service can't reach a steady state. If you use the deployment circuit breaker, a service deployment will transition to a failed state and stop launching new tasks. If you use the rollback option, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. For more information, see [Rolling update](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html) in the *Amazon Elastic Container Service Developer Guide*", @@ -889,6 +937,10 @@ "description": "If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. \n If any tasks are unhealthy and if ``maximumPercent`` doesn't allow the Amazon ECS scheduler to start replacement tasks, the scheduler stops the unhealthy tasks one-by-one \u2014 using the ``minimumHealthyPercent`` as a constraint \u2014 to clear up capacity to launch replacement tasks. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html). \n For services that *do not* use a load balancer, the following should be noted:\n + A service is considered healthy if all essential containers within the tasks in the service pass their health checks.\n + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total.\n + If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings. \n \n For services that *do* use a load balancer, the following should be noted:\n + If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n + If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n \n The default value for a replica service for ``minimumHealthyPercent`` is 100%. The default ``minimumHealthyPercent`` value for a service using the ``DAEMON`` service schedule is 0% for the CLI, the AWS SDKs, and the APIs and 50% for the AWS Management Console.\n The minimum number of healthy tasks during a deployment is the ``desiredCount`` multiplied by the ``minimumHealthyPercent``/100, rounded up to the nearest integer value.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value is set to the default value. The *minimum healthy percent* value is used to define the lower limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``minimumHealthyPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.", "type": "integer", "markdownDescription": "If a service is using the rolling update (``ECS``) deployment type, the ``minimumHealthyPercent`` represents a lower limit on the number of your service's tasks that must remain in the ``RUNNING`` state during a deployment, as a percentage of the ``desiredCount`` (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a ``desiredCount`` of four tasks and a ``minimumHealthyPercent`` of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. \n If any tasks are unhealthy and if ``maximumPercent`` doesn't allow the Amazon ECS scheduler to start replacement tasks, the scheduler stops the unhealthy tasks one-by-one \u2014 using the ``minimumHealthyPercent`` as a constraint \u2014 to clear up capacity to launch replacement tasks. For more information about how the scheduler replaces unhealthy tasks, see [Amazon ECS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html). \n For services that *do not* use a load balancer, the following should be noted:\n + A service is considered healthy if all essential containers within the tasks in the service pass their health checks.\n + If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a ``RUNNING`` state before the task is counted towards the minimum healthy percent total.\n + If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings. \n \n For services that *do* use a load balancer, the following should be noted:\n + If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n + If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.\n \n The default value for a replica service for ``minimumHealthyPercent`` is 100%. The default ``minimumHealthyPercent`` value for a service using the ``DAEMON`` service schedule is 0% for the CLI, the AWS SDKs, and the APIs and 50% for the AWS Management Console.\n The minimum number of healthy tasks during a deployment is the ``desiredCount`` multiplied by the ``minimumHealthyPercent``/100, rounded up to the nearest integer value.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value is set to the default value. The *minimum healthy percent* value is used to define the lower limit on the number of the tasks in the service that remain in the ``RUNNING`` state while the container instances are in the ``DRAINING`` state.\n You can't specify a custom ``minimumHealthyPercent`` value for a service that uses either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and has tasks that use the EC2 launch type.\n If a service is using either the blue/green (``CODE_DEPLOY``) or ``EXTERNAL`` deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "LinearConfiguration": { + "description": "", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "markdownDescription": "Optional deployment parameters that control how many tasks run during a deployment and the ordering of stopping and starting tasks.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -992,14 +1044,14 @@ "markdownDescription": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "LaunchType": { - "description": "The launch type on which to run your service. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.", + "description": "The launch type on which to run your service. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.\n If you want to use Managed Instances, you must use the ``capacityProviderStrategy`` request parameter", "type": "string", "enum": [ "EC2", "FARGATE", "EXTERNAL" ], - "markdownDescription": "The launch type on which to run your service. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nType: String \nAllowed Values: EC2 | FARGATE | EXTERNAL \nUpdate requires: Replacement\n" + "markdownDescription": "The launch type on which to run your service. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.\n If you want to use Managed Instances, you must use the ``capacityProviderStrategy`` request parameter\n\n---\n\nRequired: No \nType: String \nAllowed Values: EC2 | FARGATE | EXTERNAL \nUpdate requires: Replacement\n" }, "Name": { "description": "", @@ -1044,9 +1096,9 @@ "markdownDescription": "Determines whether to force a new deployment of the service. By default, deployments aren't forced. You can use this option to start a new deployment with no service definition changes. For example, you can update a service's tasks to use a newer Docker image with the same image/tag combination (``my_image:latest``) or to roll Fargate tasks onto a newer platform version.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "HealthCheckGracePeriodSeconds": { - "description": "The period of time, in seconds, that the Amazon Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you do not specify a health check grace period value, the default value of 0 is used. If you do not use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused.\n If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.", + "description": "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you do not specify a health check grace period value, the default value of 0 is used. If you do not use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused.\n If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.", "type": "integer", - "markdownDescription": "The period of time, in seconds, that the Amazon Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you do not specify a health check grace period value, the default value of 0 is used. If you do not use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused.\n If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you do not specify a health check grace period value, the default value of 0 is used. If you do not use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused.\n If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "EnableECSManagedTags": { "description": "Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For more information, see [Tagging your Amazon ECS resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) in the *Amazon Elastic Container Service Developer Guide*.\n When you use Amazon ECS managed tags, you must set the ``propagateTags`` request parameter.", diff --git a/server/schema/resources/aws-ecs-taskdefinition.json b/server/schema/resources/aws-ecs-taskdefinition.json index fe5923fe..fb548b47 100644 --- a/server/schema/resources/aws-ecs-taskdefinition.json +++ b/server/schema/resources/aws-ecs-taskdefinition.json @@ -1302,14 +1302,14 @@ }, "RequiresCompatibilities": { "uniqueItems": true, - "description": "The task launch types the task definition was validated against. The valid values are ``EC2``, ``FARGATE``, and ``EXTERNAL``. For more information, see [Amazon ECS launch types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.", + "description": "The task launch types the task definition was validated against. The valid values are ``MANAGED_INSTANCES``, ``EC2``, ``FARGATE``, and ``EXTERNAL``. For more information, see [Amazon ECS launch types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.", "insertionOrder": false, "type": "array", "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "The task launch types the task definition was validated against. The valid values are ``EC2``, ``FARGATE``, and ``EXTERNAL``. For more information, see [Amazon ECS launch types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + "markdownDescription": "The task launch types the task definition was validated against. The valid values are ``MANAGED_INSTANCES``, ``EC2``, ``FARGATE``, and ``EXTERNAL``. For more information, see [Amazon ECS launch types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, "NetworkMode": { "description": "The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``.\n For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode.\n With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. \n When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user.\n If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a [NetworkConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.html) value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used.", diff --git a/server/schema/resources/aws-elasticloadbalancingv2-listener.json b/server/schema/resources/aws-elasticloadbalancingv2-listener.json index d00ecffb..430f302a 100644 --- a/server/schema/resources/aws-elasticloadbalancingv2-listener.json +++ b/server/schema/resources/aws-elasticloadbalancingv2-listener.json @@ -171,9 +171,9 @@ "markdownDescription": "The order for the action. This value is required for rules with multiple actions. The action with the lowest value for order is performed first.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "TargetGroupArn": { - "description": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to one or more target groups, use ``ForwardConfig`` instead.", + "description": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to multiple target groups, you must use ``ForwardConfig`` instead.", "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to one or more target groups, use ``ForwardConfig`` instead.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to multiple target groups, you must use ``ForwardConfig`` instead.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "FixedResponseConfig": { "description": "[Application Load Balancer] Information for creating an action that returns a custom HTTP response. Specify only when ``Type`` is ``fixed-response``.", @@ -196,9 +196,9 @@ "markdownDescription": "[Application Load Balancer] Information for creating a redirect action. Specify only when ``Type`` is ``redirect``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "ForwardConfig": { - "description": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", + "description": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", "$ref": "#/definitions/ForwardConfig", - "markdownDescription": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "AuthenticateOidcConfig": { "description": "[HTTPS listeners] Information about an identity provider that is compliant with OpenID Connect (OIDC). Specify only when ``Type`` is ``authenticate-oidc``.", @@ -336,9 +336,9 @@ "markdownDescription": "Indicates whether target group stickiness is enabled.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "DurationSeconds": { - "description": "The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.", + "description": "[Application Load Balancers] The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.", "type": "integer", - "markdownDescription": "The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "[Application Load Balancers] The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "markdownDescription": "Information about the target group stickiness for a rule.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -362,7 +362,7 @@ "markdownDescription": "Information about a listener attribute.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "ForwardConfig": { - "description": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", + "description": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", "additionalProperties": false, "type": "object", "properties": { @@ -381,7 +381,7 @@ "markdownDescription": "Information about how traffic will be distributed between multiple target groups in a forward rule.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "AuthenticateOidcConfig": { "anyOf": [ diff --git a/server/schema/resources/aws-elasticloadbalancingv2-listenerrule.json b/server/schema/resources/aws-elasticloadbalancingv2-listenerrule.json index 2a02fd6f..71eafb9d 100644 --- a/server/schema/resources/aws-elasticloadbalancingv2-listenerrule.json +++ b/server/schema/resources/aws-elasticloadbalancingv2-listenerrule.json @@ -107,6 +107,15 @@ }, "markdownDescription": "Information about how traffic will be distributed between multiple target groups in a forward rule.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "RewriteConfigList": { + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/RewriteConfig" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "Action": { "description": "Specifies an action for a listener rule.", "additionalProperties": false, @@ -118,9 +127,9 @@ "markdownDescription": "The order for the action. This value is required for rules with multiple actions. The action with the lowest value for order is performed first.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "TargetGroupArn": { - "description": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to one or more target groups, use ``ForwardConfig`` instead.", + "description": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to multiple target groups, you must use ``ForwardConfig`` instead.", "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to one or more target groups, use ``ForwardConfig`` instead.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The Amazon Resource Name (ARN) of the target group. Specify only when ``Type`` is ``forward`` and you want to route to a single target group. To route to multiple target groups, you must use ``ForwardConfig`` instead.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "FixedResponseConfig": { "description": "[Application Load Balancer] Information for creating an action that returns a custom HTTP response. Specify only when ``Type`` is ``fixed-response``.", @@ -143,9 +152,9 @@ "markdownDescription": "[Application Load Balancer] Information for creating a redirect action. Specify only when ``Type`` is ``redirect``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "ForwardConfig": { - "description": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", + "description": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", "$ref": "#/definitions/ForwardConfig", - "markdownDescription": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "AuthenticateOidcConfig": { "description": "[HTTPS listeners] Information about an identity provider that is compliant with OpenID Connect (OIDC). Specify only when ``Type`` is ``authenticate-oidc``.", @@ -183,6 +192,11 @@ "$ref": "#/definitions/QueryStringConfig", "markdownDescription": "Information for a query string condition. Specify only when ``Field`` is ``query-string``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, + "RegexValues": { + "description": "", + "$ref": "#/definitions/ListOfStrings", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "HostHeaderConfig": { "description": "Information for a host header condition. Specify only when ``Field`` is ``host-header``.", "$ref": "#/definitions/HostHeaderConfig", @@ -245,13 +259,33 @@ "markdownDescription": "Indicates whether target group stickiness is enabled.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "DurationSeconds": { - "description": "The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.", + "description": "[Application Load Balancers] The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.", "type": "integer", - "markdownDescription": "The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "markdownDescription": "[Application Load Balancers] The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "markdownDescription": "Information about the target group stickiness for a rule.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "RewriteConfig": { + "description": "", + "additionalProperties": false, + "type": "object", + "properties": { + "Replace": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Regex": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Regex", + "Replace" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "PathPatternConfig": { "description": "Information about a path pattern condition.", "additionalProperties": false, @@ -261,6 +295,11 @@ "description": "The path patterns to compare against the request URL. The maximum size of each string is 128 characters. The comparison is case sensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).\n If you specify multiple strings, the condition is satisfied if one of them matches the request URL. The path pattern is compared only to the path of the URL, not to its query string.", "$ref": "#/definitions/ListOfStrings", "markdownDescription": "The path patterns to compare against the request URL. The maximum size of each string is 128 characters. The comparison is case sensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).\n If you specify multiple strings, the condition is satisfied if one of them matches the request URL. The path pattern is compared only to the path of the URL, not to its query string.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "RegexValues": { + "description": "", + "$ref": "#/definitions/ListOfStrings", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "markdownDescription": "Information about a path pattern condition.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -301,6 +340,11 @@ "$ref": "#/definitions/ListOfStrings", "markdownDescription": "The strings to compare against the value of the HTTP header. The maximum size of each string is 128 characters. The comparison strings are case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).\n If the same header appears multiple times in the request, we search them in order until a match is found.\n If you specify multiple strings, the condition is satisfied if one of the strings matches the value of the HTTP header. To require that all of the strings are a match, create one condition per string.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, + "RegexValues": { + "description": "", + "$ref": "#/definitions/ListOfStrings", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "HttpHeaderName": { "description": "The name of the HTTP header field. The maximum size is 40 characters. The header name is case insensitive. The allowed characters are specified by RFC 7230. Wildcards are not supported.", "type": "string", @@ -410,6 +454,20 @@ ], "markdownDescription": "Information about a redirect action.\n A URI consists of the following components: protocol://hostname:port/path?query. You must modify at least one of the following components to avoid a redirect loop: protocol, hostname, port, or path. Any components that you do not modify retain their original values.\n You can reuse URI components using the following reserved keywords:\n + #{protocol}\n + #{host}\n + #{port}\n + #{path} (the leading \"/\" is removed)\n + #{query}\n \n For example, you can change the path to \"/new/#{path}\", the hostname to \"example.#{host}\", or the query to \"#{query}&value=xyz\".\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "RewriteConfigObject": { + "description": "", + "additionalProperties": false, + "type": "object", + "properties": { + "Rewrites": { + "$ref": "#/definitions/RewriteConfigList" + } + }, + "required": [ + "Rewrites" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "QueryStringKeyValue": { "description": "Information about a key/value pair.", "additionalProperties": false, @@ -429,7 +487,7 @@ "markdownDescription": "Information about a key/value pair.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "ForwardConfig": { - "description": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", + "description": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.", "additionalProperties": false, "type": "object", "properties": { @@ -449,7 +507,7 @@ "markdownDescription": "Information about how traffic will be distributed between multiple target groups in a forward rule.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when ``Type`` is ``forward``. If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Information for creating an action that distributes requests among multiple target groups. Specify only when ``Type`` is ``forward``.\n If you specify both ``ForwardConfig`` and ``TargetGroupArn``, you can specify only one target group using ``ForwardConfig`` and it must be the same target group specified in ``TargetGroupArn``.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "HostHeaderConfig": { "description": "Information about a host header condition.", @@ -460,10 +518,48 @@ "description": "The host names. The maximum size of each name is 128 characters. The comparison is case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character). You must include at least one \".\" character. You can include only alphabetical characters after the final \".\" character.\n If you specify multiple strings, the condition is satisfied if one of the strings matches the host name.", "$ref": "#/definitions/ListOfStrings", "markdownDescription": "The host names. The maximum size of each name is 128 characters. The comparison is case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character). You must include at least one \".\" character. You can include only alphabetical characters after the final \".\" character.\n If you specify multiple strings, the condition is satisfied if one of the strings matches the host name.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "RegexValues": { + "description": "", + "$ref": "#/definitions/ListOfStrings", + "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "markdownDescription": "Information about a host header condition.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "Transform": { + "oneOf": [ + { + "required": [ + "HostHeaderRewriteConfig" + ] + }, + { + "required": [ + "UrlRewriteConfig" + ] + } + ], + "description": "", + "additionalProperties": false, + "type": "object", + "properties": { + "Type": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "UrlRewriteConfig": { + "$ref": "#/definitions/RewriteConfigObject" + }, + "HostHeaderRewriteConfig": { + "$ref": "#/definitions/RewriteConfigObject" + } + }, + "required": [ + "Type" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "HttpRequestMethodConfig": { "description": "Information about an HTTP method condition.\n HTTP defines a set of request methods, also referred to as HTTP verbs. For more information, see the [HTTP Method Registry](https://docs.aws.amazon.com/https://www.iana.org/assignments/http-methods/http-methods.xhtml). You can also define custom HTTP methods.", "additionalProperties": false, @@ -622,6 +718,16 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "Transforms": { + "uniqueItems": true, + "description": "", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Transform" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "Conditions": { "uniqueItems": true, "description": "The conditions.\n The rule can optionally include up to one of each of the following conditions: ``http-request-method``, ``host-header``, ``path-pattern``, and ``source-ip``. A rule can also optionally include one or more of each of the following conditions: ``http-header`` and ``query-string``.", diff --git a/server/schema/resources/aws-events-eventbus.json b/server/schema/resources/aws-events-eventbus.json index 5ef05f47..a3ae1c6f 100644 --- a/server/schema/resources/aws-events-eventbus.json +++ b/server/schema/resources/aws-events-eventbus.json @@ -124,7 +124,12 @@ "events:TagResource", "kms:DescribeKey", "kms:GenerateDataKey", - "kms:Decrypt" + "kms:Decrypt", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncrypt", + "kms:ReEncryptFrom", + "kms:ReEncryptTo", + "kms:Encrypt" ] }, "read": { @@ -142,7 +147,12 @@ "events:UpdateEventBus", "kms:DescribeKey", "kms:GenerateDataKey", - "kms:Decrypt" + "kms:Decrypt", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncrypt", + "kms:ReEncryptFrom", + "kms:ReEncryptTo", + "kms:Encrypt" ] }, "delete": { diff --git a/server/schema/resources/aws-events-eventbuspolicy.json b/server/schema/resources/aws-events-eventbuspolicy.json index 888fd46c..d3a12b43 100644 --- a/server/schema/resources/aws-events-eventbuspolicy.json +++ b/server/schema/resources/aws-events-eventbuspolicy.json @@ -1,56 +1,73 @@ { "typeName": "AWS::Events::EventBusPolicy", "description": "Resource Type definition for AWS::Events::EventBusPolicy", - "additionalProperties": false, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-events-eventbuspolicy", + "definitions": { + "Condition": { + "type": "object", + "description": "This parameter enables you to limit the permission to accounts that fulfill a certain condition, such as being a member of a certain AWS organization.", + "additionalProperties": false, + "properties": { + "Value": { + "description": "Specifies the key for the condition. Currently the only supported key is aws:PrincipalOrgID.", + "type": "string", + "markdownDescription": "Specifies the key for the condition. Currently the only supported key is aws:PrincipalOrgID.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Type": { + "description": "Specifies the type of condition. Currently the only supported value is StringEquals.", + "type": "string", + "markdownDescription": "Specifies the type of condition. Currently the only supported value is StringEquals.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Key": { + "description": "Specifies the value for the key. Currently, this must be the ID of the organization.", + "type": "string", + "markdownDescription": "Specifies the value for the key. Currently, this must be the ID of the organization.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "This parameter enables you to limit the permission to accounts that fulfill a certain condition, such as being a member of a certain AWS organization.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, "properties": { "EventBusName": { + "description": "The name of the event bus associated with the rule. If you omit this, the default event bus is used.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "minLength": 1, + "maxLength": 256, + "markdownDescription": "The name of the event bus associated with the rule. If you omit this, the default event bus is used.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: [\\.\\-_A-Za-z0-9]+ \nUpdate requires: Replacement\n" }, "Condition": { "$ref": "#/definitions/Condition" }, "Action": { + "description": "The action that you are enabling the other account to perform.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The action that you are enabling the other account to perform.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: events:[a-zA-Z]+ \nUpdate requires: No interruption\n" }, "StatementId": { + "description": "An identifier string for the external account that you are granting permissions to", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "minLength": 1, + "maxLength": 64, + "markdownDescription": "An identifier string for the external account that you are granting permissions to\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: [a-zA-Z0-9-_]+ \nUpdate requires: Replacement\n" }, "Statement": { + "description": "A JSON string that describes the permission policy statement. You can include a Policy parameter in the request instead of using the StatementId, Action, Principal, or Condition parameters.", "type": "object", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "A JSON string that describes the permission policy statement. You can include a Policy parameter in the request instead of using the StatementId, Action, Principal, or Condition parameters.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "Principal": { + "description": "The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify \"*\" to permit any account to put events to your default event bus.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "minLength": 1, + "maxLength": 12, + "markdownDescription": "The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify \"*\" to permit any account to put events to your default event bus.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 12 \nPattern: (\\d{12}|\\*) \nUpdate requires: No interruption\n" } }, - "definitions": { - "Condition": { - "type": "object", - "additionalProperties": false, - "properties": { - "Value": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Type": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Key": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } + "additionalProperties": false, + "tagging": { + "taggable": false }, "required": [ "StatementId" @@ -60,15 +77,55 @@ "/properties/StatementId" ], "primaryIdentifier": [ - "/properties/Id" + "/properties/EventBusName", + "/properties/StatementId" ], - "readOnlyProperties": [ - "/properties/Id" + "writeOnlyProperties": [ + "/properties/Principal", + "/properties/Condition", + "/properties/Action" ], - "attributes": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "deprecatedProperties": [ + "/properties/Principal", + "/properties/Condition", + "/properties/Action" + ], + "handlers": { + "create": { + "permissions": [ + "events:DescribeEventBus", + "events:PutPermission" + ] + }, + "read": { + "permissions": [ + "events:DescribeEventBus" + ] + }, + "update": { + "permissions": [ + "events:DescribeEventBus", + "events:PutPermission" + ] + }, + "delete": { + "permissions": [ + "events:DescribeEventBus", + "events:RemovePermission" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "EventBusName": { + "$ref": "resource-schema.json#/properties/EventBusName" + } + } + }, + "permissions": [ + "events:DescribeEventBus" + ] } - } + }, + "attributes": {} } \ No newline at end of file diff --git a/server/schema/resources/aws-fsx-filesystem.json b/server/schema/resources/aws-fsx-filesystem.json index 964b09d0..30dfb554 100644 --- a/server/schema/resources/aws-fsx-filesystem.json +++ b/server/schema/resources/aws-fsx-filesystem.json @@ -271,6 +271,10 @@ "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, + "EndpointIpv6AddressRange": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "PreferredSubnetId": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" diff --git a/server/schema/resources/aws-imagebuilder-component.json b/server/schema/resources/aws-imagebuilder-component.json index e3be06f1..de56899d 100644 --- a/server/schema/resources/aws-imagebuilder-component.json +++ b/server/schema/resources/aws-imagebuilder-component.json @@ -1,22 +1,155 @@ { - "tagging": { - "permissions": [ - "imagebuilder:TagResource", - "imagebuilder:UntagResource" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, "typeName": "AWS::ImageBuilder::Component", + "description": "Resource schema for AWS::ImageBuilder::Component", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the component.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "description": "The name of the component.", + "type": "string", + "markdownDescription": "The name of the component.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Version": { + "description": "The version of the component.", + "type": "string", + "markdownDescription": "The version of the component.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Description": { + "description": "The description of the component.", + "type": "string", + "markdownDescription": "The description of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "ChangeDescription": { + "description": "The change description of the component.", + "type": "string", + "markdownDescription": "The change description of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Type": { + "description": "The type of the component denotes whether the component is used to build the image or only to test it. ", + "type": "string", + "enum": [ + "BUILD", + "TEST" + ], + "markdownDescription": "The type of the component denotes whether the component is used to build the image or only to test it. \n\n---\n\nRequired: No \nType: String \nAllowed Values: BUILD | TEST \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Platform": { + "description": "The platform of the component.", + "type": "string", + "enum": [ + "Windows", + "Linux", + "macOS" + ], + "markdownDescription": "The platform of the component.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: Windows | Linux | macOS \nUpdate requires: Replacement\n" + }, + "Data": { + "description": "The data of the component.", + "type": "string", + "minLength": 1, + "maxLength": 16000, + "markdownDescription": "The data of the component.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 16000 \nUpdate requires: Replacement\n" + }, + "KmsKeyId": { + "description": "The KMS key identifier used to encrypt the component.", + "type": "string", + "markdownDescription": "The KMS key identifier used to encrypt the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Encrypted": { + "description": "The encryption status of the component.", + "type": "boolean", + "markdownDescription": "The encryption status of the component.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "The tags associated with the component.", + "type": "object", + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The tags associated with the component.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Uri": { + "description": "The uri of the component.", + "type": "string", + "markdownDescription": "The uri of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "SupportedOsVersions": { + "description": "The operating system (OS) version supported by the component.", + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The operating system (OS) version supported by the component.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + }, + "LatestVersion": { + "description": "The latest version references of the component.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the component.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "definitions": { + "LatestVersion": { + "description": "The latest version references of the component.", + "type": "object", + "additionalProperties": false, + "properties": { + "Arn": { + "description": "The latest version ARN of the created component.", + "type": "string", + "markdownDescription": "The latest version ARN of the created component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Major": { + "description": "The latest version ARN of the created component, with the same major version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created component, with the same major version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Minor": { + "description": "The latest version ARN of the created component, with the same minor version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created component, with the same minor version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Patch": { + "description": "The latest version ARN of the created component, with the same patch version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created component, with the same patch version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The latest version references of the component.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Platform", + "Version" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], "readOnlyProperties": [ "/properties/Arn", "/properties/Type", - "/properties/Encrypted" + "/properties/Encrypted", + "/properties/LatestVersion", + "/properties/LatestVersion/Arn", + "/properties/LatestVersion/Major", + "/properties/LatestVersion/Minor", + "/properties/LatestVersion/Patch" + ], + "writeOnlyProperties": [ + "/properties/Data", + "/properties/Uri" ], - "description": "Resource schema for AWS::ImageBuilder::Component", "createOnlyProperties": [ "/properties/Name", "/properties/Version", @@ -28,22 +161,18 @@ "/properties/KmsKeyId", "/properties/SupportedOsVersions" ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "required": [ - "Name", - "Platform", - "Version" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UntagResource" + ] + }, "handlers": { - "read": { - "permissions": [ - "imagebuilder:GetComponent", - "kms:Decrypt" - ] - }, "create": { "permissions": [ "iam:CreateServiceLinkedRole", @@ -68,6 +197,19 @@ "imagebuilder:UntagResource" ] }, + "read": { + "permissions": [ + "imagebuilder:GetComponent", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "imagebuilder:GetComponent", + "imagebuilder:UntagResource", + "imagebuilder:DeleteComponent" + ] + }, "list": { "permissions": [ "imagebuilder:ListComponents", @@ -80,73 +222,13 @@ } } } - }, - "delete": { - "permissions": [ - "imagebuilder:GetComponent", - "imagebuilder:UntagResource", - "imagebuilder:DeleteComponent" - ] } }, - "writeOnlyProperties": [ - "/properties/Data", - "/properties/Uri" - ], - "additionalProperties": false, - "definitions": {}, - "properties": { - "Description": { - "description": "The description of the component.", - "type": "string", - "markdownDescription": "The description of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "SupportedOsVersions": { - "description": "The operating system (OS) version supported by the component.", - "insertionOrder": false, - "type": "array", - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "The operating system (OS) version supported by the component.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" - }, - "Platform": { - "description": "The platform of the component.", - "type": "string", - "enum": [ - "Windows", - "Linux", - "macOS" - ], - "markdownDescription": "The platform of the component.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: Windows | Linux | macOS \nUpdate requires: Replacement\n" - }, - "KmsKeyId": { - "description": "The KMS key identifier used to encrypt the component.", - "type": "string", - "markdownDescription": "The KMS key identifier used to encrypt the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Encrypted": { - "description": "The encryption status of the component.", - "type": "boolean", - "markdownDescription": "The encryption status of the component.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Data": { - "minLength": 1, - "description": "The data of the component.", - "type": "string", - "maxLength": 16000, - "markdownDescription": "The data of the component.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 16000 \nUpdate requires: Replacement\n" - }, - "Uri": { - "description": "The uri of the component.", - "type": "string", - "markdownDescription": "The uri of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Name": { - "description": "The name of the component.", + "attributes": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the component.", "type": "string", - "markdownDescription": "The name of the component.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "The Amazon Resource Name (ARN) of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Type": { "description": "The type of the component denotes whether the component is used to build the image or only to test it. ", @@ -157,53 +239,15 @@ ], "markdownDescription": "The type of the component denotes whether the component is used to build the image or only to test it. \n\n---\n\nRequired: No \nType: String \nAllowed Values: BUILD | TEST \nUpdate requires: No interruption\nRead only property: Yes" }, - "Version": { - "description": "The version of the component.", - "type": "string", - "markdownDescription": "The version of the component.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" - }, - "ChangeDescription": { - "description": "The change description of the component.", - "type": "string", - "markdownDescription": "The change description of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Arn": { - "description": "The Amazon Resource Name (ARN) of the component.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Tags": { - "patternProperties": { - ".{1,}": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "description": "The tags associated with the component.", - "additionalProperties": false, - "type": "object", - "markdownDescription": "The tags associated with the component.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } - }, - "attributes": { "Encrypted": { "description": "The encryption status of the component.", "type": "boolean", "markdownDescription": "The encryption status of the component.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\nRead only property: Yes" }, - "Type": { - "description": "The type of the component denotes whether the component is used to build the image or only to test it. ", - "type": "string", - "enum": [ - "BUILD", - "TEST" - ], - "markdownDescription": "The type of the component denotes whether the component is used to build the image or only to test it. \n\n---\n\nRequired: No \nType: String \nAllowed Values: BUILD | TEST \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Arn": { - "description": "The Amazon Resource Name (ARN) of the component.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "LatestVersion": { + "description": "The latest version references of the component.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the component.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-imagebuilder-image.json b/server/schema/resources/aws-imagebuilder-image.json index 9fec2ca9..c2e5ae66 100644 --- a/server/schema/resources/aws-imagebuilder-image.json +++ b/server/schema/resources/aws-imagebuilder-image.json @@ -15,7 +15,12 @@ "/properties/Arn", "/properties/Name", "/properties/ImageId", - "/properties/ImageUri" + "/properties/ImageUri", + "/properties/LatestVersion", + "/properties/LatestVersion/Arn", + "/properties/LatestVersion/Major", + "/properties/LatestVersion/Minor", + "/properties/LatestVersion/Patch" ], "description": "Resource schema for AWS::ImageBuilder::Image", "createOnlyProperties": [ @@ -31,6 +36,9 @@ "primaryIdentifier": [ "/properties/Arn" ], + "conditionalCreateOnlyProperties": [ + "/properties/ImagePipelineExecutionSettings" + ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", "oneOf": [ { @@ -107,8 +115,24 @@ ] } }, + "writeOnlyProperties": [ + "/properties/ImagePipelineExecutionSettings" + ], "additionalProperties": false, "definitions": { + "ImageLoggingConfiguration": { + "description": "The logging configuration settings for the image.", + "additionalProperties": false, + "type": "object", + "properties": { + "LogGroupName": { + "description": "The name of the log group for image build logs.", + "type": "string", + "markdownDescription": "The name of the log group for image build logs.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The logging configuration settings for the image.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ImageScanningConfiguration": { "description": "Contains settings for Image Builder image resource and container image scans.", "additionalProperties": false, @@ -186,6 +210,34 @@ }, "markdownDescription": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "LatestVersion": { + "description": "The latest version references of the image.", + "additionalProperties": false, + "type": "object", + "properties": { + "Major": { + "description": "The latest version ARN of the created image, with the same major version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created image, with the same major version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Minor": { + "description": "The latest version ARN of the created image, with the same minor version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created image, with the same minor version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Arn": { + "description": "The latest version ARN of the created image.", + "type": "string", + "markdownDescription": "The latest version ARN of the created image.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Patch": { + "description": "The latest version ARN of the created image, with the same patch version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created image, with the same patch version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The latest version references of the image.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, "WorkflowParameterValue": { "description": "The value associated with the workflow parameter", "type": "string", @@ -229,6 +281,22 @@ }, "markdownDescription": "The image tests configuration used when creating this image.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "DeletionSettings": { + "description": "The deletion settings of the image, indicating whether to delete the underlying resources in addition to the image.", + "additionalProperties": false, + "type": "object", + "properties": { + "ExecutionRole": { + "description": "The execution role to use for deleting the image, as well as underlying resources.", + "type": "string", + "markdownDescription": "The execution role to use for deleting the image, as well as underlying resources.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ExecutionRole" + ], + "markdownDescription": "The deletion settings of the image, indicating whether to delete the underlying resources in addition to the image.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "WorkflowParameter": { "description": "A parameter associated with the workflow", "additionalProperties": false, @@ -270,6 +338,62 @@ }, "markdownDescription": "Workflows to define the image build process\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" }, + "ImagePipelineExecutionSettings": { + "description": "The image pipeline execution settings of the image.", + "$ref": "#/definitions/ImagePipelineExecutionSettings", + "dependencies": { + "ImagePipelineExecutionSettings": { + "oneOf": [ + { + "required": [ + "ImageRecipeArn" + ] + }, + { + "required": [ + "ContainerRecipeArn" + ] + }, + { + "required": [ + "InfrastructureConfigurationArn" + ] + }, + { + "required": [ + "Workflows" + ] + }, + { + "required": [ + "DistributionConfigurationArn" + ] + }, + { + "required": [ + "ImageTestsConfiguration" + ] + }, + { + "required": [ + "ImageScanningConfiguration" + ] + }, + { + "required": [ + "EnhancedImageMetadataEnabled" + ] + }, + { + "required": [ + "ImportDiskImageSettings" + ] + } + ] + } + }, + "markdownDescription": "The image pipeline execution settings of the image.\n\n---\n\nRequired: Conditional \nType: \nUpdate requires: Some interruptions\n" + }, "ImageUri": { "description": "URI for containers created in current Region with default ECR image tag", "type": "string", @@ -295,6 +419,16 @@ "type": "string", "markdownDescription": "The Amazon Resource Name (ARN) of the distribution configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, + "LatestVersion": { + "description": "The latest version references of the image.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the image.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LoggingConfiguration": { + "description": "The logging configuration settings for the image.", + "$ref": "#/definitions/ImageLoggingConfiguration", + "markdownDescription": "The logging configuration settings for the image.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, "ImageId": { "description": "The AMI ID of the EC2 AMI in current region.", "type": "string", @@ -344,6 +478,11 @@ "type": "string", "markdownDescription": "The name of the image.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "LatestVersion": { + "description": "The latest version references of the image.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the image.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + }, "ImageId": { "description": "The AMI ID of the EC2 AMI in current region.", "type": "string", diff --git a/server/schema/resources/aws-imagebuilder-imagepipeline.json b/server/schema/resources/aws-imagebuilder-imagepipeline.json index b050530c..06c0407c 100644 --- a/server/schema/resources/aws-imagebuilder-imagepipeline.json +++ b/server/schema/resources/aws-imagebuilder-imagepipeline.json @@ -1,94 +1,134 @@ { + "typeName": "AWS::ImageBuilder::ImagePipeline", + "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "permissions": [ - "imagebuilder:TagResource", - "imagebuilder:UntagResource" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image pipeline.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the image pipeline.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "handlers": { - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] + "Name": { + "description": "The name of the image pipeline.", + "type": "string", + "markdownDescription": "The name of the image pipeline.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: Replacement\n" }, - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] + "Description": { + "description": "The description of the image pipeline.", + "type": "string", + "markdownDescription": "The description of the image pipeline.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow", - "imagebuilder:TagResource", - "imagebuilder:UntagResource" - ] + "ImageTestsConfiguration": { + "description": "The image tests configuration of the image pipeline.", + "$ref": "#/definitions/ImageTestsConfiguration", + "markdownDescription": "The image tests configuration of the image pipeline.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] + "Status": { + "description": "The status of the image pipeline.", + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ], + "markdownDescription": "The status of the image pipeline.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DISABLED | ENABLED \nUpdate requires: No interruption\n" }, - "delete": { - "permissions": [ - "imagebuilder:UntagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] + "Schedule": { + "description": "The schedule of the image pipeline.", + "$ref": "#/definitions/Schedule", + "markdownDescription": "The schedule of the image pipeline.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "ImageRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "ContainerRecipeArn": { + "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "DistributionConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "InfrastructureConfigurationArn": { + "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "type": "array", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "markdownDescription": "Workflows to define the image build process\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "EnhancedImageMetadataEnabled": { + "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", + "type": "boolean", + "markdownDescription": "Collects additional information about the image being created, including the operating system (OS) version and package list.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "ImageScanningConfiguration": { + "description": "Contains settings for vulnerability scans.", + "$ref": "#/definitions/ImageScanningConfiguration", + "markdownDescription": "Contains settings for vulnerability scans.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string", + "markdownDescription": "The execution role name/ARN for the image build, if provided\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "LoggingConfiguration": { + "description": "The logging configuration settings for the image pipeline.", + "$ref": "#/definitions/PipelineLoggingConfiguration", + "markdownDescription": "The logging configuration settings for the image pipeline.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "Tags": { + "description": "The tags of this image pipeline.", + "type": "object", + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The tags of this image pipeline.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DeploymentId": { + "description": "The deployment ID of the pipeline, used for resource create/update triggers.", + "type": "string", + "markdownDescription": "The deployment ID of the pipeline, used for resource create/update triggers.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } }, - "typeName": "AWS::ImageBuilder::ImagePipeline", - "readOnlyProperties": [ - "/properties/Arn" - ], - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "createOnlyProperties": [ - "/properties/Name" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/Arn" - ], "definitions": { + "ImageTestsConfiguration": { + "description": "Image tests configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "ImageTestsEnabled": { + "description": "Defines if tests should be executed when building this image.", + "type": "boolean", + "markdownDescription": "Defines if tests should be executed when building this image.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "TimeoutMinutes": { + "description": "The maximum time in minutes that tests are permitted to run.", + "type": "integer", + "minimum": 60, + "maximum": 1440, + "markdownDescription": "The maximum time in minutes that tests are permitted to run.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "Image tests configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "ImageScanningConfiguration": { "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "EcrConfiguration": { "description": "Contains ECR settings for vulnerability scans.", @@ -103,51 +143,15 @@ }, "markdownDescription": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "WorkflowConfiguration": { - "description": "The workflow configuration of the image", - "additionalProperties": false, - "type": "object", - "properties": { - "ParallelGroup": { - "description": "The parallel group name", - "type": "string", - "markdownDescription": "The parallel group name\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "markdownDescription": "The parameters associated with the workflow\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the workflow\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "type": "string", - "enum": [ - "CONTINUE", - "ABORT" - ], - "markdownDescription": "Define execution decision in case of workflow failure\n\n---\n\nRequired: No \nType: String \nAllowed Values: CONTINUE | ABORT \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "The workflow configuration of the image\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, "EcrConfiguration": { "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "ContainerTags": { "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, "type": "array", + "insertionOrder": true, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -162,15 +166,10 @@ }, "markdownDescription": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string", - "markdownDescription": "The value associated with the workflow parameter\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, "Schedule": { "description": "The schedule of the image pipeline.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "ScheduleExpression": { "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", @@ -188,142 +187,190 @@ }, "AutoDisablePolicy": { "description": "The auto-disable policy for the image pipeline.", + "$ref": "#/definitions/AutoDisablePolicy", "markdownDescription": "The auto-disable policy for the image pipeline.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "markdownDescription": "The schedule of the image pipeline.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ImageTestsConfiguration": { - "description": "Image tests configuration.", - "additionalProperties": false, + "AutoDisablePolicy": { + "description": "The auto-disable policy configuration for the image pipeline.", "type": "object", + "additionalProperties": false, "properties": { - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, + "FailureCount": { + "description": "The number of consecutive failures after which the pipeline should be automatically disabled.", "type": "integer", - "minimum": 60, - "markdownDescription": "The maximum time in minutes that tests are permitted to run.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "minimum": 1, + "markdownDescription": "The number of consecutive failures after which the pipeline should be automatically disabled.\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "FailureCount" + ], + "markdownDescription": "The auto-disable policy configuration for the image pipeline.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "WorkflowConfiguration": { + "description": "The workflow configuration of the image", + "type": "object", + "additionalProperties": false, + "properties": { + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the workflow\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean", - "markdownDescription": "Defines if tests should be executed when building this image.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "Parameters": { + "description": "The parameters associated with the workflow", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "markdownDescription": "The parameters associated with the workflow\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string", + "markdownDescription": "The parallel group name\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "type": "string", + "enum": [ + "CONTINUE", + "ABORT" + ], + "markdownDescription": "Define execution decision in case of workflow failure\n\n---\n\nRequired: No \nType: String \nAllowed Values: CONTINUE | ABORT \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Image tests configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The workflow configuration of the image\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "WorkflowParameter": { "description": "A parameter associated with the workflow", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { + "Name": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "Value": { - "insertionOrder": true, "type": "array", + "insertionOrder": true, "items": { "$ref": "#/definitions/WorkflowParameterValue" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Name": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "markdownDescription": "A parameter associated with the workflow\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - } - }, - "properties": { - "Status": { - "description": "The status of the image pipeline.", - "type": "string", - "enum": [ - "DISABLED", - "ENABLED" - ], - "markdownDescription": "The status of the image pipeline.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DISABLED | ENABLED \nUpdate requires: No interruption\n" - }, - "ImageScanningConfiguration": { - "description": "Contains settings for vulnerability scans.", - "$ref": "#/definitions/ImageScanningConfiguration", - "markdownDescription": "Contains settings for vulnerability scans.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string", - "markdownDescription": "The description of the image pipeline.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The value associated with the workflow parameter\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "type": "array", - "items": { - "$ref": "#/definitions/WorkflowConfiguration" + "PipelineLoggingConfiguration": { + "description": "The logging configuration settings for the image pipeline.", + "type": "object", + "additionalProperties": false, + "properties": { + "ImageLogGroupName": { + "description": "The name of the log group for image build logs.", + "type": "string", + "markdownDescription": "The name of the log group for image build logs.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "PipelineLogGroupName": { + "description": "The name of the log group for pipeline execution logs.", + "type": "string", + "markdownDescription": "The name of the log group for pipeline execution logs.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } }, - "markdownDescription": "Workflows to define the image build process\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string", - "markdownDescription": "The name of the image pipeline.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: Replacement\n" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.\n\n---\n\nRequired: Conditional \nType: String \nUpdate requires: No interruption\n" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "Schedule": { - "description": "The schedule of the image pipeline.", - "$ref": "#/definitions/Schedule", - "markdownDescription": "The schedule of the image pipeline.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "markdownDescription": "The logging configuration settings for the image pipeline.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "Name", + "ContainerRecipeArn", + "InfrastructureConfigurationArn" + ] }, - "ImageTestsConfiguration": { - "description": "The image tests configuration of the image pipeline.", - "$ref": "#/definitions/ImageTestsConfiguration", - "markdownDescription": "The image tests configuration of the image pipeline.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + { + "required": [ + "Name", + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ] + } + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/DeploymentId" + ], + "createOnlyProperties": [ + "/properties/Name" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UntagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "ecr:BatchGetRepositoryScanningConfiguration", + "iam:GetRole", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", + "inspector2:BatchGetAccountStatus" + ] }, - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the image pipeline.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "update": { + "permissions": [ + "iam:PassRole", + "imagebuilder:GetImagePipeline", + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow", + "imagebuilder:TagResource", + "imagebuilder:UntagResource" + ] }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean", - "markdownDescription": "Collects additional information about the image being created, including the operating system (OS) version and package list.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "read": { + "permissions": [ + "imagebuilder:GetImagePipeline" + ] }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string", - "markdownDescription": "The execution role name/ARN for the image build, if provided\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "delete": { + "permissions": [ + "imagebuilder:UntagResource", + "imagebuilder:GetImagePipeline", + "imagebuilder:DeleteImagePipeline" + ] }, - "Tags": { - "patternProperties": { - ".{1,}": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "description": "The tags of this image pipeline.", - "additionalProperties": false, - "type": "object", - "markdownDescription": "The tags of this image pipeline.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "list": { + "permissions": [ + "imagebuilder:ListImagePipelines" + ] } }, "attributes": { @@ -331,6 +378,11 @@ "description": "The Amazon Resource Name (ARN) of the image pipeline.", "type": "string", "markdownDescription": "The Amazon Resource Name (ARN) of the image pipeline.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DeploymentId": { + "description": "The deployment ID of the pipeline, used for resource create/update triggers.", + "type": "string", + "markdownDescription": "The deployment ID of the pipeline, used for resource create/update triggers.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-imagebuilder-imagerecipe.json b/server/schema/resources/aws-imagebuilder-imagerecipe.json index 7cdd475c..f3376e04 100644 --- a/server/schema/resources/aws-imagebuilder-imagerecipe.json +++ b/server/schema/resources/aws-imagebuilder-imagerecipe.json @@ -1,227 +1,215 @@ { + "typeName": "AWS::ImageBuilder::ImageRecipe", + "description": "Resource schema for AWS::ImageBuilder::ImageRecipe", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "permissions": [ - "imagebuilder:TagResource", - "imagebuilder:UntagResource" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "handlers": { - "read": { - "permissions": [ - "imagebuilder:GetImageRecipe" - ] + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the image recipe.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the image recipe.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "create": { - "permissions": [ - "iam:GetRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetComponent", - "imagebuilder:GetImage", - "imagebuilder:TagResource", - "imagebuilder:GetImageRecipe", - "imagebuilder:CreateImageRecipe", - "ec2:DescribeImages" - ] + "Name": { + "description": "The name of the image recipe.", + "type": "string", + "markdownDescription": "The name of the image recipe.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, - "update": { - "permissions": [ - "imagebuilder:TagResource", - "imagebuilder:UntagResource" - ] + "Description": { + "description": "The description of the image recipe.", + "type": "string", + "markdownDescription": "The description of the image recipe.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "list": { - "permissions": [ - "imagebuilder:ListImageRecipes" - ] + "Version": { + "description": "The version of the image recipe.", + "type": "string", + "markdownDescription": "The version of the image recipe.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, - "delete": { - "permissions": [ - "imagebuilder:UntagResource", - "imagebuilder:GetImageRecipe", - "imagebuilder:DeleteImageRecipe" - ] + "Components": { + "description": "The components of the image recipe.", + "type": "array", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ComponentConfiguration" + }, + "markdownDescription": "The components of the image recipe.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: Replacement\n" + }, + "BlockDeviceMappings": { + "description": "The block device mappings to apply when creating images from this recipe.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceBlockDeviceMapping" + }, + "markdownDescription": "The block device mappings to apply when creating images from this recipe.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + }, + "ParentImage": { + "description": "The parent image of the image recipe.", + "type": "string", + "markdownDescription": "The parent image of the image recipe.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "WorkingDirectory": { + "description": "The working directory to be used during build and test workflows.", + "type": "string", + "markdownDescription": "The working directory to be used during build and test workflows.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "AdditionalInstanceConfiguration": { + "description": "Specify additional settings and launch scripts for your build instances.", + "$ref": "#/definitions/AdditionalInstanceConfiguration", + "markdownDescription": "Specify additional settings and launch scripts for your build instances.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "AmiTags": { + "description": "The tags to apply to the AMI created by this image recipe.", + "type": "object", + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The tags to apply to the AMI created by this image recipe.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tags": { + "description": "The tags of the image recipe.", + "type": "object", + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The tags of the image recipe.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, - "typeName": "AWS::ImageBuilder::ImageRecipe", - "readOnlyProperties": [ - "/properties/Arn" - ], - "description": "Resource schema for AWS::ImageBuilder::ImageRecipe", - "createOnlyProperties": [ - "/properties/Name", - "/properties/Version", - "/properties/Components", - "/properties/ParentImage", - "/properties/Description", - "/properties/BlockDeviceMappings", - "/properties/WorkingDirectory" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/Arn" - ], "definitions": { "ComponentConfiguration": { "description": "Configuration details of the component.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { + "ComponentArn": { + "description": "The Amazon Resource Name (ARN) of the component.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "Parameters": { "description": "A group of parameter settings that are used to configure the component for a specific recipe.", - "insertionOrder": false, "type": "array", + "insertionOrder": false, "items": { "$ref": "#/definitions/ComponentParameter" }, "markdownDescription": "A group of parameter settings that are used to configure the component for a specific recipe.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "ComponentArn": { - "description": "The Amazon Resource Name (ARN) of the component.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the component.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "markdownDescription": "Configuration details of the component.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ComponentParameter": { - "description": "Contains a key/value pair that sets the named component parameter.", - "additionalProperties": false, + "InstanceBlockDeviceMapping": { + "description": "Defines block device mappings for the instance used to configure your image. ", "type": "object", + "additionalProperties": false, "properties": { - "Value": { - "description": "Sets the value for the named component parameter.", - "insertionOrder": true, - "type": "array", - "items": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "markdownDescription": "Sets the value for the named component parameter.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + "DeviceName": { + "description": "The device to which these mappings apply.", + "type": "string", + "markdownDescription": "The device to which these mappings apply.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Name": { - "description": "The name of the component parameter to set.", + "VirtualName": { + "description": "Use to manage instance ephemeral devices.", "type": "string", - "markdownDescription": "The name of the component parameter to set.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "Use to manage instance ephemeral devices.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "NoDevice": { + "description": "Use to remove a mapping from the parent image.", + "type": "string", + "markdownDescription": "Use to remove a mapping from the parent image.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Ebs": { + "description": "Use to manage Amazon EBS-specific configuration for this mapping.", + "$ref": "#/definitions/EbsInstanceBlockDeviceSpecification", + "markdownDescription": "Use to manage Amazon EBS-specific configuration for this mapping.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, - "required": [ - "Name", - "Value" - ], - "markdownDescription": "Contains a key/value pair that sets the named component parameter.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Defines block device mappings for the instance used to configure your image. \n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "EbsInstanceBlockDeviceSpecification": { "description": "Amazon EBS-specific block device mapping specifications. ", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { - "SnapshotId": { - "description": "The snapshot that defines the device contents.", - "type": "string", - "markdownDescription": "The snapshot that defines the device contents.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "Encrypted": { + "description": "Use to configure device encryption.", + "type": "boolean", + "markdownDescription": "Use to configure device encryption.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, - "VolumeType": { - "description": "Use to override the device's volume type.", - "type": "string", - "enum": [ - "standard", - "io1", - "io2", - "gp2", - "gp3", - "sc1", - "st1" - ], - "markdownDescription": "Use to override the device's volume type.\n\n---\n\nRequired: No \nType: String \nAllowed Values: standard | io1 | io2 | gp2 | gp3 | sc1 | st1 \nUpdate requires: No interruption\n" + "DeleteOnTermination": { + "description": "Use to configure delete on termination of the associated device.", + "type": "boolean", + "markdownDescription": "Use to configure delete on termination of the associated device.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Iops": { + "description": "Use to configure device IOPS.", + "type": "integer", + "markdownDescription": "Use to configure device IOPS.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "KmsKeyId": { "description": "Use to configure the KMS key to use when encrypting the device.", "type": "string", "markdownDescription": "Use to configure the KMS key to use when encrypting the device.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "Encrypted": { - "description": "Use to configure device encryption.", - "type": "boolean", - "markdownDescription": "Use to configure device encryption.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "SnapshotId": { + "description": "The snapshot that defines the device contents.", + "type": "string", + "markdownDescription": "The snapshot that defines the device contents.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Throughput": { "description": "For GP3 volumes only - The throughput in MiB/s that the volume supports.", "type": "integer", "markdownDescription": "For GP3 volumes only - The throughput in MiB/s that the volume supports.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "Iops": { - "description": "Use to configure device IOPS.", - "type": "integer", - "markdownDescription": "Use to configure device IOPS.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, "VolumeSize": { "description": "Use to override the device's volume size.", "type": "integer", "markdownDescription": "Use to override the device's volume size.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "DeleteOnTermination": { - "description": "Use to configure delete on termination of the associated device.", - "type": "boolean", - "markdownDescription": "Use to configure delete on termination of the associated device.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - } - }, - "markdownDescription": "Amazon EBS-specific block device mapping specifications. \n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "InstanceBlockDeviceMapping": { - "description": "Defines block device mappings for the instance used to configure your image. ", - "additionalProperties": false, - "type": "object", - "properties": { - "Ebs": { - "description": "Use to manage Amazon EBS-specific configuration for this mapping.", - "$ref": "#/definitions/EbsInstanceBlockDeviceSpecification", - "markdownDescription": "Use to manage Amazon EBS-specific configuration for this mapping.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - }, - "NoDevice": { - "description": "Use to remove a mapping from the parent image.", - "type": "string", - "markdownDescription": "Use to remove a mapping from the parent image.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "VirtualName": { - "description": "Use to manage instance ephemeral devices.", - "type": "string", - "markdownDescription": "Use to manage instance ephemeral devices.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, - "DeviceName": { - "description": "The device to which these mappings apply.", + "VolumeType": { + "description": "Use to override the device's volume type.", "type": "string", - "markdownDescription": "The device to which these mappings apply.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "gp3", + "sc1", + "st1" + ], + "markdownDescription": "Use to override the device's volume type.\n\n---\n\nRequired: No \nType: String \nAllowed Values: standard | io1 | io2 | gp2 | gp3 | sc1 | st1 \nUpdate requires: No interruption\n" } }, - "markdownDescription": "Defines block device mappings for the instance used to configure your image. \n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "Amazon EBS-specific block device mapping specifications. \n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "AdditionalInstanceConfiguration": { - "description": "Specify additional settings and launch scripts for your build instances.", "additionalProperties": false, + "description": "Specify additional settings and launch scripts for your build instances.", "type": "object", "properties": { - "UserDataOverride": { - "description": "Use this property to provide commands or a command script to run when you launch your build instance.", - "type": "string", - "markdownDescription": "Use this property to provide commands or a command script to run when you launch your build instance.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, "SystemsManagerAgent": { "description": "Contains settings for the SSM agent on your build instance.", "$ref": "#/definitions/SystemsManagerAgent", "markdownDescription": "Contains settings for the SSM agent on your build instance.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + }, + "UserDataOverride": { + "description": "Use this property to provide commands or a command script to run when you launch your build instance.", + "type": "string", + "markdownDescription": "Use this property to provide commands or a command script to run when you launch your build instance.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "markdownDescription": "Specify additional settings and launch scripts for your build instances.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "SystemsManagerAgent": { - "description": "Contains settings for the SSM agent on your build instance.", "additionalProperties": false, + "description": "Contains settings for the SSM agent on your build instance.", "type": "object", "properties": { "UninstallAfterBuild": { @@ -231,79 +219,103 @@ } }, "markdownDescription": "Contains settings for the SSM agent on your build instance.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ComponentParameter": { + "additionalProperties": false, + "description": "Contains a key/value pair that sets the named component parameter.", + "type": "object", + "properties": { + "Name": { + "description": "The name of the component parameter to set.", + "type": "string", + "markdownDescription": "The name of the component parameter to set.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Value": { + "description": "Sets the value for the named component parameter.", + "type": "array", + "insertionOrder": true, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "Sets the value for the named component parameter.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Name", + "Value" + ], + "markdownDescription": "Contains a key/value pair that sets the named component parameter.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, + "additionalProperties": false, "required": [ "Name", "Version", "Components", "ParentImage" ], - "properties": { - "Components": { - "description": "The components of the image recipe.", - "insertionOrder": true, - "type": "array", - "items": { - "$ref": "#/definitions/ComponentConfiguration" - }, - "markdownDescription": "The components of the image recipe.\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: Replacement\n" - }, - "WorkingDirectory": { - "description": "The working directory to be used during build and test workflows.", - "type": "string", - "markdownDescription": "The working directory to be used during build and test workflows.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "ParentImage": { - "description": "The parent image of the image recipe.", - "type": "string", - "markdownDescription": "The parent image of the image recipe.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" - }, - "Description": { - "description": "The description of the image recipe.", - "type": "string", - "markdownDescription": "The description of the image recipe.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Version": { - "description": "The version of the image recipe.", - "type": "string", - "markdownDescription": "The version of the image recipe.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" - }, - "BlockDeviceMappings": { - "description": "The block device mappings to apply when creating images from this recipe.", - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/InstanceBlockDeviceMapping" - }, - "markdownDescription": "The block device mappings to apply when creating images from this recipe.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: Replacement\n" + "primaryIdentifier": [ + "/properties/Arn" + ], + "readOnlyProperties": [ + "/properties/Arn" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/Version", + "/properties/Components", + "/properties/ParentImage", + "/properties/Description", + "/properties/BlockDeviceMappings", + "/properties/WorkingDirectory" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UntagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetComponent", + "imagebuilder:GetImage", + "imagebuilder:TagResource", + "imagebuilder:GetImageRecipe", + "imagebuilder:CreateImageRecipe", + "ec2:DescribeImages" + ] }, - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image recipe.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the image recipe.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "read": { + "permissions": [ + "imagebuilder:GetImageRecipe" + ] }, - "AdditionalInstanceConfiguration": { - "description": "Specify additional settings and launch scripts for your build instances.", - "$ref": "#/definitions/AdditionalInstanceConfiguration", - "markdownDescription": "Specify additional settings and launch scripts for your build instances.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "update": { + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UntagResource" + ] }, - "Tags": { - "patternProperties": { - ".{1,}": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "description": "The tags of the image recipe.", - "additionalProperties": false, - "type": "object", - "markdownDescription": "The tags of the image recipe.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "delete": { + "permissions": [ + "imagebuilder:UntagResource", + "imagebuilder:GetImageRecipe", + "imagebuilder:DeleteImageRecipe" + ] }, - "Name": { - "description": "The name of the image recipe.", - "type": "string", - "markdownDescription": "The name of the image recipe.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "list": { + "permissions": [ + "imagebuilder:ListImageRecipes" + ] } }, "attributes": { diff --git a/server/schema/resources/aws-imagebuilder-workflow.json b/server/schema/resources/aws-imagebuilder-workflow.json index 340f737c..2bcb90fb 100644 --- a/server/schema/resources/aws-imagebuilder-workflow.json +++ b/server/schema/resources/aws-imagebuilder-workflow.json @@ -1,20 +1,129 @@ { - "tagging": { - "permissions": [ - "imagebuilder:TagResource", - "imagebuilder:UntagResource" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, "typeName": "AWS::ImageBuilder::Workflow", - "readOnlyProperties": [ + "description": "Resource schema for AWS::ImageBuilder::Workflow", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the workflow.", + "type": "string", + "markdownDescription": "The Amazon Resource Name (ARN) of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Name": { + "description": "The name of the workflow.", + "type": "string", + "markdownDescription": "The name of the workflow.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Version": { + "description": "The version of the workflow.", + "type": "string", + "markdownDescription": "The version of the workflow.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "Description": { + "description": "The description of the workflow.", + "type": "string", + "markdownDescription": "The description of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "ChangeDescription": { + "description": "The change description of the workflow.", + "type": "string", + "markdownDescription": "The change description of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Type": { + "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", + "type": "string", + "enum": [ + "BUILD", + "TEST", + "DISTRIBUTION" + ], + "markdownDescription": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: BUILD | TEST | DISTRIBUTION \nUpdate requires: Replacement\n" + }, + "Data": { + "description": "The data of the workflow.", + "type": "string", + "minLength": 1, + "maxLength": 16000, + "markdownDescription": "The data of the workflow.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 16000 \nUpdate requires: Replacement\n" + }, + "Uri": { + "description": "The uri of the workflow.", + "type": "string", + "markdownDescription": "The uri of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "KmsKeyId": { + "description": "The KMS key identifier used to encrypt the workflow.", + "type": "string", + "markdownDescription": "The KMS key identifier used to encrypt the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + }, + "Tags": { + "description": "The tags associated with the workflow.", + "type": "object", + "additionalProperties": false, + "patternProperties": { + ".{1,}": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The tags associated with the workflow.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LatestVersion": { + "description": "The latest version references of the workflow.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the workflow.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "definitions": { + "LatestVersion": { + "description": "The latest version references of the workflow.", + "type": "object", + "additionalProperties": false, + "properties": { + "Arn": { + "description": "The latest version ARN of the created workflow.", + "type": "string", + "markdownDescription": "The latest version ARN of the created workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Major": { + "description": "The latest version ARN of the created workflow, with the same major version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created workflow, with the same major version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Minor": { + "description": "The latest version ARN of the created workflow, with the same minor version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created workflow, with the same minor version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Patch": { + "description": "The latest version ARN of the created workflow, with the same patch version.", + "type": "string", + "markdownDescription": "The latest version ARN of the created workflow, with the same patch version.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "The latest version references of the workflow.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Type", + "Version" + ], + "primaryIdentifier": [ "/properties/Arn" ], - "description": "Resource schema for AWS::ImageBuilder::Workflow", + "readOnlyProperties": [ + "/properties/Arn", + "/properties/LatestVersion", + "/properties/LatestVersion/Arn", + "/properties/LatestVersion/Major", + "/properties/LatestVersion/Minor", + "/properties/LatestVersion/Patch" + ], + "writeOnlyProperties": [ + "/properties/Data", + "/properties/Uri" + ], "createOnlyProperties": [ "/properties/Name", "/properties/Version", @@ -25,22 +134,18 @@ "/properties/Type", "/properties/KmsKeyId" ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "required": [ - "Name", - "Type", - "Version" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UntagResource" + ] + }, "handlers": { - "read": { - "permissions": [ - "imagebuilder:GetWorkflow", - "kms:Decrypt" - ] - }, "create": { "permissions": [ "iam:GetRole", @@ -58,12 +163,25 @@ "imagebuilder:CreateWorkflow" ] }, + "read": { + "permissions": [ + "imagebuilder:GetWorkflow", + "kms:Decrypt" + ] + }, "update": { "permissions": [ "imagebuilder:TagResource", "imagebuilder:UntagResource" ] }, + "delete": { + "permissions": [ + "imagebuilder:GetWorkflow", + "imagebuilder:UntagResource", + "imagebuilder:DeleteWorkflow" + ] + }, "list": { "permissions": [ "imagebuilder:ListWorkflows", @@ -76,85 +194,6 @@ } } } - }, - "delete": { - "permissions": [ - "imagebuilder:GetWorkflow", - "imagebuilder:UntagResource", - "imagebuilder:DeleteWorkflow" - ] - } - }, - "writeOnlyProperties": [ - "/properties/Data", - "/properties/Uri" - ], - "additionalProperties": false, - "definitions": {}, - "properties": { - "Type": { - "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", - "type": "string", - "enum": [ - "BUILD", - "TEST", - "DISTRIBUTION" - ], - "markdownDescription": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: BUILD | TEST | DISTRIBUTION \nUpdate requires: Replacement\n" - }, - "Description": { - "description": "The description of the workflow.", - "type": "string", - "markdownDescription": "The description of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "KmsKeyId": { - "description": "The KMS key identifier used to encrypt the workflow.", - "type": "string", - "markdownDescription": "The KMS key identifier used to encrypt the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Version": { - "description": "The version of the workflow.", - "type": "string", - "markdownDescription": "The version of the workflow.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" - }, - "ChangeDescription": { - "description": "The change description of the workflow.", - "type": "string", - "markdownDescription": "The change description of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Data": { - "minLength": 1, - "description": "The data of the workflow.", - "type": "string", - "maxLength": 16000, - "markdownDescription": "The data of the workflow.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 16000 \nUpdate requires: Replacement\n" - }, - "Arn": { - "description": "The Amazon Resource Name (ARN) of the workflow.", - "type": "string", - "markdownDescription": "The Amazon Resource Name (ARN) of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Uri": { - "description": "The uri of the workflow.", - "type": "string", - "markdownDescription": "The uri of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - }, - "Tags": { - "patternProperties": { - ".{1,}": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - } - }, - "description": "The tags associated with the workflow.", - "additionalProperties": false, - "type": "object", - "markdownDescription": "The tags associated with the workflow.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" - }, - "Name": { - "description": "The name of the workflow.", - "type": "string", - "markdownDescription": "The name of the workflow.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" } }, "attributes": { @@ -162,6 +201,11 @@ "description": "The Amazon Resource Name (ARN) of the workflow.", "type": "string", "markdownDescription": "The Amazon Resource Name (ARN) of the workflow.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "LatestVersion": { + "description": "The latest version references of the workflow.", + "$ref": "#/definitions/LatestVersion", + "markdownDescription": "The latest version references of the workflow.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-lambda-version.json b/server/schema/resources/aws-lambda-version.json index c2d98e68..47826b1f 100644 --- a/server/schema/resources/aws-lambda-version.json +++ b/server/schema/resources/aws-lambda-version.json @@ -27,6 +27,11 @@ ], "timeoutInMinutes": 180 }, + "update": { + "permissions": [ + "lambda:GetFunctionConfiguration" + ] + }, "list": { "permissions": [ "lambda:ListVersionsByFunction" diff --git a/server/schema/resources/aws-lightsail-disksnapshot.json b/server/schema/resources/aws-lightsail-disksnapshot.json new file mode 100644 index 00000000..ef664b79 --- /dev/null +++ b/server/schema/resources/aws-lightsail-disksnapshot.json @@ -0,0 +1,276 @@ +{ + "typeName": "AWS::Lightsail::DiskSnapshot", + "description": "Resource Type definition for AWS::Lightsail::DiskSnapshot", + "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, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "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, + "markdownDescription": "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 -.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "DiskSnapshotName": { + "type": "string", + "description": "The name of the disk snapshot (e.g., my-disk-snapshot).", + "minLength": 2, + "maxLength": 255, + "markdownDescription": "The name of the disk snapshot (e.g., my-disk-snapshot).\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 2 \nMaximum Length: 255 \nPattern: ^\\w[\\w\\-]*\\w$ \nUpdate requires: Replacement\n" + }, + "DiskSnapshotArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the disk snapshot.", + "markdownDescription": "The Amazon Resource Name (ARN) of the disk snapshot.\n\n---\n\nRequired: No \nType: String \nPattern: .*\\S.* \nUpdate requires: No interruption\nRead only property: Yes" + }, + "DiskName": { + "type": "string", + "description": "The name of the source disk from which the snapshot was created.", + "minLength": 2, + "maxLength": 255, + "markdownDescription": "The name of the source disk from which the snapshot was created.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 2 \nMaximum Length: 255 \nPattern: ^\\w[\\w\\-]*\\w$ \nUpdate requires: Replacement\n" + }, + "Tags": { + "type": "array", + "description": "An array of key-value pairs to apply to this resource.", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Location": { + "type": "object", + "description": "The AWS Region and Availability Zone where the disk snapshot was created.", + "properties": { + "AvailabilityZone": { + "type": "string", + "description": "The Availability Zone where the disk snapshot was created.", + "markdownDescription": "The Availability Zone where the disk snapshot was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "RegionName": { + "type": "string", + "description": "The AWS Region where the disk snapshot was created.", + "markdownDescription": "The AWS Region where the disk snapshot was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The AWS Region and Availability Zone where the disk snapshot was created.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ResourceType": { + "type": "string", + "description": "The Lightsail resource type (DiskSnapshot).", + "enum": [ + "DiskSnapshot" + ], + "markdownDescription": "The Lightsail resource type (DiskSnapshot).\n\n---\n\nRequired: No \nType: String \nAllowed Values: DiskSnapshot \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "type": "string", + "description": "The status of the disk snapshot operation.", + "enum": [ + "pending", + "completed", + "error", + "unknown" + ], + "markdownDescription": "The status of the disk snapshot operation.\n\n---\n\nRequired: No \nType: String \nAllowed Values: pending | completed | error | unknown \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Progress": { + "type": "string", + "description": "The progress of the disk snapshot creation operation.", + "markdownDescription": "The progress of the disk snapshot creation operation.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FromDiskName": { + "type": "string", + "description": "The name of the source disk from which the disk snapshot was created.", + "markdownDescription": "The name of the source disk from which the disk snapshot was created.\n\n---\n\nRequired: No \nType: String \nPattern: ^\\w[\\w\\-]*\\w$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "SizeInGb": { + "type": "integer", + "description": "The size of the disk snapshot in GB.", + "minimum": 1, + "markdownDescription": "The size of the disk snapshot in GB.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IsFromAutoSnapshot": { + "type": "boolean", + "description": "A Boolean value indicating whether the snapshot was created from an automatic snapshot.", + "markdownDescription": "A Boolean value indicating whether the snapshot was created from an automatic snapshot.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "description": "The timestamp when the disk snapshot was created.", + "format": "date-time", + "markdownDescription": "The timestamp when the disk snapshot was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "SupportCode": { + "type": "string", + "description": "The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail.", + "markdownDescription": "The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + }, + "additionalProperties": false, + "required": [ + "DiskSnapshotName", + "DiskName" + ], + "readOnlyProperties": [ + "/properties/DiskSnapshotArn", + "/properties/Location", + "/properties/ResourceType", + "/properties/State", + "/properties/Progress", + "/properties/FromDiskName", + "/properties/SizeInGb", + "/properties/IsFromAutoSnapshot", + "/properties/CreatedAt", + "/properties/SupportCode" + ], + "createOnlyProperties": [ + "/properties/DiskSnapshotName", + "/properties/DiskName" + ], + "primaryIdentifier": [ + "/properties/DiskSnapshotName" + ], + "handlers": { + "create": { + "permissions": [ + "lightsail:CreateDiskSnapshot", + "lightsail:GetDiskSnapshot", + "lightsail:TagResource" + ] + }, + "read": { + "permissions": [ + "lightsail:GetDiskSnapshot" + ] + }, + "update": { + "permissions": [ + "lightsail:GetDiskSnapshot", + "lightsail:TagResource", + "lightsail:UntagResource" + ] + }, + "delete": { + "permissions": [ + "lightsail:DeleteDiskSnapshot", + "lightsail:GetDiskSnapshot" + ] + }, + "list": { + "permissions": [ + "lightsail:GetDiskSnapshots" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "lightsail:TagResource", + "lightsail:UntagResource" + ] + }, + "attributes": { + "DiskSnapshotArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the disk snapshot.", + "markdownDescription": "The Amazon Resource Name (ARN) of the disk snapshot.\n\n---\n\nRequired: No \nType: String \nPattern: .*\\S.* \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Location": { + "type": "object", + "description": "The AWS Region and Availability Zone where the disk snapshot was created.", + "properties": { + "AvailabilityZone": { + "type": "string", + "description": "The Availability Zone where the disk snapshot was created.", + "markdownDescription": "The Availability Zone where the disk snapshot was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "RegionName": { + "type": "string", + "description": "The AWS Region where the disk snapshot was created.", + "markdownDescription": "The AWS Region where the disk snapshot was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The AWS Region and Availability Zone where the disk snapshot was created.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ResourceType": { + "type": "string", + "description": "The Lightsail resource type (DiskSnapshot).", + "enum": [ + "DiskSnapshot" + ], + "markdownDescription": "The Lightsail resource type (DiskSnapshot).\n\n---\n\nRequired: No \nType: String \nAllowed Values: DiskSnapshot \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "type": "string", + "description": "The status of the disk snapshot operation.", + "enum": [ + "pending", + "completed", + "error", + "unknown" + ], + "markdownDescription": "The status of the disk snapshot operation.\n\n---\n\nRequired: No \nType: String \nAllowed Values: pending | completed | error | unknown \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Progress": { + "type": "string", + "description": "The progress of the disk snapshot creation operation.", + "markdownDescription": "The progress of the disk snapshot creation operation.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "FromDiskName": { + "type": "string", + "description": "The name of the source disk from which the disk snapshot was created.", + "markdownDescription": "The name of the source disk from which the disk snapshot was created.\n\n---\n\nRequired: No \nType: String \nPattern: ^\\w[\\w\\-]*\\w$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "SizeInGb": { + "type": "integer", + "description": "The size of the disk snapshot in GB.", + "minimum": 1, + "markdownDescription": "The size of the disk snapshot in GB.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\nRead only property: Yes" + }, + "IsFromAutoSnapshot": { + "type": "boolean", + "description": "A Boolean value indicating whether the snapshot was created from an automatic snapshot.", + "markdownDescription": "A Boolean value indicating whether the snapshot was created from an automatic snapshot.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\nRead only property: Yes" + }, + "CreatedAt": { + "type": "string", + "description": "The timestamp when the disk snapshot was created.", + "format": "date-time", + "markdownDescription": "The timestamp when the disk snapshot was created.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + }, + "SupportCode": { + "type": "string", + "description": "The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail.", + "markdownDescription": "The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-location-geofencecollection.json b/server/schema/resources/aws-location-geofencecollection.json index 3fb26ad2..9b1b659c 100644 --- a/server/schema/resources/aws-location-geofencecollection.json +++ b/server/schema/resources/aws-location-geofencecollection.json @@ -139,6 +139,17 @@ "kms:CreateGrant" ] }, + "delete": { + "permissions": [ + "geo:DeleteGeofenceCollection", + "geo:DescribeGeofenceCollection" + ] + }, + "list": { + "permissions": [ + "geo:ListGeofenceCollections" + ] + }, "read": { "permissions": [ "geo:DescribeGeofenceCollection", @@ -155,17 +166,6 @@ "kms:CreateGrant", "geo:UpdateGeofenceCollection" ] - }, - "delete": { - "permissions": [ - "geo:DeleteGeofenceCollection", - "geo:DescribeGeofenceCollection" - ] - }, - "list": { - "permissions": [ - "geo:ListGeofenceCollections" - ] } }, "tagging": { diff --git a/server/schema/resources/aws-location-map.json b/server/schema/resources/aws-location-map.json index d036e9ba..fac406ed 100644 --- a/server/schema/resources/aws-location-map.json +++ b/server/schema/resources/aws-location-map.json @@ -162,29 +162,29 @@ "geo:UntagResource" ] }, - "read": { + "delete": { "permissions": [ + "geo:DeleteMap", "geo:DescribeMap" ] }, - "update": { + "list": { "permissions": [ - "geo:CreateMap", - "geo:DescribeMap", - "geo:TagResource", - "geo:UntagResource", - "geo:UpdateMap" + "geo:ListMaps" ] }, - "delete": { + "read": { "permissions": [ - "geo:DeleteMap", "geo:DescribeMap" ] }, - "list": { + "update": { "permissions": [ - "geo:ListMaps" + "geo:CreateMap", + "geo:DescribeMap", + "geo:TagResource", + "geo:UntagResource", + "geo:UpdateMap" ] } }, diff --git a/server/schema/resources/aws-location-placeindex.json b/server/schema/resources/aws-location-placeindex.json index 9882b132..c7b39e90 100644 --- a/server/schema/resources/aws-location-placeindex.json +++ b/server/schema/resources/aws-location-placeindex.json @@ -151,29 +151,29 @@ "geo:UntagResource" ] }, - "read": { + "delete": { "permissions": [ + "geo:DeletePlaceIndex", "geo:DescribePlaceIndex" ] }, - "update": { + "list": { "permissions": [ - "geo:CreatePlaceIndex", - "geo:DescribePlaceIndex", - "geo:TagResource", - "geo:UntagResource", - "geo:UpdatePlaceIndex" + "geo:ListPlaceIndexes" ] }, - "delete": { + "read": { "permissions": [ - "geo:DeletePlaceIndex", "geo:DescribePlaceIndex" ] }, - "list": { + "update": { "permissions": [ - "geo:ListPlaceIndexes" + "geo:CreatePlaceIndex", + "geo:DescribePlaceIndex", + "geo:TagResource", + "geo:UntagResource", + "geo:UpdatePlaceIndex" ] } }, diff --git a/server/schema/resources/aws-location-routecalculator.json b/server/schema/resources/aws-location-routecalculator.json index bbd4e475..765ca0da 100644 --- a/server/schema/resources/aws-location-routecalculator.json +++ b/server/schema/resources/aws-location-routecalculator.json @@ -130,29 +130,29 @@ "geo:UntagResource" ] }, - "read": { + "delete": { "permissions": [ + "geo:DeleteRouteCalculator", "geo:DescribeRouteCalculator" ] }, - "update": { + "list": { "permissions": [ - "geo:CreateRouteCalculator", - "geo:DescribeRouteCalculator", - "geo:TagResource", - "geo:UntagResource", - "geo:UpdateRouteCalculator" + "geo:ListRouteCalculators" ] }, - "delete": { + "read": { "permissions": [ - "geo:DeleteRouteCalculator", "geo:DescribeRouteCalculator" ] }, - "list": { + "update": { "permissions": [ - "geo:ListRouteCalculators" + "geo:CreateRouteCalculator", + "geo:DescribeRouteCalculator", + "geo:TagResource", + "geo:UntagResource", + "geo:UpdateRouteCalculator" ] } }, diff --git a/server/schema/resources/aws-location-tracker.json b/server/schema/resources/aws-location-tracker.json index a1da22e4..d70c6efa 100644 --- a/server/schema/resources/aws-location-tracker.json +++ b/server/schema/resources/aws-location-tracker.json @@ -159,6 +159,17 @@ "kms:CreateGrant" ] }, + "delete": { + "permissions": [ + "geo:DeleteTracker", + "geo:DescribeTracker" + ] + }, + "list": { + "permissions": [ + "geo:ListTrackers" + ] + }, "read": { "permissions": [ "geo:DescribeTracker", @@ -175,17 +186,6 @@ "kms:CreateGrant", "geo:UpdateTracker" ] - }, - "delete": { - "permissions": [ - "geo:DeleteTracker", - "geo:DescribeTracker" - ] - }, - "list": { - "permissions": [ - "geo:ListTrackers" - ] } }, "tagging": { diff --git a/server/schema/resources/aws-logs-deliverydestination.json b/server/schema/resources/aws-logs-deliverydestination.json index 4f764c2f..888d6b0a 100644 --- a/server/schema/resources/aws-logs-deliverydestination.json +++ b/server/schema/resources/aws-logs-deliverydestination.json @@ -85,11 +85,11 @@ "markdownDescription": "The tags that have been assigned to this delivery destination.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "DeliveryDestinationType": { - "description": "Displays whether this delivery destination is CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.", + "description": "Displays whether this delivery destination is CloudWatch Logs, Amazon S3, Kinesis Data Firehose, or XRay.", "type": "string", "minLength": 1, "maxLength": 12, - "markdownDescription": "Displays whether this delivery destination is CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 12 \nPattern: ^[0-9A-Za-z]+$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "Displays whether this delivery destination is CloudWatch Logs, Amazon S3, Kinesis Data Firehose, or XRay.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 12 \nPattern: ^[0-9A-Za-z]+$ \nUpdate requires: Replacement\n" }, "DeliveryDestinationPolicy": { "description": "IAM policy that grants permissions to CloudWatch Logs to deliver logs cross-account to a specified destination in this account.\n\nThe policy must be in JSON string format.\n\nLength Constraints: Maximum length of 51200", @@ -112,11 +112,11 @@ "createOnlyProperties": [ "/properties/Name", "/properties/OutputFormat", - "/properties/DestinationResourceArn" + "/properties/DestinationResourceArn", + "/properties/DeliveryDestinationType" ], "readOnlyProperties": [ - "/properties/Arn", - "/properties/DeliveryDestinationType" + "/properties/Arn" ], "primaryIdentifier": [ "/properties/Name" @@ -182,13 +182,6 @@ "description": "The Amazon Resource Name (ARN) that uniquely identifies this delivery destination.", "$ref": "#/definitions/Arn", "markdownDescription": "The Amazon Resource Name (ARN) that uniquely identifies this delivery destination.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\nRead only property: Yes" - }, - "DeliveryDestinationType": { - "description": "Displays whether this delivery destination is CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.", - "type": "string", - "minLength": 1, - "maxLength": 12, - "markdownDescription": "Displays whether this delivery destination is CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 12 \nPattern: ^[0-9A-Za-z]+$ \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-logs-metricfilter.json b/server/schema/resources/aws-logs-metricfilter.json index d63116af..20ae64dc 100644 --- a/server/schema/resources/aws-logs-metricfilter.json +++ b/server/schema/resources/aws-logs-metricfilter.json @@ -171,6 +171,13 @@ }, "replacementStrategy": "delete_then_create", "properties": { + "FieldSelectionCriteria": { + "minLength": 0, + "description": "", + "type": "string", + "maxLength": 2000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2000 \nUpdate requires: No interruption\n" + }, "MetricTransformations": { "minItems": 1, "maxItems": 1, @@ -188,6 +195,16 @@ "maxLength": 1024, "markdownDescription": "A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html).\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 1024 \nUpdate requires: No interruption\n" }, + "EmitSystemFieldDimensions": { + "description": "", + "insertionOrder": false, + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "LogGroupName": { "minLength": 1, "description": "The name of an existing log group that you want to associate with this metric filter.", diff --git a/server/schema/resources/aws-logs-subscriptionfilter.json b/server/schema/resources/aws-logs-subscriptionfilter.json index 903d7485..ddda2c05 100644 --- a/server/schema/resources/aws-logs-subscriptionfilter.json +++ b/server/schema/resources/aws-logs-subscriptionfilter.json @@ -49,6 +49,23 @@ "description": "This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html).\n If this value is ``true``, the subscription filter is applied on the transformed version of the log events instead of the original ingested log events.", "type": "boolean", "markdownDescription": "This parameter is valid only for log groups that have an active log transformer. For more information about log transformers, see [PutTransformer](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html).\n If this value is ``true``, the subscription filter is applied on the transformed version of the log events instead of the original ingested log events.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "FieldSelectionCriteria": { + "description": "", + "type": "string", + "minLength": 0, + "maxLength": 2000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMaximum Length: 2000 \nUpdate requires: No interruption\n" + }, + "EmitSystemFields": { + "description": "", + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, "handlers": { diff --git a/server/schema/resources/aws-medialive-channel.json b/server/schema/resources/aws-medialive-channel.json index 2312bafd..b7a52ca6 100644 --- a/server/schema/resources/aws-medialive-channel.json +++ b/server/schema/resources/aws-medialive-channel.json @@ -306,6 +306,10 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "MinBitrate": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, "MinIInterval": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" @@ -3287,6 +3291,42 @@ "$ref": "#/definitions/CaptionLanguageMapping" }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Scte35Type": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "SegmentLengthUnits": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "TimedMetadataId3Frame": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "TimedMetadataId3Period": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "TimedMetadataPassthrough": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "NielsenId3Behavior": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "KlvBehavior": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Id3Behavior": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "SegmentLength": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -3395,6 +3435,10 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "MinBitrate": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, "MinIInterval": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" @@ -3493,6 +3537,10 @@ "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, + "GopBReference": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, "Level": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" @@ -3504,6 +3552,14 @@ "TreeblockSize": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "SubgopLength": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "GopNumBFrames": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" @@ -4001,6 +4057,10 @@ "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, + "MinBitrate": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, "MinIInterval": { "type": "integer", "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" diff --git a/server/schema/resources/aws-medialive-cluster.json b/server/schema/resources/aws-medialive-cluster.json index a531b666..39082d84 100644 --- a/server/schema/resources/aws-medialive-cluster.json +++ b/server/schema/resources/aws-medialive-cluster.json @@ -185,6 +185,7 @@ "ecs:RegisterTaskDefinition", "ecs:TagResource", "ecs:CreateService", + "iam:CreateServiceLinkedRole", "iam:PassRole", "medialive:ListTagsForResource" ] diff --git a/server/schema/resources/aws-mediapackagev2-originendpoint.json b/server/schema/resources/aws-mediapackagev2-originendpoint.json index 152b8e5c..0264b41c 100644 --- a/server/schema/resources/aws-mediapackagev2-originendpoint.json +++ b/server/schema/resources/aws-mediapackagev2-originendpoint.json @@ -13,9 +13,10 @@ "AdMarkerHls": { "type": "string", "enum": [ - "DATERANGE" + "DATERANGE", + "SCTE35_ENHANCED" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: DATERANGE \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: DATERANGE | SCTE35_ENHANCED \nUpdate requires: No interruption\n" }, "CmafEncryptionMethod": { "type": "string", @@ -29,9 +30,10 @@ "type": "string", "enum": [ "TS", - "CMAF" + "CMAF", + "ISM" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: TS | CMAF \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: TS | CMAF | ISM \nUpdate requires: No interruption\n" }, "DashBaseUrl": { "type": "object", @@ -367,6 +369,9 @@ }, "CmafEncryptionMethod": { "$ref": "#/definitions/CmafEncryptionMethod" + }, + "IsmEncryptionMethod": { + "$ref": "#/definitions/IsmEncryptionMethod" } }, "additionalProperties": false, @@ -641,6 +646,50 @@ "additionalProperties": false, "markdownDescription": "

Retrieve the low-latency HTTP live streaming (HLS) manifest configuration.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "MssManifestConfiguration": { + "type": "object", + "description": "

Configuration details for a Microsoft Smooth Streaming (MSS) manifest associated with an origin endpoint. This includes all the settings and properties that define how the MSS content is packaged and delivered.

", + "properties": { + "ManifestName": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "description": "

The name of the MSS manifest. This name is appended to the origin endpoint URL to create the unique path for accessing this specific MSS manifest.

", + "markdownDescription": "

The name of the MSS manifest. This name is appended to the origin endpoint URL to create the unique path for accessing this specific MSS manifest.

\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\n" + }, + "FilterConfiguration": { + "$ref": "#/definitions/FilterConfiguration" + }, + "ManifestWindowSeconds": { + "type": "integer", + "description": "

The duration (in seconds) of the manifest window. This represents the total amount of content available in the manifest at any given time.

", + "markdownDescription": "

The duration (in seconds) of the manifest window. This represents the total amount of content available in the manifest at any given time.

\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "ManifestLayout": { + "$ref": "#/definitions/MssManifestLayout" + } + }, + "required": [ + "ManifestName" + ], + "additionalProperties": false, + "markdownDescription": "

Configuration details for a Microsoft Smooth Streaming (MSS) manifest associated with an origin endpoint. This includes all the settings and properties that define how the MSS content is packaged and delivered.

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "IsmEncryptionMethod": { + "type": "string", + "enum": [ + "CENC" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: CENC \nUpdate requires: No interruption\n" + }, + "MssManifestLayout": { + "type": "string", + "enum": [ + "FULL", + "COMPACT" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: FULL | COMPACT \nUpdate requires: No interruption\n" + }, "PresetSpeke20Audio": { "type": "string", "enum": [ @@ -927,6 +976,14 @@ "format": "date-time", "markdownDescription": "

The date and time the origin endpoint was modified.

\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, + "MssManifests": { + "type": "array", + "items": { + "$ref": "#/definitions/MssManifestConfiguration" + }, + "description": "

The Microsoft Smooth Streaming (MSS) manifest configurations associated with this origin endpoint.

", + "markdownDescription": "

The Microsoft Smooth Streaming (MSS) manifest configurations associated with this origin endpoint.

\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "OriginEndpointName": { "type": "string", "maxLength": 256, @@ -951,6 +1008,14 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, + "MssManifestUrls": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, "HlsManifestUrls": { "type": "array", "items": { @@ -986,6 +1051,7 @@ "/properties/Arn", "/properties/CreatedAt", "/properties/DashManifestUrls", + "/properties/MssManifestUrls", "/properties/HlsManifestUrls", "/properties/LowLatencyHlsManifestUrls", "/properties/ModifiedAt", @@ -1095,6 +1161,14 @@ }, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, + "MssManifestUrls": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, "HlsManifestUrls": { "type": "array", "items": { diff --git a/server/schema/resources/aws-mediatailor-playbackconfiguration.json b/server/schema/resources/aws-mediatailor-playbackconfiguration.json index abbf4e49..02dc2497 100644 --- a/server/schema/resources/aws-mediatailor-playbackconfiguration.json +++ b/server/schema/resources/aws-mediatailor-playbackconfiguration.json @@ -406,7 +406,14 @@ }, "tagging": { "taggable": true, - "cloudFormationSystemTags": false + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "mediatailor:TagResource", + "mediatailor:UntagResource" + ] }, "additionalProperties": false, "required": [ @@ -434,7 +441,8 @@ "mediatailor:ConfigureLogsForPlaybackConfiguration", "iam:CreateServiceLinkedRole", "mediatailor:UntagResource", - "mediatailor:TagResource" + "mediatailor:TagResource", + "mediatailor:GetPlaybackConfiguration" ] }, "read": { @@ -448,12 +456,14 @@ "mediatailor:ConfigureLogsForPlaybackConfiguration", "iam:CreateServiceLinkedRole", "mediatailor:UntagResource", - "mediatailor:TagResource" + "mediatailor:TagResource", + "mediatailor:GetPlaybackConfiguration" ] }, "delete": { "permissions": [ - "mediatailor:DeletePlaybackConfiguration" + "mediatailor:DeletePlaybackConfiguration", + "mediatailor:GetPlaybackConfiguration" ] }, "list": { diff --git a/server/schema/resources/aws-neptune-dbinstance.json b/server/schema/resources/aws-neptune-dbinstance.json index 4be24390..47b49a1b 100644 --- a/server/schema/resources/aws-neptune-dbinstance.json +++ b/server/schema/resources/aws-neptune-dbinstance.json @@ -37,6 +37,11 @@ "description": "Indicates that minor version patches are applied automatically.\n\nWhen updating this property, some interruptions may occur.", "markdownDescription": "Indicates that minor version patches are applied automatically.\n\nWhen updating this property, some interruptions may occur.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Some interruptions\n" }, + "PubliclyAccessible": { + "type": "boolean", + "description": "Indicates that public accessibility is enabled. This should be enabled in combination with IAM Auth enabled on the DBCluster", + "markdownDescription": "Indicates that public accessibility is enabled. This should be enabled in combination with IAM Auth enabled on the DBCluster\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, "AvailabilityZone": { "type": "string", "description": "Specifies the name of the Availability Zone the DB instance is located in.", diff --git a/server/schema/resources/aws-neptune-eventsubscription.json b/server/schema/resources/aws-neptune-eventsubscription.json index 78849b5f..a1c590e9 100644 --- a/server/schema/resources/aws-neptune-eventsubscription.json +++ b/server/schema/resources/aws-neptune-eventsubscription.json @@ -1,56 +1,147 @@ { "typeName": "AWS::Neptune::EventSubscription", "description": "Resource Type definition for AWS::Neptune::EventSubscription", - "additionalProperties": false, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Value": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "Key", + "Value" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, "properties": { + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, "Enabled": { + "description": "A Boolean value; set to true to activate the subscription, set to false to create the subscription but not active it.", "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + "default": true, + "markdownDescription": "A Boolean value; set to true to activate the subscription, set to false to create the subscription but not active it.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" }, "EventCategories": { + "description": "A list of event categories for a SourceType that you want to subscribe to. You can see a list of the categories for a given SourceType in the Events topic in the Amazon Neptune User Guide or by using the DescribeEventCategories action.", "type": "array", - "uniqueItems": false, + "uniqueItems": true, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "A list of event categories for a SourceType that you want to subscribe to. You can see a list of the categories for a given SourceType in the Events topic in the Amazon Neptune User Guide or by using the DescribeEventCategories action.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "SnsTopicArn": { + "description": "The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "markdownDescription": "The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + }, + "SubscriptionName": { + "description": "The name of the subscription.", + "type": "string", + "maxLength": 255, + "markdownDescription": "The name of the subscription.\n\n---\n\nRequired: No \nType: String \nMaximum Length: 255 \nUpdate requires: Replacement\n" }, "SourceIds": { + "description": "The list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens.", "type": "array", - "uniqueItems": false, + "uniqueItems": true, + "insertionOrder": false, "items": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "SourceType": { + "description": "The type of source that will be generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned.", "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The type of source that will be generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, + "additionalProperties": false, + "propertyTransform": { + "/properties/SubscriptionName": "$lowercase(SubscriptionName)" + }, + "required": [ + "SnsTopicArn" + ], "createOnlyProperties": [ - "/properties/SnsTopicArn" + "/properties/SnsTopicArn", + "/properties/SubscriptionName" ], "primaryIdentifier": [ - "/properties/Id" - ], - "readOnlyProperties": [ - "/properties/Id" + "/properties/SubscriptionName" ], - "attributes": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "rds:AddTagsToResource", + "rds:ListTagsForResource", + "rds:RemoveTagsFromResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "rds:CreateEventSubscription", + "rds:ListTagsForResource", + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource" + ] + }, + "read": { + "permissions": [ + "rds:DescribeEventSubscriptions", + "rds:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "rds:ModifyEventSubscription", + "rds:AddSourceIdentifierToSubscription", + "rds:RemoveSourceIdentifierFromSubscription", + "rds:DescribeEventSubscriptions", + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource" + ] + }, + "delete": { + "permissions": [ + "rds:DeleteEventSubscription", + "rds:RemoveTagsFromResource" + ] + }, + "list": { + "permissions": [ + "rds:DescribeEventSubscriptions", + "rds:ListTagsForResource" + ] } - } + }, + "attributes": {} } \ No newline at end of file diff --git a/server/schema/resources/aws-observabilityadmin-organizationcentralizationrule.json b/server/schema/resources/aws-observabilityadmin-organizationcentralizationrule.json new file mode 100644 index 00000000..67485e1d --- /dev/null +++ b/server/schema/resources/aws-observabilityadmin-organizationcentralizationrule.json @@ -0,0 +1,303 @@ +{ + "typeName": "AWS::ObservabilityAdmin::OrganizationCentralizationRule", + "description": "Resource schema for AWS:ObservabilityAdmin:OrganizationCentralizationRule", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.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, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "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, + "markdownDescription": "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 -.\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false, + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ResourceArn": { + "type": "string", + "minLength": 1, + "maxLength": 1011, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws([a-z0-9\\-]+)?:([a-zA-Z0-9\\-]+):([a-z0-9\\-]+)?:([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\n" + }, + "AccountIdentifier": { + "type": "string", + "minLength": 12, + "maxLength": 12, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 12 \nMaximum Length: 12 \nPattern: ^[0-9]{12}$ \nUpdate requires: No interruption\n" + }, + "Region": { + "type": "string", + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nUpdate requires: No interruption\n" + }, + "Regions": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Region" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CentralizationRule": { + "type": "object", + "properties": { + "Source": { + "$ref": "#/definitions/CentralizationRuleSource" + }, + "Destination": { + "$ref": "#/definitions/CentralizationRuleDestination" + } + }, + "required": [ + "Source", + "Destination" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CentralizationRuleSource": { + "type": "object", + "properties": { + "Regions": { + "$ref": "#/definitions/Regions" + }, + "Scope": { + "type": "string", + "minLength": 1, + "maxLength": 2000, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2000 \nUpdate requires: No interruption\n" + }, + "SourceLogsConfiguration": { + "$ref": "#/definitions/SourceLogsConfiguration" + } + }, + "required": [ + "Regions" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SourceLogsConfiguration": { + "type": "object", + "properties": { + "LogGroupSelectionCriteria": { + "type": "string", + "minLength": 1, + "maxLength": 2000, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2000 \nUpdate requires: No interruption\n" + }, + "EncryptedLogGroupStrategy": { + "type": "string", + "enum": [ + "ALLOW", + "SKIP" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ALLOW | SKIP \nUpdate requires: No interruption\n" + } + }, + "required": [ + "LogGroupSelectionCriteria", + "EncryptedLogGroupStrategy" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "CentralizationRuleDestination": { + "type": "object", + "properties": { + "Region": { + "$ref": "#/definitions/Region" + }, + "Account": { + "$ref": "#/definitions/AccountIdentifier" + }, + "DestinationLogsConfiguration": { + "$ref": "#/definitions/DestinationLogsConfiguration" + } + }, + "required": [ + "Region" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "DestinationLogsConfiguration": { + "type": "object", + "properties": { + "LogsEncryptionConfiguration": { + "$ref": "#/definitions/LogsEncryptionConfiguration" + }, + "BackupConfiguration": { + "$ref": "#/definitions/LogsBackupConfiguration" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LogsEncryptionConfiguration": { + "type": "object", + "properties": { + "EncryptionStrategy": { + "type": "string", + "enum": [ + "CUSTOMER_MANAGED", + "AWS_OWNED" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: CUSTOMER_MANAGED | AWS_OWNED \nUpdate requires: No interruption\n" + }, + "KmsKeyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "EncryptionConflictResolutionStrategy": { + "type": "string", + "enum": [ + "ALLOW", + "SKIP" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ALLOW | SKIP \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EncryptionStrategy" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LogsBackupConfiguration": { + "type": "object", + "properties": { + "Region": { + "$ref": "#/definitions/Region" + }, + "KmsKeyArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "Region" + ], + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "RuleName": { + "type": "string", + "minLength": 1, + "maxLength": 100, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nPattern: ^[0-9A-Za-z-]+$ \nUpdate requires: Replacement\n" + }, + "Rule": { + "$ref": "#/definitions/CentralizationRule" + }, + "RuleArn": { + "type": "string", + "minLength": 1, + "maxLength": 1011, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws([a-z0-9\\-]+)?:([a-zA-Z0-9\\-]+):([a-z0-9\\-]+)?:([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key-value pairs to apply to this resource.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "required": [ + "RuleName", + "Rule" + ], + "createOnlyProperties": [ + "/properties/RuleName" + ], + "readOnlyProperties": [ + "/properties/RuleArn" + ], + "primaryIdentifier": [ + "/properties/RuleArn" + ], + "additionalIdentifiers": [ + [ + "/properties/RuleName" + ] + ], + "handlers": { + "create": { + "permissions": [ + "observabilityadmin:CreateCentralizationRuleForOrganization", + "observabilityadmin:GetCentralizationRuleForOrganization", + "observabilityadmin:ListTagsForResource", + "observabilityadmin:TagResource" + ], + "timeoutInMinutes": 90 + }, + "read": { + "permissions": [ + "observabilityadmin:GetCentralizationRuleForOrganization", + "observabilityadmin:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "observabilityadmin:UpdateCentralizationRuleForOrganization", + "observabilityadmin:GetCentralizationRuleForOrganization", + "observabilityadmin:ListTagsForResource", + "observabilityadmin:TagResource", + "observabilityadmin:UntagResource" + ] + }, + "delete": { + "permissions": [ + "observabilityadmin:DeleteCentralizationRuleForOrganization" + ] + }, + "list": { + "permissions": [ + "observabilityadmin:ListCentralizationRulesForOrganization" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "observabilityadmin:TagResource", + "observabilityadmin:UntagResource", + "observabilityadmin:ListTagsForResource" + ] + }, + "attributes": { + "RuleArn": { + "type": "string", + "minLength": 1, + "maxLength": 1011, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1011 \nPattern: ^arn:aws([a-z0-9\\-]+)?:([a-zA-Z0-9\\-]+):([a-z0-9\\-]+)?:([0-9]{12})?:(.+)$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-organizations-account.json b/server/schema/resources/aws-organizations-account.json index 604ed2c5..104fb83e 100644 --- a/server/schema/resources/aws-organizations-account.json +++ b/server/schema/resources/aws-organizations-account.json @@ -80,6 +80,18 @@ "PENDING_CLOSURE" ], "markdownDescription": "The status of the account in the organization.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | SUSPENDED | PENDING_CLOSURE \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "description": "The state of the account in the organization.", + "type": "string", + "enum": [ + "PENDING_ACTIVATION", + "ACTIVE", + "SUSPENDED", + "PENDING_CLOSURE", + "CLOSED" + ], + "markdownDescription": "The state of the account in the organization.\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING_ACTIVATION | ACTIVE | SUSPENDED | PENDING_CLOSURE | CLOSED \nUpdate requires: No interruption\nRead only property: Yes" } }, "definitions": { @@ -130,6 +142,7 @@ "readOnlyProperties": [ "/properties/AccountId", "/properties/Status", + "/properties/State", "/properties/JoinedTimestamp", "/properties/JoinedMethod", "/properties/Arn" @@ -217,6 +230,18 @@ "PENDING_CLOSURE" ], "markdownDescription": "The status of the account in the organization.\n\n---\n\nRequired: No \nType: String \nAllowed Values: ACTIVE | SUSPENDED | PENDING_CLOSURE \nUpdate requires: No interruption\nRead only property: Yes" + }, + "State": { + "description": "The state of the account in the organization.", + "type": "string", + "enum": [ + "PENDING_ACTIVATION", + "ACTIVE", + "SUSPENDED", + "PENDING_CLOSURE", + "CLOSED" + ], + "markdownDescription": "The state of the account in the organization.\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING_ACTIVATION | ACTIVE | SUSPENDED | PENDING_CLOSURE | CLOSED \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-osis-pipeline.json b/server/schema/resources/aws-osis-pipeline.json index dd207b56..cd100300 100644 --- a/server/schema/resources/aws-osis-pipeline.json +++ b/server/schema/resources/aws-osis-pipeline.json @@ -177,6 +177,20 @@ }, "additionalProperties": false, "markdownDescription": "An OpenSearch Ingestion Service-managed VPC endpoint that will access one or more pipelines.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ResourcePolicy": { + "type": "object", + "additionalProperties": false, + "properties": { + "Policy": { + "type": "object", + "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Policy" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { @@ -250,8 +264,15 @@ "description": "The Amazon Resource Name (ARN) of the pipeline.", "type": "string", "minLength": 46, - "maxLength": 76, - "markdownDescription": "The Amazon Resource Name (ARN) of the pipeline.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 46 \nMaximum Length: 76 \nPattern: ^arn:(aws|aws\\-cn|aws\\-us\\-gov|aws\\-iso|aws\\-iso\\-b):osis:.+:pipeline\\/.+$ \nUpdate requires: No interruption\nRead only property: Yes" + "maxLength": 78, + "markdownDescription": "The Amazon Resource Name (ARN) of the pipeline.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 46 \nMaximum Length: 78 \nPattern: ^arn:(aws|aws\\-cn|aws\\-us\\-gov|aws\\-iso|aws\\-iso\\-b):osis:.+:pipeline\\/.+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "PipelineRoleArn": { + "description": "The Pipeline Role (ARN) for the pipeline.", + "type": "string", + "minLength": 20, + "maxLength": 2048, + "markdownDescription": "The Pipeline Role (ARN) for the pipeline.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:(aws|aws\\-cn|aws\\-us\\-gov|aws\\-iso|aws\\-iso\\-b|aws\\-iso\\-e|aws\\-iso\\-f):iam::[0-9]+:role\\/.*$ \nUpdate requires: No interruption\n" }, "IngestEndpointUrls": { "type": "array", @@ -262,6 +283,9 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "markdownDescription": "A list of endpoints that can be used for ingesting data into a pipeline\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" } }, "additionalProperties": false, @@ -305,6 +329,8 @@ "osis:GetPipeline", "osis:TagResource", "osis:ListTagsForResource", + "osis:GetResourcePolicy", + "osis:PutResourcePolicy", "iam:PassRole", "iam:CreateServiceLinkedRole", "logs:CreateLogDelivery", @@ -314,7 +340,8 @@ "read": { "permissions": [ "osis:GetPipeline", - "osis:ListTagsForResource" + "osis:ListTagsForResource", + "osis:GetResourcePolicy" ] }, "update": { @@ -324,6 +351,9 @@ "osis:ListTagsForResource", "osis:TagResource", "osis:UntagResource", + "osis:GetResourcePolicy", + "osis:PutResourcePolicy", + "osis:DeleteResourcePolicy", "iam:PassRole", "logs:GetLogDelivery", "logs:UpdateLogDelivery", @@ -367,8 +397,8 @@ "description": "The Amazon Resource Name (ARN) of the pipeline.", "type": "string", "minLength": 46, - "maxLength": 76, - "markdownDescription": "The Amazon Resource Name (ARN) of the pipeline.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 46 \nMaximum Length: 76 \nPattern: ^arn:(aws|aws\\-cn|aws\\-us\\-gov|aws\\-iso|aws\\-iso\\-b):osis:.+:pipeline\\/.+$ \nUpdate requires: No interruption\nRead only property: Yes" + "maxLength": 78, + "markdownDescription": "The Amazon Resource Name (ARN) of the pipeline.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 46 \nMaximum Length: 78 \nPattern: ^arn:(aws|aws\\-cn|aws\\-us\\-gov|aws\\-iso|aws\\-iso\\-b):osis:.+:pipeline\\/.+$ \nUpdate requires: No interruption\nRead only property: Yes" }, "IngestEndpointUrls": { "type": "array", diff --git a/server/schema/resources/aws-pcs-cluster.json b/server/schema/resources/aws-pcs-cluster.json index 7f0d788a..d59c8f2a 100644 --- a/server/schema/resources/aws-pcs-cluster.json +++ b/server/schema/resources/aws-pcs-cluster.json @@ -1,90 +1,117 @@ { - "typeName": "AWS::PCS::Cluster", - "description": "AWS::PCS::Cluster resource creates an AWS PCS cluster.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-pcs.git", - "definitions": { - "Accounting": { - "type": "object", - "description": "The accounting configuration includes configurable settings for Slurm accounting.", - "properties": { - "DefaultPurgeTimeInDays": { - "type": "integer", - "description": "The default value for all purge settings for `slurmdbd.conf`. For more information, see the [slurmdbd.conf documentation at SchedMD](https://slurm.schedmd.com/slurmdbd.conf.html). The default value is `-1`. A value of `-1` means there is no purge time and records persist as long as the cluster exists.", - "default": -1, - "minimum": -1, - "maximum": 10000, - "markdownDescription": "The default value for all purge settings for `slurmdbd.conf`. For more information, see the [slurmdbd.conf documentation at SchedMD](https://slurm.schedmd.com/slurmdbd.conf.html). The default value is `-1`. A value of `-1` means there is no purge time and records persist as long as the cluster exists.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" - }, - "Mode": { - "type": "string", - "description": "The default value is `STANDARD`. A value of `STANDARD` means that Slurm accounting is enabled.", - "default": "NONE", - "enum": [ - "STANDARD", - "NONE" - ], - "markdownDescription": "The default value is `STANDARD`. A value of `STANDARD` means that Slurm accounting is enabled.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: STANDARD | NONE \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Mode" + "tagging": { + "permissions": [ + "pcs:TagResource", + "pcs:ListTagsForResource", + "pcs:UntagResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "handlers": { + "read": { + "permissions": [ + "pcs:GetCluster", + "pcs:ListTagsForResource" + ] + }, + "create": { + "permissions": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups", + "ec2:GetSecurityGroupsForVpc", + "iam:CreateServiceLinkedRole", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource", + "pcs:CreateCluster", + "pcs:GetCluster", + "pcs:ListTagsForResource", + "pcs:TagResource" ], - "markdownDescription": "The accounting configuration includes configurable settings for Slurm accounting.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "timeoutInMinutes": 60 }, - "AuthKey": { - "type": "object", - "description": "The shared Slurm key for authentication, also known as the cluster secret.", - "properties": { - "SecretArn": { - "type": "string", - "description": "The Amazon Resource Name (ARN) of the the shared Slurm key.", - "markdownDescription": "The Amazon Resource Name (ARN) of the the shared Slurm key.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "SecretVersion": { - "type": "string", - "description": "The version of the shared Slurm key.", - "markdownDescription": "The version of the shared Slurm key.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - } - }, - "required": [ - "SecretArn", - "SecretVersion" + "update": { + "permissions": [ + "pcs:GetCluster", + "pcs:UpdateCluster", + "pcs:ListTagsForResource", + "pcs:TagResource", + "pcs:UntagResource" ], - "additionalProperties": false, - "markdownDescription": "The shared Slurm key for authentication, also known as the cluster secret.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "timeoutInMinutes": 60 }, + "list": { + "permissions": [ + "pcs:ListClusters" + ] + }, + "delete": { + "permissions": [ + "pcs:DeleteCluster", + "pcs:GetCluster" + ], + "timeoutInMinutes": 60 + } + }, + "typeName": "AWS::PCS::Cluster", + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Endpoints", + "/properties/ErrorInfo", + "/properties/Id", + "/properties/Status" + ], + "description": "AWS::PCS::Cluster resource creates an AWS PCS cluster.", + "createOnlyProperties": [ + "/properties/Name", + "/properties/Networking", + "/properties/Scheduler", + "/properties/Size" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Arn" + ], + "definitions": { "Endpoint": { - "type": "object", "description": "An endpoint available for interaction with the scheduler.", + "additionalProperties": false, + "type": "object", "properties": { - "Port": { - "type": "string", - "description": "The endpoint's connection port number.", - "markdownDescription": "The endpoint's connection port number.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "PrivateIpAddress": { - "type": "string", - "description": "The endpoint's private IP address.", - "markdownDescription": "The endpoint's private IP address.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" - }, - "Ipv6Address": { + "PublicIpAddress": { + "description": "The endpoint's public IP address.", "type": "string", - "description": "The endpoint's IPv6 address.", - "markdownDescription": "The endpoint's IPv6 address.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The endpoint's public IP address.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Type": { - "type": "string", "description": "Indicates the type of endpoint running at the specific IP address.", + "type": "string", "enum": [ "SLURMCTLD", "SLURMDBD" ], "markdownDescription": "Indicates the type of endpoint running at the specific IP address.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: SLURMCTLD | SLURMDBD \nUpdate requires: No interruption\n" }, - "PublicIpAddress": { + "PrivateIpAddress": { + "description": "The endpoint's private IP address.", "type": "string", - "description": "The endpoint's public IP address.", - "markdownDescription": "The endpoint's public IP address.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The endpoint's private IP address.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Port": { + "description": "The endpoint's connection port number.", + "type": "string", + "markdownDescription": "The endpoint's connection port number.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "Ipv6Address": { + "description": "The endpoint's IPv6 address.", + "type": "string", + "markdownDescription": "The endpoint's IPv6 address.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "required": [ @@ -92,170 +119,215 @@ "PrivateIpAddress", "Type" ], - "additionalProperties": false, "markdownDescription": "An endpoint available for interaction with the scheduler.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ErrorInfo": { + "Accounting": { + "description": "The accounting configuration includes configurable settings for Slurm accounting.", "type": "object", - "description": "An error that occurred during resource provisioning.", "properties": { - "Code": { - "type": "string", - "description": "The short-form error code.", - "markdownDescription": "The short-form error code.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "DefaultPurgeTimeInDays": { + "default": -1, + "description": "The default value for all purge settings for `slurmdbd.conf`. For more information, see the [slurmdbd.conf documentation at SchedMD](https://slurm.schedmd.com/slurmdbd.conf.html). The default value is `-1`. A value of `-1` means there is no purge time and records persist as long as the cluster exists.", + "maximum": 10000, + "type": "integer", + "minimum": -1, + "markdownDescription": "The default value for all purge settings for `slurmdbd.conf`. For more information, see the [slurmdbd.conf documentation at SchedMD](https://slurm.schedmd.com/slurmdbd.conf.html). The default value is `-1`. A value of `-1` means there is no purge time and records persist as long as the cluster exists.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, - "Message": { + "Mode": { + "default": "NONE", + "description": "The default value is `STANDARD`. A value of `STANDARD` means that Slurm accounting is enabled.", "type": "string", + "enum": [ + "STANDARD", + "NONE" + ], + "markdownDescription": "The default value is `STANDARD`. A value of `STANDARD` means that Slurm accounting is enabled.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: STANDARD | NONE \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Mode" + ], + "markdownDescription": "The accounting configuration includes configurable settings for Slurm accounting.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ErrorInfo": { + "description": "An error that occurred during resource provisioning.", + "additionalProperties": false, + "type": "object", + "properties": { + "Message": { "description": "The detailed error information.", + "type": "string", "markdownDescription": "The detailed error information.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Code": { + "description": "The short-form error code.", + "type": "string", + "markdownDescription": "The short-form error code.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, - "additionalProperties": false, "markdownDescription": "An error that occurred during resource provisioning.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "SecurityGroupId": { - "type": "string", "description": "A VPC security group ID.", + "type": "string", "markdownDescription": "A VPC security group ID.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, - "SlurmCustomSetting": { + "AuthKey": { + "description": "The shared Slurm key for authentication, also known as the cluster secret.", + "additionalProperties": false, "type": "object", - "description": "Additional settings that directly map to Slurm settings.", "properties": { - "ParameterName": { + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the the shared Slurm key.", "type": "string", - "description": "AWS PCS supports configuration of the following Slurm parameters for clusters: Prolog, Epilog, and SelectTypeParameters.", - "markdownDescription": "AWS PCS supports configuration of the following Slurm parameters for clusters: Prolog, Epilog, and SelectTypeParameters.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The Amazon Resource Name (ARN) of the the shared Slurm key.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, - "ParameterValue": { + "SecretVersion": { + "description": "The version of the shared Slurm key.", "type": "string", - "description": "The value for the configured Slurm setting.", - "markdownDescription": "The value for the configured Slurm setting.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "markdownDescription": "The version of the shared Slurm key.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, - "additionalProperties": false, "required": [ - "ParameterName", - "ParameterValue" + "SecretArn", + "SecretVersion" ], - "markdownDescription": "Additional settings that directly map to Slurm settings.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The shared Slurm key for authentication, also known as the cluster secret.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "SubnetId": { - "type": "string", "description": "A VPC subnet ID.", + "type": "string", "markdownDescription": "A VPC subnet ID.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "Tag": { - "type": "object", "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, + "type": "object", "properties": { - "Key": { - "type": "string", - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", - "minLength": 1, - "maxLength": 128, - "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" - }, "Value": { - "type": "string", - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", "minLength": 0, + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "type": "string", "maxLength": 256, "markdownDescription": "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 -. \n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Key": { + "minLength": 1, + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "type": "string", + "maxLength": 128, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" } }, - "additionalProperties": false, "required": [ "Key" ], "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SlurmCustomSetting": { + "description": "Additional settings that directly map to Slurm settings.", + "additionalProperties": false, + "type": "object", + "properties": { + "ParameterValue": { + "description": "The value for the configured Slurm setting.", + "type": "string", + "markdownDescription": "The value for the configured Slurm setting.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ParameterName": { + "description": "AWS PCS supports configuration of the following Slurm parameters for clusters: Prolog, Epilog, and SelectTypeParameters.", + "type": "string", + "markdownDescription": "AWS PCS supports configuration of the following Slurm parameters for clusters: Prolog, Epilog, and SelectTypeParameters.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ParameterName", + "ParameterValue" + ], + "markdownDescription": "Additional settings that directly map to Slurm settings.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, + "required": [ + "Networking", + "Scheduler", + "Size" + ], "properties": { - "Arn": { - "type": "string", - "description": "The unique Amazon Resource Name (ARN) of the cluster.", - "markdownDescription": "The unique Amazon Resource Name (ARN) of the cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, "Endpoints": { - "type": "array", "description": "The list of endpoints available for interaction with the scheduler.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/Endpoint" }, "markdownDescription": "The list of endpoints available for interaction with the scheduler.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, - "ErrorInfo": { - "type": "array", - "description": "The list of errors that occurred during cluster provisioning.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ErrorInfo" - }, - "markdownDescription": "The list of errors that occurred during cluster provisioning.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Id": { - "type": "string", - "description": "The generated unique ID of the cluster.", - "markdownDescription": "The generated unique ID of the cluster.\n\n---\n\nRequired: No \nType: String \nPattern: ^(pcs_[a-zA-Z0-9]+|[A-Za-z][A-Za-z0-9-]{1,40})$ \nUpdate requires: No interruption\nRead only property: Yes" - }, - "Name": { + "Status": { + "description": "The provisioning status of the cluster. The provisioning status doesn't indicate the overall health of the cluster.", "type": "string", - "description": "The name that identifies the cluster.", - "markdownDescription": "The name that identifies the cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "enum": [ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "CREATE_FAILED", + "DELETE_FAILED", + "UPDATE_FAILED" + ], + "markdownDescription": "The provisioning status of the cluster. The provisioning status doesn't indicate the overall health of the cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | UPDATING | DELETING | CREATE_FAILED | DELETE_FAILED | UPDATE_FAILED \nUpdate requires: No interruption\nRead only property: Yes" }, "Networking": { - "type": "object", "description": "The networking configuration for the cluster's control plane.", + "additionalProperties": false, + "type": "object", "properties": { + "NetworkType": { + "description": "The IP of the cluster (IPV4 or IPV6)", + "insertionOrder": false, + "type": "string", + "enum": [ + "IPV4", + "IPV6" + ], + "markdownDescription": "The IP of the cluster (IPV4 or IPV6)\n\n---\n\nRequired: No \nType: String \nAllowed Values: IPV4 | IPV6 \nUpdate requires: No interruption\n" + }, "SecurityGroupIds": { - "type": "array", "description": "The list of security group IDs associated with the Elastic Network Interface (ENI) created in subnets.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/SecurityGroupId" }, "markdownDescription": "The list of security group IDs associated with the Elastic Network Interface (ENI) created in subnets.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "SubnetIds": { - "type": "array", "description": "The list of subnet IDs where AWS PCS creates an Elastic Network Interface (ENI) to enable communication between managed controllers and AWS PCS resources. The subnet must have an available IP address, cannot reside in AWS Outposts, AWS Wavelength, or an AWS Local Zone. AWS PCS currently supports only 1 subnet in this list.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/SubnetId" }, "markdownDescription": "The list of subnet IDs where AWS PCS creates an Elastic Network Interface (ENI) to enable communication between managed controllers and AWS PCS resources. The subnet must have an available IP address, cannot reside in AWS Outposts, AWS Wavelength, or an AWS Local Zone. AWS PCS currently supports only 1 subnet in this list.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" - }, - "NetworkType": { - "type": "string", - "description": "The IP of the cluster (IPV4 or IPV6)", - "enum": [ - "IPV4", - "IPV6" - ], - "insertionOrder": false, - "markdownDescription": "The IP of the cluster (IPV4 or IPV6)\n\n---\n\nRequired: No \nType: String \nAllowed Values: IPV4 | IPV6 \nUpdate requires: No interruption\n" } }, - "additionalProperties": false, "markdownDescription": "The networking configuration for the cluster's control plane.\n\n---\n\nRequired: Yes \nUpdate requires: Replacement\n" }, "Scheduler": { - "type": "object", "description": "The cluster management and job scheduling software associated with the cluster.", + "additionalProperties": false, + "type": "object", "properties": { "Type": { - "type": "string", "description": "The software AWS PCS uses to manage cluster scaling and job scheduling.", + "type": "string", "enum": [ "SLURM" ], "markdownDescription": "The software AWS PCS uses to manage cluster scaling and job scheduling.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: SLURM \nUpdate requires: No interruption\n" }, "Version": { - "type": "string", "description": "The version of the specified scheduling software that AWS PCS uses to manage cluster scaling and job scheduling.", + "type": "string", "markdownDescription": "The version of the specified scheduling software that AWS PCS uses to manage cluster scaling and job scheduling.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, @@ -263,12 +335,11 @@ "Type", "Version" ], - "additionalProperties": false, "markdownDescription": "The cluster management and job scheduling software associated with the cluster.\n\n---\n\nRequired: Yes \nUpdate requires: Replacement\n" }, "Size": { - "type": "string", "description": "The size of the cluster.", + "type": "string", "enum": [ "SMALL", "MEDIUM", @@ -276,9 +347,19 @@ ], "markdownDescription": "The size of the cluster.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: SMALL | MEDIUM | LARGE \nUpdate requires: Replacement\n" }, + "ErrorInfo": { + "description": "The list of errors that occurred during cluster provisioning.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/ErrorInfo" + }, + "markdownDescription": "The list of errors that occurred during cluster provisioning.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, "SlurmConfiguration": { - "type": "object", "description": "Additional options related to the Slurm scheduler.", + "additionalProperties": false, + "type": "object", "properties": { "Accounting": { "$ref": "#/definitions/Accounting" @@ -287,173 +368,92 @@ "$ref": "#/definitions/AuthKey" }, "ScaleDownIdleTimeInSeconds": { - "type": "integer", "description": "The time before an idle node is scaled down.", + "type": "integer", "minimum": 1, "markdownDescription": "The time before an idle node is scaled down.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" }, "SlurmCustomSettings": { - "type": "array", "description": "Additional Slurm-specific configuration that directly maps to Slurm settings.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/SlurmCustomSetting" }, "markdownDescription": "Additional Slurm-specific configuration that directly maps to Slurm settings.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "additionalProperties": false, - "markdownDescription": "Additional options related to the Slurm scheduler.\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" + "markdownDescription": "Additional options related to the Slurm scheduler.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Status": { + "Id": { + "description": "The generated unique ID of the cluster.", "type": "string", - "description": "The provisioning status of the cluster. The provisioning status doesn't indicate the overall health of the cluster.", - "enum": [ - "CREATING", - "ACTIVE", - "UPDATING", - "DELETING", - "CREATE_FAILED", - "DELETE_FAILED", - "UPDATE_FAILED" - ], - "markdownDescription": "The provisioning status of the cluster. The provisioning status doesn't indicate the overall health of the cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | UPDATING | DELETING | CREATE_FAILED | DELETE_FAILED | UPDATE_FAILED \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The generated unique ID of the cluster.\n\n---\n\nRequired: No \nType: String \nPattern: ^(pcs_[a-zA-Z0-9]+|[A-Za-z][A-Za-z0-9-]{1,40})$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Arn": { + "description": "The unique Amazon Resource Name (ARN) of the cluster.", + "type": "string", + "markdownDescription": "The unique Amazon Resource Name (ARN) of the cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Tags": { - "description": "1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.", "patternProperties": { "^.+$": { "type": "string", "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, + "description": "1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.", "additionalProperties": false, "markdownDescription": "1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" - } - }, - "required": [ - "Networking", - "Scheduler", - "Size" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/Arn" - ], - "createOnlyProperties": [ - "/properties/Name", - "/properties/Networking", - "/properties/Scheduler", - "/properties/Size", - "/properties/SlurmConfiguration" - ], - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Endpoints", - "/properties/ErrorInfo", - "/properties/Id", - "/properties/Status" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeVpcs", - "ec2:DescribeSubnets", - "ec2:DescribeSecurityGroups", - "ec2:GetSecurityGroupsForVpc", - "iam:CreateServiceLinkedRole", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource", - "pcs:CreateCluster", - "pcs:GetCluster", - "pcs:ListTagsForResource", - "pcs:TagResource" - ], - "timeoutInMinutes": 60 - }, - "read": { - "permissions": [ - "pcs:GetCluster", - "pcs:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "pcs:GetCluster", - "pcs:ListTagsForResource", - "pcs:TagResource", - "pcs:UntagResource" - ], - "timeoutInMinutes": 60 - }, - "delete": { - "permissions": [ - "pcs:DeleteCluster", - "pcs:GetCluster" - ], - "timeoutInMinutes": 60 }, - "list": { - "permissions": [ - "pcs:ListClusters" - ] + "Name": { + "description": "The name that identifies the cluster.", + "type": "string", + "markdownDescription": "The name that identifies the cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" } }, - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags", - "permissions": [ - "pcs:TagResource", - "pcs:ListTagsForResource", - "pcs:UntagResource" - ] - }, "attributes": { - "Arn": { - "type": "string", - "description": "The unique Amazon Resource Name (ARN) of the cluster.", - "markdownDescription": "The unique Amazon Resource Name (ARN) of the cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, "Endpoints": { - "type": "array", "description": "The list of endpoints available for interaction with the scheduler.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/Endpoint" }, "markdownDescription": "The list of endpoints available for interaction with the scheduler.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, + "Status": { + "description": "The provisioning status of the cluster. The provisioning status doesn't indicate the overall health of the cluster.", + "type": "string", + "enum": [ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "CREATE_FAILED", + "DELETE_FAILED", + "UPDATE_FAILED" + ], + "markdownDescription": "The provisioning status of the cluster. The provisioning status doesn't indicate the overall health of the cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | UPDATING | DELETING | CREATE_FAILED | DELETE_FAILED | UPDATE_FAILED \nUpdate requires: No interruption\nRead only property: Yes" + }, "ErrorInfo": { - "type": "array", "description": "The list of errors that occurred during cluster provisioning.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/ErrorInfo" }, "markdownDescription": "The list of errors that occurred during cluster provisioning.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, "Id": { - "type": "string", "description": "The generated unique ID of the cluster.", + "type": "string", "markdownDescription": "The generated unique ID of the cluster.\n\n---\n\nRequired: No \nType: String \nPattern: ^(pcs_[a-zA-Z0-9]+|[A-Za-z][A-Za-z0-9-]{1,40})$ \nUpdate requires: No interruption\nRead only property: Yes" }, - "Status": { + "Arn": { + "description": "The unique Amazon Resource Name (ARN) of the cluster.", "type": "string", - "description": "The provisioning status of the cluster. The provisioning status doesn't indicate the overall health of the cluster.", - "enum": [ - "CREATING", - "ACTIVE", - "UPDATING", - "DELETING", - "CREATE_FAILED", - "DELETE_FAILED", - "UPDATE_FAILED" - ], - "markdownDescription": "The provisioning status of the cluster. The provisioning status doesn't indicate the overall health of the cluster.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | UPDATING | DELETING | CREATE_FAILED | DELETE_FAILED | UPDATE_FAILED \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "The unique Amazon Resource Name (ARN) of the cluster.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-pcs-queue.json b/server/schema/resources/aws-pcs-queue.json index 90d056f3..4cfab151 100644 --- a/server/schema/resources/aws-pcs-queue.json +++ b/server/schema/resources/aws-pcs-queue.json @@ -1,197 +1,121 @@ { - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-pcs.git", - "tagging": { - "permissions": [ - "pcs:TagResource", - "pcs:ListTagsForResource", - "pcs:UntagResource" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "handlers": { - "read": { - "permissions": [ - "pcs:GetQueue", - "pcs:ListTagsForResource" - ] - }, - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeVpcs", - "ec2:DescribeSubnets", - "ec2:DescribeSecurityGroups", - "ec2:GetSecurityGroupsForVpc", - "iam:CreateServiceLinkedRole", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource", - "pcs:CreateQueue", - "pcs:GetQueue", - "pcs:ListTagsForResource", - "pcs:TagResource" - ], - "timeoutInMinutes": 60 - }, - "update": { - "permissions": [ - "pcs:GetQueue", - "pcs:UpdateQueue", - "pcs:ListTagsForResource", - "pcs:TagResource", - "pcs:UntagResource" - ], - "timeoutInMinutes": 60 - }, - "list": { - "permissions": [ - "pcs:ListClusters", - "pcs:ListQueues" - ], - "handlerSchema": { - "properties": { - "ClusterId": { - "$ref": "resource-schema.json#/properties/ClusterId" - } - }, - "required": [ - "ClusterId" - ] - } - }, - "delete": { - "permissions": [ - "pcs:DeleteQueue", - "pcs:GetQueue" - ], - "timeoutInMinutes": 60 - } - }, "typeName": "AWS::PCS::Queue", - "readOnlyProperties": [ - "/properties/Arn", - "/properties/ErrorInfo", - "/properties/Id", - "/properties/Status" - ], "description": "AWS::PCS::Queue resource creates an AWS PCS queue.", - "createOnlyProperties": [ - "/properties/Name", - "/properties/ClusterId" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/Arn" - ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-pcs.git", "definitions": { - "ErrorInfo": { - "description": "An error that occurred during resource provisioning.", - "additionalProperties": false, + "ComputeNodeGroupConfiguration": { "type": "object", + "description": "The compute node group configuration for a queue.", "properties": { - "Message": { - "description": "The detailed error information.", + "ComputeNodeGroupId": { "type": "string", - "markdownDescription": "The detailed error information.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" - }, + "description": "The compute node group ID for the compute node group configuration.", + "markdownDescription": "The compute node group ID for the compute node group configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "The compute node group configuration for a queue.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "ErrorInfo": { + "type": "object", + "description": "An error that occurred during resource provisioning.", + "properties": { "Code": { - "description": "The short-form error code.", "type": "string", + "description": "The short-form error code.", "markdownDescription": "The short-form error code.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Message": { + "type": "string", + "description": "The detailed error information.", + "markdownDescription": "The detailed error information.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, + "additionalProperties": false, "markdownDescription": "An error that occurred during resource provisioning.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "ComputeNodeGroupConfiguration": { - "description": "The compute node group configuration for a queue.", - "additionalProperties": false, + "SlurmCustomSetting": { "type": "object", + "description": "Additional settings that directly map to Slurm settings.", "properties": { - "ComputeNodeGroupId": { - "description": "The compute node group ID for the compute node group configuration.", + "ParameterName": { "type": "string", - "markdownDescription": "The compute node group ID for the compute node group configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "AWS PCS supports configuration of the Slurm parameters for queues:.", + "markdownDescription": "AWS PCS supports configuration of the Slurm parameters for queues:.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + }, + "ParameterValue": { + "type": "string", + "description": "The value for the configured Slurm setting.", + "markdownDescription": "The value for the configured Slurm setting.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" } }, - "markdownDescription": "The compute node group configuration for a queue.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "additionalProperties": false, + "required": [ + "ParameterName", + "ParameterValue" + ], + "markdownDescription": "Additional settings that directly map to Slurm settings.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, - "required": [ - "ClusterId" - ], "properties": { - "Status": { - "description": "The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue.", + "Arn": { "type": "string", - "enum": [ - "CREATING", - "ACTIVE", - "UPDATING", - "DELETING", - "CREATE_FAILED", - "DELETE_FAILED", - "UPDATE_FAILED" - ], - "markdownDescription": "The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | UPDATING | DELETING | CREATE_FAILED | DELETE_FAILED | UPDATE_FAILED \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The unique Amazon Resource Name (ARN) of the queue.", + "markdownDescription": "The unique Amazon Resource Name (ARN) of the queue.\n\n---\n\nRequired: No \nType: String \nPattern: ^(.*?) \nUpdate requires: No interruption\nRead only property: Yes" }, "ClusterId": { - "description": "The ID of the cluster of the queue.", "type": "string", + "description": "The ID of the cluster of the queue.", "markdownDescription": "The ID of the cluster of the queue.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, - "ErrorInfo": { - "description": "The list of errors that occurred during queue provisioning.", - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/ErrorInfo" - }, - "markdownDescription": "The list of errors that occurred during queue provisioning.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" - }, "ComputeNodeGroupConfigurations": { + "type": "array", "description": "The list of compute node group configurations associated with the queue. Queues assign jobs to associated compute node groups.", "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/ComputeNodeGroupConfiguration" }, "markdownDescription": "The list of compute node group configurations associated with the queue. Queues assign jobs to associated compute node groups.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, + "ErrorInfo": { + "type": "array", + "description": "The list of errors that occurred during queue provisioning.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ErrorInfo" + }, + "markdownDescription": "The list of errors that occurred during queue provisioning.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" + }, "Id": { - "description": "The generated unique ID of the queue.", "type": "string", + "description": "The generated unique ID of the queue.", "markdownDescription": "The generated unique ID of the queue.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "Arn": { - "description": "The unique Amazon Resource Name (ARN) of the queue.", + "Name": { "type": "string", - "markdownDescription": "The unique Amazon Resource Name (ARN) of the queue.\n\n---\n\nRequired: No \nType: String \nPattern: ^(.*?) \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The name that identifies the queue.", + "markdownDescription": "The name that identifies the queue.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, - "Tags": { - "patternProperties": { - "^.+$": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "SlurmConfiguration": { + "type": "object", + "description": "The Slurm configuration for the queue.", + "properties": { + "SlurmCustomSettings": { + "type": "array", + "description": "Custom Slurm parameters that directly map to Slurm configuration settings.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SlurmCustomSetting" + }, + "markdownDescription": "Custom Slurm parameters that directly map to Slurm configuration settings.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "description": "1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.", "additionalProperties": false, - "type": "object", - "markdownDescription": "1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "markdownDescription": "The Slurm configuration for the queue.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, - "Name": { - "description": "The name that identifies the queue.", - "type": "string", - "markdownDescription": "The name that identifies the queue.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" - } - }, - "attributes": { "Status": { - "description": "The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue.", "type": "string", + "description": "The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue.", "enum": [ "CREATING", "ACTIVE", @@ -203,24 +127,139 @@ ], "markdownDescription": "The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | UPDATING | DELETING | CREATE_FAILED | DELETE_FAILED | UPDATE_FAILED \nUpdate requires: No interruption\nRead only property: Yes" }, + "Tags": { + "type": "object", + "description": "1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.", + "patternProperties": { + "^.+$": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ClusterId" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Arn" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/ClusterId" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ErrorInfo", + "/properties/Id", + "/properties/Status" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups", + "ec2:GetSecurityGroupsForVpc", + "iam:CreateServiceLinkedRole", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource", + "pcs:CreateQueue", + "pcs:GetQueue", + "pcs:ListTagsForResource", + "pcs:TagResource" + ], + "timeoutInMinutes": 60 + }, + "read": { + "permissions": [ + "pcs:GetQueue", + "pcs:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "pcs:GetQueue", + "pcs:UpdateQueue", + "pcs:ListTagsForResource", + "pcs:TagResource", + "pcs:UntagResource" + ], + "timeoutInMinutes": 60 + }, + "delete": { + "permissions": [ + "pcs:DeleteQueue", + "pcs:GetQueue" + ], + "timeoutInMinutes": 60 + }, + "list": { + "handlerSchema": { + "properties": { + "ClusterId": { + "$ref": "resource-schema.json#/properties/ClusterId" + } + }, + "required": [ + "ClusterId" + ] + }, + "permissions": [ + "pcs:ListClusters", + "pcs:ListQueues" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "pcs:TagResource", + "pcs:ListTagsForResource", + "pcs:UntagResource" + ] + }, + "attributes": { + "Arn": { + "type": "string", + "description": "The unique Amazon Resource Name (ARN) of the queue.", + "markdownDescription": "The unique Amazon Resource Name (ARN) of the queue.\n\n---\n\nRequired: No \nType: String \nPattern: ^(.*?) \nUpdate requires: No interruption\nRead only property: Yes" + }, "ErrorInfo": { + "type": "array", "description": "The list of errors that occurred during queue provisioning.", "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/ErrorInfo" }, "markdownDescription": "The list of errors that occurred during queue provisioning.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\nRead only property: Yes" }, "Id": { - "description": "The generated unique ID of the queue.", "type": "string", + "description": "The generated unique ID of the queue.", "markdownDescription": "The generated unique ID of the queue.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, - "Arn": { - "description": "The unique Amazon Resource Name (ARN) of the queue.", + "Status": { "type": "string", - "markdownDescription": "The unique Amazon Resource Name (ARN) of the queue.\n\n---\n\nRequired: No \nType: String \nPattern: ^(.*?) \nUpdate requires: No interruption\nRead only property: Yes" + "description": "The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue.", + "enum": [ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "CREATE_FAILED", + "DELETE_FAILED", + "UPDATE_FAILED" + ], + "markdownDescription": "The provisioning status of the queue. The provisioning status doesn't indicate the overall health of the queue.\n\n---\n\nRequired: No \nType: String \nAllowed Values: CREATING | ACTIVE | UPDATING | DELETING | CREATE_FAILED | DELETE_FAILED | UPDATE_FAILED \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-quicksight-custompermissions.json b/server/schema/resources/aws-quicksight-custompermissions.json index e6907ba5..e115eac4 100644 --- a/server/schema/resources/aws-quicksight-custompermissions.json +++ b/server/schema/resources/aws-quicksight-custompermissions.json @@ -1,87 +1,143 @@ { + "tagging": { + "permissions": [ + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false + }, + "handlers": { + "read": { + "permissions": [ + "quicksight:DescribeCustomPermissions", + "quicksight:ListTagsForResource" + ] + }, + "create": { + "permissions": [ + "quicksight:CreateCustomPermissions", + "quicksight:TagResource" + ] + }, + "update": { + "permissions": [ + "quicksight:UpdateCustomPermissions", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + }, + "list": { + "permissions": [ + "quicksight:ListCustomPermissions" + ] + }, + "delete": { + "permissions": [ + "quicksight:DeleteCustomPermissions" + ] + } + }, "typeName": "AWS::QuickSight::CustomPermissions", + "readOnlyProperties": [ + "/properties/Arn" + ], "description": "Definition of the AWS::QuickSight::CustomPermissions Resource Type.", + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/CustomPermissionsName" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/AwsAccountId", + "/properties/CustomPermissionsName" + ], "definitions": { "Capabilities": { + "additionalProperties": false, "type": "object", "properties": { - "ExportToCsv": { + "IncludeContentInScheduledReportsEmail": { "$ref": "#/definitions/CapabilityState" }, - "ExportToExcel": { + "ExportToCsvInScheduledReports": { "$ref": "#/definitions/CapabilityState" }, - "ExportToPdf": { + "CreateAndUpdateDataSources": { "$ref": "#/definitions/CapabilityState" }, - "PrintReports": { + "ViewAccountSPICECapacity": { "$ref": "#/definitions/CapabilityState" }, - "CreateAndUpdateThemes": { + "Dashboard": { "$ref": "#/definitions/CapabilityState" }, - "AddOrRunAnomalyDetectionForAnalyses": { + "ExportToPdfInScheduledReports": { "$ref": "#/definitions/CapabilityState" }, - "ShareAnalyses": { + "CreateSPICEDataset": { "$ref": "#/definitions/CapabilityState" }, "CreateAndUpdateDatasets": { "$ref": "#/definitions/CapabilityState" }, - "ShareDatasets": { + "PrintReports": { "$ref": "#/definitions/CapabilityState" }, - "SubscribeDashboardEmailReports": { + "ShareDatasets": { "$ref": "#/definitions/CapabilityState" }, - "CreateAndUpdateDashboardEmailReports": { + "ExportToExcelInScheduledReports": { "$ref": "#/definitions/CapabilityState" }, - "ShareDashboards": { + "CreateAndUpdateDashboardEmailReports": { "$ref": "#/definitions/CapabilityState" }, "CreateAndUpdateThresholdAlerts": { "$ref": "#/definitions/CapabilityState" }, - "RenameSharedFolders": { + "CreateSharedFolders": { "$ref": "#/definitions/CapabilityState" }, - "CreateSharedFolders": { + "ShareDashboards": { "$ref": "#/definitions/CapabilityState" }, - "CreateAndUpdateDataSources": { + "RenameSharedFolders": { "$ref": "#/definitions/CapabilityState" }, - "ShareDataSources": { + "AddOrRunAnomalyDetectionForAnalyses": { "$ref": "#/definitions/CapabilityState" }, - "ViewAccountSPICECapacity": { + "ShareDataSources": { "$ref": "#/definitions/CapabilityState" }, - "CreateSPICEDataset": { + "ExportToExcel": { "$ref": "#/definitions/CapabilityState" }, - "ExportToPdfInScheduledReports": { + "ExportToPdf": { "$ref": "#/definitions/CapabilityState" }, - "ExportToCsvInScheduledReports": { + "ShareAnalyses": { "$ref": "#/definitions/CapabilityState" }, - "ExportToExcelInScheduledReports": { + "SubscribeDashboardEmailReports": { "$ref": "#/definitions/CapabilityState" }, - "IncludeContentInScheduledReportsEmail": { + "Analysis": { "$ref": "#/definitions/CapabilityState" }, - "Dashboard": { + "ExportToCsv": { "$ref": "#/definitions/CapabilityState" }, - "Analysis": { + "CreateAndUpdateThemes": { "$ref": "#/definitions/CapabilityState" } }, - "additionalProperties": false, "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "CapabilityState": { @@ -92,122 +148,66 @@ "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: DENY \nUpdate requires: No interruption\n" }, "Tag": { - "type": "object", "description": "

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

", + "additionalProperties": false, + "type": "object", "properties": { - "Key": { - "type": "string", - "maxLength": 128, - "minLength": 1, - "description": "

Tag key.

", - "markdownDescription": "

Tag key.

\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" - }, "Value": { - "type": "string", - "maxLength": 256, "minLength": 1, "description": "

Tag value.

", + "type": "string", + "maxLength": 256, "markdownDescription": "

Tag value.

\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Key": { + "minLength": 1, + "description": "

Tag key.

", + "type": "string", + "maxLength": 128, + "markdownDescription": "

Tag key.

\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" } }, "required": [ "Key", "Value" ], - "additionalProperties": false, "markdownDescription": "

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

\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" } }, "properties": { - "Arn": { + "CustomPermissionsName": { + "minLength": 1, "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "maxLength": 64, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9+=,.@_-]+$ \nUpdate requires: Replacement\n" + }, + "Capabilities": { + "$ref": "#/definitions/Capabilities" }, "AwsAccountId": { + "minLength": 12, "type": "string", "maxLength": 12, - "minLength": 12, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 12 \nMaximum Length: 12 \nPattern: ^[0-9]{12}$ \nUpdate requires: Replacement\n" }, - "Capabilities": { - "$ref": "#/definitions/Capabilities" - }, - "CustomPermissionsName": { + "Arn": { "type": "string", - "maxLength": 64, - "minLength": 1, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9+=,.@_-]+$ \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Tags": { + "minItems": 1, + "maxItems": 200, "type": "array", "items": { "$ref": "#/definitions/Tag" }, - "maxItems": 200, - "minItems": 1, "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" } }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "createOnlyProperties": [ - "/properties/AwsAccountId", - "/properties/CustomPermissionsName" - ], - "primaryIdentifier": [ - "/properties/AwsAccountId", - "/properties/CustomPermissionsName" - ], - "handlers": { - "create": { - "permissions": [ - "quicksight:CreateCustomPermissions", - "quicksight:TagResource" - ] - }, - "read": { - "permissions": [ - "quicksight:DescribeCustomPermissions", - "quicksight:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "quicksight:UpdateCustomPermissions", - "quicksight:TagResource", - "quicksight:UntagResource", - "quicksight:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "quicksight:DeleteCustomPermissions" - ] - }, - "list": { - "permissions": [ - "quicksight:ListCustomPermissions" - ] - } - }, - "additionalProperties": false, "required": [ "AwsAccountId", "CustomPermissionsName" ], - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags", - "permissions": [ - "quicksight:TagResource", - "quicksight:UntagResource", - "quicksight:ListTagsForResource" - ] - }, "attributes": { "Arn": { "type": "string", diff --git a/server/schema/resources/aws-quicksight-dashboard.json b/server/schema/resources/aws-quicksight-dashboard.json index a7b5f5b2..5045a2a9 100644 --- a/server/schema/resources/aws-quicksight-dashboard.json +++ b/server/schema/resources/aws-quicksight-dashboard.json @@ -2763,6 +2763,9 @@ "ExportWithHiddenFieldsOption": { "$ref": "#/definitions/ExportWithHiddenFieldsOption" }, + "QuickSuiteActionsOption": { + "$ref": "#/definitions/QuickSuiteActionsOption" + }, "ExecutiveSummaryOption": { "$ref": "#/definitions/ExecutiveSummaryOption" }, @@ -9702,6 +9705,16 @@ ], "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "QuickSuiteActionsOption": { + "additionalProperties": false, + "type": "object", + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "GeospatialCircleRadius": { "additionalProperties": false, "type": "object", diff --git a/server/schema/resources/aws-rds-dbcluster.json b/server/schema/resources/aws-rds-dbcluster.json index 9b92ae7f..fe0c5e14 100644 --- a/server/schema/resources/aws-rds-dbcluster.json +++ b/server/schema/resources/aws-rds-dbcluster.json @@ -276,9 +276,9 @@ "markdownDescription": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).\n Format: ``ddd:hh24:mi-ddd:hh24:mi``\n The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see [Maintaining an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora) in the *Amazon Aurora User Guide.*\n Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.\n Constraints: Minimum 30-minute window.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "PubliclyAccessible": { - "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn\u2019t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn\u2019t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + "description": "Specifies whether the DB cluster is publicly accessible.\n Valid for Cluster Type: Multi-AZ DB clusters only\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its domain name system (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is controlled by its security group settings.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n The default behavior when ``PubliclyAccessible`` is not specified depends on whether a ``DBSubnetGroup`` is specified.\n If ``DBSubnetGroup`` isn't specified, ``PubliclyAccessible`` defaults to ``true``.\n If ``DBSubnetGroup`` is specified, ``PubliclyAccessible`` defaults to ``false`` unless the value of ``DBSubnetGroup`` is ``default``, in which case ``PubliclyAccessible`` defaults to ``true``.\n If ``PubliclyAccessible`` is true and the VPC that the ``DBSubnetGroup`` is in doesn't have an internet gateway attached to it, Amazon RDS returns an error.", "type": "boolean", - "markdownDescription": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn\u2019t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn\u2019t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" + "markdownDescription": "Specifies whether the DB cluster is publicly accessible.\n Valid for Cluster Type: Multi-AZ DB clusters only\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its domain name system (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is controlled by its security group settings.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n The default behavior when ``PubliclyAccessible`` is not specified depends on whether a ``DBSubnetGroup`` is specified.\n If ``DBSubnetGroup`` isn't specified, ``PubliclyAccessible`` defaults to ``true``.\n If ``DBSubnetGroup`` is specified, ``PubliclyAccessible`` defaults to ``false`` unless the value of ``DBSubnetGroup`` is ``default``, in which case ``PubliclyAccessible`` defaults to ``true``.\n If ``PubliclyAccessible`` is true and the VPC that the ``DBSubnetGroup`` is in doesn't have an internet gateway attached to it, Amazon RDS returns an error.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" }, "ReplicationSourceIdentifier": { "description": "The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a read replica.\n Valid for: Aurora DB clusters only", diff --git a/server/schema/resources/aws-rtbfabric-link.json b/server/schema/resources/aws-rtbfabric-link.json new file mode 100644 index 00000000..43b7fceb --- /dev/null +++ b/server/schema/resources/aws-rtbfabric-link.json @@ -0,0 +1,364 @@ +{ + "typeName": "AWS::RTBFabric::Link", + "description": "Resource Type definition for AWS::RTBFabric::Link Resource Type", + "definitions": { + "LinkId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^link-[a-z0-9-]{1,25}$ \nUpdate requires: No interruption\n" + }, + "GatewayId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^rtb-gw-[a-z0-9-]{1,25}$ \nUpdate requires: No interruption\n" + }, + "ResponderErrorMaskingLoggingType": { + "type": "string", + "enum": [ + "NONE", + "METRIC", + "RESPONSE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: NONE | METRIC | RESPONSE \nUpdate requires: No interruption\n" + }, + "ResponderErrorMaskingForHttpCode": { + "type": "object", + "additionalProperties": false, + "properties": { + "HttpCode": { + "type": "string", + "maxLength": 7, + "minLength": 3, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 3 \nMaximum Length: 7 \nPattern: ^DEFAULT|4XX|5XX|\\d{3}$ \nUpdate requires: No interruption\n" + }, + "Action": { + "type": "string", + "enum": [ + "NO_BID", + "PASSTHROUGH" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: NO_BID | PASSTHROUGH \nUpdate requires: No interruption\n" + }, + "LoggingTypes": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/ResponderErrorMaskingLoggingType" + }, + "minItems": 1, + "maxItems": 2, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" + }, + "ResponseLoggingPercentage": { + "type": "number", + "minimum": 0, + "maximum": 100, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "HttpCode", + "Action", + "LoggingTypes" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LinkAttributes": { + "type": "object", + "additionalProperties": false, + "properties": { + "ResponderErrorMasking": { + "type": "array", + "insertionOrder": false, + "uniqueItems": false, + "items": { + "$ref": "#/definitions/ResponderErrorMaskingForHttpCode" + }, + "minItems": 1, + "maxItems": 200, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "CustomerProvidedId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + } + }, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "LinkStatus": { + "type": "string", + "enum": [ + "PENDING_CREATION", + "PENDING_REQUEST", + "REQUESTED", + "ACCEPTED", + "ACTIVE", + "DECLINED", + "FAILED", + "PENDING_DELETION", + "DELETED", + "PENDING_UPDATE", + "PENDING_ISOLATION", + "ISOLATED", + "PENDING_RESTORATION", + "UNKNOWN_TO_SDK_VERSION" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING_CREATION | PENDING_REQUEST | REQUESTED | ACCEPTED | ACTIVE | DECLINED | FAILED | PENDING_DELETION | DELETED | PENDING_UPDATE | PENDING_ISOLATION | ISOLATED | PENDING_RESTORATION | UNKNOWN_TO_SDK_VERSION \nUpdate requires: No interruption\n" + }, + "CreatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws:rtbfabric:[a-zA-Z0-9_-]+:[0-9]{12}:gateway/[a-zA-Z0-9-]+/link/[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + }, + "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, + "markdownDescription": "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 -. \n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "HttpResponderAllowed": { + "type": "boolean", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "maxItems": 50, + "description": "Tags to assign to the Link.", + "markdownDescription": "Tags to assign to the Link.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "LinkDirection": { + "type": "string", + "enum": [ + "REQUEST", + "RESPONSE" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: REQUEST | RESPONSE \nUpdate requires: No interruption\n" + }, + "LinkLogSettings": { + "type": "object", + "additionalProperties": false, + "properties": { + "ApplicationLogs": { + "type": "object", + "additionalProperties": false, + "properties": { + "LinkApplicationLogSampling": { + "type": "object", + "additionalProperties": false, + "properties": { + "ErrorLog": { + "type": "number", + "minimum": 0.0, + "maximum": 100.0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + }, + "FilterLog": { + "type": "number", + "minimum": 0.0, + "maximum": 100.0, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ErrorLog", + "FilterLog" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + } + }, + "required": [ + "LinkApplicationLogSampling" + ], + "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" + } + }, + "required": [ + "ApplicationLogs" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Tags": { + "$ref": "#/definitions/Tags" + }, + "LinkId": { + "$ref": "#/definitions/LinkId" + }, + "GatewayId": { + "$ref": "#/definitions/GatewayId" + }, + "PeerGatewayId": { + "$ref": "#/definitions/GatewayId" + }, + "LinkAttributes": { + "$ref": "#/definitions/LinkAttributes" + }, + "LinkStatus": { + "$ref": "#/definitions/LinkStatus" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "Arn": { + "$ref": "#/definitions/Arn" + }, + "HttpResponderAllowed": { + "$ref": "#/definitions/HttpResponderAllowed" + }, + "LinkDirection": { + "$ref": "#/definitions/LinkDirection" + }, + "LinkLogSettings": { + "$ref": "#/definitions/LinkLogSettings" + } + }, + "required": [ + "GatewayId", + "PeerGatewayId", + "LinkLogSettings" + ], + "readOnlyProperties": [ + "/properties/LinkId", + "/properties/Arn", + "/properties/LinkStatus", + "/properties/CreatedTimestamp", + "/properties/UpdatedTimestamp", + "/properties/LinkDirection" + ], + "conditionalCreateOnlyProperties": [ + "/properties/GatewayId", + "/properties/PeerGatewayId", + "/properties/LinkAttributes", + "/properties/HttpResponderAllowed" + ], + "writeOnlyProperties": [ + "/properties/HttpResponderAllowed" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/GatewayId", + "/properties/LinkId" + ] + ], + "handlers": { + "create": { + "permissions": [ + "rtbfabric:CreateLink", + "rtbfabric:GetLink", + "rtbfabric:TagResource", + "rtbfabric:ListTagsForResource", + "iam:CreateServiceLinkedRole" + ] + }, + "read": { + "permissions": [ + "rtbfabric:GetLink", + "rtbfabric:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "rtbfabric:UpdateLink", + "rtbfabric:GetLink", + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "rtbfabric:DeleteLink", + "rtbfabric:GetLink" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "GatewayId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^rtb-gw-[a-z0-9-]{1,25}$ \nUpdate requires: No interruption\n" + } + }, + "required": [ + "GatewayId" + ] + }, + "permissions": [ + "rtbfabric:ListLinks" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ] + }, + "additionalProperties": false, + "attributes": { + "LinkId": { + "$ref": "#/definitions/LinkId" + }, + "LinkStatus": { + "$ref": "#/definitions/LinkStatus" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "Arn": { + "$ref": "#/definitions/Arn" + }, + "LinkDirection": { + "$ref": "#/definitions/LinkDirection" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-rtbfabric-requestergateway.json b/server/schema/resources/aws-rtbfabric-requestergateway.json new file mode 100644 index 00000000..1ed96ee9 --- /dev/null +++ b/server/schema/resources/aws-rtbfabric-requestergateway.json @@ -0,0 +1,291 @@ +{ + "typeName": "AWS::RTBFabric::RequesterGateway", + "description": "Resource Type definition for AWS::RTBFabric::RequesterGateway Resource Type.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "Description": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[A-Za-z0-9 ]+$ \nUpdate requires: No interruption\n" + }, + "VpcId": { + "type": "string", + "maxLength": 50, + "minLength": 5, + "relationshipRef": { + "typeName": "AWS::EC2::VPC", + "propertyPath": "/properties/VpcId" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 5 \nMaximum Length: 50 \nUpdate requires: No interruption\n" + }, + "SubnetIds": { + "type": "array", + "description": "The ID of one or more subnets in order to create a requester gateway.", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "relationshipRef": { + "typeName": "AWS::EC2::Subnet", + "propertyPath": "/properties/SubnetId" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "markdownDescription": "The ID of one or more subnets in order to create a requester gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SecurityGroupIds": { + "type": "array", + "description": "The ID of one or more security groups in order to create a requester gateway.", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string", + "anyOf": [ + { + "relationshipRef": { + "typeName": "AWS::EC2::SecurityGroup", + "propertyPath": "/properties/GroupId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::EC2::SecurityGroup", + "propertyPath": "/properties/Id" + } + } + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "minItems": 1, + "markdownDescription": "The ID of one or more security groups in order to create a requester gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "GatewayId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(rtbapp-[a-z0-9-]{1,25}|rtb-gw-[a-z0-9-]{1,25})$ \nUpdate requires: No interruption\n" + }, + "DomainName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)(?:\\.(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?))+$ \nUpdate requires: No interruption\n" + }, + "RequesterGatewayStatus": { + "type": "string", + "enum": [ + "PENDING_CREATION", + "ACTIVE", + "PENDING_DELETION", + "DELETED", + "ERROR", + "PENDING_UPDATE", + "ISOLATED", + "PENDING_ISOLATION", + "PENDING_RESTORATION" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING_CREATION | ACTIVE | PENDING_DELETION | DELETED | ERROR | PENDING_UPDATE | ISOLATED | PENDING_ISOLATION | PENDING_RESTORATION \nUpdate requires: No interruption\n" + }, + "CreatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "UpdatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws:(rtbfabric|rtbfabric):[a-zA-Z0-9_-]+:[0-9]{12}:gateway/[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "minLength": 1, + "maxLength": 128, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nPattern: ^(resourceArn|internalId|(?!aws:)[a-zA-Z0-9+\\-=._:/@]+)$ \nUpdate requires: No interruption\n" + }, + "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": 1600, + "markdownDescription": "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 -. \n\n---\n\nRequired: No \nType: String \nMaximum Length: 1600 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "maxItems": 50, + "description": "Tags to assign to the Requester Gateway.", + "markdownDescription": "Tags to assign to the Requester Gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "ActiveLinksCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "TotalLinksCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "properties": { + "Tags": { + "$ref": "#/definitions/Tags" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "VpcId": { + "$ref": "#/definitions/VpcId" + }, + "SubnetIds": { + "$ref": "#/definitions/SubnetIds" + }, + "SecurityGroupIds": { + "$ref": "#/definitions/SecurityGroupIds" + }, + "GatewayId": { + "$ref": "#/definitions/GatewayId" + }, + "DomainName": { + "$ref": "#/definitions/DomainName" + }, + "RequesterGatewayStatus": { + "$ref": "#/definitions/RequesterGatewayStatus" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "Arn": { + "$ref": "#/definitions/Arn" + }, + "ActiveLinksCount": { + "$ref": "#/definitions/ActiveLinksCount" + }, + "TotalLinksCount": { + "$ref": "#/definitions/TotalLinksCount" + } + }, + "required": [ + "VpcId", + "SubnetIds", + "SecurityGroupIds" + ], + "readOnlyProperties": [ + "/properties/GatewayId", + "/properties/Arn", + "/properties/RequesterGatewayStatus", + "/properties/DomainName", + "/properties/CreatedTimestamp", + "/properties/UpdatedTimestamp", + "/properties/ActiveLinksCount", + "/properties/TotalLinksCount" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Description", + "/properties/VpcId", + "/properties/SubnetIds", + "/properties/SecurityGroupIds" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/GatewayId" + ] + ], + "handlers": { + "create": { + "permissions": [ + "rtbfabric:CreateRequesterGateway", + "rtbfabric:GetRequesterGateway", + "rtbfabric:TagResource", + "rtbfabric:ListTagsForResource", + "iam:CreateServiceLinkedRole" + ] + }, + "read": { + "permissions": [ + "rtbfabric:GetRequesterGateway", + "rtbfabric:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "rtbfabric:GetRequesterGateway", + "rtbfabric:UpdateRequesterGateway", + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "rtbfabric:DeleteRequesterGateway", + "rtbfabric:GetRequesterGateway" + ] + }, + "list": { + "permissions": [ + "rtbfabric:ListRequesterGateways" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ] + }, + "additionalProperties": false, + "attributes": { + "GatewayId": { + "$ref": "#/definitions/GatewayId" + }, + "DomainName": { + "$ref": "#/definitions/DomainName" + }, + "RequesterGatewayStatus": { + "$ref": "#/definitions/RequesterGatewayStatus" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "Arn": { + "$ref": "#/definitions/Arn" + }, + "ActiveLinksCount": { + "$ref": "#/definitions/ActiveLinksCount" + }, + "TotalLinksCount": { + "$ref": "#/definitions/TotalLinksCount" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-rtbfabric-respondergateway.json b/server/schema/resources/aws-rtbfabric-respondergateway.json new file mode 100644 index 00000000..b934332d --- /dev/null +++ b/server/schema/resources/aws-rtbfabric-respondergateway.json @@ -0,0 +1,437 @@ +{ + "tagging": { + "permissions": [ + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false + }, + "handlers": { + "read": { + "permissions": [ + "rtbfabric:GetResponderGateway", + "rtbfabric:ListTagsForResource" + ] + }, + "create": { + "permissions": [ + "rtbfabric:CreateResponderGateway", + "rtbfabric:GetResponderGateway", + "rtbfabric:TagResource", + "rtbfabric:ListTagsForResource", + "iam:CreateServiceLinkedRole" + ] + }, + "update": { + "permissions": [ + "rtbfabric:GetResponderGateway", + "rtbfabric:TagResource", + "rtbfabric:UntagResource", + "rtbfabric:ListTagsForResource" + ] + }, + "list": { + "permissions": [ + "rtbfabric:ListResponderGateways" + ] + }, + "delete": { + "permissions": [ + "rtbfabric:DeleteResponderGateway", + "rtbfabric:GetResponderGateway" + ] + } + }, + "typeName": "AWS::RTBFabric::ResponderGateway", + "readOnlyProperties": [ + "/properties/GatewayId", + "/properties/Arn", + "/properties/ResponderGatewayStatus", + "/properties/CreatedTimestamp", + "/properties/UpdatedTimestamp" + ], + "description": "Resource Type definition for AWS::RTBFabric::ResponderGateway Resource Type", + "additionalIdentifiers": [ + [ + "/properties/GatewayId" + ] + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Arn" + ], + "definitions": { + "UpdatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "TrustStoreConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "CertificateAuthorityCertificates": { + "$ref": "#/definitions/CertificateAuthorityCertificates" + } + }, + "required": [ + "CertificateAuthorityCertificates" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Description": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^[A-Za-z0-9 ]+$ \nUpdate requires: No interruption\n" + }, + "CreatedTimestamp": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "DomainName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)(?:\\.(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?))+$ \nUpdate requires: No interruption\n" + }, + "ActiveLinksCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "AutoScalingGroupsConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "AutoScalingGroupNameList": { + "$ref": "#/definitions/AutoScalingGroupNameList" + }, + "RoleArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "AutoScalingGroupNameList", + "RoleArn" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Port": { + "maximum": 65535, + "type": "integer", + "minimum": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "TotalLinksCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, + "GatewayId": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nPattern: ^(rtbapp-[a-z0-9-]{1,25}|rtb-gw-[a-z0-9-]{1,25})$ \nUpdate requires: No interruption\n" + }, + "ManagedEndpointConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "AutoScalingGroupsConfiguration": { + "$ref": "#/definitions/AutoScalingGroupsConfiguration" + } + }, + "required": [ + "AutoScalingGroupsConfiguration" + ] + }, + { + "additionalProperties": false, + "properties": { + "EksEndpointsConfiguration": { + "$ref": "#/definitions/EksEndpointsConfiguration" + } + }, + "required": [ + "EksEndpointsConfiguration" + ] + } + ], + "type": "object", + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "SubnetIds": { + "minItems": 1, + "uniqueItems": true, + "description": "The ID of one or more subnets in order to create a gateway.", + "insertionOrder": false, + "type": "array", + "items": { + "relationshipRef": { + "typeName": "AWS::EC2::Subnet", + "propertyPath": "/properties/SubnetId" + }, + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The ID of one or more subnets in order to create a gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "SecurityGroupIds": { + "minItems": 1, + "uniqueItems": true, + "description": "The ID of one or more security groups in order to create a gateway.", + "insertionOrder": false, + "type": "array", + "items": { + "anyOf": [ + { + "relationshipRef": { + "typeName": "AWS::EC2::SecurityGroup", + "propertyPath": "/properties/GroupId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::EC2::SecurityGroup", + "propertyPath": "/properties/Id" + } + } + ], + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "The ID of one or more security groups in order to create a gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Base64EncodedCertificateChain": { + "minLength": 1, + "type": "string", + "maxLength": 2097152, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 2097152 \nUpdate requires: No interruption\n" + }, + "EksEndpointsConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "ClusterApiServerCaCertificateChain": { + "minLength": 1, + "type": "string", + "maxLength": 2097152, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 2097152 \nUpdate requires: No interruption\n" + }, + "EndpointsResourceName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9]$ \nUpdate requires: No interruption\n" + }, + "ClusterApiServerEndpointUri": { + "minLength": 0, + "type": "string", + "maxLength": 255, + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 255 \nPattern: ^(https|http)://(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)(?:\\.(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?))+$ \nUpdate requires: No interruption\n" + }, + "ClusterName": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9]$ \nUpdate requires: No interruption\n" + }, + "EndpointsResourceNamespace": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9]$ \nUpdate requires: No interruption\n" + }, + "RoleArn": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + } + }, + "required": [ + "EndpointsResourceName", + "EndpointsResourceNamespace", + "ClusterApiServerEndpointUri", + "ClusterApiServerCaCertificateChain", + "ClusterName", + "RoleArn" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "VpcId": { + "relationshipRef": { + "typeName": "AWS::EC2::VPC", + "propertyPath": "/properties/VpcId" + }, + "minLength": 5, + "type": "string", + "maxLength": 50, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 5 \nMaximum Length: 50 \nUpdate requires: No interruption\n" + }, + "ResponderGatewayStatus": { + "type": "string", + "enum": [ + "PENDING_CREATION", + "ACTIVE", + "PENDING_DELETION", + "DELETED", + "ERROR", + "PENDING_UPDATE", + "ISOLATED", + "PENDING_ISOLATION", + "PENDING_RESTORATION" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: PENDING_CREATION | ACTIVE | PENDING_DELETION | DELETED | ERROR | PENDING_UPDATE | ISOLATED | PENDING_ISOLATION | PENDING_RESTORATION \nUpdate requires: No interruption\n" + }, + "CertificateAuthorityCertificates": { + "minItems": 0, + "maxItems": 1, + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Base64EncodedCertificateChain" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "AutoScalingGroupNameList": { + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "minLength": 0, + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "type": "string", + "maxLength": 256, + "markdownDescription": "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 -. \n\n---\n\nRequired: No \nType: String \nMaximum Length: 256 \nUpdate requires: No interruption\n" + }, + "Key": { + "minLength": 1, + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "type": "string", + "maxLength": 128, + "markdownDescription": "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 -. \n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 128 \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Key" + ], + "markdownDescription": "A key-value pair to associate with a resource.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "Arn": { + "minLength": 20, + "type": "string", + "maxLength": 2048, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:aws:(rtbfabric|rtbfabric):[a-zA-Z0-9_-]+:[0-9]{12}:gateway/[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\n" + }, + "Protocol": { + "type": "string", + "enum": [ + "HTTP", + "HTTPS" + ], + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: HTTP | HTTPS \nUpdate requires: No interruption\n" + }, + "Tags": { + "minItems": 0, + "maxItems": 50, + "uniqueItems": true, + "description": "Tags to assign to the Responder Gateway.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags to assign to the Responder Gateway.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "InboundLinksCount": { + "type": "integer", + "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "properties": { + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "TrustStoreConfiguration": { + "$ref": "#/definitions/TrustStoreConfiguration" + }, + "Description": { + "$ref": "#/definitions/Description" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "DomainName": { + "$ref": "#/definitions/DomainName" + }, + "Port": { + "$ref": "#/definitions/Port" + }, + "GatewayId": { + "$ref": "#/definitions/GatewayId" + }, + "ManagedEndpointConfiguration": { + "$ref": "#/definitions/ManagedEndpointConfiguration" + }, + "SubnetIds": { + "$ref": "#/definitions/SubnetIds" + }, + "SecurityGroupIds": { + "$ref": "#/definitions/SecurityGroupIds" + }, + "VpcId": { + "$ref": "#/definitions/VpcId" + }, + "ResponderGatewayStatus": { + "$ref": "#/definitions/ResponderGatewayStatus" + }, + "Arn": { + "$ref": "#/definitions/Arn" + }, + "Protocol": { + "$ref": "#/definitions/Protocol" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "required": [ + "VpcId", + "SubnetIds", + "SecurityGroupIds", + "Port", + "Protocol" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Description", + "/properties/VpcId", + "/properties/SubnetIds", + "/properties/SecurityGroupIds", + "/properties/Port", + "/properties/Protocol", + "/properties/DomainName", + "/properties/TrustStoreConfiguration", + "/properties/ManagedEndpointConfiguration" + ], + "attributes": { + "UpdatedTimestamp": { + "$ref": "#/definitions/UpdatedTimestamp" + }, + "CreatedTimestamp": { + "$ref": "#/definitions/CreatedTimestamp" + }, + "GatewayId": { + "$ref": "#/definitions/GatewayId" + }, + "ResponderGatewayStatus": { + "$ref": "#/definitions/ResponderGatewayStatus" + }, + "Arn": { + "$ref": "#/definitions/Arn" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-s3-bucket.json b/server/schema/resources/aws-s3-bucket.json index e5932bc4..8f11271c 100644 --- a/server/schema/resources/aws-s3-bucket.json +++ b/server/schema/resources/aws-s3-bucket.json @@ -59,14 +59,14 @@ "markdownDescription": "Defines how Amazon S3 handles Intelligent-Tiering storage.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "InventoryConfigurations": { - "description": "Specifies the inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.", + "description": "Specifies the S3 Inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.", "items": { "$ref": "#/definitions/InventoryConfiguration" }, "type": "array", "uniqueItems": true, "insertionOrder": true, - "markdownDescription": "Specifies the inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + "markdownDescription": "Specifies the S3 Inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" }, "LifecycleConfiguration": { "$ref": "#/definitions/LifecycleConfiguration", @@ -95,8 +95,8 @@ }, "MetadataConfiguration": { "$ref": "#/definitions/MetadataConfiguration", - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\nRead only property: Yes" + "description": "The S3 Metadata configuration for a general purpose bucket.", + "markdownDescription": "The S3 Metadata configuration for a general purpose bucket.\n\n---\n\nRequired: No \nType: \nUpdate requires: Replacement\nRead only property: Yes" }, "NotificationConfiguration": { "$ref": "#/definitions/NotificationConfiguration", @@ -105,8 +105,8 @@ }, "ObjectLockConfiguration": { "$ref": "#/definitions/ObjectLockConfiguration", - "description": "This operation is not supported for directory buckets.\n Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). \n + The ``DefaultRetention`` settings require both a mode and a period.\n + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.\n + You can enable Object Lock for new or existing buckets. For more information, see [Configuring Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html).", - "markdownDescription": "This operation is not supported for directory buckets.\n Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). \n + The ``DefaultRetention`` settings require both a mode and a period.\n + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.\n + You can enable Object Lock for new or existing buckets. For more information, see [Configuring Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html).\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "description": "This operation is not supported for directory buckets.\n Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). \n + The ``DefaultRetention`` settings require both a mode and a period.\n + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.\n + You can enable Object Lock for new or existing buckets. For more information, see [Configuring Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html).\n \n You must URL encode any signed header values that contain spaces. For example, if your header value is ``my file.txt``, containing two spaces after ``my``, you must URL encode this value to ``my%20%20file.txt``.", + "markdownDescription": "This operation is not supported for directory buckets.\n Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). \n + The ``DefaultRetention`` settings require both a mode and a period.\n + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.\n + You can enable Object Lock for new or existing buckets. For more information, see [Configuring Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html).\n \n You must URL encode any signed header values that contain spaces. For example, if your header value is ``my file.txt``, containing two spaces after ``my``, you must URL encode this value to ``my%20%20file.txt``.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "ObjectLockEnabled": { "description": "Indicates whether this bucket has an Object Lock configuration enabled. Enable ``ObjectLockEnabled`` when you apply ``ObjectLockConfiguration`` to a bucket.", @@ -661,8 +661,8 @@ "IncludedObjectVersions", "ScheduleFrequency" ], - "description": "Specifies the inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.", - "markdownDescription": "Specifies the inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "Specifies the S3 Inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.", + "markdownDescription": "Specifies the S3 Inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "LifecycleConfiguration": { "type": "object", @@ -1495,7 +1495,7 @@ "markdownDescription": "A container specifying S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a ``Metrics`` block.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "StorageClass": { - "description": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. \n For valid values, see the ``StorageClass`` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*.", + "description": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. \n For valid values, see the ``StorageClass`` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*.\n ``FSX_OPENZFS`` is not an accepted value when replicating objects.", "type": "string", "enum": [ "DEEP_ARCHIVE", @@ -1507,7 +1507,7 @@ "STANDARD", "STANDARD_IA" ], - "markdownDescription": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. \n For valid values, see the ``StorageClass`` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | REDUCED_REDUNDANCY | STANDARD | STANDARD_IA \nUpdate requires: No interruption\n" + "markdownDescription": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. \n For valid values, see the ``StorageClass`` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*.\n ``FSX_OPENZFS`` is not an accepted value when replicating objects.\n\n---\n\nRequired: No \nType: String \nAllowed Values: DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | REDUCED_REDUNDANCY | STANDARD | STANDARD_IA \nUpdate requires: No interruption\n" } }, "required": [ @@ -1916,8 +1916,8 @@ "required": [ "S3TablesDestination" ], - "description": "The metadata table configuration of an S3 general purpose bucket. For more information, see [Accelerating data discovery with S3 Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) and [Setting up permissions for configuring metadata tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html).", - "markdownDescription": "The metadata table configuration of an S3 general purpose bucket. For more information, see [Accelerating data discovery with S3 Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) and [Setting up permissions for configuring metadata tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html).\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" + "description": "We recommend that you create your S3 Metadata configurations by using the V2 [MetadataConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-s3-bucket-metadataconfiguration.html) resource type. We no longer recommend using the V1 ``MetadataTableConfiguration`` resource type. \n If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using the [MetadataConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-s3-bucket-metadataconfiguration.html) resource type so that you can expire journal table records and create a live inventory table.\n Creates a V1 S3 Metadata configuration for a general purpose bucket. For more information, see [Accelerating data discovery with S3 Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) in the *Amazon S3 User Guide*.", + "markdownDescription": "We recommend that you create your S3 Metadata configurations by using the V2 [MetadataConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-s3-bucket-metadataconfiguration.html) resource type. We no longer recommend using the V1 ``MetadataTableConfiguration`` resource type. \n If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using the [MetadataConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-s3-bucket-metadataconfiguration.html) resource type so that you can expire journal table records and create a live inventory table.\n Creates a V1 S3 Metadata configuration for a general purpose bucket. For more information, see [Accelerating data discovery with S3 Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) in the *Amazon S3 User Guide*.\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" }, "S3TablesDestination": { "type": "object", @@ -1948,8 +1948,8 @@ "TableBucketArn", "TableName" ], - "description": "The destination information for the metadata table configuration. The destination table bucket must be in the same Region and AWS-account as the general purpose bucket. The specified metadata table name must be unique within the ``aws_s3_metadata`` namespace in the destination table bucket.", - "markdownDescription": "The destination information for the metadata table configuration. The destination table bucket must be in the same Region and AWS-account as the general purpose bucket. The specified metadata table name must be unique within the ``aws_s3_metadata`` namespace in the destination table bucket.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "The destination information for a V1 S3 Metadata configuration. The destination table bucket must be in the same Region and AWS-account as the general purpose bucket. The specified metadata table name must be unique within the ``aws_s3_metadata`` namespace in the destination table bucket.", + "markdownDescription": "The destination information for a V1 S3 Metadata configuration. The destination table bucket must be in the same Region and AWS-account as the general purpose bucket. The specified metadata table name must be unique within the ``aws_s3_metadata`` namespace in the destination table bucket.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "RecordExpiration": { "type": "object", @@ -1961,20 +1961,20 @@ "ENABLED", "DISABLED" ], - "description": "Specifies whether record expiration is enabled or disabled.", - "markdownDescription": "Specifies whether record expiration is enabled or disabled.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + "description": "Specifies whether journal table record expiration is enabled or disabled.", + "markdownDescription": "Specifies whether journal table record expiration is enabled or disabled.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" }, "Days": { "type": "integer", - "description": "The number of days after which records expire. Required if Expiration is ENABLED.", - "markdownDescription": "The number of days after which records expire. Required if Expiration is ENABLED.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + "description": "If you enable journal table record expiration, you can set the number of days to retain your journal table records. Journal table records must be retained for a minimum of 7 days. To set this value, specify any whole number from ``7`` to ``2147483647``. For example, to retain your journal table records for one year, set this value to ``365``.", + "markdownDescription": "If you enable journal table record expiration, you can set the number of days to retain your journal table records. Journal table records must be retained for a minimum of 7 days. To set this value, specify any whole number from ``7`` to ``2147483647``. For example, to retain your journal table records for one year, set this value to ``365``.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" } }, "required": [ "Expiration" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "The journal table record expiration settings for a journal table in an S3 Metadata configuration.", + "markdownDescription": "The journal table record expiration settings for a journal table in an S3 Metadata configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "MetadataTableEncryptionConfiguration": { "type": "object", @@ -1986,20 +1986,20 @@ "aws:kms", "AES256" ], - "description": "Specifies the server-side encryption algorithm to use for encrypting tables.", - "markdownDescription": "Specifies the server-side encryption algorithm to use for encrypting tables.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: aws:kms | AES256 \nUpdate requires: No interruption\n" + "description": "The encryption type specified for a metadata table. To specify server-side encryption with KMSlong (KMS) keys (SSE-KMS), use the ``aws:kms`` value. To specify server-side encryption with Amazon S3 managed keys (SSE-S3), use the ``AES256`` value.", + "markdownDescription": "The encryption type specified for a metadata table. To specify server-side encryption with KMSlong (KMS) keys (SSE-KMS), use the ``aws:kms`` value. To specify server-side encryption with Amazon S3 managed keys (SSE-S3), use the ``AES256`` value.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: aws:kms | AES256 \nUpdate requires: No interruption\n" }, "KmsKeyArn": { "type": "string", - "description": "The ARN of the KMS key. Required if SseAlgorithm is aws:kms.", - "markdownDescription": "The ARN of the KMS key. Required if SseAlgorithm is aws:kms.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "If server-side encryption with KMSlong (KMS) keys (SSE-KMS) is specified, you must also specify the KMS key Amazon Resource Name (ARN). You must specify a customer-managed KMS key that's located in the same Region as the general purpose bucket that corresponds to the metadata table configuration.", + "markdownDescription": "If server-side encryption with KMSlong (KMS) keys (SSE-KMS) is specified, you must also specify the KMS key Amazon Resource Name (ARN). You must specify a customer-managed KMS key that's located in the same Region as the general purpose bucket that corresponds to the metadata table configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "SseAlgorithm" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "The encryption settings for an S3 Metadata journal table or inventory table configuration.", + "markdownDescription": "The encryption settings for an S3 Metadata journal table or inventory table configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "MetadataDestination": { "type": "object", @@ -2011,25 +2011,25 @@ "aws", "customer" ], - "description": "The type of the table bucket.", - "markdownDescription": "The type of the table bucket.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: aws | customer \nUpdate requires: No interruption\n" + "description": "The type of the table bucket where the metadata configuration is stored. The ``aws`` value indicates an AWS managed table bucket, and the ``customer`` value indicates a customer-managed table bucket. V2 metadata configurations are stored in AWS managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.", + "markdownDescription": "The type of the table bucket where the metadata configuration is stored. The ``aws`` value indicates an AWS managed table bucket, and the ``customer`` value indicates a customer-managed table bucket. V2 metadata configurations are stored in AWS managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: aws | customer \nUpdate requires: No interruption\n" }, "TableBucketArn": { "type": "string", - "description": "The ARN of the table bucket.", - "markdownDescription": "The ARN of the table bucket.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.", + "markdownDescription": "The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "TableNamespace": { "type": "string", - "description": "The namespace of the table.", - "markdownDescription": "The namespace of the table.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The namespace in the table bucket where the metadata tables for a metadata configuration are stored.", + "markdownDescription": "The namespace in the table bucket where the metadata tables for a metadata configuration are stored.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" } }, "required": [ "TableBucketType" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "The destination information for the S3 Metadata configuration.", + "markdownDescription": "The destination information for the S3 Metadata configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "JournalTableConfiguration": { "type": "object", @@ -2042,11 +2042,13 @@ }, "TableArn": { "type": "string", - "description": "The ARN of the journal table.", - "markdownDescription": "The ARN of the journal table.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The Amazon Resource Name (ARN) for the journal table.", + "markdownDescription": "The Amazon Resource Name (ARN) for the journal table.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "RecordExpiration": { - "$ref": "#/definitions/RecordExpiration" + "$ref": "#/definitions/RecordExpiration", + "description": "The journal table record expiration settings for the journal table.", + "markdownDescription": "The journal table record expiration settings for the journal table.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" }, "EncryptionConfiguration": { "$ref": "#/definitions/MetadataTableEncryptionConfiguration", @@ -2057,8 +2059,8 @@ "required": [ "RecordExpiration" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "The journal table configuration for an S3 Metadata configuration.", + "markdownDescription": "The journal table configuration for an S3 Metadata configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "InventoryTableConfiguration": { "type": "object", @@ -2071,8 +2073,8 @@ }, "TableArn": { "type": "string", - "description": "The ARN of the inventory table.", - "markdownDescription": "The ARN of the inventory table.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The Amazon Resource Name (ARN) for the inventory table.", + "markdownDescription": "The Amazon Resource Name (ARN) for the inventory table.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "ConfigurationState": { "type": "string", @@ -2080,8 +2082,8 @@ "ENABLED", "DISABLED" ], - "description": "Specifies whether inventory table configuration is enabled or disabled.", - "markdownDescription": "Specifies whether inventory table configuration is enabled or disabled.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" + "description": "The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.", + "markdownDescription": "The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: ENABLED | DISABLED \nUpdate requires: No interruption\n" }, "EncryptionConfiguration": { "$ref": "#/definitions/MetadataTableEncryptionConfiguration", @@ -2092,34 +2094,34 @@ "required": [ "ConfigurationState" ], - "description": "", - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + "description": "The inventory table configuration for an S3 Metadata configuration.", + "markdownDescription": "The inventory table configuration for an S3 Metadata configuration.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, "MetadataConfiguration": { "type": "object", "additionalProperties": false, - "description": "", + "description": "Creates a V2 S3 Metadata configuration of a general purpose bucket. For more information, see [Accelerating data discovery with S3 Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) in the *Amazon S3 User Guide*.", "properties": { "Destination": { "$ref": "#/definitions/MetadataDestination", - "description": "The destination information for the metadata configuration.", - "markdownDescription": "The destination information for the metadata configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "description": "The destination information for the S3 Metadata configuration.", + "markdownDescription": "The destination information for the S3 Metadata configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" }, "JournalTableConfiguration": { "$ref": "#/definitions/JournalTableConfiguration", - "description": "The configuration for the journal table.", - "markdownDescription": "The configuration for the journal table.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" + "description": "The journal table configuration for a metadata configuration.", + "markdownDescription": "The journal table configuration for a metadata configuration.\n\n---\n\nRequired: Yes \nType: \nUpdate requires: No interruption\n" }, "InventoryTableConfiguration": { "$ref": "#/definitions/InventoryTableConfiguration", - "description": "The configuration for the inventory table.", - "markdownDescription": "The configuration for the inventory table.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" + "description": "The inventory table configuration for a metadata configuration.", + "markdownDescription": "The inventory table configuration for a metadata configuration.\n\n---\n\nRequired: No \nType: \nUpdate requires: No interruption\n" } }, "required": [ "JournalTableConfiguration" ], - "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\nRead only property: Yes" + "markdownDescription": "Creates a V2 S3 Metadata configuration of a general purpose bucket. For more information, see [Accelerating data discovery with S3 Metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html) in the *Amazon S3 User Guide*.\n\n---\n\nRequired: No \nUpdate requires: Replacement\nRead only property: Yes" } }, "tagging": { diff --git a/server/schema/resources/aws-sagemaker-app.json b/server/schema/resources/aws-sagemaker-app.json index a9e48e25..89be7bc3 100644 --- a/server/schema/resources/aws-sagemaker-app.json +++ b/server/schema/resources/aws-sagemaker-app.json @@ -95,6 +95,14 @@ "ml.m5.12xlarge", "ml.m5.16xlarge", "ml.m5.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", "ml.c5.large", "ml.c5.xlarge", "ml.c5.2xlarge", @@ -106,6 +114,7 @@ "ml.p3.2xlarge", "ml.p3.8xlarge", "ml.p3.16xlarge", + "ml.p3dn.24xlarge", "ml.g4dn.xlarge", "ml.g4dn.2xlarge", "ml.g4dn.4xlarge", @@ -120,15 +129,6 @@ "ml.r5.12xlarge", "ml.r5.16xlarge", "ml.r5.24xlarge", - "ml.p3dn.24xlarge", - "ml.m5d.large", - "ml.m5d.xlarge", - "ml.m5d.2xlarge", - "ml.m5d.4xlarge", - "ml.m5d.8xlarge", - "ml.m5d.12xlarge", - "ml.m5d.16xlarge", - "ml.m5d.24xlarge", "ml.g5.xlarge", "ml.g5.2xlarge", "ml.g5.4xlarge", @@ -137,14 +137,114 @@ "ml.g5.16xlarge", "ml.g5.24xlarge", "ml.g5.48xlarge", + "ml.g6.xlarge", + "ml.g6.2xlarge", + "ml.g6.4xlarge", + "ml.g6.8xlarge", + "ml.g6.12xlarge", + "ml.g6.16xlarge", + "ml.g6.24xlarge", + "ml.g6.48xlarge", + "ml.g6e.xlarge", + "ml.g6e.2xlarge", + "ml.g6e.4xlarge", + "ml.g6e.8xlarge", + "ml.g6e.12xlarge", + "ml.g6e.16xlarge", + "ml.g6e.24xlarge", + "ml.g6e.48xlarge", + "ml.geospatial.interactive", "ml.p4d.24xlarge", "ml.p4de.24xlarge", - "ml.geospatial.interactive", "ml.trn1.2xlarge", "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" + "ml.trn1n.32xlarge", + "ml.p5.48xlarge", + "ml.p5e.48xlarge", + "ml.p5en.48xlarge", + "ml.m6i.large", + "ml.m6i.xlarge", + "ml.m6i.2xlarge", + "ml.m6i.4xlarge", + "ml.m6i.8xlarge", + "ml.m6i.12xlarge", + "ml.m6i.16xlarge", + "ml.m6i.24xlarge", + "ml.m6i.32xlarge", + "ml.m7i.large", + "ml.m7i.xlarge", + "ml.m7i.2xlarge", + "ml.m7i.4xlarge", + "ml.m7i.8xlarge", + "ml.m7i.12xlarge", + "ml.m7i.16xlarge", + "ml.m7i.24xlarge", + "ml.m7i.48xlarge", + "ml.c6i.large", + "ml.c6i.xlarge", + "ml.c6i.2xlarge", + "ml.c6i.4xlarge", + "ml.c6i.8xlarge", + "ml.c6i.12xlarge", + "ml.c6i.16xlarge", + "ml.c6i.24xlarge", + "ml.c6i.32xlarge", + "ml.c7i.large", + "ml.c7i.xlarge", + "ml.c7i.2xlarge", + "ml.c7i.4xlarge", + "ml.c7i.8xlarge", + "ml.c7i.12xlarge", + "ml.c7i.16xlarge", + "ml.c7i.24xlarge", + "ml.c7i.48xlarge", + "ml.r6i.large", + "ml.r6i.xlarge", + "ml.r6i.2xlarge", + "ml.r6i.4xlarge", + "ml.r6i.8xlarge", + "ml.r6i.12xlarge", + "ml.r6i.16xlarge", + "ml.r6i.24xlarge", + "ml.r6i.32xlarge", + "ml.r7i.large", + "ml.r7i.xlarge", + "ml.r7i.2xlarge", + "ml.r7i.4xlarge", + "ml.r7i.8xlarge", + "ml.r7i.12xlarge", + "ml.r7i.16xlarge", + "ml.r7i.24xlarge", + "ml.r7i.48xlarge", + "ml.m6id.large", + "ml.m6id.xlarge", + "ml.m6id.2xlarge", + "ml.m6id.4xlarge", + "ml.m6id.8xlarge", + "ml.m6id.12xlarge", + "ml.m6id.16xlarge", + "ml.m6id.24xlarge", + "ml.m6id.32xlarge", + "ml.c6id.large", + "ml.c6id.xlarge", + "ml.c6id.2xlarge", + "ml.c6id.4xlarge", + "ml.c6id.8xlarge", + "ml.c6id.12xlarge", + "ml.c6id.16xlarge", + "ml.c6id.24xlarge", + "ml.c6id.32xlarge", + "ml.r6id.large", + "ml.r6id.xlarge", + "ml.r6id.2xlarge", + "ml.r6id.4xlarge", + "ml.r6id.8xlarge", + "ml.r6id.12xlarge", + "ml.r6id.16xlarge", + "ml.r6id.24xlarge", + "ml.r6id.32xlarge" ], - "markdownDescription": "The instance type that the image version runs on.\n\n---\n\nRequired: No \nType: String \nAllowed Values: system | ml.t3.micro | ml.t3.small | ml.t3.medium | ml.t3.large | ml.t3.xlarge | ml.t3.2xlarge | ml.m5.large | ml.m5.xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.c5.large | ml.c5.xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3.16xlarge | ml.g4dn.xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.r5.large | ml.r5.xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.p3dn.24xlarge | ml.m5d.large | ml.m5d.xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.12xlarge | ml.g5.16xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.geospatial.interactive | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge \nUpdate requires: No interruption\n" + "markdownDescription": "The instance type that the image version runs on.\n\n---\n\nRequired: No \nType: String \nAllowed Values: system | ml.t3.micro | ml.t3.small | ml.t3.medium | ml.t3.large | ml.t3.xlarge | ml.t3.2xlarge | ml.m5.large | ml.m5.xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.m5d.large | ml.m5d.xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.c5.large | ml.c5.xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3.16xlarge | ml.p3dn.24xlarge | ml.g4dn.xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.r5.large | ml.r5.xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.12xlarge | ml.g5.16xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.g6.xlarge | ml.g6.2xlarge | ml.g6.4xlarge | ml.g6.8xlarge | ml.g6.12xlarge | ml.g6.16xlarge | ml.g6.24xlarge | ml.g6.48xlarge | ml.g6e.xlarge | ml.g6e.2xlarge | ml.g6e.4xlarge | ml.g6e.8xlarge | ml.g6e.12xlarge | ml.g6e.16xlarge | ml.g6e.24xlarge | ml.g6e.48xlarge | ml.geospatial.interactive | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge | ml.p5.48xlarge | ml.p5e.48xlarge | ml.p5en.48xlarge | ml.m6i.large | ml.m6i.xlarge | ml.m6i.2xlarge | ml.m6i.4xlarge | ml.m6i.8xlarge | ml.m6i.12xlarge | ml.m6i.16xlarge | ml.m6i.24xlarge | ml.m6i.32xlarge | ml.m7i.large | ml.m7i.xlarge | ml.m7i.2xlarge | ml.m7i.4xlarge | ml.m7i.8xlarge | ml.m7i.12xlarge | ml.m7i.16xlarge | ml.m7i.24xlarge | ml.m7i.48xlarge | ml.c6i.large | ml.c6i.xlarge | ml.c6i.2xlarge | ml.c6i.4xlarge | ml.c6i.8xlarge | ml.c6i.12xlarge | ml.c6i.16xlarge | ml.c6i.24xlarge | ml.c6i.32xlarge | ml.c7i.large | ml.c7i.xlarge | ml.c7i.2xlarge | ml.c7i.4xlarge | ml.c7i.8xlarge | ml.c7i.12xlarge | ml.c7i.16xlarge | ml.c7i.24xlarge | ml.c7i.48xlarge | ml.r6i.large | ml.r6i.xlarge | ml.r6i.2xlarge | ml.r6i.4xlarge | ml.r6i.8xlarge | ml.r6i.12xlarge | ml.r6i.16xlarge | ml.r6i.24xlarge | ml.r6i.32xlarge | ml.r7i.large | ml.r7i.xlarge | ml.r7i.2xlarge | ml.r7i.4xlarge | ml.r7i.8xlarge | ml.r7i.12xlarge | ml.r7i.16xlarge | ml.r7i.24xlarge | ml.r7i.48xlarge | ml.m6id.large | ml.m6id.xlarge | ml.m6id.2xlarge | ml.m6id.4xlarge | ml.m6id.8xlarge | ml.m6id.12xlarge | ml.m6id.16xlarge | ml.m6id.24xlarge | ml.m6id.32xlarge | ml.c6id.large | ml.c6id.xlarge | ml.c6id.2xlarge | ml.c6id.4xlarge | ml.c6id.8xlarge | ml.c6id.12xlarge | ml.c6id.16xlarge | ml.c6id.24xlarge | ml.c6id.32xlarge | ml.r6id.large | ml.r6id.xlarge | ml.r6id.2xlarge | ml.r6id.4xlarge | ml.r6id.8xlarge | ml.r6id.12xlarge | ml.r6id.16xlarge | ml.r6id.24xlarge | ml.r6id.32xlarge \nUpdate requires: No interruption\n" }, "SageMakerImageArn": { "type": "string", diff --git a/server/schema/resources/aws-sagemaker-cluster.json b/server/schema/resources/aws-sagemaker-cluster.json index 75e07f54..2d7a85d9 100644 --- a/server/schema/resources/aws-sagemaker-cluster.json +++ b/server/schema/resources/aws-sagemaker-cluster.json @@ -633,6 +633,31 @@ }, "markdownDescription": "The configuration to use when updating the AMI versions.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "TieredStorageConfig": { + "description": "Configuration for tiered storage in the SageMaker HyperPod cluster.", + "additionalProperties": false, + "type": "object", + "properties": { + "Mode": { + "description": "The mode of tiered storage.", + "type": "string", + "enum": [ + "Enable", + "Disable" + ], + "markdownDescription": "The mode of tiered storage.\n\n---\n\nRequired: Yes \nType: String \nAllowed Values: Enable | Disable \nUpdate requires: No interruption\n" + }, + "InstanceMemoryAllocationPercentage": { + "description": "The percentage of instance memory to allocate for tiered storage.", + "type": "integer", + "markdownDescription": "The percentage of instance memory to allocate for tiered storage.\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + } + }, + "required": [ + "Mode" + ], + "markdownDescription": "Configuration for tiered storage in the SageMaker HyperPod cluster.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, "FSxLustreConfig": { "description": "Configuration settings for an Amazon FSx for Lustre file system to be used with the cluster.", "additionalProperties": false, @@ -748,6 +773,9 @@ "$ref": "#/definitions/Tag" }, "markdownDescription": "Custom tags for managing the SageMaker HyperPod cluster as an AWS resource. You can add tags to your cluster in the same way you add them in other AWS services that support tagging.\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "TieredStorageConfig": { + "$ref": "#/definitions/TieredStorageConfig" } }, "attributes": { diff --git a/server/schema/resources/aws-sagemaker-domain.json b/server/schema/resources/aws-sagemaker-domain.json index 11f56f38..519f4d1a 100644 --- a/server/schema/resources/aws-sagemaker-domain.json +++ b/server/schema/resources/aws-sagemaker-domain.json @@ -336,74 +336,7 @@ "additionalProperties": false, "properties": { "InstanceType": { - "type": "string", - "description": "The instance type that the image version runs on.", - "enum": [ - "system", - "ml.t3.micro", - "ml.t3.small", - "ml.t3.medium", - "ml.t3.large", - "ml.t3.xlarge", - "ml.t3.2xlarge", - "ml.m5.large", - "ml.m5.xlarge", - "ml.m5.2xlarge", - "ml.m5.4xlarge", - "ml.m5.8xlarge", - "ml.m5.12xlarge", - "ml.m5.16xlarge", - "ml.m5.24xlarge", - "ml.c5.large", - "ml.c5.xlarge", - "ml.c5.2xlarge", - "ml.c5.4xlarge", - "ml.c5.9xlarge", - "ml.c5.12xlarge", - "ml.c5.18xlarge", - "ml.c5.24xlarge", - "ml.p3.2xlarge", - "ml.p3.8xlarge", - "ml.p3.16xlarge", - "ml.g4dn.xlarge", - "ml.g4dn.2xlarge", - "ml.g4dn.4xlarge", - "ml.g4dn.8xlarge", - "ml.g4dn.12xlarge", - "ml.g4dn.16xlarge", - "ml.r5.large", - "ml.r5.xlarge", - "ml.r5.2xlarge", - "ml.r5.4xlarge", - "ml.r5.8xlarge", - "ml.r5.12xlarge", - "ml.r5.16xlarge", - "ml.r5.24xlarge", - "ml.p3dn.24xlarge", - "ml.m5d.large", - "ml.m5d.xlarge", - "ml.m5d.2xlarge", - "ml.m5d.4xlarge", - "ml.m5d.8xlarge", - "ml.m5d.12xlarge", - "ml.m5d.16xlarge", - "ml.m5d.24xlarge", - "ml.g5.xlarge", - "ml.g5.2xlarge", - "ml.g5.4xlarge", - "ml.g5.8xlarge", - "ml.g5.12xlarge", - "ml.g5.16xlarge", - "ml.g5.24xlarge", - "ml.g5.48xlarge", - "ml.p4d.24xlarge", - "ml.p4de.24xlarge", - "ml.geospatial.interactive", - "ml.trn1.2xlarge", - "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" - ], - "markdownDescription": "The instance type that the image version runs on.\n\n---\n\nRequired: No \nType: String \nAllowed Values: system | ml.t3.micro | ml.t3.small | ml.t3.medium | ml.t3.large | ml.t3.xlarge | ml.t3.2xlarge | ml.m5.large | ml.m5.xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.c5.large | ml.c5.xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3.16xlarge | ml.g4dn.xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.r5.large | ml.r5.xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.p3dn.24xlarge | ml.m5d.large | ml.m5d.xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.12xlarge | ml.g5.16xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.geospatial.interactive | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge \nUpdate requires: No interruption\n" + "$ref": "#/definitions/AppInstanceType" }, "SageMakerImageArn": { "type": "string", @@ -901,6 +834,9 @@ }, "UnifiedStudioSettings": { "$ref": "#/definitions/UnifiedStudioSettings" + }, + "IpAddressType": { + "$ref": "#/definitions/IpAddressType" } }, "markdownDescription": "A collection of Domain settings.\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" @@ -992,6 +928,15 @@ }, "markdownDescription": "A collection of settings that apply to an Amazon SageMaker AI domain when you use it in Amazon SageMaker Unified Studio.\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" }, + "IpAddressType": { + "type": "string", + "description": "A setting to indicate if IPv6 routing should be enabled along with IPv4 or not", + "enum": [ + "IPV4", + "DUALSTACK" + ], + "markdownDescription": "A setting to indicate if IPv6 routing should be enabled along with IPv4 or not\n\n---\n\nRequired: No \nType: String \nAllowed Values: IPV4 | DUALSTACK \nUpdate requires: No interruption\n" + }, "RStudioServerProDomainSettings": { "type": "object", "description": "A collection of settings that update the current configuration for the RStudioServerPro Domain-level app.", @@ -1248,6 +1193,8 @@ "ml.trn1.32xlarge", "ml.trn1n.32xlarge", "ml.p5.48xlarge", + "ml.p5e.48xlarge", + "ml.p5en.48xlarge", "ml.m6i.large", "ml.m6i.xlarge", "ml.m6i.2xlarge", @@ -1330,7 +1277,7 @@ "ml.r6id.24xlarge", "ml.r6id.32xlarge" ], - "markdownDescription": "The instance type that the image version runs on.\n\n---\n\nRequired: No \nType: String \nAllowed Values: system | ml.t3.micro | ml.t3.small | ml.t3.medium | ml.t3.large | ml.t3.xlarge | ml.t3.2xlarge | ml.m5.large | ml.m5.xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.m5d.large | ml.m5d.xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.c5.large | ml.c5.xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3.16xlarge | ml.p3dn.24xlarge | ml.g4dn.xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.r5.large | ml.r5.xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.12xlarge | ml.g5.16xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.g6.xlarge | ml.g6.2xlarge | ml.g6.4xlarge | ml.g6.8xlarge | ml.g6.12xlarge | ml.g6.16xlarge | ml.g6.24xlarge | ml.g6.48xlarge | ml.g6e.xlarge | ml.g6e.2xlarge | ml.g6e.4xlarge | ml.g6e.8xlarge | ml.g6e.12xlarge | ml.g6e.16xlarge | ml.g6e.24xlarge | ml.g6e.48xlarge | ml.geospatial.interactive | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge | ml.p5.48xlarge | ml.m6i.large | ml.m6i.xlarge | ml.m6i.2xlarge | ml.m6i.4xlarge | ml.m6i.8xlarge | ml.m6i.12xlarge | ml.m6i.16xlarge | ml.m6i.24xlarge | ml.m6i.32xlarge | ml.m7i.large | ml.m7i.xlarge | ml.m7i.2xlarge | ml.m7i.4xlarge | ml.m7i.8xlarge | ml.m7i.12xlarge | ml.m7i.16xlarge | ml.m7i.24xlarge | ml.m7i.48xlarge | ml.c6i.large | ml.c6i.xlarge | ml.c6i.2xlarge | ml.c6i.4xlarge | ml.c6i.8xlarge | ml.c6i.12xlarge | ml.c6i.16xlarge | ml.c6i.24xlarge | ml.c6i.32xlarge | ml.c7i.large | ml.c7i.xlarge | ml.c7i.2xlarge | ml.c7i.4xlarge | ml.c7i.8xlarge | ml.c7i.12xlarge | ml.c7i.16xlarge | ml.c7i.24xlarge | ml.c7i.48xlarge | ml.r6i.large | ml.r6i.xlarge | ml.r6i.2xlarge | ml.r6i.4xlarge | ml.r6i.8xlarge | ml.r6i.12xlarge | ml.r6i.16xlarge | ml.r6i.24xlarge | ml.r6i.32xlarge | ml.r7i.large | ml.r7i.xlarge | ml.r7i.2xlarge | ml.r7i.4xlarge | ml.r7i.8xlarge | ml.r7i.12xlarge | ml.r7i.16xlarge | ml.r7i.24xlarge | ml.r7i.48xlarge | ml.m6id.large | ml.m6id.xlarge | ml.m6id.2xlarge | ml.m6id.4xlarge | ml.m6id.8xlarge | ml.m6id.12xlarge | ml.m6id.16xlarge | ml.m6id.24xlarge | ml.m6id.32xlarge | ml.c6id.large | ml.c6id.xlarge | ml.c6id.2xlarge | ml.c6id.4xlarge | ml.c6id.8xlarge | ml.c6id.12xlarge | ml.c6id.16xlarge | ml.c6id.24xlarge | ml.c6id.32xlarge | ml.r6id.large | ml.r6id.xlarge | ml.r6id.2xlarge | ml.r6id.4xlarge | ml.r6id.8xlarge | ml.r6id.12xlarge | ml.r6id.16xlarge | ml.r6id.24xlarge | ml.r6id.32xlarge \nUpdate requires: No interruption\n" + "markdownDescription": "The instance type that the image version runs on.\n\n---\n\nRequired: No \nType: String \nAllowed Values: system | ml.t3.micro | ml.t3.small | ml.t3.medium | ml.t3.large | ml.t3.xlarge | ml.t3.2xlarge | ml.m5.large | ml.m5.xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.m5d.large | ml.m5d.xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.c5.large | ml.c5.xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3.16xlarge | ml.p3dn.24xlarge | ml.g4dn.xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.r5.large | ml.r5.xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.12xlarge | ml.g5.16xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.g6.xlarge | ml.g6.2xlarge | ml.g6.4xlarge | ml.g6.8xlarge | ml.g6.12xlarge | ml.g6.16xlarge | ml.g6.24xlarge | ml.g6.48xlarge | ml.g6e.xlarge | ml.g6e.2xlarge | ml.g6e.4xlarge | ml.g6e.8xlarge | ml.g6e.12xlarge | ml.g6e.16xlarge | ml.g6e.24xlarge | ml.g6e.48xlarge | ml.geospatial.interactive | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge | ml.p5.48xlarge | ml.p5e.48xlarge | ml.p5en.48xlarge | ml.m6i.large | ml.m6i.xlarge | ml.m6i.2xlarge | ml.m6i.4xlarge | ml.m6i.8xlarge | ml.m6i.12xlarge | ml.m6i.16xlarge | ml.m6i.24xlarge | ml.m6i.32xlarge | ml.m7i.large | ml.m7i.xlarge | ml.m7i.2xlarge | ml.m7i.4xlarge | ml.m7i.8xlarge | ml.m7i.12xlarge | ml.m7i.16xlarge | ml.m7i.24xlarge | ml.m7i.48xlarge | ml.c6i.large | ml.c6i.xlarge | ml.c6i.2xlarge | ml.c6i.4xlarge | ml.c6i.8xlarge | ml.c6i.12xlarge | ml.c6i.16xlarge | ml.c6i.24xlarge | ml.c6i.32xlarge | ml.c7i.large | ml.c7i.xlarge | ml.c7i.2xlarge | ml.c7i.4xlarge | ml.c7i.8xlarge | ml.c7i.12xlarge | ml.c7i.16xlarge | ml.c7i.24xlarge | ml.c7i.48xlarge | ml.r6i.large | ml.r6i.xlarge | ml.r6i.2xlarge | ml.r6i.4xlarge | ml.r6i.8xlarge | ml.r6i.12xlarge | ml.r6i.16xlarge | ml.r6i.24xlarge | ml.r6i.32xlarge | ml.r7i.large | ml.r7i.xlarge | ml.r7i.2xlarge | ml.r7i.4xlarge | ml.r7i.8xlarge | ml.r7i.12xlarge | ml.r7i.16xlarge | ml.r7i.24xlarge | ml.r7i.48xlarge | ml.m6id.large | ml.m6id.xlarge | ml.m6id.2xlarge | ml.m6id.4xlarge | ml.m6id.8xlarge | ml.m6id.12xlarge | ml.m6id.16xlarge | ml.m6id.24xlarge | ml.m6id.32xlarge | ml.c6id.large | ml.c6id.xlarge | ml.c6id.2xlarge | ml.c6id.4xlarge | ml.c6id.8xlarge | ml.c6id.12xlarge | ml.c6id.16xlarge | ml.c6id.24xlarge | ml.c6id.32xlarge | ml.r6id.large | ml.r6id.xlarge | ml.r6id.2xlarge | ml.r6id.4xlarge | ml.r6id.8xlarge | ml.r6id.12xlarge | ml.r6id.16xlarge | ml.r6id.24xlarge | ml.r6id.32xlarge \nUpdate requires: No interruption\n" }, "HiddenSageMakerImage": { "type": "object", diff --git a/server/schema/resources/aws-sagemaker-userprofile.json b/server/schema/resources/aws-sagemaker-userprofile.json index 5f5b267f..4456ae15 100644 --- a/server/schema/resources/aws-sagemaker-userprofile.json +++ b/server/schema/resources/aws-sagemaker-userprofile.json @@ -197,6 +197,14 @@ "ml.m5.12xlarge", "ml.m5.16xlarge", "ml.m5.24xlarge", + "ml.m5d.large", + "ml.m5d.xlarge", + "ml.m5d.2xlarge", + "ml.m5d.4xlarge", + "ml.m5d.8xlarge", + "ml.m5d.12xlarge", + "ml.m5d.16xlarge", + "ml.m5d.24xlarge", "ml.c5.large", "ml.c5.xlarge", "ml.c5.2xlarge", @@ -208,6 +216,7 @@ "ml.p3.2xlarge", "ml.p3.8xlarge", "ml.p3.16xlarge", + "ml.p3dn.24xlarge", "ml.g4dn.xlarge", "ml.g4dn.2xlarge", "ml.g4dn.4xlarge", @@ -222,15 +231,6 @@ "ml.r5.12xlarge", "ml.r5.16xlarge", "ml.r5.24xlarge", - "ml.p3dn.24xlarge", - "ml.m5d.large", - "ml.m5d.xlarge", - "ml.m5d.2xlarge", - "ml.m5d.4xlarge", - "ml.m5d.8xlarge", - "ml.m5d.12xlarge", - "ml.m5d.16xlarge", - "ml.m5d.24xlarge", "ml.g5.xlarge", "ml.g5.2xlarge", "ml.g5.4xlarge", @@ -239,14 +239,114 @@ "ml.g5.16xlarge", "ml.g5.24xlarge", "ml.g5.48xlarge", + "ml.g6.xlarge", + "ml.g6.2xlarge", + "ml.g6.4xlarge", + "ml.g6.8xlarge", + "ml.g6.12xlarge", + "ml.g6.16xlarge", + "ml.g6.24xlarge", + "ml.g6.48xlarge", + "ml.g6e.xlarge", + "ml.g6e.2xlarge", + "ml.g6e.4xlarge", + "ml.g6e.8xlarge", + "ml.g6e.12xlarge", + "ml.g6e.16xlarge", + "ml.g6e.24xlarge", + "ml.g6e.48xlarge", + "ml.geospatial.interactive", "ml.p4d.24xlarge", "ml.p4de.24xlarge", - "ml.geospatial.interactive", "ml.trn1.2xlarge", "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" + "ml.trn1n.32xlarge", + "ml.p5.48xlarge", + "ml.p5e.48xlarge", + "ml.p5en.48xlarge", + "ml.m6i.large", + "ml.m6i.xlarge", + "ml.m6i.2xlarge", + "ml.m6i.4xlarge", + "ml.m6i.8xlarge", + "ml.m6i.12xlarge", + "ml.m6i.16xlarge", + "ml.m6i.24xlarge", + "ml.m6i.32xlarge", + "ml.m7i.large", + "ml.m7i.xlarge", + "ml.m7i.2xlarge", + "ml.m7i.4xlarge", + "ml.m7i.8xlarge", + "ml.m7i.12xlarge", + "ml.m7i.16xlarge", + "ml.m7i.24xlarge", + "ml.m7i.48xlarge", + "ml.c6i.large", + "ml.c6i.xlarge", + "ml.c6i.2xlarge", + "ml.c6i.4xlarge", + "ml.c6i.8xlarge", + "ml.c6i.12xlarge", + "ml.c6i.16xlarge", + "ml.c6i.24xlarge", + "ml.c6i.32xlarge", + "ml.c7i.large", + "ml.c7i.xlarge", + "ml.c7i.2xlarge", + "ml.c7i.4xlarge", + "ml.c7i.8xlarge", + "ml.c7i.12xlarge", + "ml.c7i.16xlarge", + "ml.c7i.24xlarge", + "ml.c7i.48xlarge", + "ml.r6i.large", + "ml.r6i.xlarge", + "ml.r6i.2xlarge", + "ml.r6i.4xlarge", + "ml.r6i.8xlarge", + "ml.r6i.12xlarge", + "ml.r6i.16xlarge", + "ml.r6i.24xlarge", + "ml.r6i.32xlarge", + "ml.r7i.large", + "ml.r7i.xlarge", + "ml.r7i.2xlarge", + "ml.r7i.4xlarge", + "ml.r7i.8xlarge", + "ml.r7i.12xlarge", + "ml.r7i.16xlarge", + "ml.r7i.24xlarge", + "ml.r7i.48xlarge", + "ml.m6id.large", + "ml.m6id.xlarge", + "ml.m6id.2xlarge", + "ml.m6id.4xlarge", + "ml.m6id.8xlarge", + "ml.m6id.12xlarge", + "ml.m6id.16xlarge", + "ml.m6id.24xlarge", + "ml.m6id.32xlarge", + "ml.c6id.large", + "ml.c6id.xlarge", + "ml.c6id.2xlarge", + "ml.c6id.4xlarge", + "ml.c6id.8xlarge", + "ml.c6id.12xlarge", + "ml.c6id.16xlarge", + "ml.c6id.24xlarge", + "ml.c6id.32xlarge", + "ml.r6id.large", + "ml.r6id.xlarge", + "ml.r6id.2xlarge", + "ml.r6id.4xlarge", + "ml.r6id.8xlarge", + "ml.r6id.12xlarge", + "ml.r6id.16xlarge", + "ml.r6id.24xlarge", + "ml.r6id.32xlarge" ], - "markdownDescription": "The instance type that the image version runs on.\n\n---\n\nRequired: No \nType: String \nAllowed Values: system | ml.t3.micro | ml.t3.small | ml.t3.medium | ml.t3.large | ml.t3.xlarge | ml.t3.2xlarge | ml.m5.large | ml.m5.xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.c5.large | ml.c5.xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3.16xlarge | ml.g4dn.xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.r5.large | ml.r5.xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.p3dn.24xlarge | ml.m5d.large | ml.m5d.xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.12xlarge | ml.g5.16xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.geospatial.interactive | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge \nUpdate requires: No interruption\n" + "markdownDescription": "The instance type that the image version runs on.\n\n---\n\nRequired: No \nType: String \nAllowed Values: system | ml.t3.micro | ml.t3.small | ml.t3.medium | ml.t3.large | ml.t3.xlarge | ml.t3.2xlarge | ml.m5.large | ml.m5.xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.m5d.large | ml.m5d.xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.c5.large | ml.c5.xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3.16xlarge | ml.p3dn.24xlarge | ml.g4dn.xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.r5.large | ml.r5.xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.12xlarge | ml.g5.16xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.g6.xlarge | ml.g6.2xlarge | ml.g6.4xlarge | ml.g6.8xlarge | ml.g6.12xlarge | ml.g6.16xlarge | ml.g6.24xlarge | ml.g6.48xlarge | ml.g6e.xlarge | ml.g6e.2xlarge | ml.g6e.4xlarge | ml.g6e.8xlarge | ml.g6e.12xlarge | ml.g6e.16xlarge | ml.g6e.24xlarge | ml.g6e.48xlarge | ml.geospatial.interactive | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge | ml.p5.48xlarge | ml.p5e.48xlarge | ml.p5en.48xlarge | ml.m6i.large | ml.m6i.xlarge | ml.m6i.2xlarge | ml.m6i.4xlarge | ml.m6i.8xlarge | ml.m6i.12xlarge | ml.m6i.16xlarge | ml.m6i.24xlarge | ml.m6i.32xlarge | ml.m7i.large | ml.m7i.xlarge | ml.m7i.2xlarge | ml.m7i.4xlarge | ml.m7i.8xlarge | ml.m7i.12xlarge | ml.m7i.16xlarge | ml.m7i.24xlarge | ml.m7i.48xlarge | ml.c6i.large | ml.c6i.xlarge | ml.c6i.2xlarge | ml.c6i.4xlarge | ml.c6i.8xlarge | ml.c6i.12xlarge | ml.c6i.16xlarge | ml.c6i.24xlarge | ml.c6i.32xlarge | ml.c7i.large | ml.c7i.xlarge | ml.c7i.2xlarge | ml.c7i.4xlarge | ml.c7i.8xlarge | ml.c7i.12xlarge | ml.c7i.16xlarge | ml.c7i.24xlarge | ml.c7i.48xlarge | ml.r6i.large | ml.r6i.xlarge | ml.r6i.2xlarge | ml.r6i.4xlarge | ml.r6i.8xlarge | ml.r6i.12xlarge | ml.r6i.16xlarge | ml.r6i.24xlarge | ml.r6i.32xlarge | ml.r7i.large | ml.r7i.xlarge | ml.r7i.2xlarge | ml.r7i.4xlarge | ml.r7i.8xlarge | ml.r7i.12xlarge | ml.r7i.16xlarge | ml.r7i.24xlarge | ml.r7i.48xlarge | ml.m6id.large | ml.m6id.xlarge | ml.m6id.2xlarge | ml.m6id.4xlarge | ml.m6id.8xlarge | ml.m6id.12xlarge | ml.m6id.16xlarge | ml.m6id.24xlarge | ml.m6id.32xlarge | ml.c6id.large | ml.c6id.xlarge | ml.c6id.2xlarge | ml.c6id.4xlarge | ml.c6id.8xlarge | ml.c6id.12xlarge | ml.c6id.16xlarge | ml.c6id.24xlarge | ml.c6id.32xlarge | ml.r6id.large | ml.r6id.xlarge | ml.r6id.2xlarge | ml.r6id.4xlarge | ml.r6id.8xlarge | ml.r6id.12xlarge | ml.r6id.16xlarge | ml.r6id.24xlarge | ml.r6id.32xlarge \nUpdate requires: No interruption\n" }, "SageMakerImageArn": { "type": "string", diff --git a/server/schema/resources/aws-servicecatalog-launchnotificationconstraint.json b/server/schema/resources/aws-servicecatalog-launchnotificationconstraint.json index 35a83282..fe67dc5b 100644 --- a/server/schema/resources/aws-servicecatalog-launchnotificationconstraint.json +++ b/server/schema/resources/aws-servicecatalog-launchnotificationconstraint.json @@ -1,11 +1,13 @@ { "typeName": "AWS::ServiceCatalog::LaunchNotificationConstraint", "description": "Resource Type definition for AWS::ServiceCatalog::LaunchNotificationConstraint", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog/tree/main/aws-servicecatalog-launchnotificationconstraint", "additionalProperties": false, "properties": { "Id": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "Unique identifier for the constraint", + "markdownDescription": "Unique identifier for the constraint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Description": { "type": "string", @@ -48,10 +50,58 @@ "readOnlyProperties": [ "/properties/Id" ], + "writeOnlyProperties": [ + "/properties/AcceptLanguage" + ], + "tagging": { + "taggable": false + }, + "handlers": { + "read": { + "permissions": [ + "servicecatalog:DescribeConstraint" + ] + }, + "create": { + "permissions": [ + "servicecatalog:CreateConstraint", + "servicecatalog:DescribeConstraint", + "sns:GetTopicAttributes" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "PortfolioId": { + "$ref": "resource-schema.json#/properties/PortfolioId" + } + }, + "required": [ + "PortfolioId" + ] + }, + "permissions": [ + "servicecatalog:ListConstraintsForPortfolio" + ] + }, + "update": { + "permissions": [ + "servicecatalog:UpdateConstraint", + "servicecatalog:DescribeConstraint", + "sns:GetTopicAttributes" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DeleteConstraint" + ] + } + }, "attributes": { "Id": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "Unique identifier for the constraint", + "markdownDescription": "Unique identifier for the constraint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-servicecatalog-portfolioshare.json b/server/schema/resources/aws-servicecatalog-portfolioshare.json index 8d162233..2fae121e 100644 --- a/server/schema/resources/aws-servicecatalog-portfolioshare.json +++ b/server/schema/resources/aws-servicecatalog-portfolioshare.json @@ -1,48 +1,87 @@ { "typeName": "AWS::ServiceCatalog::PortfolioShare", "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioShare", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "additionalProperties": false, "properties": { "AcceptLanguage": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" + "description": "The language code.", + "markdownDescription": "The language code.\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "PortfolioId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The portfolio identifier.", + "markdownDescription": "The portfolio identifier.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, "AccountId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The AWS account ID.", + "markdownDescription": "The AWS account ID.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[0-9]{12}$ \nUpdate requires: Replacement\n" }, "ShareTagOptions": { "type": "boolean", - "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" - }, - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "Enables or disables TagOptions sharing when creating the portfolio share.", + "markdownDescription": "Enables or disables TagOptions sharing when creating the portfolio share.\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" } }, + "tagging": { + "taggable": false + }, "required": [ "AccountId", "PortfolioId" ], "createOnlyProperties": [ - "/properties/AcceptLanguage", "/properties/AccountId", "/properties/PortfolioId" ], - "primaryIdentifier": [ - "/properties/Id" + "writeOnlyProperties": [ + "/properties/AcceptLanguage" ], - "readOnlyProperties": [ - "/properties/Id" + "primaryIdentifier": [ + "/properties/PortfolioId", + "/properties/AccountId" ], - "attributes": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "handlers": { + "read": { + "permissions": [ + "servicecatalog:DescribePortfolioShares" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "PortfolioId": { + "$ref": "resource-schema.json#/properties/PortfolioId" + } + }, + "required": [ + "PortfolioId" + ] + }, + "permissions": [ + "servicecatalog:DescribePortfolioShares" + ] + }, + "create": { + "permissions": [ + "servicecatalog:DescribePortfolioShares", + "servicecatalog:CreatePortfolioShare" + ] + }, + "update": { + "permissions": [ + "servicecatalog:DescribePortfolioShares", + "servicecatalog:UpdatePortfolioShare" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DescribePortfolioShares", + "servicecatalog:DeletePortfolioShare" + ] } - } + }, + "attributes": {} } \ No newline at end of file diff --git a/server/schema/resources/aws-servicecatalog-resourceupdateconstraint.json b/server/schema/resources/aws-servicecatalog-resourceupdateconstraint.json index ed3d92a9..4cd2e96a 100644 --- a/server/schema/resources/aws-servicecatalog-resourceupdateconstraint.json +++ b/server/schema/resources/aws-servicecatalog-resourceupdateconstraint.json @@ -1,31 +1,38 @@ { "typeName": "AWS::ServiceCatalog::ResourceUpdateConstraint", - "description": "Resource Type definition for AWS::ServiceCatalog::ResourceUpdateConstraint", + "description": "Resource type definition for AWS::ServiceCatalog::ResourceUpdateConstraint", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog/tree/master/aws-servicecatalog-resourceupdateconstraint.git", "additionalProperties": false, "properties": { "Id": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "Unique identifier for the constraint", + "markdownDescription": "Unique identifier for the constraint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" }, "Description": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The description of the constraint", + "markdownDescription": "The description of the constraint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "AcceptLanguage": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + "description": "The language code", + "markdownDescription": "The language code\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" }, "TagUpdateOnProvisionedProduct": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" + "description": "ALLOWED or NOT_ALLOWED, to permit or prevent changes to the tags on provisioned instances of the specified portfolio / product combination", + "markdownDescription": "ALLOWED or NOT_ALLOWED, to permit or prevent changes to the tags on provisioned instances of the specified portfolio / product combination\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" }, "PortfolioId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The portfolio identifier", + "markdownDescription": "The portfolio identifier\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" }, "ProductId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The product identifier", + "markdownDescription": "The product identifier\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" } }, "required": [ @@ -43,10 +50,56 @@ "readOnlyProperties": [ "/properties/Id" ], + "writeOnlyProperties": [ + "/properties/AcceptLanguage" + ], + "handlers": { + "create": { + "permissions": [ + "servicecatalog:CreateConstraint", + "servicecatalog:DescribeConstraint" + ] + }, + "read": { + "permissions": [ + "servicecatalog:DescribeConstraint" + ] + }, + "update": { + "permissions": [ + "servicecatalog:UpdateConstraint", + "servicecatalog:DescribeConstraint" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DeleteConstraint" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "PortfolioId": { + "$ref": "resource-schema.json#/properties/PortfolioId" + } + }, + "required": [ + "PortfolioId" + ] + }, + "permissions": [ + "servicecatalog:ListConstraintsForPortfolio" + ] + } + }, + "tagging": { + "taggable": false + }, "attributes": { "Id": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "description": "Unique identifier for the constraint", + "markdownDescription": "Unique identifier for the constraint\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" } } } \ No newline at end of file diff --git a/server/schema/resources/aws-servicecatalog-tagoptionassociation.json b/server/schema/resources/aws-servicecatalog-tagoptionassociation.json index 8c440347..21e4c4ce 100644 --- a/server/schema/resources/aws-servicecatalog-tagoptionassociation.json +++ b/server/schema/resources/aws-servicecatalog-tagoptionassociation.json @@ -1,39 +1,64 @@ { "typeName": "AWS::ServiceCatalog::TagOptionAssociation", "description": "Resource Type definition for AWS::ServiceCatalog::TagOptionAssociation", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog/tree/master/aws-servicecatalog-tagoptionassociation.git", "additionalProperties": false, "properties": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" - }, "TagOptionId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The TagOption identifier.", + "markdownDescription": "The TagOption identifier.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" }, "ResourceId": { "type": "string", - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" + "description": "The CloudformationProduct or Portfolio identifier.", + "markdownDescription": "The CloudformationProduct or Portfolio identifier.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" } }, - "required": [ - "TagOptionId", - "ResourceId" - ], "createOnlyProperties": [ "/properties/TagOptionId", "/properties/ResourceId" ], "primaryIdentifier": [ - "/properties/Id" - ], - "readOnlyProperties": [ - "/properties/Id" + "/properties/TagOptionId", + "/properties/ResourceId" ], - "attributes": { - "Id": { - "type": "string", - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" + "tagging": { + "taggable": false + }, + "handlers": { + "read": { + "permissions": [ + "servicecatalog:ListResourcesForTagOption" + ] + }, + "create": { + "permissions": [ + "servicecatalog:AssociateTagOptionWithResource", + "servicecatalog:ListResourcesForTagOption" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "TagOptionId": { + "$ref": "resource-schema.json#/properties/TagOptionId" + } + }, + "required": [ + "TagOptionId" + ] + }, + "permissions": [ + "servicecatalog:ListResourcesForTagOption" + ] + }, + "delete": { + "permissions": [ + "servicecatalog:DisassociateTagOptionFromResource", + "servicecatalog:ListResourcesForTagOption" + ] } - } + }, + "attributes": {} } \ No newline at end of file diff --git a/server/schema/resources/aws-ses-mailmanagerarchive.json b/server/schema/resources/aws-ses-mailmanagerarchive.json index d42e0761..ebc1259d 100644 --- a/server/schema/resources/aws-ses-mailmanagerarchive.json +++ b/server/schema/resources/aws-ses-mailmanagerarchive.json @@ -140,6 +140,7 @@ "ses:ListTagsForResource", "ses:GetArchive", "ses:CreateArchive", + "iam:CreateServiceLinkedRole", "kms:DescribeKey", "kms:Decrypt", "kms:GenerateDataKey" diff --git a/server/schema/resources/aws-sqs-queue.json b/server/schema/resources/aws-sqs-queue.json index 0b8026a6..0ed44f6a 100644 --- a/server/schema/resources/aws-sqs-queue.json +++ b/server/schema/resources/aws-sqs-queue.json @@ -145,7 +145,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "sqs:TagQueue", diff --git a/server/schema/resources/aws-ssmquicksetup-lifecycleautomation.json b/server/schema/resources/aws-ssmquicksetup-lifecycleautomation.json new file mode 100644 index 00000000..60189d79 --- /dev/null +++ b/server/schema/resources/aws-ssmquicksetup-lifecycleautomation.json @@ -0,0 +1,150 @@ +{ + "typeName": "AWS::SSMQuickSetup::LifecycleAutomation", + "description": "Resource Type definition for AWS::SSMQuickSetup::LifecycleAutomation that executes SSM Automation documents in response to CloudFormation lifecycle events.", + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false, + "permissions": [ + "ssm:AddTagsToResource", + "ssm:RemoveTagsFromResource", + "ssm:ListTagsForResource" + ] + }, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "AutomationParameters": { + "type": "object", + "description": "Parameters to be passed to the Automation Document", + "patternProperties": { + "^[a-zA-Z0-9_]+$": { + "type": "array", + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "Parameters to be passed to the Automation Document\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + }, + "TagsMap": { + "type": "object", + "patternProperties": { + "^[A-Za-z0-9 +=@_\\/:.-]+$": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 256 \nPattern: ^[A-Za-z0-9 +=@_\\/:.-]+$ \nUpdate requires: No interruption\n" + } + }, + "additionalProperties": false, + "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" + } + }, + "properties": { + "AutomationDocument": { + "description": "The name of the Automation document to execute", + "type": "string", + "minLength": 1, + "maxLength": 500, + "markdownDescription": "The name of the Automation document to execute\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 500 \nPattern: ^\\S+$ \nUpdate requires: No interruption\n" + }, + "AutomationParameters": { + "$ref": "#/definitions/AutomationParameters" + }, + "ResourceKey": { + "description": "A unique identifier used for generating a unique logical ID for the custom resource", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "A unique identifier used for generating a unique logical ID for the custom resource\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9-]+$ \nUpdate requires: Replacement\n" + }, + "AssociationId": { + "description": "The id from the association that is returned when creating the association", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The id from the association that is returned when creating the association\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + } + }, + "additionalProperties": false, + "required": [ + "AutomationDocument", + "ResourceKey", + "AutomationParameters" + ], + "readOnlyProperties": [ + "/properties/AssociationId" + ], + "primaryIdentifier": [ + "/properties/AssociationId" + ], + "createOnlyProperties": [ + "/properties/ResourceKey" + ], + "handlers": { + "create": { + "permissions": [ + "ssm:CreateAssociation", + "ssm:DescribeAssociation", + "ssm:DescribeAssociationExecutions", + "ssm:DescribeAssociationExecutionTargets", + "ssm:GetAutomationExecution", + "ssm:AddTagsToResource", + "ssm:ListTagsForResource", + "iam:PassRole" + ] + }, + "read": { + "permissions": [ + "ssm:DescribeAssociation", + "ssm:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ssm:DescribeAssociation", + "ssm:UpdateAssociation", + "ssm:DescribeAssociationExecutions", + "ssm:DescribeAssociationExecutionTargets", + "ssm:GetAutomationExecution", + "ssm:AddTagsToResource", + "ssm:RemoveTagsFromResource", + "ssm:ListTagsForResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "ssm:DeleteAssociation", + "ssm:UpdateAssociation", + "ssm:DescribeAssociation", + "ssm:DescribeAssociationExecutions", + "ssm:DescribeAssociationExecutionTargets", + "ssm:GetAutomationExecution", + "iam:PassRole" + ] + }, + "list": { + "permissions": [ + "ssm:ListAssociations" + ] + } + }, + "attributes": { + "AssociationId": { + "description": "The id from the association that is returned when creating the association", + "type": "string", + "minLength": 1, + "maxLength": 64, + "markdownDescription": "The id from the association that is returned when creating the association\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 64 \nPattern: ^[a-zA-Z0-9-]+$ \nUpdate requires: No interruption\nRead only property: Yes" + } + } +} \ No newline at end of file diff --git a/server/schema/resources/aws-synthetics-canary.json b/server/schema/resources/aws-synthetics-canary.json index 49f7b440..bc803ef0 100644 --- a/server/schema/resources/aws-synthetics-canary.json +++ b/server/schema/resources/aws-synthetics-canary.json @@ -195,20 +195,41 @@ "$ref": "#/definitions/Dependency" }, "markdownDescription": "List of Lambda layers to attach to the canary\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" + }, + "BlueprintTypes": { + "type": "array", + "maxItems": 1, + "items": { + "type": "string", + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" + }, + "markdownDescription": "\n\n---\n\nRequired: Conditional \nType: Array \nUpdate requires: No interruption\n" } }, - "required": [ - "Handler" - ], "oneOf": [ { "required": [ + "Handler", + "S3Bucket", + "S3Key" + ] + }, + { + "required": [ + "BlueprintTypes", "S3Bucket", "S3Key" ] }, { "required": [ + "Handler", + "Script" + ] + }, + { + "required": [ + "BlueprintTypes", "Script" ] } diff --git a/server/schema/resources/aws-transfer-server.json b/server/schema/resources/aws-transfer-server.json index 51d4a3b7..994b6d58 100644 --- a/server/schema/resources/aws-transfer-server.json +++ b/server/schema/resources/aws-transfer-server.json @@ -418,12 +418,8 @@ "/properties/ServerId", "/properties/State" ], - "writeOnlyProperties": [ - "/properties/IdentityProviderType" - ], "createOnlyProperties": [ - "/properties/Domain", - "/properties/IdentityProviderType" + "/properties/Domain" ], "primaryIdentifier": [ "/properties/Arn" @@ -470,6 +466,9 @@ "update": { "permissions": [ "apigateway:GET", + "ds:AuthorizeApplication", + "ds:DescribeDirectories", + "ds:UnauthorizeApplication", "ec2:AssociateAddress", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", diff --git a/server/schema/resources/aws-vpclattice-accesslogsubscription.json b/server/schema/resources/aws-vpclattice-accesslogsubscription.json index 492df649..4da13b9d 100644 --- a/server/schema/resources/aws-vpclattice-accesslogsubscription.json +++ b/server/schema/resources/aws-vpclattice-accesslogsubscription.json @@ -50,7 +50,7 @@ "type": "string", "maxLength": 2048, "minLength": 20, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc))-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc)|(resourceconfiguration/rcfg))-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "ResourceId": { "type": "string", @@ -196,7 +196,7 @@ "type": "string", "maxLength": 2048, "minLength": 20, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^((((sn)|(svc))-[0-9a-z]{17})|(arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc))-[0-9a-z]{17}))$ \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^((((sn)|(svc)|(rcfg))-[0-9a-z]{17})|(arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(resourceconfiguration/rcfg)|(service/svc))-[0-9a-z]{17}))$ \nUpdate requires: No interruption\n" } }, "required": [ @@ -234,7 +234,7 @@ "type": "string", "maxLength": 2048, "minLength": 20, - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc))-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc)|(resourceconfiguration/rcfg))-[0-9a-z]{17}$ \nUpdate requires: No interruption\nRead only property: Yes" }, "ResourceId": { "type": "string", diff --git a/server/schema/resources/aws-vpclattice-resourcegateway.json b/server/schema/resources/aws-vpclattice-resourcegateway.json index 71cd4eda..818c8530 100644 --- a/server/schema/resources/aws-vpclattice-resourcegateway.json +++ b/server/schema/resources/aws-vpclattice-resourcegateway.json @@ -59,7 +59,7 @@ "/properties/Id", "/properties/Arn" ], - "description": "Creates a resource gateway for a service. ", + "description": "Creates a resource gateway for a service.", "additionalIdentifiers": [ [ "/properties/Id" @@ -115,6 +115,11 @@ "maxLength": 50, "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 5 \nMaximum Length: 50 \nUpdate requires: Replacement\n" }, + "Ipv4AddressesPerEni": { + "description": "The number of IPv4 addresses to allocate per ENI for the resource gateway", + "type": "integer", + "markdownDescription": "The number of IPv4 addresses to allocate per ENI for the resource gateway\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" + }, "Id": { "minLength": 17, "type": "string", diff --git a/server/schema/resources/aws-vpclattice-resourcepolicy.json b/server/schema/resources/aws-vpclattice-resourcepolicy.json index 46eb29c4..4872e000 100644 --- a/server/schema/resources/aws-vpclattice-resourcepolicy.json +++ b/server/schema/resources/aws-vpclattice-resourcepolicy.json @@ -7,7 +7,7 @@ "type": "string", "minLength": 20, "maxLength": 200, - "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 200 \nPattern: ^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc))-[0-9a-z]{17}$ \nUpdate requires: Replacement\n" + "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 200 \nPattern: ^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc)|(resourceconfiguration/rcfg))-[0-9a-z]{17}$ \nUpdate requires: Replacement\n" }, "Policy": { "type": "object", diff --git a/server/schema/resources/aws-wisdom-aiprompt.json b/server/schema/resources/aws-wisdom-aiprompt.json index de46ec6b..9b7e0171 100644 --- a/server/schema/resources/aws-wisdom-aiprompt.json +++ b/server/schema/resources/aws-wisdom-aiprompt.json @@ -46,9 +46,13 @@ "INTENT_LABELING_GENERATION", "QUERY_REFORMULATION", "SELF_SERVICE_PRE_PROCESSING", - "SELF_SERVICE_ANSWER_GENERATION" + "SELF_SERVICE_ANSWER_GENERATION", + "EMAIL_RESPONSE", + "EMAIL_OVERVIEW", + "EMAIL_GENERATIVE_ANSWER", + "EMAIL_QUERY_REFORMULATION" ], - "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ANSWER_GENERATION | INTENT_LABELING_GENERATION | QUERY_REFORMULATION | SELF_SERVICE_PRE_PROCESSING | SELF_SERVICE_ANSWER_GENERATION \nUpdate requires: No interruption\n" + "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nAllowed Values: ANSWER_GENERATION | INTENT_LABELING_GENERATION | QUERY_REFORMULATION | SELF_SERVICE_PRE_PROCESSING | SELF_SERVICE_ANSWER_GENERATION | EMAIL_RESPONSE | EMAIL_OVERVIEW | EMAIL_GENERATIVE_ANSWER | EMAIL_QUERY_REFORMULATION \nUpdate requires: No interruption\n" }, "Tags": { "type": "object",