Skip to content

Commit

Permalink
Nightly SDK regeneration (#1675)
Browse files Browse the repository at this point in the history
The SDK had to be manually regenerated because an empty string was added
to the CFN schema of the `AWS::IVS::Channel.Preset" enum:
```
"Preset" : {
      "description" : "Optional transcode preset for the channel. This is selectable only for ADVANCED_HD and ADVANCED_SD channel types. For those channel types, the default preset is HIGHER_BANDWIDTH_DELIVERY. For other channel types (BASIC and STANDARD), preset is the empty string (\"\").",
      "type" : "string",
      "enum" : [ "", "HIGHER_BANDWIDTH_DELIVERY", "CONSTRAINED_BANDWIDTH_DELIVERY" ]
    }
```

The [CloudFormation
docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-preset)
and [AWS CLI
docs](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ivs/create-channel.html)
mention that the allowed values are `HIGHER_BANDWIDTH_DELIVERY`,
`CONSTRAINED_BANDWIDTH_DELIVERY`. But the empty string is also allowed
and it's the default the IVS service sets internally (and returns) when
a channel type is used that doesn't allow configuring a preset.

This change adds a special condition to the schema generator to create
an enum value called `Empty` with an underlying value of `""`. We cannot
omit this empty enum value as this would break SDKs that verify whether
an enum value is valid (e.g. python).

Fixes #1674
  • Loading branch information
flostadler authored Aug 20, 2024
1 parent ca05204 commit 2a5e0ca
Show file tree
Hide file tree
Showing 105 changed files with 5,469 additions and 169 deletions.
2 changes: 1 addition & 1 deletion .docs.version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
c0dceef1a3949735a691d57e38d7d615941e6d8b
abe8eadc17c1700e7af9dc26ce0371aedca7c5eb
120 changes: 60 additions & 60 deletions aws-cloudformation-schema/aws-controltower-landingzone.json
Original file line number Diff line number Diff line change
@@ -1,60 +1,87 @@
{
"tagging" : {
"taggable" : true,
"tagOnCreate" : true,
"tagUpdatable" : true,
"tagProperty" : "/properties/Tags",
"cloudFormationSystemTags" : true
},
"handlers" : {
"read" : {
"permissions" : [ "controltower:GetLandingZone", "controltower:ListTagsForResource" ]
},
"create" : {
"permissions" : [ "controltower:CreateLandingZone", "controltower:GetLandingZoneOperation", "controltower:ListTagsForResource", "controltower:TagResource", "controltower:GetLandingZone", "cloudformation:DescribeOrganizationsAccess", "servicecatalog:AssociatePrincipalWithPortfolio", "servicecatalog:AssociateProductWithPortfolio", "servicecatalog:CreatePortfolio", "servicecatalog:CreateProduct", "servicecatalog:CreateProvisioningArtifact", "servicecatalog:ListPortfolios", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:SearchProductsAsAdmin", "servicecatalog:UpdatePortfolio", "servicecatalog:UpdateProvisioningArtifact", "servicecatalog:ListPrincipalsForPortfolio", "organizations:CreateOrganizationalUnit", "organizations:CreateOrganization", "organizations:UpdatePolicy", "organizations:CreatePolicy", "organizations:AttachPolicy", "organizations:DetachPolicy", "organizations:DeletePolicy", "organizations:EnablePolicyType", "organizations:EnableAWSServiceAccess", "organizations:ListRoots", "sso:GetPeregrineStatus", "sso:ListDirectoryAssociations", "sso:StartPeregrine", "sso:RegisterRegion" ]
},
"update" : {
"permissions" : [ "controltower:UpdateLandingZone", "controltower:GetLandingZoneOperation", "controltower:ListTagsForResource", "controltower:TagResource", "controltower:GetLandingZone", "controltower:UntagResource", "cloudformation:DescribeOrganizationsAccess", "servicecatalog:AssociatePrincipalWithPortfolio", "servicecatalog:AssociateProductWithPortfolio", "servicecatalog:CreatePortfolio", "servicecatalog:CreateProduct", "servicecatalog:CreateProvisioningArtifact", "servicecatalog:ListPortfolios", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:SearchProductsAsAdmin", "servicecatalog:UpdatePortfolio", "servicecatalog:UpdateProvisioningArtifact", "servicecatalog:ListPrincipalsForPortfolio", "organizations:CreateOrganizationalUnit", "organizations:CreateOrganization", "organizations:UpdatePolicy", "organizations:CreatePolicy", "organizations:AttachPolicy", "organizations:DetachPolicy", "organizations:DeletePolicy", "organizations:EnablePolicyType", "organizations:EnableAWSServiceAccess", "organizations:ListRoots", "sso:GetPeregrineStatus", "sso:ListDirectoryAssociations", "sso:StartPeregrine", "sso:RegisterRegion" ]
},
"list" : {
"permissions" : [ "controltower:ListLandingZones" ]
},
"delete" : {
"permissions" : [ "controltower:DeleteLandingZone", "controltower:GetLandingZone", "controltower:GetLandingZoneOperation", "cloudformation:DescribeOrganizationsAccess", "servicecatalog:ListPortfolios", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:SearchProductsAsAdmin", "servicecatalog:DeleteProvisioningArtifact", "servicecatalog:ListPrincipalsForPortfolio", "servicecatalog:DeleteProduct", "servicecatalog:DisassociatePrincipalFromPortfolio", "servicecatalog:DisassociateProductFromPortfolio", "servicecatalog:DeletePortfolio", "organizations:AttachPolicy", "organizations:DetachPolicy", "organizations:DeletePolicy", "organizations:ListRoots", "sso:GetPeregrineStatus", "sso:ListDirectoryAssociations", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:DeleteRole" ]
}
},
"typeName" : "AWS::ControlTower::LandingZone",
"readOnlyProperties" : [ "/properties/LandingZoneIdentifier", "/properties/Arn", "/properties/Status", "/properties/LatestAvailableVersion", "/properties/DriftStatus" ],
"description" : "Definition of AWS::ControlTower::LandingZone Resource Type",
"additionalProperties" : false,
"primaryIdentifier" : [ "/properties/LandingZoneIdentifier" ],
"definitions" : {
"LandingZoneDriftStatus" : {
"type" : "string",
"enum" : [ "DRIFTED", "IN_SYNC" ]
},
"LandingZoneStatus" : {
"type" : "string",
"enum" : [ "ACTIVE", "PROCESSING", "FAILED" ]
},
"Tag" : {
"additionalProperties" : false,
"type" : "object",
"properties" : {
"Key" : {
"Value" : {
"minLength" : 0,
"type" : "string",
"maxLength" : 256,
"minLength" : 1
"maxLength" : 256
},
"Value" : {
"Key" : {
"minLength" : 1,
"type" : "string",
"maxLength" : 256,
"minLength" : 0
"maxLength" : 256
}
},
"additionalProperties" : false
}
},
"properties" : {
"LandingZoneIdentifier" : {
"type" : "string"
}
},
"Arn" : {
"LandingZoneStatus" : {
"type" : "string",
"maxLength" : 2048,
"minLength" : 20,
"pattern" : "^arn:aws[0-9a-zA-Z_\\-:\\/]+$"
"enum" : [ "ACTIVE", "PROCESSING", "FAILED" ]
},
"LandingZoneDriftStatus" : {
"type" : "string",
"enum" : [ "DRIFTED", "IN_SYNC" ]
}
},
"properties" : {
"Status" : {
"$ref" : "#/definitions/LandingZoneStatus"
},
"LatestAvailableVersion" : {
"minLength" : 3,
"pattern" : "\\d+.\\d+",
"type" : "string",
"maxLength" : 10,
"maxLength" : 10
},
"Version" : {
"minLength" : 3,
"pattern" : "\\d+.\\d+"
"pattern" : "\\d+.\\d+",
"type" : "string",
"maxLength" : 10
},
"DriftStatus" : {
"$ref" : "#/definitions/LandingZoneDriftStatus"
},
"Manifest" : { },
"Version" : {
"Arn" : {
"minLength" : 20,
"pattern" : "^arn:aws[0-9a-zA-Z_\\-:\\/]+$",
"type" : "string",
"maxLength" : 10,
"minLength" : 3,
"pattern" : "\\d+.\\d+"
"maxLength" : 2048
},
"Manifest" : { },
"LandingZoneIdentifier" : {
"type" : "string"
},
"Tags" : {
"type" : "array",
Expand All @@ -63,32 +90,5 @@
}
}
},
"required" : [ "Manifest", "Version" ],
"readOnlyProperties" : [ "/properties/LandingZoneIdentifier", "/properties/Arn", "/properties/Status", "/properties/LatestAvailableVersion", "/properties/DriftStatus" ],
"primaryIdentifier" : [ "/properties/LandingZoneIdentifier" ],
"tagging" : {
"taggable" : true,
"tagOnCreate" : true,
"tagUpdatable" : true,
"cloudFormationSystemTags" : true,
"tagProperty" : "/properties/Tags"
},
"handlers" : {
"create" : {
"permissions" : [ "controltower:CreateLandingZone", "controltower:GetLandingZoneOperation", "controltower:ListTagsForResource", "controltower:TagResource", "controltower:GetLandingZone", "cloudformation:DescribeOrganizationsAccess", "servicecatalog:AssociatePrincipalWithPortfolio", "servicecatalog:AssociateProductWithPortfolio", "servicecatalog:CreatePortfolio", "servicecatalog:CreateProduct", "servicecatalog:CreateProvisioningArtifact", "servicecatalog:ListPortfolios", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:SearchProductsAsAdmin", "servicecatalog:UpdatePortfolio", "servicecatalog:UpdateProvisioningArtifact", "servicecatalog:ListPrincipalsForPortfolio", "organizations:CreateOrganizationalUnit", "organizations:CreateOrganization", "organizations:UpdatePolicy", "organizations:CreatePolicy", "organizations:AttachPolicy", "organizations:DetachPolicy", "organizations:DeletePolicy", "organizations:EnablePolicyType", "organizations:EnableAWSServiceAccess", "organizations:ListRoots", "sso:GetPeregrineStatus", "sso:ListDirectoryAssociations", "sso:StartPeregrine", "sso:RegisterRegion" ]
},
"read" : {
"permissions" : [ "controltower:GetLandingZone", "controltower:ListTagsForResource" ]
},
"update" : {
"permissions" : [ "controltower:UpdateLandingZone", "controltower:GetLandingZoneOperation", "controltower:ListTagsForResource", "controltower:TagResource", "controltower:GetLandingZone", "controltower:UntagResource", "cloudformation:DescribeOrganizationsAccess", "servicecatalog:AssociatePrincipalWithPortfolio", "servicecatalog:AssociateProductWithPortfolio", "servicecatalog:CreatePortfolio", "servicecatalog:CreateProduct", "servicecatalog:CreateProvisioningArtifact", "servicecatalog:ListPortfolios", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:SearchProductsAsAdmin", "servicecatalog:UpdatePortfolio", "servicecatalog:UpdateProvisioningArtifact", "servicecatalog:ListPrincipalsForPortfolio", "organizations:CreateOrganizationalUnit", "organizations:CreateOrganization", "organizations:UpdatePolicy", "organizations:CreatePolicy", "organizations:AttachPolicy", "organizations:DetachPolicy", "organizations:DeletePolicy", "organizations:EnablePolicyType", "organizations:EnableAWSServiceAccess", "organizations:ListRoots", "sso:GetPeregrineStatus", "sso:ListDirectoryAssociations", "sso:StartPeregrine", "sso:RegisterRegion" ]
},
"delete" : {
"permissions" : [ "controltower:DeleteLandingZone", "controltower:GetLandingZone", "controltower:GetLandingZoneOperation", "cloudformation:DescribeOrganizationsAccess", "servicecatalog:ListPortfolios", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:SearchProductsAsAdmin", "servicecatalog:DeleteProvisioningArtifact", "servicecatalog:ListPrincipalsForPortfolio", "servicecatalog:DeleteProduct", "servicecatalog:DisassociatePrincipalFromPortfolio", "servicecatalog:DisassociateProductFromPortfolio", "servicecatalog:DeletePortfolio", "organizations:AttachPolicy", "organizations:DetachPolicy", "organizations:DeletePolicy", "organizations:ListRoots", "sso:GetPeregrineStatus", "sso:ListDirectoryAssociations", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:DeleteRole" ]
},
"list" : {
"permissions" : [ "controltower:ListLandingZones" ]
}
},
"additionalProperties" : false
"required" : [ "Manifest", "Version" ]
}
2 changes: 1 addition & 1 deletion aws-cloudformation-schema/aws-deadline-fleet.json
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@
},
"ServiceManagedFleetOperatingSystemFamily" : {
"type" : "string",
"enum" : [ "LINUX" ]
"enum" : [ "LINUX", "WINDOWS" ]
},
"Tag" : {
"description" : "A key-value pair to associate with a resource.",
Expand Down
2 changes: 1 addition & 1 deletion aws-cloudformation-schema/aws-ec2-keypair.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git",
"definitions" : {
"Tag" : {
"description" : "Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications).",
"description" : "Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).",
"type" : "object",
"properties" : {
"Key" : {
Expand Down
4 changes: 2 additions & 2 deletions aws-cloudformation-schema/aws-ec2-launchtemplate.json
Original file line number Diff line number Diff line change
Expand Up @@ -971,7 +971,7 @@
}
},
"Tag" : {
"description" : "Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications).",
"description" : "Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).",
"additionalProperties" : false,
"type" : "object",
"properties" : {
Expand Down Expand Up @@ -1093,7 +1093,7 @@
},
"TagSpecifications" : {
"uniqueItems" : false,
"description" : "The tags to apply to the launch template on creation. To tag the launch template, the resource type must be ``launch-template``.\n To specify the tags for the resources that are created when an instance is launched, you must use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-tagspecifications).",
"description" : "The tags to apply to the launch template on creation. To tag the launch template, the resource type must be ``launch-template``.\n To specify the tags for the resources that are created when an instance is launched, you must use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications).",
"type" : "array",
"items" : {
"$ref" : "#/definitions/LaunchTemplateTagSpecification"
Expand Down
91 changes: 70 additions & 21 deletions aws-cloudformation-schema/aws-glue-database.json
Original file line number Diff line number Diff line change
@@ -1,105 +1,154 @@
{
"typeName" : "AWS::Glue::Database",
"description" : "Resource Type definition for AWS::Glue::Database",
"sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-glue.git",
"additionalProperties" : false,
"properties" : {
"CatalogId" : {
"type" : "string"
"type" : "string",
"description" : "The AWS account ID for the account in which to create the catalog object."
},
"DatabaseInput" : {
"$ref" : "#/definitions/DatabaseInput"
"$ref" : "#/definitions/DatabaseInput",
"description" : "The metadata for the database."
},
"Id" : {
"type" : "string"
"DatabaseName" : {
"type" : "string",
"description" : "The name of the database. For hive compatibility, this is folded to lowercase when it is store."
}
},
"definitions" : {
"DatabaseIdentifier" : {
"type" : "object",
"description" : "A structure that describes a target database for resource linking.",
"additionalProperties" : false,
"properties" : {
"DatabaseName" : {
"type" : "string"
"type" : "string",
"description" : "The name of the catalog database."
},
"Region" : {
"type" : "string"
"type" : "string",
"description" : "Region of the target database."
},
"CatalogId" : {
"type" : "string"
"type" : "string",
"description" : "The ID of the Data Catalog in which the database resides."
}
}
},
"PrincipalPrivileges" : {
"type" : "object",
"description" : "The permissions granted to a principal.",
"additionalProperties" : false,
"properties" : {
"Permissions" : {
"type" : "array",
"description" : "The permissions that are granted to the principal.",
"uniqueItems" : false,
"insertionOrder" : false,
"items" : {
"type" : "string"
}
},
"Principal" : {
"$ref" : "#/definitions/DataLakePrincipal"
"$ref" : "#/definitions/DataLakePrincipal",
"description" : "The principal who is granted permissions."
}
}
},
"DataLakePrincipal" : {
"type" : "object",
"description" : "The AWS Lake Formation principal.",
"additionalProperties" : false,
"properties" : {
"DataLakePrincipalIdentifier" : {
"type" : "string"
"type" : "string",
"description" : "An identifier for the AWS Lake Formation principal."
}
}
},
"FederatedDatabase" : {
"type" : "object",
"description" : "A FederatedDatabase structure that references an entity outside the AWS Glue Data Catalog.",
"additionalProperties" : false,
"properties" : {
"ConnectionName" : {
"type" : "string"
"type" : "string",
"description" : "The name of the connection to the external metastore."
},
"Identifier" : {
"type" : "string"
"type" : "string",
"description" : "A unique identifier for the federated database."
}
}
},
"DatabaseInput" : {
"type" : "object",
"description" : "The structure used to create or update a database.",
"additionalProperties" : false,
"properties" : {
"LocationUri" : {
"type" : "string"
"type" : "string",
"description" : "The location of the database (for example, an HDFS path)."
},
"CreateTableDefaultPermissions" : {
"type" : "array",
"description" : "Creates a set of default permissions on the table for principals. Used by AWS Lake Formation. Not used in the normal course of AWS Glue operations.",
"uniqueItems" : false,
"insertionOrder" : false,
"items" : {
"$ref" : "#/definitions/PrincipalPrivileges"
"$ref" : "#/definitions/PrincipalPrivileges",
"description" : "The permissions granted to a principal."
}
},
"Description" : {
"type" : "string"
"type" : "string",
"description" : "A description of the database."
},
"Parameters" : {
"type" : "object"
"type" : "object",
"description" : "These key-value pairs define parameters and properties of the database."
},
"TargetDatabase" : {
"$ref" : "#/definitions/DatabaseIdentifier"
"$ref" : "#/definitions/DatabaseIdentifier",
"description" : "A DatabaseIdentifier structure that describes a target database for resource linking."
},
"FederatedDatabase" : {
"$ref" : "#/definitions/FederatedDatabase"
"$ref" : "#/definitions/FederatedDatabase",
"description" : "A FederatedDatabase structure that references an entity outside the AWS Glue Data Catalog."
},
"Name" : {
"type" : "string"
"type" : "string",
"description" : "The name of the database. For hive compatibility, this is folded to lowercase when it is stored."
}
}
}
},
"tagging" : {
"taggable" : false,
"tagOnCreate" : false,
"tagUpdatable" : false,
"cloudFormationSystemTags" : false
},
"required" : [ "DatabaseInput", "CatalogId" ],
"createOnlyProperties" : [ "/properties/CatalogId" ],
"primaryIdentifier" : [ "/properties/Id" ],
"readOnlyProperties" : [ "/properties/Id" ]
"createOnlyProperties" : [ "/properties/DatabaseName" ],
"primaryIdentifier" : [ "/properties/DatabaseName" ],
"handlers" : {
"create" : {
"permissions" : [ "glue:CreateDatabase", "glue:GetDatabase", "glue:PassConnection", "glue:CreateConnection", "lakeformation:ListResources", "lakeformation:DescribeResource", "lakeformation:DescribeLakeFormationIdentityCenterConfiguration" ]
},
"read" : {
"permissions" : [ "glue:GetDatabase", "glue:GetConnection", "lakeformation:ListResources", "lakeformation:DescribeResource", "lakeformation:DescribeLakeFormationIdentityCenterConfiguration" ]
},
"update" : {
"permissions" : [ "glue:UpdateDatabase", "glue:UpdateConnection", "lakeformation:ListResources", "lakeformation:DescribeResource", "lakeformation:DescribeLakeFormationIdentityCenterConfiguration" ]
},
"delete" : {
"permissions" : [ "glue:DeleteDatabase", "glue:GetDatabase", "glue:DeleteConnection", "glue:GetConnection", "lakeformation:ListResources", "lakeformation:DescribeResource", "lakeformation:DescribeLakeFormationIdentityCenterConfiguration" ]
},
"list" : {
"permissions" : [ "glue:GetDatabases", "lakeformation:ListResources", "lakeformation:DescribeResource", "lakeformation:DescribeLakeFormationIdentityCenterConfiguration" ]
}
}
}
Loading

0 comments on commit 2a5e0ca

Please sign in to comment.