From f047bedef1193c8755bebac7f9edd3d872d52e1a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 29 Jan 2021 09:27:55 +0400 Subject: [PATCH] fix(schema): CloudFormation Updates (#342) Co-authored-by: Paul Maddox --- cloudformation/all.go | 26 +++ .../amazonmq/aws-amazonmq-configuration.go | 5 + .../apigatewayv2/aws-apigatewayv2-stage.go | 5 + .../aws-appflow-flow_idfieldnameslist.go | 35 ++++ ...ow-flow_salesforcedestinationproperties.go | 10 ++ cloudformation/ecs/aws-ecs-cluster.go | 5 + .../aws-ecs-cluster_clusterconfiguration.go | 35 ++++ ...ecs-cluster_executecommandconfiguration.go | 45 +++++ ...-cluster_executecommandlogconfiguration.go | 55 ++++++ .../aws-lookoutvision-project.go | 106 ++++++++++++ cloudformation/s3/aws-s3-accesspoint.go | 10 -- .../sagemaker/aws-sagemaker-model.go | 5 + ...agemaker-model_inferenceexecutionconfig.go | 35 ++++ ...anceaccesscontrolattributeconfiguration.go | 5 - schema/cloudformation.go | 161 +++++++++++++++++- schema/cloudformation.schema.json | 161 +++++++++++++++++- schema/sam.go | 161 +++++++++++++++++- schema/sam.schema.json | 161 +++++++++++++++++- 18 files changed, 975 insertions(+), 51 deletions(-) create mode 100644 cloudformation/appflow/aws-appflow-flow_idfieldnameslist.go create mode 100644 cloudformation/ecs/aws-ecs-cluster_clusterconfiguration.go create mode 100644 cloudformation/ecs/aws-ecs-cluster_executecommandconfiguration.go create mode 100644 cloudformation/ecs/aws-ecs-cluster_executecommandlogconfiguration.go create mode 100644 cloudformation/lookoutvision/aws-lookoutvision-project.go create mode 100644 cloudformation/sagemaker/aws-sagemaker-model_inferenceexecutionconfig.go diff --git a/cloudformation/all.go b/cloudformation/all.go index c9b2ed8198..77e720960a 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -98,6 +98,7 @@ import ( "github.com/awslabs/goformation/v4/cloudformation/lambda" "github.com/awslabs/goformation/v4/cloudformation/licensemanager" "github.com/awslabs/goformation/v4/cloudformation/logs" + "github.com/awslabs/goformation/v4/cloudformation/lookoutvision" "github.com/awslabs/goformation/v4/cloudformation/macie" "github.com/awslabs/goformation/v4/cloudformation/managedblockchain" "github.com/awslabs/goformation/v4/cloudformation/mediaconnect" @@ -598,6 +599,7 @@ func AllResources() map[string]Resource { "AWS::Logs::LogStream": &logs.LogStream{}, "AWS::Logs::MetricFilter": &logs.MetricFilter{}, "AWS::Logs::SubscriptionFilter": &logs.SubscriptionFilter{}, + "AWS::LookoutVision::Project": &lookoutvision.Project{}, "AWS::MSK::Cluster": &msk.Cluster{}, "AWS::MWAA::Environment": &mwaa.Environment{}, "AWS::Macie::CustomDataIdentifier": &macie.CustomDataIdentifier{}, @@ -11556,6 +11558,30 @@ func (t *Template) GetLogsSubscriptionFilterWithName(name string) (*logs.Subscri return nil, fmt.Errorf("resource %q of type logs.SubscriptionFilter not found", name) } +// GetAllLookoutVisionProjectResources retrieves all lookoutvision.Project items from an AWS CloudFormation template +func (t *Template) GetAllLookoutVisionProjectResources() map[string]*lookoutvision.Project { + results := map[string]*lookoutvision.Project{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *lookoutvision.Project: + results[name] = resource + } + } + return results +} + +// GetLookoutVisionProjectWithName retrieves all lookoutvision.Project items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetLookoutVisionProjectWithName(name string) (*lookoutvision.Project, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *lookoutvision.Project: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type lookoutvision.Project 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{} diff --git a/cloudformation/amazonmq/aws-amazonmq-configuration.go b/cloudformation/amazonmq/aws-amazonmq-configuration.go index 48b071a44f..766238be38 100644 --- a/cloudformation/amazonmq/aws-amazonmq-configuration.go +++ b/cloudformation/amazonmq/aws-amazonmq-configuration.go @@ -12,6 +12,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html type Configuration struct { + // AuthenticationStrategy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html#cfn-amazonmq-configuration-authenticationstrategy + AuthenticationStrategy string `json:"AuthenticationStrategy,omitempty"` + // Data AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html#cfn-amazonmq-configuration-data diff --git a/cloudformation/apigatewayv2/aws-apigatewayv2-stage.go b/cloudformation/apigatewayv2/aws-apigatewayv2-stage.go index 9af4d61da8..e865c82cef 100644 --- a/cloudformation/apigatewayv2/aws-apigatewayv2-stage.go +++ b/cloudformation/apigatewayv2/aws-apigatewayv2-stage.go @@ -17,6 +17,11 @@ type Stage struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings AccessLogSettings *Stage_AccessLogSettings `json:"AccessLogSettings,omitempty"` + // AccessPolicyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesspolicyid + AccessPolicyId string `json:"AccessPolicyId,omitempty"` + // ApiId AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-apiid diff --git a/cloudformation/appflow/aws-appflow-flow_idfieldnameslist.go b/cloudformation/appflow/aws-appflow-flow_idfieldnameslist.go new file mode 100644 index 0000000000..027b1103cb --- /dev/null +++ b/cloudformation/appflow/aws-appflow-flow_idfieldnameslist.go @@ -0,0 +1,35 @@ +package appflow + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Flow_IdFieldNamesList AWS CloudFormation Resource (AWS::AppFlow::Flow.IdFieldNamesList) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-idfieldnameslist.html +type Flow_IdFieldNamesList struct { + + // IdFieldNamesList AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-idfieldnameslist.html#cfn-appflow-flow-idfieldnameslist-idfieldnameslist + IdFieldNamesList []string `json:"IdFieldNamesList,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 *Flow_IdFieldNamesList) AWSCloudFormationType() string { + return "AWS::AppFlow::Flow.IdFieldNamesList" +} diff --git a/cloudformation/appflow/aws-appflow-flow_salesforcedestinationproperties.go b/cloudformation/appflow/aws-appflow-flow_salesforcedestinationproperties.go index 7ae3cf1c66..f6f506005f 100644 --- a/cloudformation/appflow/aws-appflow-flow_salesforcedestinationproperties.go +++ b/cloudformation/appflow/aws-appflow-flow_salesforcedestinationproperties.go @@ -13,11 +13,21 @@ type Flow_SalesforceDestinationProperties struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html#cfn-appflow-flow-salesforcedestinationproperties-errorhandlingconfig ErrorHandlingConfig *Flow_ErrorHandlingConfig `json:"ErrorHandlingConfig,omitempty"` + // IdFieldNames AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html#cfn-appflow-flow-salesforcedestinationproperties-idfieldnames + IdFieldNames *Flow_IdFieldNamesList `json:"IdFieldNames,omitempty"` + // Object AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html#cfn-appflow-flow-salesforcedestinationproperties-object Object string `json:"Object,omitempty"` + // WriteOperationType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html#cfn-appflow-flow-salesforcedestinationproperties-writeoperationtype + WriteOperationType string `json:"WriteOperationType,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/ecs/aws-ecs-cluster.go b/cloudformation/ecs/aws-ecs-cluster.go index 5dd2b4e53d..d330b1c3e0 100644 --- a/cloudformation/ecs/aws-ecs-cluster.go +++ b/cloudformation/ecs/aws-ecs-cluster.go @@ -28,6 +28,11 @@ type Cluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-clustersettings ClusterSettings []Cluster_ClusterSettings `json:"ClusterSettings,omitempty"` + // Configuration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-configuration + Configuration *Cluster_ClusterConfiguration `json:"Configuration,omitempty"` + // DefaultCapacityProviderStrategy AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-defaultcapacityproviderstrategy diff --git a/cloudformation/ecs/aws-ecs-cluster_clusterconfiguration.go b/cloudformation/ecs/aws-ecs-cluster_clusterconfiguration.go new file mode 100644 index 0000000000..0d271d36f8 --- /dev/null +++ b/cloudformation/ecs/aws-ecs-cluster_clusterconfiguration.go @@ -0,0 +1,35 @@ +package ecs + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Cluster_ClusterConfiguration AWS CloudFormation Resource (AWS::ECS::Cluster.ClusterConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clusterconfiguration.html +type Cluster_ClusterConfiguration struct { + + // ExecuteCommandConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clusterconfiguration.html#cfn-ecs-cluster-clusterconfiguration-executecommandconfiguration + ExecuteCommandConfiguration *Cluster_ExecuteCommandConfiguration `json:"ExecuteCommandConfiguration,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 *Cluster_ClusterConfiguration) AWSCloudFormationType() string { + return "AWS::ECS::Cluster.ClusterConfiguration" +} diff --git a/cloudformation/ecs/aws-ecs-cluster_executecommandconfiguration.go b/cloudformation/ecs/aws-ecs-cluster_executecommandconfiguration.go new file mode 100644 index 0000000000..4f45ad592e --- /dev/null +++ b/cloudformation/ecs/aws-ecs-cluster_executecommandconfiguration.go @@ -0,0 +1,45 @@ +package ecs + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Cluster_ExecuteCommandConfiguration AWS CloudFormation Resource (AWS::ECS::Cluster.ExecuteCommandConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html +type Cluster_ExecuteCommandConfiguration struct { + + // KmsKeyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html#cfn-ecs-cluster-executecommandconfiguration-kmskeyid + KmsKeyId string `json:"KmsKeyId,omitempty"` + + // LogConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html#cfn-ecs-cluster-executecommandconfiguration-logconfiguration + LogConfiguration *Cluster_ExecuteCommandLogConfiguration `json:"LogConfiguration,omitempty"` + + // Logging AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html#cfn-ecs-cluster-executecommandconfiguration-logging + Logging string `json:"Logging,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 *Cluster_ExecuteCommandConfiguration) AWSCloudFormationType() string { + return "AWS::ECS::Cluster.ExecuteCommandConfiguration" +} diff --git a/cloudformation/ecs/aws-ecs-cluster_executecommandlogconfiguration.go b/cloudformation/ecs/aws-ecs-cluster_executecommandlogconfiguration.go new file mode 100644 index 0000000000..22d67a0e00 --- /dev/null +++ b/cloudformation/ecs/aws-ecs-cluster_executecommandlogconfiguration.go @@ -0,0 +1,55 @@ +package ecs + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Cluster_ExecuteCommandLogConfiguration AWS CloudFormation Resource (AWS::ECS::Cluster.ExecuteCommandLogConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html +type Cluster_ExecuteCommandLogConfiguration struct { + + // CloudWatchEncryptionEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html#cfn-ecs-cluster-executecommandlogconfiguration-cloudwatchencryptionenabled + CloudWatchEncryptionEnabled bool `json:"CloudWatchEncryptionEnabled,omitempty"` + + // CloudWatchLogGroupName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html#cfn-ecs-cluster-executecommandlogconfiguration-cloudwatchloggroupname + CloudWatchLogGroupName string `json:"CloudWatchLogGroupName,omitempty"` + + // S3BucketName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html#cfn-ecs-cluster-executecommandlogconfiguration-s3bucketname + S3BucketName string `json:"S3BucketName,omitempty"` + + // S3EncryptionEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html#cfn-ecs-cluster-executecommandlogconfiguration-s3encryptionenabled + S3EncryptionEnabled bool `json:"S3EncryptionEnabled,omitempty"` + + // S3KeyPrefix AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html#cfn-ecs-cluster-executecommandlogconfiguration-s3keyprefix + S3KeyPrefix string `json:"S3KeyPrefix,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 *Cluster_ExecuteCommandLogConfiguration) AWSCloudFormationType() string { + return "AWS::ECS::Cluster.ExecuteCommandLogConfiguration" +} diff --git a/cloudformation/lookoutvision/aws-lookoutvision-project.go b/cloudformation/lookoutvision/aws-lookoutvision-project.go new file mode 100644 index 0000000000..e48278ea36 --- /dev/null +++ b/cloudformation/lookoutvision/aws-lookoutvision-project.go @@ -0,0 +1,106 @@ +package lookoutvision + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Project AWS CloudFormation Resource (AWS::LookoutVision::Project) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutvision-project.html +type Project struct { + + // ProjectName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutvision-project.html#cfn-lookoutvision-project-projectname + ProjectName string `json:"ProjectName,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 *Project) AWSCloudFormationType() string { + return "AWS::LookoutVision::Project" +} + +// 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 Project) MarshalJSON() ([]byte, error) { + type Properties Project + 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 *Project) UnmarshalJSON(b []byte) error { + type Properties Project + res := &struct { + Type string + Properties *Properties + DependsOn []string + 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 = Project(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + 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/s3/aws-s3-accesspoint.go b/cloudformation/s3/aws-s3-accesspoint.go index 7cc2324fba..a3c00a276a 100644 --- a/cloudformation/s3/aws-s3-accesspoint.go +++ b/cloudformation/s3/aws-s3-accesspoint.go @@ -22,21 +22,11 @@ type AccessPoint struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-name Name string `json:"Name,omitempty"` - // NetworkOrigin AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-networkorigin - NetworkOrigin string `json:"NetworkOrigin,omitempty"` - // Policy AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-policy Policy interface{} `json:"Policy,omitempty"` - // PolicyStatus AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-policystatus - PolicyStatus interface{} `json:"PolicyStatus,omitempty"` - // PublicAccessBlockConfiguration AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-publicaccessblockconfiguration diff --git a/cloudformation/sagemaker/aws-sagemaker-model.go b/cloudformation/sagemaker/aws-sagemaker-model.go index 247a277063..6b9f5cae82 100644 --- a/cloudformation/sagemaker/aws-sagemaker-model.go +++ b/cloudformation/sagemaker/aws-sagemaker-model.go @@ -28,6 +28,11 @@ type Model struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html#cfn-sagemaker-model-executionrolearn ExecutionRoleArn string `json:"ExecutionRoleArn,omitempty"` + // InferenceExecutionConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html#cfn-sagemaker-model-inferenceexecutionconfig + InferenceExecutionConfig *Model_InferenceExecutionConfig `json:"InferenceExecutionConfig,omitempty"` + // ModelName AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-model.html#cfn-sagemaker-model-modelname diff --git a/cloudformation/sagemaker/aws-sagemaker-model_inferenceexecutionconfig.go b/cloudformation/sagemaker/aws-sagemaker-model_inferenceexecutionconfig.go new file mode 100644 index 0000000000..2ae3b60d26 --- /dev/null +++ b/cloudformation/sagemaker/aws-sagemaker-model_inferenceexecutionconfig.go @@ -0,0 +1,35 @@ +package sagemaker + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Model_InferenceExecutionConfig AWS CloudFormation Resource (AWS::SageMaker::Model.InferenceExecutionConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-inferenceexecutionconfig.html +type Model_InferenceExecutionConfig struct { + + // Mode AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-inferenceexecutionconfig.html#cfn-sagemaker-model-inferenceexecutionconfig-mode + Mode string `json:"Mode,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 *Model_InferenceExecutionConfig) AWSCloudFormationType() string { + return "AWS::SageMaker::Model.InferenceExecutionConfig" +} diff --git a/cloudformation/sso/aws-sso-instanceaccesscontrolattributeconfiguration.go b/cloudformation/sso/aws-sso-instanceaccesscontrolattributeconfiguration.go index f93c2facfa..10f8d53d6d 100644 --- a/cloudformation/sso/aws-sso-instanceaccesscontrolattributeconfiguration.go +++ b/cloudformation/sso/aws-sso-instanceaccesscontrolattributeconfiguration.go @@ -17,11 +17,6 @@ type InstanceAccessControlAttributeConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-instanceaccesscontrolattributeconfiguration.html#cfn-sso-instanceaccesscontrolattributeconfiguration-accesscontrolattributes AccessControlAttributes []InstanceAccessControlAttributeConfiguration_AccessControlAttribute `json:"AccessControlAttributes,omitempty"` - // InstanceAccessControlAttributeConfiguration AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-instanceaccesscontrolattributeconfiguration.html#cfn-sso-instanceaccesscontrolattributeconfiguration-instanceaccesscontrolattributeconfiguration - InstanceAccessControlAttributeConfiguration interface{} `json:"InstanceAccessControlAttributeConfiguration,omitempty"` - // InstanceArn AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sso-instanceaccesscontrolattributeconfiguration.html#cfn-sso-instanceaccesscontrolattributeconfiguration-instancearn diff --git a/schema/cloudformation.go b/schema/cloudformation.go index c550e628ad..0abfd75b68 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -1208,6 +1208,9 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "AuthenticationStrategy": { + "type": "string" + }, "Data": { "type": "string" }, @@ -5067,6 +5070,9 @@ var CloudformationSchema = `{ "AccessLogSettings": { "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.AccessLogSettings" }, + "AccessPolicyId": { + "type": "string" + }, "ApiId": { "type": "string" }, @@ -6711,6 +6717,18 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AppFlow::Flow.IdFieldNamesList": { + "additionalProperties": false, + "properties": { + "IdFieldNamesList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::AppFlow::Flow.IncrementalPullConfig": { "additionalProperties": false, "properties": { @@ -6833,8 +6851,14 @@ var CloudformationSchema = `{ "ErrorHandlingConfig": { "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" }, + "IdFieldNames": { + "$ref": "#/definitions/AWS::AppFlow::Flow.IdFieldNamesList" + }, "Object": { "type": "string" + }, + "WriteOperationType": { + "type": "string" } }, "required": [ @@ -35374,6 +35398,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "Configuration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ClusterConfiguration" + }, "DefaultCapacityProviderStrategy": { "items": { "$ref": "#/definitions/AWS::ECS::Cluster.CapacityProviderStrategyItem" @@ -35424,6 +35451,15 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::ECS::Cluster.ClusterConfiguration": { + "additionalProperties": false, + "properties": { + "ExecuteCommandConfiguration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandConfiguration" + } + }, + "type": "object" + }, "AWS::ECS::Cluster.ClusterSettings": { "additionalProperties": false, "properties": { @@ -35436,6 +35472,42 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::ECS::Cluster.ExecuteCommandConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandLogConfiguration" + }, + "Logging": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster.ExecuteCommandLogConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchEncryptionEnabled": { + "type": "boolean" + }, + "CloudWatchLogGroupName": { + "type": "string" + }, + "S3BucketName": { + "type": "string" + }, + "S3EncryptionEnabled": { + "type": "boolean" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "type": "object" + }, "AWS::ECS::PrimaryTaskSet": { "additionalProperties": false, "properties": { @@ -62580,6 +62652,68 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::LookoutVision::Project": { + "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": { + "ProjectName": { + "type": "string" + } + }, + "required": [ + "ProjectName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LookoutVision::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MSK::Cluster": { "additionalProperties": false, "properties": { @@ -79678,15 +79812,9 @@ var CloudformationSchema = `{ "Name": { "type": "string" }, - "NetworkOrigin": { - "type": "string" - }, "Policy": { "type": "object" }, - "PolicyStatus": { - "type": "object" - }, "PublicAccessBlockConfiguration": { "$ref": "#/definitions/AWS::S3::AccessPoint.PublicAccessBlockConfiguration" }, @@ -83552,9 +83680,6 @@ var CloudformationSchema = `{ }, "type": "array" }, - "InstanceAccessControlAttributeConfiguration": { - "type": "object" - }, "InstanceArn": { "type": "string" } @@ -84829,6 +84954,9 @@ var CloudformationSchema = `{ "ExecutionRoleArn": { "type": "string" }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.InferenceExecutionConfig" + }, "ModelName": { "type": "string" }, @@ -84913,6 +85041,18 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::SageMaker::Model.InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, "AWS::SageMaker::Model.MultiModelConfig": { "additionalProperties": false, "properties": { @@ -95382,6 +95522,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Logs::SubscriptionFilter" }, + { + "$ref": "#/definitions/AWS::LookoutVision::Project" + }, { "$ref": "#/definitions/AWS::MSK::Cluster" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index 846982a0c8..23d5d2ce30 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -1205,6 +1205,9 @@ "Properties": { "additionalProperties": false, "properties": { + "AuthenticationStrategy": { + "type": "string" + }, "Data": { "type": "string" }, @@ -5064,6 +5067,9 @@ "AccessLogSettings": { "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.AccessLogSettings" }, + "AccessPolicyId": { + "type": "string" + }, "ApiId": { "type": "string" }, @@ -6708,6 +6714,18 @@ ], "type": "object" }, + "AWS::AppFlow::Flow.IdFieldNamesList": { + "additionalProperties": false, + "properties": { + "IdFieldNamesList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::AppFlow::Flow.IncrementalPullConfig": { "additionalProperties": false, "properties": { @@ -6830,8 +6848,14 @@ "ErrorHandlingConfig": { "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" }, + "IdFieldNames": { + "$ref": "#/definitions/AWS::AppFlow::Flow.IdFieldNamesList" + }, "Object": { "type": "string" + }, + "WriteOperationType": { + "type": "string" } }, "required": [ @@ -35371,6 +35395,9 @@ }, "type": "array" }, + "Configuration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ClusterConfiguration" + }, "DefaultCapacityProviderStrategy": { "items": { "$ref": "#/definitions/AWS::ECS::Cluster.CapacityProviderStrategyItem" @@ -35421,6 +35448,15 @@ }, "type": "object" }, + "AWS::ECS::Cluster.ClusterConfiguration": { + "additionalProperties": false, + "properties": { + "ExecuteCommandConfiguration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandConfiguration" + } + }, + "type": "object" + }, "AWS::ECS::Cluster.ClusterSettings": { "additionalProperties": false, "properties": { @@ -35433,6 +35469,42 @@ }, "type": "object" }, + "AWS::ECS::Cluster.ExecuteCommandConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandLogConfiguration" + }, + "Logging": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster.ExecuteCommandLogConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchEncryptionEnabled": { + "type": "boolean" + }, + "CloudWatchLogGroupName": { + "type": "string" + }, + "S3BucketName": { + "type": "string" + }, + "S3EncryptionEnabled": { + "type": "boolean" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "type": "object" + }, "AWS::ECS::PrimaryTaskSet": { "additionalProperties": false, "properties": { @@ -62577,6 +62649,68 @@ ], "type": "object" }, + "AWS::LookoutVision::Project": { + "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": { + "ProjectName": { + "type": "string" + } + }, + "required": [ + "ProjectName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LookoutVision::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MSK::Cluster": { "additionalProperties": false, "properties": { @@ -79675,15 +79809,9 @@ "Name": { "type": "string" }, - "NetworkOrigin": { - "type": "string" - }, "Policy": { "type": "object" }, - "PolicyStatus": { - "type": "object" - }, "PublicAccessBlockConfiguration": { "$ref": "#/definitions/AWS::S3::AccessPoint.PublicAccessBlockConfiguration" }, @@ -83549,9 +83677,6 @@ }, "type": "array" }, - "InstanceAccessControlAttributeConfiguration": { - "type": "object" - }, "InstanceArn": { "type": "string" } @@ -84826,6 +84951,9 @@ "ExecutionRoleArn": { "type": "string" }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.InferenceExecutionConfig" + }, "ModelName": { "type": "string" }, @@ -84910,6 +85038,18 @@ ], "type": "object" }, + "AWS::SageMaker::Model.InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, "AWS::SageMaker::Model.MultiModelConfig": { "additionalProperties": false, "properties": { @@ -95379,6 +95519,9 @@ { "$ref": "#/definitions/AWS::Logs::SubscriptionFilter" }, + { + "$ref": "#/definitions/AWS::LookoutVision::Project" + }, { "$ref": "#/definitions/AWS::MSK::Cluster" }, diff --git a/schema/sam.go b/schema/sam.go index 96eb2c9bfa..37b13dea62 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -1208,6 +1208,9 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "AuthenticationStrategy": { + "type": "string" + }, "Data": { "type": "string" }, @@ -5067,6 +5070,9 @@ var SamSchema = `{ "AccessLogSettings": { "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.AccessLogSettings" }, + "AccessPolicyId": { + "type": "string" + }, "ApiId": { "type": "string" }, @@ -6711,6 +6717,18 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AppFlow::Flow.IdFieldNamesList": { + "additionalProperties": false, + "properties": { + "IdFieldNamesList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::AppFlow::Flow.IncrementalPullConfig": { "additionalProperties": false, "properties": { @@ -6833,8 +6851,14 @@ var SamSchema = `{ "ErrorHandlingConfig": { "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" }, + "IdFieldNames": { + "$ref": "#/definitions/AWS::AppFlow::Flow.IdFieldNamesList" + }, "Object": { "type": "string" + }, + "WriteOperationType": { + "type": "string" } }, "required": [ @@ -35374,6 +35398,9 @@ var SamSchema = `{ }, "type": "array" }, + "Configuration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ClusterConfiguration" + }, "DefaultCapacityProviderStrategy": { "items": { "$ref": "#/definitions/AWS::ECS::Cluster.CapacityProviderStrategyItem" @@ -35424,6 +35451,15 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::ECS::Cluster.ClusterConfiguration": { + "additionalProperties": false, + "properties": { + "ExecuteCommandConfiguration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandConfiguration" + } + }, + "type": "object" + }, "AWS::ECS::Cluster.ClusterSettings": { "additionalProperties": false, "properties": { @@ -35436,6 +35472,42 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::ECS::Cluster.ExecuteCommandConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandLogConfiguration" + }, + "Logging": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster.ExecuteCommandLogConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchEncryptionEnabled": { + "type": "boolean" + }, + "CloudWatchLogGroupName": { + "type": "string" + }, + "S3BucketName": { + "type": "string" + }, + "S3EncryptionEnabled": { + "type": "boolean" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "type": "object" + }, "AWS::ECS::PrimaryTaskSet": { "additionalProperties": false, "properties": { @@ -62580,6 +62652,68 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::LookoutVision::Project": { + "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": { + "ProjectName": { + "type": "string" + } + }, + "required": [ + "ProjectName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LookoutVision::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MSK::Cluster": { "additionalProperties": false, "properties": { @@ -79678,15 +79812,9 @@ var SamSchema = `{ "Name": { "type": "string" }, - "NetworkOrigin": { - "type": "string" - }, "Policy": { "type": "object" }, - "PolicyStatus": { - "type": "object" - }, "PublicAccessBlockConfiguration": { "$ref": "#/definitions/AWS::S3::AccessPoint.PublicAccessBlockConfiguration" }, @@ -83552,9 +83680,6 @@ var SamSchema = `{ }, "type": "array" }, - "InstanceAccessControlAttributeConfiguration": { - "type": "object" - }, "InstanceArn": { "type": "string" } @@ -84829,6 +84954,9 @@ var SamSchema = `{ "ExecutionRoleArn": { "type": "string" }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.InferenceExecutionConfig" + }, "ModelName": { "type": "string" }, @@ -84913,6 +85041,18 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::SageMaker::Model.InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, "AWS::SageMaker::Model.MultiModelConfig": { "additionalProperties": false, "properties": { @@ -97226,6 +97366,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Logs::SubscriptionFilter" }, + { + "$ref": "#/definitions/AWS::LookoutVision::Project" + }, { "$ref": "#/definitions/AWS::MSK::Cluster" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 506e7ca1e0..6b6f3b1e5d 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -1205,6 +1205,9 @@ "Properties": { "additionalProperties": false, "properties": { + "AuthenticationStrategy": { + "type": "string" + }, "Data": { "type": "string" }, @@ -5064,6 +5067,9 @@ "AccessLogSettings": { "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.AccessLogSettings" }, + "AccessPolicyId": { + "type": "string" + }, "ApiId": { "type": "string" }, @@ -6708,6 +6714,18 @@ ], "type": "object" }, + "AWS::AppFlow::Flow.IdFieldNamesList": { + "additionalProperties": false, + "properties": { + "IdFieldNamesList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::AppFlow::Flow.IncrementalPullConfig": { "additionalProperties": false, "properties": { @@ -6830,8 +6848,14 @@ "ErrorHandlingConfig": { "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" }, + "IdFieldNames": { + "$ref": "#/definitions/AWS::AppFlow::Flow.IdFieldNamesList" + }, "Object": { "type": "string" + }, + "WriteOperationType": { + "type": "string" } }, "required": [ @@ -35371,6 +35395,9 @@ }, "type": "array" }, + "Configuration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ClusterConfiguration" + }, "DefaultCapacityProviderStrategy": { "items": { "$ref": "#/definitions/AWS::ECS::Cluster.CapacityProviderStrategyItem" @@ -35421,6 +35448,15 @@ }, "type": "object" }, + "AWS::ECS::Cluster.ClusterConfiguration": { + "additionalProperties": false, + "properties": { + "ExecuteCommandConfiguration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandConfiguration" + } + }, + "type": "object" + }, "AWS::ECS::Cluster.ClusterSettings": { "additionalProperties": false, "properties": { @@ -35433,6 +35469,42 @@ }, "type": "object" }, + "AWS::ECS::Cluster.ExecuteCommandConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandLogConfiguration" + }, + "Logging": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster.ExecuteCommandLogConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchEncryptionEnabled": { + "type": "boolean" + }, + "CloudWatchLogGroupName": { + "type": "string" + }, + "S3BucketName": { + "type": "string" + }, + "S3EncryptionEnabled": { + "type": "boolean" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "type": "object" + }, "AWS::ECS::PrimaryTaskSet": { "additionalProperties": false, "properties": { @@ -62577,6 +62649,68 @@ ], "type": "object" }, + "AWS::LookoutVision::Project": { + "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": { + "ProjectName": { + "type": "string" + } + }, + "required": [ + "ProjectName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LookoutVision::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::MSK::Cluster": { "additionalProperties": false, "properties": { @@ -79675,15 +79809,9 @@ "Name": { "type": "string" }, - "NetworkOrigin": { - "type": "string" - }, "Policy": { "type": "object" }, - "PolicyStatus": { - "type": "object" - }, "PublicAccessBlockConfiguration": { "$ref": "#/definitions/AWS::S3::AccessPoint.PublicAccessBlockConfiguration" }, @@ -83549,9 +83677,6 @@ }, "type": "array" }, - "InstanceAccessControlAttributeConfiguration": { - "type": "object" - }, "InstanceArn": { "type": "string" } @@ -84826,6 +84951,9 @@ "ExecutionRoleArn": { "type": "string" }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.InferenceExecutionConfig" + }, "ModelName": { "type": "string" }, @@ -84910,6 +85038,18 @@ ], "type": "object" }, + "AWS::SageMaker::Model.InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, "AWS::SageMaker::Model.MultiModelConfig": { "additionalProperties": false, "properties": { @@ -97223,6 +97363,9 @@ { "$ref": "#/definitions/AWS::Logs::SubscriptionFilter" }, + { + "$ref": "#/definitions/AWS::LookoutVision::Project" + }, { "$ref": "#/definitions/AWS::MSK::Cluster" },