From 13095ef6facddea686bc92d0b519e3578e5810d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BAben=20Fonseca?= Date: Fri, 4 Mar 2022 00:11:20 +0000 Subject: [PATCH] fix(schema): CloudFormation Updates --- cloudformation/all.go | 75 +++++ .../aws-amplifyuibuilder-component.go | 5 + .../aws-apigateway-basepathmapping.go | 5 + .../databrew/aws-databrew-job_output.go | 5 + .../aws-ec2-transitgatewayvpcattachment.go | 12 +- .../eks/aws-eks-identityproviderconfig.go | 140 ++++++++ ...oviderconfig_oidcidentityproviderconfig.go | 67 ++++ ...ks-identityproviderconfig_requiredclaim.go | 42 +++ .../msk/aws-msk-batchscramsecret.go | 124 +++++++ cloudformation/msk/aws-msk-cluster.go | 7 +- cloudformation/msk/aws-msk-configuration.go | 134 ++++++++ schema/cdk.go | 305 +++++++++++++++++- schema/cdk.schema.json | 305 +++++++++++++++++- schema/cloudformation.go | 305 +++++++++++++++++- schema/cloudformation.schema.json | 305 +++++++++++++++++- schema/sam.go | 305 +++++++++++++++++- schema/sam.schema.json | 305 +++++++++++++++++- 17 files changed, 2433 insertions(+), 13 deletions(-) create mode 100644 cloudformation/eks/aws-eks-identityproviderconfig.go create mode 100644 cloudformation/eks/aws-eks-identityproviderconfig_oidcidentityproviderconfig.go create mode 100644 cloudformation/eks/aws-eks-identityproviderconfig_requiredclaim.go create mode 100644 cloudformation/msk/aws-msk-batchscramsecret.go create mode 100644 cloudformation/msk/aws-msk-configuration.go diff --git a/cloudformation/all.go b/cloudformation/all.go index fe08748f59..fd01aaa90f 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -539,6 +539,7 @@ func AllResources() map[string]Resource { "AWS::EKS::Addon": &eks.Addon{}, "AWS::EKS::Cluster": &eks.Cluster{}, "AWS::EKS::FargateProfile": &eks.FargateProfile{}, + "AWS::EKS::IdentityProviderConfig": &eks.IdentityProviderConfig{}, "AWS::EKS::Nodegroup": &eks.Nodegroup{}, "AWS::EMR::Cluster": &emr.Cluster{}, "AWS::EMR::InstanceFleetConfig": &emr.InstanceFleetConfig{}, @@ -791,7 +792,9 @@ func AllResources() map[string]Resource { "AWS::LookoutMetrics::Alert": &lookoutmetrics.Alert{}, "AWS::LookoutMetrics::AnomalyDetector": &lookoutmetrics.AnomalyDetector{}, "AWS::LookoutVision::Project": &lookoutvision.Project{}, + "AWS::MSK::BatchScramSecret": &msk.BatchScramSecret{}, "AWS::MSK::Cluster": &msk.Cluster{}, + "AWS::MSK::Configuration": &msk.Configuration{}, "AWS::MWAA::Environment": &mwaa.Environment{}, "AWS::Macie::CustomDataIdentifier": &macie.CustomDataIdentifier{}, "AWS::Macie::FindingsFilter": &macie.FindingsFilter{}, @@ -9305,6 +9308,30 @@ func (t *Template) GetEKSFargateProfileWithName(name string) (*eks.FargateProfil return nil, fmt.Errorf("resource %q of type eks.FargateProfile not found", name) } +// GetAllEKSIdentityProviderConfigResources retrieves all eks.IdentityProviderConfig items from an AWS CloudFormation template +func (t *Template) GetAllEKSIdentityProviderConfigResources() map[string]*eks.IdentityProviderConfig { + results := map[string]*eks.IdentityProviderConfig{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *eks.IdentityProviderConfig: + results[name] = resource + } + } + return results +} + +// GetEKSIdentityProviderConfigWithName retrieves all eks.IdentityProviderConfig items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetEKSIdentityProviderConfigWithName(name string) (*eks.IdentityProviderConfig, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *eks.IdentityProviderConfig: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type eks.IdentityProviderConfig not found", name) +} + // GetAllEKSNodegroupResources retrieves all eks.Nodegroup items from an AWS CloudFormation template func (t *Template) GetAllEKSNodegroupResources() map[string]*eks.Nodegroup { results := map[string]*eks.Nodegroup{} @@ -15353,6 +15380,30 @@ func (t *Template) GetLookoutVisionProjectWithName(name string) (*lookoutvision. return nil, fmt.Errorf("resource %q of type lookoutvision.Project not found", name) } +// GetAllMSKBatchScramSecretResources retrieves all msk.BatchScramSecret items from an AWS CloudFormation template +func (t *Template) GetAllMSKBatchScramSecretResources() map[string]*msk.BatchScramSecret { + results := map[string]*msk.BatchScramSecret{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *msk.BatchScramSecret: + results[name] = resource + } + } + return results +} + +// GetMSKBatchScramSecretWithName retrieves all msk.BatchScramSecret items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetMSKBatchScramSecretWithName(name string) (*msk.BatchScramSecret, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *msk.BatchScramSecret: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type msk.BatchScramSecret not found", name) +} + // GetAllMSKClusterResources retrieves all msk.Cluster items from an AWS CloudFormation template func (t *Template) GetAllMSKClusterResources() map[string]*msk.Cluster { results := map[string]*msk.Cluster{} @@ -15377,6 +15428,30 @@ func (t *Template) GetMSKClusterWithName(name string) (*msk.Cluster, error) { return nil, fmt.Errorf("resource %q of type msk.Cluster not found", name) } +// GetAllMSKConfigurationResources retrieves all msk.Configuration items from an AWS CloudFormation template +func (t *Template) GetAllMSKConfigurationResources() map[string]*msk.Configuration { + results := map[string]*msk.Configuration{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *msk.Configuration: + results[name] = resource + } + } + return results +} + +// GetMSKConfigurationWithName retrieves all msk.Configuration items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetMSKConfigurationWithName(name string) (*msk.Configuration, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *msk.Configuration: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type msk.Configuration not found", name) +} + // GetAllMWAAEnvironmentResources retrieves all mwaa.Environment items from an AWS CloudFormation template func (t *Template) GetAllMWAAEnvironmentResources() map[string]*mwaa.Environment { results := map[string]*mwaa.Environment{} diff --git a/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component.go b/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component.go index f39da2591f..c17c07d10a 100644 --- a/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component.go +++ b/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component.go @@ -54,6 +54,11 @@ type Component struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html#cfn-amplifyuibuilder-component-properties Properties map[string]Component_ComponentProperty `json:"Properties"` + // SchemaVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html#cfn-amplifyuibuilder-component-schemaversion + SchemaVersion *string `json:"SchemaVersion,omitempty"` + // SourceId AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html#cfn-amplifyuibuilder-component-sourceid diff --git a/cloudformation/apigateway/aws-apigateway-basepathmapping.go b/cloudformation/apigateway/aws-apigateway-basepathmapping.go index 1c1ada1e64..af01949cf9 100644 --- a/cloudformation/apigateway/aws-apigateway-basepathmapping.go +++ b/cloudformation/apigateway/aws-apigateway-basepathmapping.go @@ -24,6 +24,11 @@ type BasePathMapping struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-domainname DomainName string `json:"DomainName"` + // Id AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-id + Id *string `json:"Id,omitempty"` + // RestApiId AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-restapiid diff --git a/cloudformation/databrew/aws-databrew-job_output.go b/cloudformation/databrew/aws-databrew-job_output.go index 9a1f4dfb8c..d2c60d336d 100644 --- a/cloudformation/databrew/aws-databrew-job_output.go +++ b/cloudformation/databrew/aws-databrew-job_output.go @@ -30,6 +30,11 @@ type Job_Output struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-location Location *Job_S3Location `json:"Location"` + // MaxOutputFiles AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-maxoutputfiles + MaxOutputFiles *int `json:"MaxOutputFiles,omitempty"` + // Overwrite AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-overwrite diff --git a/cloudformation/ec2/aws-ec2-transitgatewayvpcattachment.go b/cloudformation/ec2/aws-ec2-transitgatewayvpcattachment.go index 7ebf43c18c..3183573c59 100644 --- a/cloudformation/ec2/aws-ec2-transitgatewayvpcattachment.go +++ b/cloudformation/ec2/aws-ec2-transitgatewayvpcattachment.go @@ -31,9 +31,9 @@ type TransitGatewayVpcAttachment struct { RemoveSubnetIds *[]string `json:"RemoveSubnetIds,omitempty"` // SubnetIds AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-subnetids - SubnetIds *[]string `json:"SubnetIds,omitempty"` + SubnetIds []string `json:"SubnetIds"` // Tags AWS CloudFormation Property // Required: false @@ -41,14 +41,14 @@ type TransitGatewayVpcAttachment struct { Tags *[]tags.Tag `json:"Tags,omitempty"` // TransitGatewayId AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-transitgatewayid - TransitGatewayId *string `json:"TransitGatewayId,omitempty"` + TransitGatewayId string `json:"TransitGatewayId"` // VpcId AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-vpcid - VpcId *string `json:"VpcId,omitempty"` + VpcId string `json:"VpcId"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/eks/aws-eks-identityproviderconfig.go b/cloudformation/eks/aws-eks-identityproviderconfig.go new file mode 100644 index 0000000000..40eabc282f --- /dev/null +++ b/cloudformation/eks/aws-eks-identityproviderconfig.go @@ -0,0 +1,140 @@ +// Code generated by "go generate". Please don't change this file directly. + +package eks + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v6/cloudformation/policies" + "github.com/awslabs/goformation/v6/cloudformation/tags" +) + +// IdentityProviderConfig AWS CloudFormation Resource (AWS::EKS::IdentityProviderConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html +type IdentityProviderConfig struct { + + // ClusterName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-clustername + ClusterName string `json:"ClusterName"` + + // IdentityProviderConfigName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-identityproviderconfigname + IdentityProviderConfigName *string `json:"IdentityProviderConfigName,omitempty"` + + // Oidc AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-oidc + Oidc *IdentityProviderConfig_OidcIdentityProviderConfig `json:"Oidc,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-tags + Tags *[]tags.Tag `json:"Tags,omitempty"` + + // Type AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-type + Type string `json:"Type"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *IdentityProviderConfig) AWSCloudFormationType() string { + return "AWS::EKS::IdentityProviderConfig" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r IdentityProviderConfig) MarshalJSON() ([]byte, error) { + type Properties IdentityProviderConfig + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *IdentityProviderConfig) UnmarshalJSON(b []byte) error { + type Properties IdentityProviderConfig + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = IdentityProviderConfig(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/eks/aws-eks-identityproviderconfig_oidcidentityproviderconfig.go b/cloudformation/eks/aws-eks-identityproviderconfig_oidcidentityproviderconfig.go new file mode 100644 index 0000000000..ceed342098 --- /dev/null +++ b/cloudformation/eks/aws-eks-identityproviderconfig_oidcidentityproviderconfig.go @@ -0,0 +1,67 @@ +// Code generated by "go generate". Please don't change this file directly. + +package eks + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// IdentityProviderConfig_OidcIdentityProviderConfig AWS CloudFormation Resource (AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html +type IdentityProviderConfig_OidcIdentityProviderConfig struct { + + // ClientId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-clientid + ClientId string `json:"ClientId"` + + // GroupsClaim AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-groupsclaim + GroupsClaim *string `json:"GroupsClaim,omitempty"` + + // GroupsPrefix AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-groupsprefix + GroupsPrefix *string `json:"GroupsPrefix,omitempty"` + + // IssuerUrl AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-issuerurl + IssuerUrl string `json:"IssuerUrl"` + + // RequiredClaims AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-requiredclaims + RequiredClaims *[]IdentityProviderConfig_RequiredClaim `json:"RequiredClaims,omitempty"` + + // UsernameClaim AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-usernameclaim + UsernameClaim *string `json:"UsernameClaim,omitempty"` + + // UsernamePrefix AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-usernameprefix + UsernamePrefix *string `json:"UsernamePrefix,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *IdentityProviderConfig_OidcIdentityProviderConfig) AWSCloudFormationType() string { + return "AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig" +} diff --git a/cloudformation/eks/aws-eks-identityproviderconfig_requiredclaim.go b/cloudformation/eks/aws-eks-identityproviderconfig_requiredclaim.go new file mode 100644 index 0000000000..3546c877f7 --- /dev/null +++ b/cloudformation/eks/aws-eks-identityproviderconfig_requiredclaim.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package eks + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// IdentityProviderConfig_RequiredClaim AWS CloudFormation Resource (AWS::EKS::IdentityProviderConfig.RequiredClaim) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-requiredclaim.html +type IdentityProviderConfig_RequiredClaim struct { + + // Key AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-requiredclaim.html#cfn-eks-identityproviderconfig-requiredclaim-key + Key string `json:"Key"` + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-requiredclaim.html#cfn-eks-identityproviderconfig-requiredclaim-value + Value string `json:"Value"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *IdentityProviderConfig_RequiredClaim) AWSCloudFormationType() string { + return "AWS::EKS::IdentityProviderConfig.RequiredClaim" +} diff --git a/cloudformation/msk/aws-msk-batchscramsecret.go b/cloudformation/msk/aws-msk-batchscramsecret.go new file mode 100644 index 0000000000..0fbe1a7f9e --- /dev/null +++ b/cloudformation/msk/aws-msk-batchscramsecret.go @@ -0,0 +1,124 @@ +// Code generated by "go generate". Please don't change this file directly. + +package msk + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// BatchScramSecret AWS CloudFormation Resource (AWS::MSK::BatchScramSecret) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-batchscramsecret.html +type BatchScramSecret struct { + + // ClusterArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-batchscramsecret.html#cfn-msk-batchscramsecret-clusterarn + ClusterArn string `json:"ClusterArn"` + + // SecretArnList AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-batchscramsecret.html#cfn-msk-batchscramsecret-secretarnlist + SecretArnList *[]string `json:"SecretArnList,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *BatchScramSecret) AWSCloudFormationType() string { + return "AWS::MSK::BatchScramSecret" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r BatchScramSecret) MarshalJSON() ([]byte, error) { + type Properties BatchScramSecret + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *BatchScramSecret) UnmarshalJSON(b []byte) error { + type Properties BatchScramSecret + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = BatchScramSecret(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/msk/aws-msk-cluster.go b/cloudformation/msk/aws-msk-cluster.go index 9bcbaa1e6f..75687466f7 100644 --- a/cloudformation/msk/aws-msk-cluster.go +++ b/cloudformation/msk/aws-msk-cluster.go @@ -34,6 +34,11 @@ type Cluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-cluster.html#cfn-msk-cluster-configurationinfo ConfigurationInfo *Cluster_ConfigurationInfo `json:"ConfigurationInfo,omitempty"` + // CurrentVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-cluster.html#cfn-msk-cluster-currentversion + CurrentVersion *string `json:"CurrentVersion,omitempty"` + // EncryptionInfo AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-cluster.html#cfn-msk-cluster-encryptioninfo @@ -67,7 +72,7 @@ type Cluster struct { // Tags AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-cluster.html#cfn-msk-cluster-tags - Tags *interface{} `json:"Tags,omitempty"` + Tags *map[string]string `json:"Tags,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/msk/aws-msk-configuration.go b/cloudformation/msk/aws-msk-configuration.go new file mode 100644 index 0000000000..24be438bad --- /dev/null +++ b/cloudformation/msk/aws-msk-configuration.go @@ -0,0 +1,134 @@ +// Code generated by "go generate". Please don't change this file directly. + +package msk + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Configuration AWS CloudFormation Resource (AWS::MSK::Configuration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-configuration.html +type Configuration struct { + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-configuration.html#cfn-msk-configuration-description + Description *string `json:"Description,omitempty"` + + // KafkaVersionsList AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-configuration.html#cfn-msk-configuration-kafkaversionslist + KafkaVersionsList *[]string `json:"KafkaVersionsList,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-configuration.html#cfn-msk-configuration-name + Name *string `json:"Name,omitempty"` + + // ServerProperties AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-configuration.html#cfn-msk-configuration-serverproperties + ServerProperties string `json:"ServerProperties"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Configuration) AWSCloudFormationType() string { + return "AWS::MSK::Configuration" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r Configuration) MarshalJSON() ([]byte, error) { + type Properties Configuration + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *Configuration) UnmarshalJSON(b []byte) error { + type Properties Configuration + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Configuration(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/schema/cdk.go b/schema/cdk.go index cfae5f6fe5..e879c3b6f7 100644 --- a/schema/cdk.go +++ b/schema/cdk.go @@ -2089,6 +2089,9 @@ var CdkSchema = `{ }, "type": "object" }, + "SchemaVersion": { + "type": "string" + }, "SourceId": { "type": "string" }, @@ -2884,6 +2887,9 @@ var CdkSchema = `{ "DomainName": { "type": "string" }, + "Id": { + "type": "string" + }, "RestApiId": { "type": "string" }, @@ -33084,6 +33090,9 @@ var CdkSchema = `{ "Location": { "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" }, + "MaxOutputFiles": { + "type": "number" + }, "Overwrite": { "type": "boolean" }, @@ -44987,6 +44996,11 @@ var CdkSchema = `{ "type": "string" } }, + "required": [ + "SubnetIds", + "TransitGatewayId", + "VpcId" + ], "type": "object" }, "Type": { @@ -45005,7 +45019,8 @@ var CdkSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -49039,6 +49054,134 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::EKS::IdentityProviderConfig": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "IdentityProviderConfigName": { + "type": "string" + }, + "Oidc": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ClusterName", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::IdentityProviderConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig": { + "additionalProperties": false, + "properties": { + "ClientId": { + "type": "string" + }, + "GroupsClaim": { + "type": "string" + }, + "GroupsPrefix": { + "type": "string" + }, + "IssuerUrl": { + "type": "string" + }, + "RequiredClaims": { + "items": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.RequiredClaim" + }, + "type": "array" + }, + "UsernameClaim": { + "type": "string" + }, + "UsernamePrefix": { + "type": "string" + } + }, + "required": [ + "ClientId", + "IssuerUrl" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig.RequiredClaim": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::EKS::Nodegroup": { "additionalProperties": false, "properties": { @@ -86607,6 +86750,74 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::MSK::BatchScramSecret": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterArn": { + "type": "string" + }, + "SecretArnList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ClusterArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::BatchScramSecret" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MSK::Cluster": { "additionalProperties": false, "properties": { @@ -86651,6 +86862,9 @@ var CdkSchema = `{ "ConfigurationInfo": { "$ref": "#/definitions/AWS::MSK::Cluster.ConfigurationInfo" }, + "CurrentVersion": { + "type": "string" + }, "EncryptionInfo": { "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInfo" }, @@ -86670,6 +86884,12 @@ var CdkSchema = `{ "$ref": "#/definitions/AWS::MSK::Cluster.OpenMonitoring" }, "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" } }, @@ -87040,6 +87260,80 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::MSK::Configuration": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "KafkaVersionsList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "ServerProperties": { + "type": "string" + } + }, + "required": [ + "ServerProperties" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::Configuration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -128741,6 +129035,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::EKS::FargateProfile" }, + { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig" + }, { "$ref": "#/definitions/AWS::EKS::Nodegroup" }, @@ -129497,9 +129794,15 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::LookoutVision::Project" }, + { + "$ref": "#/definitions/AWS::MSK::BatchScramSecret" + }, { "$ref": "#/definitions/AWS::MSK::Cluster" }, + { + "$ref": "#/definitions/AWS::MSK::Configuration" + }, { "$ref": "#/definitions/AWS::MWAA::Environment" }, diff --git a/schema/cdk.schema.json b/schema/cdk.schema.json index 35bff17616..fcfec1b626 100644 --- a/schema/cdk.schema.json +++ b/schema/cdk.schema.json @@ -2084,6 +2084,9 @@ }, "type": "object" }, + "SchemaVersion": { + "type": "string" + }, "SourceId": { "type": "string" }, @@ -2879,6 +2882,9 @@ "DomainName": { "type": "string" }, + "Id": { + "type": "string" + }, "RestApiId": { "type": "string" }, @@ -33079,6 +33085,9 @@ "Location": { "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" }, + "MaxOutputFiles": { + "type": "number" + }, "Overwrite": { "type": "boolean" }, @@ -44982,6 +44991,11 @@ "type": "string" } }, + "required": [ + "SubnetIds", + "TransitGatewayId", + "VpcId" + ], "type": "object" }, "Type": { @@ -45000,7 +45014,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -49034,6 +49049,134 @@ ], "type": "object" }, + "AWS::EKS::IdentityProviderConfig": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "IdentityProviderConfigName": { + "type": "string" + }, + "Oidc": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ClusterName", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::IdentityProviderConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig": { + "additionalProperties": false, + "properties": { + "ClientId": { + "type": "string" + }, + "GroupsClaim": { + "type": "string" + }, + "GroupsPrefix": { + "type": "string" + }, + "IssuerUrl": { + "type": "string" + }, + "RequiredClaims": { + "items": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.RequiredClaim" + }, + "type": "array" + }, + "UsernameClaim": { + "type": "string" + }, + "UsernamePrefix": { + "type": "string" + } + }, + "required": [ + "ClientId", + "IssuerUrl" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig.RequiredClaim": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::EKS::Nodegroup": { "additionalProperties": false, "properties": { @@ -86602,6 +86745,74 @@ ], "type": "object" }, + "AWS::MSK::BatchScramSecret": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterArn": { + "type": "string" + }, + "SecretArnList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ClusterArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::BatchScramSecret" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MSK::Cluster": { "additionalProperties": false, "properties": { @@ -86646,6 +86857,9 @@ "ConfigurationInfo": { "$ref": "#/definitions/AWS::MSK::Cluster.ConfigurationInfo" }, + "CurrentVersion": { + "type": "string" + }, "EncryptionInfo": { "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInfo" }, @@ -86665,6 +86879,12 @@ "$ref": "#/definitions/AWS::MSK::Cluster.OpenMonitoring" }, "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" } }, @@ -87035,6 +87255,80 @@ ], "type": "object" }, + "AWS::MSK::Configuration": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "KafkaVersionsList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "ServerProperties": { + "type": "string" + } + }, + "required": [ + "ServerProperties" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::Configuration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -128736,6 +129030,9 @@ { "$ref": "#/definitions/AWS::EKS::FargateProfile" }, + { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig" + }, { "$ref": "#/definitions/AWS::EKS::Nodegroup" }, @@ -129492,9 +129789,15 @@ { "$ref": "#/definitions/AWS::LookoutVision::Project" }, + { + "$ref": "#/definitions/AWS::MSK::BatchScramSecret" + }, { "$ref": "#/definitions/AWS::MSK::Cluster" }, + { + "$ref": "#/definitions/AWS::MSK::Configuration" + }, { "$ref": "#/definitions/AWS::MWAA::Environment" }, diff --git a/schema/cloudformation.go b/schema/cloudformation.go index a7c815ddad..89db97f97b 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -2089,6 +2089,9 @@ var CloudformationSchema = `{ }, "type": "object" }, + "SchemaVersion": { + "type": "string" + }, "SourceId": { "type": "string" }, @@ -2884,6 +2887,9 @@ var CloudformationSchema = `{ "DomainName": { "type": "string" }, + "Id": { + "type": "string" + }, "RestApiId": { "type": "string" }, @@ -33026,6 +33032,9 @@ var CloudformationSchema = `{ "Location": { "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" }, + "MaxOutputFiles": { + "type": "number" + }, "Overwrite": { "type": "boolean" }, @@ -44929,6 +44938,11 @@ var CloudformationSchema = `{ "type": "string" } }, + "required": [ + "SubnetIds", + "TransitGatewayId", + "VpcId" + ], "type": "object" }, "Type": { @@ -44947,7 +44961,8 @@ var CloudformationSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -48981,6 +48996,134 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EKS::IdentityProviderConfig": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "IdentityProviderConfigName": { + "type": "string" + }, + "Oidc": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ClusterName", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::IdentityProviderConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig": { + "additionalProperties": false, + "properties": { + "ClientId": { + "type": "string" + }, + "GroupsClaim": { + "type": "string" + }, + "GroupsPrefix": { + "type": "string" + }, + "IssuerUrl": { + "type": "string" + }, + "RequiredClaims": { + "items": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.RequiredClaim" + }, + "type": "array" + }, + "UsernameClaim": { + "type": "string" + }, + "UsernamePrefix": { + "type": "string" + } + }, + "required": [ + "ClientId", + "IssuerUrl" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig.RequiredClaim": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::EKS::Nodegroup": { "additionalProperties": false, "properties": { @@ -86549,6 +86692,74 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::MSK::BatchScramSecret": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterArn": { + "type": "string" + }, + "SecretArnList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ClusterArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::BatchScramSecret" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MSK::Cluster": { "additionalProperties": false, "properties": { @@ -86593,6 +86804,9 @@ var CloudformationSchema = `{ "ConfigurationInfo": { "$ref": "#/definitions/AWS::MSK::Cluster.ConfigurationInfo" }, + "CurrentVersion": { + "type": "string" + }, "EncryptionInfo": { "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInfo" }, @@ -86612,6 +86826,12 @@ var CloudformationSchema = `{ "$ref": "#/definitions/AWS::MSK::Cluster.OpenMonitoring" }, "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" } }, @@ -86982,6 +87202,80 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::MSK::Configuration": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "KafkaVersionsList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "ServerProperties": { + "type": "string" + } + }, + "required": [ + "ServerProperties" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::Configuration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -128680,6 +128974,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::EKS::FargateProfile" }, + { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig" + }, { "$ref": "#/definitions/AWS::EKS::Nodegroup" }, @@ -129436,9 +129733,15 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::LookoutVision::Project" }, + { + "$ref": "#/definitions/AWS::MSK::BatchScramSecret" + }, { "$ref": "#/definitions/AWS::MSK::Cluster" }, + { + "$ref": "#/definitions/AWS::MSK::Configuration" + }, { "$ref": "#/definitions/AWS::MWAA::Environment" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index d6ec64e8dc..7caf49049f 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -2084,6 +2084,9 @@ }, "type": "object" }, + "SchemaVersion": { + "type": "string" + }, "SourceId": { "type": "string" }, @@ -2879,6 +2882,9 @@ "DomainName": { "type": "string" }, + "Id": { + "type": "string" + }, "RestApiId": { "type": "string" }, @@ -33021,6 +33027,9 @@ "Location": { "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" }, + "MaxOutputFiles": { + "type": "number" + }, "Overwrite": { "type": "boolean" }, @@ -44924,6 +44933,11 @@ "type": "string" } }, + "required": [ + "SubnetIds", + "TransitGatewayId", + "VpcId" + ], "type": "object" }, "Type": { @@ -44942,7 +44956,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -48976,6 +48991,134 @@ ], "type": "object" }, + "AWS::EKS::IdentityProviderConfig": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "IdentityProviderConfigName": { + "type": "string" + }, + "Oidc": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ClusterName", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::IdentityProviderConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig": { + "additionalProperties": false, + "properties": { + "ClientId": { + "type": "string" + }, + "GroupsClaim": { + "type": "string" + }, + "GroupsPrefix": { + "type": "string" + }, + "IssuerUrl": { + "type": "string" + }, + "RequiredClaims": { + "items": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.RequiredClaim" + }, + "type": "array" + }, + "UsernameClaim": { + "type": "string" + }, + "UsernamePrefix": { + "type": "string" + } + }, + "required": [ + "ClientId", + "IssuerUrl" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig.RequiredClaim": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::EKS::Nodegroup": { "additionalProperties": false, "properties": { @@ -86544,6 +86687,74 @@ ], "type": "object" }, + "AWS::MSK::BatchScramSecret": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterArn": { + "type": "string" + }, + "SecretArnList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ClusterArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::BatchScramSecret" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MSK::Cluster": { "additionalProperties": false, "properties": { @@ -86588,6 +86799,9 @@ "ConfigurationInfo": { "$ref": "#/definitions/AWS::MSK::Cluster.ConfigurationInfo" }, + "CurrentVersion": { + "type": "string" + }, "EncryptionInfo": { "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInfo" }, @@ -86607,6 +86821,12 @@ "$ref": "#/definitions/AWS::MSK::Cluster.OpenMonitoring" }, "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" } }, @@ -86977,6 +87197,80 @@ ], "type": "object" }, + "AWS::MSK::Configuration": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "KafkaVersionsList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "ServerProperties": { + "type": "string" + } + }, + "required": [ + "ServerProperties" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::Configuration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -128675,6 +128969,9 @@ { "$ref": "#/definitions/AWS::EKS::FargateProfile" }, + { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig" + }, { "$ref": "#/definitions/AWS::EKS::Nodegroup" }, @@ -129431,9 +129728,15 @@ { "$ref": "#/definitions/AWS::LookoutVision::Project" }, + { + "$ref": "#/definitions/AWS::MSK::BatchScramSecret" + }, { "$ref": "#/definitions/AWS::MSK::Cluster" }, + { + "$ref": "#/definitions/AWS::MSK::Configuration" + }, { "$ref": "#/definitions/AWS::MWAA::Environment" }, diff --git a/schema/sam.go b/schema/sam.go index 2300d4bf04..60178ef012 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -2089,6 +2089,9 @@ var SamSchema = `{ }, "type": "object" }, + "SchemaVersion": { + "type": "string" + }, "SourceId": { "type": "string" }, @@ -2884,6 +2887,9 @@ var SamSchema = `{ "DomainName": { "type": "string" }, + "Id": { + "type": "string" + }, "RestApiId": { "type": "string" }, @@ -33026,6 +33032,9 @@ var SamSchema = `{ "Location": { "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" }, + "MaxOutputFiles": { + "type": "number" + }, "Overwrite": { "type": "boolean" }, @@ -44929,6 +44938,11 @@ var SamSchema = `{ "type": "string" } }, + "required": [ + "SubnetIds", + "TransitGatewayId", + "VpcId" + ], "type": "object" }, "Type": { @@ -44947,7 +44961,8 @@ var SamSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -48981,6 +48996,134 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EKS::IdentityProviderConfig": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "IdentityProviderConfigName": { + "type": "string" + }, + "Oidc": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ClusterName", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::IdentityProviderConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig": { + "additionalProperties": false, + "properties": { + "ClientId": { + "type": "string" + }, + "GroupsClaim": { + "type": "string" + }, + "GroupsPrefix": { + "type": "string" + }, + "IssuerUrl": { + "type": "string" + }, + "RequiredClaims": { + "items": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.RequiredClaim" + }, + "type": "array" + }, + "UsernameClaim": { + "type": "string" + }, + "UsernamePrefix": { + "type": "string" + } + }, + "required": [ + "ClientId", + "IssuerUrl" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig.RequiredClaim": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::EKS::Nodegroup": { "additionalProperties": false, "properties": { @@ -86549,6 +86692,74 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::MSK::BatchScramSecret": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterArn": { + "type": "string" + }, + "SecretArnList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ClusterArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::BatchScramSecret" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MSK::Cluster": { "additionalProperties": false, "properties": { @@ -86593,6 +86804,9 @@ var SamSchema = `{ "ConfigurationInfo": { "$ref": "#/definitions/AWS::MSK::Cluster.ConfigurationInfo" }, + "CurrentVersion": { + "type": "string" + }, "EncryptionInfo": { "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInfo" }, @@ -86612,6 +86826,12 @@ var SamSchema = `{ "$ref": "#/definitions/AWS::MSK::Cluster.OpenMonitoring" }, "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" } }, @@ -86982,6 +87202,80 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::MSK::Configuration": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "KafkaVersionsList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "ServerProperties": { + "type": "string" + } + }, + "required": [ + "ServerProperties" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::Configuration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -131358,6 +131652,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::EKS::FargateProfile" }, + { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig" + }, { "$ref": "#/definitions/AWS::EKS::Nodegroup" }, @@ -132114,9 +132411,15 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::LookoutVision::Project" }, + { + "$ref": "#/definitions/AWS::MSK::BatchScramSecret" + }, { "$ref": "#/definitions/AWS::MSK::Cluster" }, + { + "$ref": "#/definitions/AWS::MSK::Configuration" + }, { "$ref": "#/definitions/AWS::MWAA::Environment" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index d9d49306f4..f77060e4d1 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -2084,6 +2084,9 @@ }, "type": "object" }, + "SchemaVersion": { + "type": "string" + }, "SourceId": { "type": "string" }, @@ -2879,6 +2882,9 @@ "DomainName": { "type": "string" }, + "Id": { + "type": "string" + }, "RestApiId": { "type": "string" }, @@ -33021,6 +33027,9 @@ "Location": { "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" }, + "MaxOutputFiles": { + "type": "number" + }, "Overwrite": { "type": "boolean" }, @@ -44924,6 +44933,11 @@ "type": "string" } }, + "required": [ + "SubnetIds", + "TransitGatewayId", + "VpcId" + ], "type": "object" }, "Type": { @@ -44942,7 +44956,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -48976,6 +48991,134 @@ ], "type": "object" }, + "AWS::EKS::IdentityProviderConfig": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "IdentityProviderConfigName": { + "type": "string" + }, + "Oidc": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ClusterName", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::IdentityProviderConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig": { + "additionalProperties": false, + "properties": { + "ClientId": { + "type": "string" + }, + "GroupsClaim": { + "type": "string" + }, + "GroupsPrefix": { + "type": "string" + }, + "IssuerUrl": { + "type": "string" + }, + "RequiredClaims": { + "items": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.RequiredClaim" + }, + "type": "array" + }, + "UsernameClaim": { + "type": "string" + }, + "UsernamePrefix": { + "type": "string" + } + }, + "required": [ + "ClientId", + "IssuerUrl" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig.RequiredClaim": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::EKS::Nodegroup": { "additionalProperties": false, "properties": { @@ -86544,6 +86687,74 @@ ], "type": "object" }, + "AWS::MSK::BatchScramSecret": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterArn": { + "type": "string" + }, + "SecretArnList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ClusterArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::BatchScramSecret" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MSK::Cluster": { "additionalProperties": false, "properties": { @@ -86588,6 +86799,9 @@ "ConfigurationInfo": { "$ref": "#/definitions/AWS::MSK::Cluster.ConfigurationInfo" }, + "CurrentVersion": { + "type": "string" + }, "EncryptionInfo": { "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInfo" }, @@ -86607,6 +86821,12 @@ "$ref": "#/definitions/AWS::MSK::Cluster.OpenMonitoring" }, "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" } }, @@ -86977,6 +87197,80 @@ ], "type": "object" }, + "AWS::MSK::Configuration": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "KafkaVersionsList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "ServerProperties": { + "type": "string" + } + }, + "required": [ + "ServerProperties" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::Configuration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MWAA::Environment": { "additionalProperties": false, "properties": { @@ -131353,6 +131647,9 @@ { "$ref": "#/definitions/AWS::EKS::FargateProfile" }, + { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig" + }, { "$ref": "#/definitions/AWS::EKS::Nodegroup" }, @@ -132109,9 +132406,15 @@ { "$ref": "#/definitions/AWS::LookoutVision::Project" }, + { + "$ref": "#/definitions/AWS::MSK::BatchScramSecret" + }, { "$ref": "#/definitions/AWS::MSK::Cluster" }, + { + "$ref": "#/definitions/AWS::MSK::Configuration" + }, { "$ref": "#/definitions/AWS::MWAA::Environment" },