From 42b235bd46f1e2c9cbad21715dc844cdae5b7136 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 12 May 2023 11:19:10 +0200 Subject: [PATCH] fix(schema): CloudFormation Updates (#589) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: RĂºben Fonseca --- cloudformation/all.go | 176 ++++ .../ec2/aws-ec2-verifiedaccessendpoint.go | 178 ++++ ...ifiedaccessendpoint_loadbalanceroptions.go | 52 + ...daccessendpoint_networkinterfaceoptions.go | 47 + .../ec2/aws-ec2-verifiedaccessgroup.go | 138 +++ .../aws-ec2-verifiedaccesstrustprovider.go | 153 +++ ...rifiedaccesstrustprovider_deviceoptions.go | 37 + ...verifiedaccesstrustprovider_oidcoptions.go | 67 ++ .../aws-elasticache-replicationgroup.go | 5 + cloudformation/iot/aws-iot-billinggroup.go | 128 +++ ...iot-billinggroup_billinggroupproperties.go | 37 + cloudformation/iot/aws-iot-thinggroup.go | 138 +++ .../aws-iot-thinggroup_attributepayload.go | 37 + ...aws-iot-thinggroup_thinggroupproperties.go | 42 + cloudformation/iot/aws-iot-thingtype.go | 133 +++ .../aws-iot-thingtype_thingtypeproperties.go | 42 + .../aws-mediaconnect-flowsource.go | 25 + .../aws-mediaconnect-flowsource_encryption.go | 4 +- ...kfirewall-firewallpolicy_firewallpolicy.go | 5 + ...ws-networkfirewall-firewallpolicy_ipset.go | 37 + ...firewall-firewallpolicy_policyvariables.go | 37 + cloudformation/osis/aws-osis-pipeline.go | 148 +++ ...-osis-pipeline_cloudwatchlogdestination.go | 37 + .../aws-osis-pipeline_logpublishingoptions.go | 42 + .../osis/aws-osis-pipeline_vpcendpoint.go | 47 + .../osis/aws-osis-pipeline_vpcoptions.go | 42 + ...gemaker-endpointconfig_serverlessconfig.go | 5 + .../aws-sagemaker-modelcard_container.go | 47 + .../aws-sagemaker-modelcard_content.go | 5 + ...emaker-modelcard_inferencespecification.go | 37 + ...sagemaker-modelcard_modelpackagecreator.go | 37 + ...sagemaker-modelcard_modelpackagedetails.go | 97 ++ ...aws-sagemaker-modelcard_sourcealgorithm.go | 42 + .../aws-simspaceweaver-simulation.go | 18 +- .../synthetics/aws-synthetics-canary.go | 9 +- .../synthetics/aws-synthetics-canary_code.go | 5 + cloudformation/xray/aws-xray-group.go | 4 +- cloudformation/xray/aws-xray-samplingrule.go | 5 - schema/cdk.go | 979 +++++++++++++++++- schema/cdk.schema.json | 979 +++++++++++++++++- schema/cloudformation.go | 979 +++++++++++++++++- schema/cloudformation.schema.json | 979 +++++++++++++++++- schema/sam.go | 979 +++++++++++++++++- schema/sam.schema.json | 979 +++++++++++++++++- 44 files changed, 7933 insertions(+), 86 deletions(-) create mode 100644 cloudformation/ec2/aws-ec2-verifiedaccessendpoint.go create mode 100644 cloudformation/ec2/aws-ec2-verifiedaccessendpoint_loadbalanceroptions.go create mode 100644 cloudformation/ec2/aws-ec2-verifiedaccessendpoint_networkinterfaceoptions.go create mode 100644 cloudformation/ec2/aws-ec2-verifiedaccessgroup.go create mode 100644 cloudformation/ec2/aws-ec2-verifiedaccesstrustprovider.go create mode 100644 cloudformation/ec2/aws-ec2-verifiedaccesstrustprovider_deviceoptions.go create mode 100644 cloudformation/ec2/aws-ec2-verifiedaccesstrustprovider_oidcoptions.go create mode 100644 cloudformation/iot/aws-iot-billinggroup.go create mode 100644 cloudformation/iot/aws-iot-billinggroup_billinggroupproperties.go create mode 100644 cloudformation/iot/aws-iot-thinggroup.go create mode 100644 cloudformation/iot/aws-iot-thinggroup_attributepayload.go create mode 100644 cloudformation/iot/aws-iot-thinggroup_thinggroupproperties.go create mode 100644 cloudformation/iot/aws-iot-thingtype.go create mode 100644 cloudformation/iot/aws-iot-thingtype_thingtypeproperties.go create mode 100644 cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_ipset.go create mode 100644 cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_policyvariables.go create mode 100644 cloudformation/osis/aws-osis-pipeline.go create mode 100644 cloudformation/osis/aws-osis-pipeline_cloudwatchlogdestination.go create mode 100644 cloudformation/osis/aws-osis-pipeline_logpublishingoptions.go create mode 100644 cloudformation/osis/aws-osis-pipeline_vpcendpoint.go create mode 100644 cloudformation/osis/aws-osis-pipeline_vpcoptions.go create mode 100644 cloudformation/sagemaker/aws-sagemaker-modelcard_container.go create mode 100644 cloudformation/sagemaker/aws-sagemaker-modelcard_inferencespecification.go create mode 100644 cloudformation/sagemaker/aws-sagemaker-modelcard_modelpackagecreator.go create mode 100644 cloudformation/sagemaker/aws-sagemaker-modelcard_modelpackagedetails.go create mode 100644 cloudformation/sagemaker/aws-sagemaker-modelcard_sourcealgorithm.go diff --git a/cloudformation/all.go b/cloudformation/all.go index 05079edc30..514f24a017 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -163,6 +163,7 @@ import ( "github.com/awslabs/goformation/v7/cloudformation/opsworks" "github.com/awslabs/goformation/v7/cloudformation/opsworkscm" "github.com/awslabs/goformation/v7/cloudformation/organizations" + "github.com/awslabs/goformation/v7/cloudformation/osis" "github.com/awslabs/goformation/v7/cloudformation/panorama" "github.com/awslabs/goformation/v7/cloudformation/personalize" "github.com/awslabs/goformation/v7/cloudformation/pinpoint" @@ -593,7 +594,10 @@ func AllResources() map[string]Resource { "AWS::EC2::VPNConnectionRoute": &ec2.VPNConnectionRoute{}, "AWS::EC2::VPNGateway": &ec2.VPNGateway{}, "AWS::EC2::VPNGatewayRoutePropagation": &ec2.VPNGatewayRoutePropagation{}, + "AWS::EC2::VerifiedAccessEndpoint": &ec2.VerifiedAccessEndpoint{}, + "AWS::EC2::VerifiedAccessGroup": &ec2.VerifiedAccessGroup{}, "AWS::EC2::VerifiedAccessInstance": &ec2.VerifiedAccessInstance{}, + "AWS::EC2::VerifiedAccessTrustProvider": &ec2.VerifiedAccessTrustProvider{}, "AWS::EC2::Volume": &ec2.Volume{}, "AWS::EC2::VolumeAttachment": &ec2.VolumeAttachment{}, "AWS::ECR::PublicRepository": &ecr.PublicRepository{}, @@ -776,6 +780,7 @@ func AllResources() map[string]Resource { "AWS::IoT1Click::Project": &iot1click.Project{}, "AWS::IoT::AccountAuditConfiguration": &iot.AccountAuditConfiguration{}, "AWS::IoT::Authorizer": &iot.Authorizer{}, + "AWS::IoT::BillingGroup": &iot.BillingGroup{}, "AWS::IoT::CACertificate": &iot.CACertificate{}, "AWS::IoT::Certificate": &iot.Certificate{}, "AWS::IoT::CustomMetric": &iot.CustomMetric{}, @@ -793,7 +798,9 @@ func AllResources() map[string]Resource { "AWS::IoT::ScheduledAudit": &iot.ScheduledAudit{}, "AWS::IoT::SecurityProfile": &iot.SecurityProfile{}, "AWS::IoT::Thing": &iot.Thing{}, + "AWS::IoT::ThingGroup": &iot.ThingGroup{}, "AWS::IoT::ThingPrincipalAttachment": &iot.ThingPrincipalAttachment{}, + "AWS::IoT::ThingType": &iot.ThingType{}, "AWS::IoT::TopicRule": &iot.TopicRule{}, "AWS::IoT::TopicRuleDestination": &iot.TopicRuleDestination{}, "AWS::IoTAnalytics::Channel": &iotanalytics.Channel{}, @@ -972,6 +979,7 @@ func AllResources() map[string]Resource { "AWS::NimbleStudio::StreamingImage": &nimblestudio.StreamingImage{}, "AWS::NimbleStudio::Studio": &nimblestudio.Studio{}, "AWS::NimbleStudio::StudioComponent": &nimblestudio.StudioComponent{}, + "AWS::OSIS::Pipeline": &osis.Pipeline{}, "AWS::Oam::Link": &oam.Link{}, "AWS::Oam::Sink": &oam.Sink{}, "AWS::Omics::AnnotationStore": &omics.AnnotationStore{}, @@ -10037,6 +10045,54 @@ func (t *Template) GetEC2VPNGatewayRoutePropagationWithName(name string) (*ec2.V return nil, fmt.Errorf("resource %q of type ec2.VPNGatewayRoutePropagation not found", name) } +// GetAllEC2VerifiedAccessEndpointResources retrieves all ec2.VerifiedAccessEndpoint items from an AWS CloudFormation template +func (t *Template) GetAllEC2VerifiedAccessEndpointResources() map[string]*ec2.VerifiedAccessEndpoint { + results := map[string]*ec2.VerifiedAccessEndpoint{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *ec2.VerifiedAccessEndpoint: + results[name] = resource + } + } + return results +} + +// GetEC2VerifiedAccessEndpointWithName retrieves all ec2.VerifiedAccessEndpoint items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetEC2VerifiedAccessEndpointWithName(name string) (*ec2.VerifiedAccessEndpoint, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *ec2.VerifiedAccessEndpoint: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type ec2.VerifiedAccessEndpoint not found", name) +} + +// GetAllEC2VerifiedAccessGroupResources retrieves all ec2.VerifiedAccessGroup items from an AWS CloudFormation template +func (t *Template) GetAllEC2VerifiedAccessGroupResources() map[string]*ec2.VerifiedAccessGroup { + results := map[string]*ec2.VerifiedAccessGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *ec2.VerifiedAccessGroup: + results[name] = resource + } + } + return results +} + +// GetEC2VerifiedAccessGroupWithName retrieves all ec2.VerifiedAccessGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetEC2VerifiedAccessGroupWithName(name string) (*ec2.VerifiedAccessGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *ec2.VerifiedAccessGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type ec2.VerifiedAccessGroup not found", name) +} + // GetAllEC2VerifiedAccessInstanceResources retrieves all ec2.VerifiedAccessInstance items from an AWS CloudFormation template func (t *Template) GetAllEC2VerifiedAccessInstanceResources() map[string]*ec2.VerifiedAccessInstance { results := map[string]*ec2.VerifiedAccessInstance{} @@ -10061,6 +10117,30 @@ func (t *Template) GetEC2VerifiedAccessInstanceWithName(name string) (*ec2.Verif return nil, fmt.Errorf("resource %q of type ec2.VerifiedAccessInstance not found", name) } +// GetAllEC2VerifiedAccessTrustProviderResources retrieves all ec2.VerifiedAccessTrustProvider items from an AWS CloudFormation template +func (t *Template) GetAllEC2VerifiedAccessTrustProviderResources() map[string]*ec2.VerifiedAccessTrustProvider { + results := map[string]*ec2.VerifiedAccessTrustProvider{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *ec2.VerifiedAccessTrustProvider: + results[name] = resource + } + } + return results +} + +// GetEC2VerifiedAccessTrustProviderWithName retrieves all ec2.VerifiedAccessTrustProvider items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetEC2VerifiedAccessTrustProviderWithName(name string) (*ec2.VerifiedAccessTrustProvider, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *ec2.VerifiedAccessTrustProvider: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type ec2.VerifiedAccessTrustProvider not found", name) +} + // GetAllEC2VolumeResources retrieves all ec2.Volume items from an AWS CloudFormation template func (t *Template) GetAllEC2VolumeResources() map[string]*ec2.Volume { results := map[string]*ec2.Volume{} @@ -14429,6 +14509,30 @@ func (t *Template) GetIoTAuthorizerWithName(name string) (*iot.Authorizer, error return nil, fmt.Errorf("resource %q of type iot.Authorizer not found", name) } +// GetAllIoTBillingGroupResources retrieves all iot.BillingGroup items from an AWS CloudFormation template +func (t *Template) GetAllIoTBillingGroupResources() map[string]*iot.BillingGroup { + results := map[string]*iot.BillingGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iot.BillingGroup: + results[name] = resource + } + } + return results +} + +// GetIoTBillingGroupWithName retrieves all iot.BillingGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTBillingGroupWithName(name string) (*iot.BillingGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iot.BillingGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iot.BillingGroup not found", name) +} + // GetAllIoTCACertificateResources retrieves all iot.CACertificate items from an AWS CloudFormation template func (t *Template) GetAllIoTCACertificateResources() map[string]*iot.CACertificate { results := map[string]*iot.CACertificate{} @@ -14837,6 +14941,30 @@ func (t *Template) GetIoTThingWithName(name string) (*iot.Thing, error) { return nil, fmt.Errorf("resource %q of type iot.Thing not found", name) } +// GetAllIoTThingGroupResources retrieves all iot.ThingGroup items from an AWS CloudFormation template +func (t *Template) GetAllIoTThingGroupResources() map[string]*iot.ThingGroup { + results := map[string]*iot.ThingGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iot.ThingGroup: + results[name] = resource + } + } + return results +} + +// GetIoTThingGroupWithName retrieves all iot.ThingGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTThingGroupWithName(name string) (*iot.ThingGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iot.ThingGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iot.ThingGroup not found", name) +} + // GetAllIoTThingPrincipalAttachmentResources retrieves all iot.ThingPrincipalAttachment items from an AWS CloudFormation template func (t *Template) GetAllIoTThingPrincipalAttachmentResources() map[string]*iot.ThingPrincipalAttachment { results := map[string]*iot.ThingPrincipalAttachment{} @@ -14861,6 +14989,30 @@ func (t *Template) GetIoTThingPrincipalAttachmentWithName(name string) (*iot.Thi return nil, fmt.Errorf("resource %q of type iot.ThingPrincipalAttachment not found", name) } +// GetAllIoTThingTypeResources retrieves all iot.ThingType items from an AWS CloudFormation template +func (t *Template) GetAllIoTThingTypeResources() map[string]*iot.ThingType { + results := map[string]*iot.ThingType{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iot.ThingType: + results[name] = resource + } + } + return results +} + +// GetIoTThingTypeWithName retrieves all iot.ThingType items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTThingTypeWithName(name string) (*iot.ThingType, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iot.ThingType: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iot.ThingType not found", name) +} + // GetAllIoTTopicRuleResources retrieves all iot.TopicRule items from an AWS CloudFormation template func (t *Template) GetAllIoTTopicRuleResources() map[string]*iot.TopicRule { results := map[string]*iot.TopicRule{} @@ -19133,6 +19285,30 @@ func (t *Template) GetNimbleStudioStudioComponentWithName(name string) (*nimbles return nil, fmt.Errorf("resource %q of type nimblestudio.StudioComponent not found", name) } +// GetAllOSISPipelineResources retrieves all osis.Pipeline items from an AWS CloudFormation template +func (t *Template) GetAllOSISPipelineResources() map[string]*osis.Pipeline { + results := map[string]*osis.Pipeline{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *osis.Pipeline: + results[name] = resource + } + } + return results +} + +// GetOSISPipelineWithName retrieves all osis.Pipeline items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetOSISPipelineWithName(name string) (*osis.Pipeline, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *osis.Pipeline: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type osis.Pipeline not found", name) +} + // GetAllOamLinkResources retrieves all oam.Link items from an AWS CloudFormation template func (t *Template) GetAllOamLinkResources() map[string]*oam.Link { results := map[string]*oam.Link{} diff --git a/cloudformation/ec2/aws-ec2-verifiedaccessendpoint.go b/cloudformation/ec2/aws-ec2-verifiedaccessendpoint.go new file mode 100644 index 0000000000..1aa0fd163f --- /dev/null +++ b/cloudformation/ec2/aws-ec2-verifiedaccessendpoint.go @@ -0,0 +1,178 @@ +// Code generated by "go generate". Please don't change this file directly. + +package ec2 + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" + "github.com/awslabs/goformation/v7/cloudformation/tags" +) + +// VerifiedAccessEndpoint AWS CloudFormation Resource (AWS::EC2::VerifiedAccessEndpoint) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html +type VerifiedAccessEndpoint struct { + + // ApplicationDomain AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html#cfn-ec2-verifiedaccessendpoint-applicationdomain + ApplicationDomain string `json:"ApplicationDomain"` + + // AttachmentType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html#cfn-ec2-verifiedaccessendpoint-attachmenttype + AttachmentType string `json:"AttachmentType"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html#cfn-ec2-verifiedaccessendpoint-description + Description *string `json:"Description,omitempty"` + + // DomainCertificateArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html#cfn-ec2-verifiedaccessendpoint-domaincertificatearn + DomainCertificateArn string `json:"DomainCertificateArn"` + + // EndpointDomainPrefix AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html#cfn-ec2-verifiedaccessendpoint-endpointdomainprefix + EndpointDomainPrefix string `json:"EndpointDomainPrefix"` + + // EndpointType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html#cfn-ec2-verifiedaccessendpoint-endpointtype + EndpointType string `json:"EndpointType"` + + // LoadBalancerOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html#cfn-ec2-verifiedaccessendpoint-loadbalanceroptions + LoadBalancerOptions *VerifiedAccessEndpoint_LoadBalancerOptions `json:"LoadBalancerOptions,omitempty"` + + // NetworkInterfaceOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html#cfn-ec2-verifiedaccessendpoint-networkinterfaceoptions + NetworkInterfaceOptions *VerifiedAccessEndpoint_NetworkInterfaceOptions `json:"NetworkInterfaceOptions,omitempty"` + + // PolicyDocument AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html#cfn-ec2-verifiedaccessendpoint-policydocument + PolicyDocument *string `json:"PolicyDocument,omitempty"` + + // PolicyEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html#cfn-ec2-verifiedaccessendpoint-policyenabled + PolicyEnabled *bool `json:"PolicyEnabled,omitempty"` + + // SecurityGroupIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html#cfn-ec2-verifiedaccessendpoint-securitygroupids + SecurityGroupIds []string `json:"SecurityGroupIds,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html#cfn-ec2-verifiedaccessendpoint-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // VerifiedAccessGroupId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html#cfn-ec2-verifiedaccessendpoint-verifiedaccessgroupid + VerifiedAccessGroupId string `json:"VerifiedAccessGroupId"` + + // 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 *VerifiedAccessEndpoint) AWSCloudFormationType() string { + return "AWS::EC2::VerifiedAccessEndpoint" +} + +// 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 VerifiedAccessEndpoint) MarshalJSON() ([]byte, error) { + type Properties VerifiedAccessEndpoint + 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 *VerifiedAccessEndpoint) UnmarshalJSON(b []byte) error { + type Properties VerifiedAccessEndpoint + 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 { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = VerifiedAccessEndpoint(*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/ec2/aws-ec2-verifiedaccessendpoint_loadbalanceroptions.go b/cloudformation/ec2/aws-ec2-verifiedaccessendpoint_loadbalanceroptions.go new file mode 100644 index 0000000000..4ee01d0da0 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-verifiedaccessendpoint_loadbalanceroptions.go @@ -0,0 +1,52 @@ +// Code generated by "go generate". Please don't change this file directly. + +package ec2 + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// VerifiedAccessEndpoint_LoadBalancerOptions AWS CloudFormation Resource (AWS::EC2::VerifiedAccessEndpoint.LoadBalancerOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessendpoint-loadbalanceroptions.html +type VerifiedAccessEndpoint_LoadBalancerOptions struct { + + // LoadBalancerArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessendpoint-loadbalanceroptions.html#cfn-ec2-verifiedaccessendpoint-loadbalanceroptions-loadbalancerarn + LoadBalancerArn *string `json:"LoadBalancerArn,omitempty"` + + // Port AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessendpoint-loadbalanceroptions.html#cfn-ec2-verifiedaccessendpoint-loadbalanceroptions-port + Port *int `json:"Port,omitempty"` + + // Protocol AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessendpoint-loadbalanceroptions.html#cfn-ec2-verifiedaccessendpoint-loadbalanceroptions-protocol + Protocol *string `json:"Protocol,omitempty"` + + // SubnetIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessendpoint-loadbalanceroptions.html#cfn-ec2-verifiedaccessendpoint-loadbalanceroptions-subnetids + SubnetIds []string `json:"SubnetIds,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 *VerifiedAccessEndpoint_LoadBalancerOptions) AWSCloudFormationType() string { + return "AWS::EC2::VerifiedAccessEndpoint.LoadBalancerOptions" +} diff --git a/cloudformation/ec2/aws-ec2-verifiedaccessendpoint_networkinterfaceoptions.go b/cloudformation/ec2/aws-ec2-verifiedaccessendpoint_networkinterfaceoptions.go new file mode 100644 index 0000000000..8c6b3c4714 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-verifiedaccessendpoint_networkinterfaceoptions.go @@ -0,0 +1,47 @@ +// Code generated by "go generate". Please don't change this file directly. + +package ec2 + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// VerifiedAccessEndpoint_NetworkInterfaceOptions AWS CloudFormation Resource (AWS::EC2::VerifiedAccessEndpoint.NetworkInterfaceOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessendpoint-networkinterfaceoptions.html +type VerifiedAccessEndpoint_NetworkInterfaceOptions struct { + + // NetworkInterfaceId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessendpoint-networkinterfaceoptions.html#cfn-ec2-verifiedaccessendpoint-networkinterfaceoptions-networkinterfaceid + NetworkInterfaceId *string `json:"NetworkInterfaceId,omitempty"` + + // Port AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessendpoint-networkinterfaceoptions.html#cfn-ec2-verifiedaccessendpoint-networkinterfaceoptions-port + Port *int `json:"Port,omitempty"` + + // Protocol AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccessendpoint-networkinterfaceoptions.html#cfn-ec2-verifiedaccessendpoint-networkinterfaceoptions-protocol + Protocol *string `json:"Protocol,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 *VerifiedAccessEndpoint_NetworkInterfaceOptions) AWSCloudFormationType() string { + return "AWS::EC2::VerifiedAccessEndpoint.NetworkInterfaceOptions" +} diff --git a/cloudformation/ec2/aws-ec2-verifiedaccessgroup.go b/cloudformation/ec2/aws-ec2-verifiedaccessgroup.go new file mode 100644 index 0000000000..474de12a08 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-verifiedaccessgroup.go @@ -0,0 +1,138 @@ +// Code generated by "go generate". Please don't change this file directly. + +package ec2 + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" + "github.com/awslabs/goformation/v7/cloudformation/tags" +) + +// VerifiedAccessGroup AWS CloudFormation Resource (AWS::EC2::VerifiedAccessGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessgroup.html +type VerifiedAccessGroup struct { + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessgroup.html#cfn-ec2-verifiedaccessgroup-description + Description *string `json:"Description,omitempty"` + + // PolicyDocument AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessgroup.html#cfn-ec2-verifiedaccessgroup-policydocument + PolicyDocument *string `json:"PolicyDocument,omitempty"` + + // PolicyEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessgroup.html#cfn-ec2-verifiedaccessgroup-policyenabled + PolicyEnabled *bool `json:"PolicyEnabled,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessgroup.html#cfn-ec2-verifiedaccessgroup-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // VerifiedAccessInstanceId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessgroup.html#cfn-ec2-verifiedaccessgroup-verifiedaccessinstanceid + VerifiedAccessInstanceId string `json:"VerifiedAccessInstanceId"` + + // 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 *VerifiedAccessGroup) AWSCloudFormationType() string { + return "AWS::EC2::VerifiedAccessGroup" +} + +// 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 VerifiedAccessGroup) MarshalJSON() ([]byte, error) { + type Properties VerifiedAccessGroup + 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 *VerifiedAccessGroup) UnmarshalJSON(b []byte) error { + type Properties VerifiedAccessGroup + 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 { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = VerifiedAccessGroup(*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/ec2/aws-ec2-verifiedaccesstrustprovider.go b/cloudformation/ec2/aws-ec2-verifiedaccesstrustprovider.go new file mode 100644 index 0000000000..5a5a42f42f --- /dev/null +++ b/cloudformation/ec2/aws-ec2-verifiedaccesstrustprovider.go @@ -0,0 +1,153 @@ +// Code generated by "go generate". Please don't change this file directly. + +package ec2 + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" + "github.com/awslabs/goformation/v7/cloudformation/tags" +) + +// VerifiedAccessTrustProvider AWS CloudFormation Resource (AWS::EC2::VerifiedAccessTrustProvider) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccesstrustprovider.html +type VerifiedAccessTrustProvider struct { + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccesstrustprovider.html#cfn-ec2-verifiedaccesstrustprovider-description + Description *string `json:"Description,omitempty"` + + // DeviceOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccesstrustprovider.html#cfn-ec2-verifiedaccesstrustprovider-deviceoptions + DeviceOptions *VerifiedAccessTrustProvider_DeviceOptions `json:"DeviceOptions,omitempty"` + + // DeviceTrustProviderType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccesstrustprovider.html#cfn-ec2-verifiedaccesstrustprovider-devicetrustprovidertype + DeviceTrustProviderType *string `json:"DeviceTrustProviderType,omitempty"` + + // OidcOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccesstrustprovider.html#cfn-ec2-verifiedaccesstrustprovider-oidcoptions + OidcOptions *VerifiedAccessTrustProvider_OidcOptions `json:"OidcOptions,omitempty"` + + // PolicyReferenceName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccesstrustprovider.html#cfn-ec2-verifiedaccesstrustprovider-policyreferencename + PolicyReferenceName string `json:"PolicyReferenceName"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccesstrustprovider.html#cfn-ec2-verifiedaccesstrustprovider-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // TrustProviderType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccesstrustprovider.html#cfn-ec2-verifiedaccesstrustprovider-trustprovidertype + TrustProviderType string `json:"TrustProviderType"` + + // UserTrustProviderType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccesstrustprovider.html#cfn-ec2-verifiedaccesstrustprovider-usertrustprovidertype + UserTrustProviderType *string `json:"UserTrustProviderType,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 *VerifiedAccessTrustProvider) AWSCloudFormationType() string { + return "AWS::EC2::VerifiedAccessTrustProvider" +} + +// 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 VerifiedAccessTrustProvider) MarshalJSON() ([]byte, error) { + type Properties VerifiedAccessTrustProvider + 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 *VerifiedAccessTrustProvider) UnmarshalJSON(b []byte) error { + type Properties VerifiedAccessTrustProvider + 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 { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = VerifiedAccessTrustProvider(*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/ec2/aws-ec2-verifiedaccesstrustprovider_deviceoptions.go b/cloudformation/ec2/aws-ec2-verifiedaccesstrustprovider_deviceoptions.go new file mode 100644 index 0000000000..4a4dc6a585 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-verifiedaccesstrustprovider_deviceoptions.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package ec2 + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// VerifiedAccessTrustProvider_DeviceOptions AWS CloudFormation Resource (AWS::EC2::VerifiedAccessTrustProvider.DeviceOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-deviceoptions.html +type VerifiedAccessTrustProvider_DeviceOptions struct { + + // TenantId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-deviceoptions.html#cfn-ec2-verifiedaccesstrustprovider-deviceoptions-tenantid + TenantId *string `json:"TenantId,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 *VerifiedAccessTrustProvider_DeviceOptions) AWSCloudFormationType() string { + return "AWS::EC2::VerifiedAccessTrustProvider.DeviceOptions" +} diff --git a/cloudformation/ec2/aws-ec2-verifiedaccesstrustprovider_oidcoptions.go b/cloudformation/ec2/aws-ec2-verifiedaccesstrustprovider_oidcoptions.go new file mode 100644 index 0000000000..8264fd4b68 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-verifiedaccesstrustprovider_oidcoptions.go @@ -0,0 +1,67 @@ +// Code generated by "go generate". Please don't change this file directly. + +package ec2 + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// VerifiedAccessTrustProvider_OidcOptions AWS CloudFormation Resource (AWS::EC2::VerifiedAccessTrustProvider.OidcOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html +type VerifiedAccessTrustProvider_OidcOptions struct { + + // AuthorizationEndpoint AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html#cfn-ec2-verifiedaccesstrustprovider-oidcoptions-authorizationendpoint + AuthorizationEndpoint *string `json:"AuthorizationEndpoint,omitempty"` + + // ClientId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html#cfn-ec2-verifiedaccesstrustprovider-oidcoptions-clientid + ClientId *string `json:"ClientId,omitempty"` + + // ClientSecret AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html#cfn-ec2-verifiedaccesstrustprovider-oidcoptions-clientsecret + ClientSecret *string `json:"ClientSecret,omitempty"` + + // Issuer AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html#cfn-ec2-verifiedaccesstrustprovider-oidcoptions-issuer + Issuer *string `json:"Issuer,omitempty"` + + // Scope AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html#cfn-ec2-verifiedaccesstrustprovider-oidcoptions-scope + Scope *string `json:"Scope,omitempty"` + + // TokenEndpoint AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html#cfn-ec2-verifiedaccesstrustprovider-oidcoptions-tokenendpoint + TokenEndpoint *string `json:"TokenEndpoint,omitempty"` + + // UserInfoEndpoint AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-verifiedaccesstrustprovider-oidcoptions.html#cfn-ec2-verifiedaccesstrustprovider-oidcoptions-userinfoendpoint + UserInfoEndpoint *string `json:"UserInfoEndpoint,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 *VerifiedAccessTrustProvider_OidcOptions) AWSCloudFormationType() string { + return "AWS::EC2::VerifiedAccessTrustProvider.OidcOptions" +} diff --git a/cloudformation/elasticache/aws-elasticache-replicationgroup.go b/cloudformation/elasticache/aws-elasticache-replicationgroup.go index 935a58999f..2e0d5b53ee 100644 --- a/cloudformation/elasticache/aws-elasticache-replicationgroup.go +++ b/cloudformation/elasticache/aws-elasticache-replicationgroup.go @@ -54,6 +54,11 @@ type ReplicationGroup struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-cachesubnetgroupname CacheSubnetGroupName *string `json:"CacheSubnetGroupName,omitempty"` + // ClusterMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-clustermode + ClusterMode *string `json:"ClusterMode,omitempty"` + // DataTieringEnabled AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-datatieringenabled diff --git a/cloudformation/iot/aws-iot-billinggroup.go b/cloudformation/iot/aws-iot-billinggroup.go new file mode 100644 index 0000000000..5feeb10523 --- /dev/null +++ b/cloudformation/iot/aws-iot-billinggroup.go @@ -0,0 +1,128 @@ +// Code generated by "go generate". Please don't change this file directly. + +package iot + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" + "github.com/awslabs/goformation/v7/cloudformation/tags" +) + +// BillingGroup AWS CloudFormation Resource (AWS::IoT::BillingGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-billinggroup.html +type BillingGroup struct { + + // BillingGroupName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-billinggroup.html#cfn-iot-billinggroup-billinggroupname + BillingGroupName *string `json:"BillingGroupName,omitempty"` + + // BillingGroupProperties AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-billinggroup.html#cfn-iot-billinggroup-billinggroupproperties + BillingGroupProperties *BillingGroup_BillingGroupProperties `json:"BillingGroupProperties,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-billinggroup.html#cfn-iot-billinggroup-tags + Tags []tags.Tag `json:"Tags,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 *BillingGroup) AWSCloudFormationType() string { + return "AWS::IoT::BillingGroup" +} + +// 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 BillingGroup) MarshalJSON() ([]byte, error) { + type Properties BillingGroup + 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 *BillingGroup) UnmarshalJSON(b []byte) error { + type Properties BillingGroup + 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 { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = BillingGroup(*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/iot/aws-iot-billinggroup_billinggroupproperties.go b/cloudformation/iot/aws-iot-billinggroup_billinggroupproperties.go new file mode 100644 index 0000000000..0ae2b66436 --- /dev/null +++ b/cloudformation/iot/aws-iot-billinggroup_billinggroupproperties.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package iot + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// BillingGroup_BillingGroupProperties AWS CloudFormation Resource (AWS::IoT::BillingGroup.BillingGroupProperties) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-billinggroup-billinggroupproperties.html +type BillingGroup_BillingGroupProperties struct { + + // BillingGroupDescription AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-billinggroup-billinggroupproperties.html#cfn-iot-billinggroup-billinggroupproperties-billinggroupdescription + BillingGroupDescription *string `json:"BillingGroupDescription,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 *BillingGroup_BillingGroupProperties) AWSCloudFormationType() string { + return "AWS::IoT::BillingGroup.BillingGroupProperties" +} diff --git a/cloudformation/iot/aws-iot-thinggroup.go b/cloudformation/iot/aws-iot-thinggroup.go new file mode 100644 index 0000000000..b0246f2005 --- /dev/null +++ b/cloudformation/iot/aws-iot-thinggroup.go @@ -0,0 +1,138 @@ +// Code generated by "go generate". Please don't change this file directly. + +package iot + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" + "github.com/awslabs/goformation/v7/cloudformation/tags" +) + +// ThingGroup AWS CloudFormation Resource (AWS::IoT::ThingGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thinggroup.html +type ThingGroup struct { + + // ParentGroupName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thinggroup.html#cfn-iot-thinggroup-parentgroupname + ParentGroupName *string `json:"ParentGroupName,omitempty"` + + // QueryString AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thinggroup.html#cfn-iot-thinggroup-querystring + QueryString *string `json:"QueryString,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thinggroup.html#cfn-iot-thinggroup-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // ThingGroupName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thinggroup.html#cfn-iot-thinggroup-thinggroupname + ThingGroupName *string `json:"ThingGroupName,omitempty"` + + // ThingGroupProperties AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thinggroup.html#cfn-iot-thinggroup-thinggroupproperties + ThingGroupProperties *ThingGroup_ThingGroupProperties `json:"ThingGroupProperties,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 *ThingGroup) AWSCloudFormationType() string { + return "AWS::IoT::ThingGroup" +} + +// 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 ThingGroup) MarshalJSON() ([]byte, error) { + type Properties ThingGroup + 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 *ThingGroup) UnmarshalJSON(b []byte) error { + type Properties ThingGroup + 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 { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = ThingGroup(*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/iot/aws-iot-thinggroup_attributepayload.go b/cloudformation/iot/aws-iot-thinggroup_attributepayload.go new file mode 100644 index 0000000000..89034c1493 --- /dev/null +++ b/cloudformation/iot/aws-iot-thinggroup_attributepayload.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package iot + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// ThingGroup_AttributePayload AWS CloudFormation Resource (AWS::IoT::ThingGroup.AttributePayload) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thinggroup-attributepayload.html +type ThingGroup_AttributePayload struct { + + // Attributes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thinggroup-attributepayload.html#cfn-iot-thinggroup-attributepayload-attributes + Attributes map[string]string `json:"Attributes,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 *ThingGroup_AttributePayload) AWSCloudFormationType() string { + return "AWS::IoT::ThingGroup.AttributePayload" +} diff --git a/cloudformation/iot/aws-iot-thinggroup_thinggroupproperties.go b/cloudformation/iot/aws-iot-thinggroup_thinggroupproperties.go new file mode 100644 index 0000000000..73ccacfedc --- /dev/null +++ b/cloudformation/iot/aws-iot-thinggroup_thinggroupproperties.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package iot + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// ThingGroup_ThingGroupProperties AWS CloudFormation Resource (AWS::IoT::ThingGroup.ThingGroupProperties) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thinggroup-thinggroupproperties.html +type ThingGroup_ThingGroupProperties struct { + + // AttributePayload AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thinggroup-thinggroupproperties.html#cfn-iot-thinggroup-thinggroupproperties-attributepayload + AttributePayload *ThingGroup_AttributePayload `json:"AttributePayload,omitempty"` + + // ThingGroupDescription AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thinggroup-thinggroupproperties.html#cfn-iot-thinggroup-thinggroupproperties-thinggroupdescription + ThingGroupDescription *string `json:"ThingGroupDescription,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 *ThingGroup_ThingGroupProperties) AWSCloudFormationType() string { + return "AWS::IoT::ThingGroup.ThingGroupProperties" +} diff --git a/cloudformation/iot/aws-iot-thingtype.go b/cloudformation/iot/aws-iot-thingtype.go new file mode 100644 index 0000000000..aa8d6f58fe --- /dev/null +++ b/cloudformation/iot/aws-iot-thingtype.go @@ -0,0 +1,133 @@ +// Code generated by "go generate". Please don't change this file directly. + +package iot + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" + "github.com/awslabs/goformation/v7/cloudformation/tags" +) + +// ThingType AWS CloudFormation Resource (AWS::IoT::ThingType) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingtype.html +type ThingType struct { + + // DeprecateThingType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingtype.html#cfn-iot-thingtype-deprecatethingtype + DeprecateThingType *bool `json:"DeprecateThingType,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingtype.html#cfn-iot-thingtype-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // ThingTypeName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingtype.html#cfn-iot-thingtype-thingtypename + ThingTypeName *string `json:"ThingTypeName,omitempty"` + + // ThingTypeProperties AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingtype.html#cfn-iot-thingtype-thingtypeproperties + ThingTypeProperties *ThingType_ThingTypeProperties `json:"ThingTypeProperties,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 *ThingType) AWSCloudFormationType() string { + return "AWS::IoT::ThingType" +} + +// 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 ThingType) MarshalJSON() ([]byte, error) { + type Properties ThingType + 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 *ThingType) UnmarshalJSON(b []byte) error { + type Properties ThingType + 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 { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = ThingType(*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/iot/aws-iot-thingtype_thingtypeproperties.go b/cloudformation/iot/aws-iot-thingtype_thingtypeproperties.go new file mode 100644 index 0000000000..7de31d71f0 --- /dev/null +++ b/cloudformation/iot/aws-iot-thingtype_thingtypeproperties.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package iot + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// ThingType_ThingTypeProperties AWS CloudFormation Resource (AWS::IoT::ThingType.ThingTypeProperties) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thingtype-thingtypeproperties.html +type ThingType_ThingTypeProperties struct { + + // SearchableAttributes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thingtype-thingtypeproperties.html#cfn-iot-thingtype-thingtypeproperties-searchableattributes + SearchableAttributes []string `json:"SearchableAttributes,omitempty"` + + // ThingTypeDescription AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thingtype-thingtypeproperties.html#cfn-iot-thingtype-thingtypeproperties-thingtypedescription + ThingTypeDescription *string `json:"ThingTypeDescription,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 *ThingType_ThingTypeProperties) AWSCloudFormationType() string { + return "AWS::IoT::ThingType.ThingTypeProperties" +} diff --git a/cloudformation/mediaconnect/aws-mediaconnect-flowsource.go b/cloudformation/mediaconnect/aws-mediaconnect-flowsource.go index f186cd52bd..7307c994f3 100644 --- a/cloudformation/mediaconnect/aws-mediaconnect-flowsource.go +++ b/cloudformation/mediaconnect/aws-mediaconnect-flowsource.go @@ -48,6 +48,11 @@ type FlowSource struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-maxlatency MaxLatency *int `json:"MaxLatency,omitempty"` + // MinLatency AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-minlatency + MinLatency *int `json:"MinLatency,omitempty"` + // Name AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-name @@ -58,6 +63,26 @@ type FlowSource struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-protocol Protocol *string `json:"Protocol,omitempty"` + // SenderControlPort AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-sendercontrolport + SenderControlPort *int `json:"SenderControlPort,omitempty"` + + // SenderIpAddress AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-senderipaddress + SenderIpAddress *string `json:"SenderIpAddress,omitempty"` + + // SourceListenerAddress AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-sourcelisteneraddress + SourceListenerAddress *string `json:"SourceListenerAddress,omitempty"` + + // SourceListenerPort AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-sourcelistenerport + SourceListenerPort *int `json:"SourceListenerPort,omitempty"` + // StreamId AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-streamid diff --git a/cloudformation/mediaconnect/aws-mediaconnect-flowsource_encryption.go b/cloudformation/mediaconnect/aws-mediaconnect-flowsource_encryption.go index ec6feb1245..2f1b097308 100644 --- a/cloudformation/mediaconnect/aws-mediaconnect-flowsource_encryption.go +++ b/cloudformation/mediaconnect/aws-mediaconnect-flowsource_encryption.go @@ -11,9 +11,9 @@ import ( type FlowSource_Encryption struct { // Algorithm AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowsource-encryption.html#cfn-mediaconnect-flowsource-encryption-algorithm - Algorithm string `json:"Algorithm"` + Algorithm *string `json:"Algorithm,omitempty"` // ConstantInitializationVector AWS CloudFormation Property // Required: false diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_firewallpolicy.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_firewallpolicy.go index 4df302d856..bc54496ae0 100644 --- a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_firewallpolicy.go +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_firewallpolicy.go @@ -10,6 +10,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-firewallpolicy.html type FirewallPolicy_FirewallPolicy struct { + // PolicyVariables AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-firewallpolicy.html#cfn-networkfirewall-firewallpolicy-firewallpolicy-policyvariables + PolicyVariables *FirewallPolicy_PolicyVariables `json:"PolicyVariables,omitempty"` + // StatefulDefaultActions AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-firewallpolicy.html#cfn-networkfirewall-firewallpolicy-firewallpolicy-statefuldefaultactions diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_ipset.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_ipset.go new file mode 100644 index 0000000000..ddb16c8709 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_ipset.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package networkfirewall + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// FirewallPolicy_IPSet AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.IPSet) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-ipset.html +type FirewallPolicy_IPSet struct { + + // Definition AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-ipset.html#cfn-networkfirewall-firewallpolicy-ipset-definition + Definition []string `json:"Definition,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 *FirewallPolicy_IPSet) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.IPSet" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_policyvariables.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_policyvariables.go new file mode 100644 index 0000000000..9a3b2b98e4 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_policyvariables.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package networkfirewall + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// FirewallPolicy_PolicyVariables AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.PolicyVariables) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-policyvariables.html +type FirewallPolicy_PolicyVariables struct { + + // RuleVariables AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-policyvariables.html#cfn-networkfirewall-firewallpolicy-policyvariables-rulevariables + RuleVariables map[string]FirewallPolicy_IPSet `json:"RuleVariables,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 *FirewallPolicy_PolicyVariables) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.PolicyVariables" +} diff --git a/cloudformation/osis/aws-osis-pipeline.go b/cloudformation/osis/aws-osis-pipeline.go new file mode 100644 index 0000000000..15524e4ba8 --- /dev/null +++ b/cloudformation/osis/aws-osis-pipeline.go @@ -0,0 +1,148 @@ +// Code generated by "go generate". Please don't change this file directly. + +package osis + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" + "github.com/awslabs/goformation/v7/cloudformation/tags" +) + +// Pipeline AWS CloudFormation Resource (AWS::OSIS::Pipeline) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html +type Pipeline struct { + + // LogPublishingOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-logpublishingoptions + LogPublishingOptions *Pipeline_LogPublishingOptions `json:"LogPublishingOptions,omitempty"` + + // MaxUnits AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-maxunits + MaxUnits int `json:"MaxUnits"` + + // MinUnits AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-minunits + MinUnits int `json:"MinUnits"` + + // PipelineConfigurationBody AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-pipelineconfigurationbody + PipelineConfigurationBody string `json:"PipelineConfigurationBody"` + + // PipelineName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-pipelinename + PipelineName string `json:"PipelineName"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // VpcOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-vpcoptions + VpcOptions *Pipeline_VpcOptions `json:"VpcOptions,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 *Pipeline) AWSCloudFormationType() string { + return "AWS::OSIS::Pipeline" +} + +// 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 Pipeline) MarshalJSON() ([]byte, error) { + type Properties Pipeline + 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 *Pipeline) UnmarshalJSON(b []byte) error { + type Properties Pipeline + 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 { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Pipeline(*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/osis/aws-osis-pipeline_cloudwatchlogdestination.go b/cloudformation/osis/aws-osis-pipeline_cloudwatchlogdestination.go new file mode 100644 index 0000000000..c5c5302043 --- /dev/null +++ b/cloudformation/osis/aws-osis-pipeline_cloudwatchlogdestination.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package osis + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// Pipeline_CloudWatchLogDestination AWS CloudFormation Resource (AWS::OSIS::Pipeline.CloudWatchLogDestination) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-cloudwatchlogdestination.html +type Pipeline_CloudWatchLogDestination struct { + + // LogGroup AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-cloudwatchlogdestination.html#cfn-osis-pipeline-cloudwatchlogdestination-loggroup + LogGroup *string `json:"LogGroup,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 *Pipeline_CloudWatchLogDestination) AWSCloudFormationType() string { + return "AWS::OSIS::Pipeline.CloudWatchLogDestination" +} diff --git a/cloudformation/osis/aws-osis-pipeline_logpublishingoptions.go b/cloudformation/osis/aws-osis-pipeline_logpublishingoptions.go new file mode 100644 index 0000000000..3ffe964ee4 --- /dev/null +++ b/cloudformation/osis/aws-osis-pipeline_logpublishingoptions.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package osis + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// Pipeline_LogPublishingOptions AWS CloudFormation Resource (AWS::OSIS::Pipeline.LogPublishingOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-logpublishingoptions.html +type Pipeline_LogPublishingOptions struct { + + // CloudWatchLogDestination AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-logpublishingoptions.html#cfn-osis-pipeline-logpublishingoptions-cloudwatchlogdestination + CloudWatchLogDestination *Pipeline_CloudWatchLogDestination `json:"CloudWatchLogDestination,omitempty"` + + // IsLoggingEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-logpublishingoptions.html#cfn-osis-pipeline-logpublishingoptions-isloggingenabled + IsLoggingEnabled *bool `json:"IsLoggingEnabled,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 *Pipeline_LogPublishingOptions) AWSCloudFormationType() string { + return "AWS::OSIS::Pipeline.LogPublishingOptions" +} diff --git a/cloudformation/osis/aws-osis-pipeline_vpcendpoint.go b/cloudformation/osis/aws-osis-pipeline_vpcendpoint.go new file mode 100644 index 0000000000..a49b4cfe14 --- /dev/null +++ b/cloudformation/osis/aws-osis-pipeline_vpcendpoint.go @@ -0,0 +1,47 @@ +// Code generated by "go generate". Please don't change this file directly. + +package osis + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// Pipeline_VpcEndpoint AWS CloudFormation Resource (AWS::OSIS::Pipeline.VpcEndpoint) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-vpcendpoint.html +type Pipeline_VpcEndpoint struct { + + // VpcEndpointId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-vpcendpoint.html#cfn-osis-pipeline-vpcendpoint-vpcendpointid + VpcEndpointId *string `json:"VpcEndpointId,omitempty"` + + // VpcId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-vpcendpoint.html#cfn-osis-pipeline-vpcendpoint-vpcid + VpcId *string `json:"VpcId,omitempty"` + + // VpcOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-vpcendpoint.html#cfn-osis-pipeline-vpcendpoint-vpcoptions + VpcOptions *Pipeline_VpcOptions `json:"VpcOptions,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 *Pipeline_VpcEndpoint) AWSCloudFormationType() string { + return "AWS::OSIS::Pipeline.VpcEndpoint" +} diff --git a/cloudformation/osis/aws-osis-pipeline_vpcoptions.go b/cloudformation/osis/aws-osis-pipeline_vpcoptions.go new file mode 100644 index 0000000000..89cbf0f198 --- /dev/null +++ b/cloudformation/osis/aws-osis-pipeline_vpcoptions.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package osis + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// Pipeline_VpcOptions AWS CloudFormation Resource (AWS::OSIS::Pipeline.VpcOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-vpcoptions.html +type Pipeline_VpcOptions struct { + + // SecurityGroupIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-vpcoptions.html#cfn-osis-pipeline-vpcoptions-securitygroupids + SecurityGroupIds []string `json:"SecurityGroupIds,omitempty"` + + // SubnetIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-vpcoptions.html#cfn-osis-pipeline-vpcoptions-subnetids + SubnetIds []string `json:"SubnetIds,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 *Pipeline_VpcOptions) AWSCloudFormationType() string { + return "AWS::OSIS::Pipeline.VpcOptions" +} diff --git a/cloudformation/sagemaker/aws-sagemaker-endpointconfig_serverlessconfig.go b/cloudformation/sagemaker/aws-sagemaker-endpointconfig_serverlessconfig.go index f312649da1..b5f26f0042 100644 --- a/cloudformation/sagemaker/aws-sagemaker-endpointconfig_serverlessconfig.go +++ b/cloudformation/sagemaker/aws-sagemaker-endpointconfig_serverlessconfig.go @@ -20,6 +20,11 @@ type EndpointConfig_ServerlessConfig struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-productionvariant-serverlessconfig.html#cfn-sagemaker-endpointconfig-productionvariant-serverlessconfig-memorysizeinmb MemorySizeInMB int `json:"MemorySizeInMB"` + // ProvisionedConcurrency AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-productionvariant-serverlessconfig.html#cfn-sagemaker-endpointconfig-productionvariant-serverlessconfig-provisionedconcurrency + ProvisionedConcurrency *int `json:"ProvisionedConcurrency,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/sagemaker/aws-sagemaker-modelcard_container.go b/cloudformation/sagemaker/aws-sagemaker-modelcard_container.go new file mode 100644 index 0000000000..3e0f1d3fc8 --- /dev/null +++ b/cloudformation/sagemaker/aws-sagemaker-modelcard_container.go @@ -0,0 +1,47 @@ +// Code generated by "go generate". Please don't change this file directly. + +package sagemaker + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// ModelCard_Container AWS CloudFormation Resource (AWS::SageMaker::ModelCard.Container) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-container.html +type ModelCard_Container struct { + + // Image AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-container.html#cfn-sagemaker-modelcard-container-image + Image string `json:"Image"` + + // ModelDataUrl AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-container.html#cfn-sagemaker-modelcard-container-modeldataurl + ModelDataUrl *string `json:"ModelDataUrl,omitempty"` + + // NearestModelName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-container.html#cfn-sagemaker-modelcard-container-nearestmodelname + NearestModelName *string `json:"NearestModelName,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 *ModelCard_Container) AWSCloudFormationType() string { + return "AWS::SageMaker::ModelCard.Container" +} diff --git a/cloudformation/sagemaker/aws-sagemaker-modelcard_content.go b/cloudformation/sagemaker/aws-sagemaker-modelcard_content.go index 79e4d5c2a5..a49fd425a3 100644 --- a/cloudformation/sagemaker/aws-sagemaker-modelcard_content.go +++ b/cloudformation/sagemaker/aws-sagemaker-modelcard_content.go @@ -35,6 +35,11 @@ type ModelCard_Content struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-content.html#cfn-sagemaker-modelcard-content-modeloverview ModelOverview *ModelCard_ModelOverview `json:"ModelOverview,omitempty"` + // ModelPackageDetails AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-content.html#cfn-sagemaker-modelcard-content-modelpackagedetails + ModelPackageDetails *ModelCard_ModelPackageDetails `json:"ModelPackageDetails,omitempty"` + // TrainingDetails AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-content.html#cfn-sagemaker-modelcard-content-trainingdetails diff --git a/cloudformation/sagemaker/aws-sagemaker-modelcard_inferencespecification.go b/cloudformation/sagemaker/aws-sagemaker-modelcard_inferencespecification.go new file mode 100644 index 0000000000..38c51a4775 --- /dev/null +++ b/cloudformation/sagemaker/aws-sagemaker-modelcard_inferencespecification.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package sagemaker + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// ModelCard_InferenceSpecification AWS CloudFormation Resource (AWS::SageMaker::ModelCard.InferenceSpecification) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-inferencespecification.html +type ModelCard_InferenceSpecification struct { + + // Containers AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-inferencespecification.html#cfn-sagemaker-modelcard-inferencespecification-containers + Containers []ModelCard_Container `json:"Containers"` + + // 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 *ModelCard_InferenceSpecification) AWSCloudFormationType() string { + return "AWS::SageMaker::ModelCard.InferenceSpecification" +} diff --git a/cloudformation/sagemaker/aws-sagemaker-modelcard_modelpackagecreator.go b/cloudformation/sagemaker/aws-sagemaker-modelcard_modelpackagecreator.go new file mode 100644 index 0000000000..6a08044cce --- /dev/null +++ b/cloudformation/sagemaker/aws-sagemaker-modelcard_modelpackagecreator.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package sagemaker + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// ModelCard_ModelPackageCreator AWS CloudFormation Resource (AWS::SageMaker::ModelCard.ModelPackageCreator) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagecreator.html +type ModelCard_ModelPackageCreator struct { + + // UserProfileName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagecreator.html#cfn-sagemaker-modelcard-modelpackagecreator-userprofilename + UserProfileName *string `json:"UserProfileName,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 *ModelCard_ModelPackageCreator) AWSCloudFormationType() string { + return "AWS::SageMaker::ModelCard.ModelPackageCreator" +} diff --git a/cloudformation/sagemaker/aws-sagemaker-modelcard_modelpackagedetails.go b/cloudformation/sagemaker/aws-sagemaker-modelcard_modelpackagedetails.go new file mode 100644 index 0000000000..2be292c658 --- /dev/null +++ b/cloudformation/sagemaker/aws-sagemaker-modelcard_modelpackagedetails.go @@ -0,0 +1,97 @@ +// Code generated by "go generate". Please don't change this file directly. + +package sagemaker + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// ModelCard_ModelPackageDetails AWS CloudFormation Resource (AWS::SageMaker::ModelCard.ModelPackageDetails) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagedetails.html +type ModelCard_ModelPackageDetails struct { + + // ApprovalDescription AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagedetails.html#cfn-sagemaker-modelcard-modelpackagedetails-approvaldescription + ApprovalDescription *string `json:"ApprovalDescription,omitempty"` + + // CreatedBy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagedetails.html#cfn-sagemaker-modelcard-modelpackagedetails-createdby + CreatedBy *ModelCard_ModelPackageCreator `json:"CreatedBy,omitempty"` + + // Domain AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagedetails.html#cfn-sagemaker-modelcard-modelpackagedetails-domain + Domain *string `json:"Domain,omitempty"` + + // InferenceSpecification AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagedetails.html#cfn-sagemaker-modelcard-modelpackagedetails-inferencespecification + InferenceSpecification *ModelCard_InferenceSpecification `json:"InferenceSpecification,omitempty"` + + // ModelApprovalStatus AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagedetails.html#cfn-sagemaker-modelcard-modelpackagedetails-modelapprovalstatus + ModelApprovalStatus *string `json:"ModelApprovalStatus,omitempty"` + + // ModelPackageArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagedetails.html#cfn-sagemaker-modelcard-modelpackagedetails-modelpackagearn + ModelPackageArn *string `json:"ModelPackageArn,omitempty"` + + // ModelPackageDescription AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagedetails.html#cfn-sagemaker-modelcard-modelpackagedetails-modelpackagedescription + ModelPackageDescription *string `json:"ModelPackageDescription,omitempty"` + + // ModelPackageGroupName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagedetails.html#cfn-sagemaker-modelcard-modelpackagedetails-modelpackagegroupname + ModelPackageGroupName *string `json:"ModelPackageGroupName,omitempty"` + + // ModelPackageName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagedetails.html#cfn-sagemaker-modelcard-modelpackagedetails-modelpackagename + ModelPackageName *string `json:"ModelPackageName,omitempty"` + + // ModelPackageStatus AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagedetails.html#cfn-sagemaker-modelcard-modelpackagedetails-modelpackagestatus + ModelPackageStatus *string `json:"ModelPackageStatus,omitempty"` + + // ModelPackageVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagedetails.html#cfn-sagemaker-modelcard-modelpackagedetails-modelpackageversion + ModelPackageVersion *float64 `json:"ModelPackageVersion,omitempty"` + + // SourceAlgorithms AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagedetails.html#cfn-sagemaker-modelcard-modelpackagedetails-sourcealgorithms + SourceAlgorithms []ModelCard_SourceAlgorithm `json:"SourceAlgorithms,omitempty"` + + // Task AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-modelpackagedetails.html#cfn-sagemaker-modelcard-modelpackagedetails-task + Task *string `json:"Task,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 *ModelCard_ModelPackageDetails) AWSCloudFormationType() string { + return "AWS::SageMaker::ModelCard.ModelPackageDetails" +} diff --git a/cloudformation/sagemaker/aws-sagemaker-modelcard_sourcealgorithm.go b/cloudformation/sagemaker/aws-sagemaker-modelcard_sourcealgorithm.go new file mode 100644 index 0000000000..dd5c2d3612 --- /dev/null +++ b/cloudformation/sagemaker/aws-sagemaker-modelcard_sourcealgorithm.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package sagemaker + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// ModelCard_SourceAlgorithm AWS CloudFormation Resource (AWS::SageMaker::ModelCard.SourceAlgorithm) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-sourcealgorithm.html +type ModelCard_SourceAlgorithm struct { + + // AlgorithmName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-sourcealgorithm.html#cfn-sagemaker-modelcard-sourcealgorithm-algorithmname + AlgorithmName string `json:"AlgorithmName"` + + // ModelDataUrl AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-modelcard-sourcealgorithm.html#cfn-sagemaker-modelcard-sourcealgorithm-modeldataurl + ModelDataUrl *string `json:"ModelDataUrl,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 *ModelCard_SourceAlgorithm) AWSCloudFormationType() string { + return "AWS::SageMaker::ModelCard.SourceAlgorithm" +} diff --git a/cloudformation/simspaceweaver/aws-simspaceweaver-simulation.go b/cloudformation/simspaceweaver/aws-simspaceweaver-simulation.go index 805bbd00db..445da7f869 100644 --- a/cloudformation/simspaceweaver/aws-simspaceweaver-simulation.go +++ b/cloudformation/simspaceweaver/aws-simspaceweaver-simulation.go @@ -13,21 +13,31 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-simspaceweaver-simulation.html type Simulation struct { - // Name AWS CloudFormation Property + // MaximumDuration AWS CloudFormation Property // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-simspaceweaver-simulation.html#cfn-simspaceweaver-simulation-maximumduration + MaximumDuration *string `json:"MaximumDuration,omitempty"` + + // Name AWS CloudFormation Property + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-simspaceweaver-simulation.html#cfn-simspaceweaver-simulation-name - Name *string `json:"Name,omitempty"` + Name string `json:"Name"` // RoleArn AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-simspaceweaver-simulation.html#cfn-simspaceweaver-simulation-rolearn - RoleArn *string `json:"RoleArn,omitempty"` + RoleArn string `json:"RoleArn"` // SchemaS3Location AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-simspaceweaver-simulation.html#cfn-simspaceweaver-simulation-schemas3location SchemaS3Location *Simulation_S3Location `json:"SchemaS3Location,omitempty"` + // SnapshotS3Location AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-simspaceweaver-simulation.html#cfn-simspaceweaver-simulation-snapshots3location + SnapshotS3Location *Simulation_S3Location `json:"SnapshotS3Location,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/synthetics/aws-synthetics-canary.go b/cloudformation/synthetics/aws-synthetics-canary.go index 4f0540405a..5c00a342ef 100644 --- a/cloudformation/synthetics/aws-synthetics-canary.go +++ b/cloudformation/synthetics/aws-synthetics-canary.go @@ -29,11 +29,6 @@ type Canary struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-canary.html#cfn-synthetics-canary-code Code *Canary_Code `json:"Code"` - // DeleteLambdaResourcesOnCanaryDeletion AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-canary.html#cfn-synthetics-canary-deletelambdaresourcesoncanarydeletion - DeleteLambdaResourcesOnCanaryDeletion *bool `json:"DeleteLambdaResourcesOnCanaryDeletion,omitempty"` - // ExecutionRoleArn AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-canary.html#cfn-synthetics-canary-executionrolearn @@ -65,9 +60,9 @@ type Canary struct { Schedule *Canary_Schedule `json:"Schedule"` // StartCanaryAfterCreation AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-canary.html#cfn-synthetics-canary-startcanaryaftercreation - StartCanaryAfterCreation bool `json:"StartCanaryAfterCreation"` + StartCanaryAfterCreation *bool `json:"StartCanaryAfterCreation,omitempty"` // SuccessRetentionPeriod AWS CloudFormation Property // Required: false diff --git a/cloudformation/synthetics/aws-synthetics-canary_code.go b/cloudformation/synthetics/aws-synthetics-canary_code.go index 1b4e81a19c..b6b72e057e 100644 --- a/cloudformation/synthetics/aws-synthetics-canary_code.go +++ b/cloudformation/synthetics/aws-synthetics-canary_code.go @@ -35,6 +35,11 @@ type Canary_Code struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-code.html#cfn-synthetics-canary-code-script Script *string `json:"Script,omitempty"` + // SourceLocationArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-code.html#cfn-synthetics-canary-code-sourcelocationarn + SourceLocationArn *string `json:"SourceLocationArn,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/xray/aws-xray-group.go b/cloudformation/xray/aws-xray-group.go index 187878638f..e85e2cf4c6 100644 --- a/cloudformation/xray/aws-xray-group.go +++ b/cloudformation/xray/aws-xray-group.go @@ -20,9 +20,9 @@ type Group struct { FilterExpression *string `json:"FilterExpression,omitempty"` // GroupName AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-group.html#cfn-xray-group-groupname - GroupName *string `json:"GroupName,omitempty"` + GroupName string `json:"GroupName"` // InsightsConfiguration AWS CloudFormation Property // Required: false diff --git a/cloudformation/xray/aws-xray-samplingrule.go b/cloudformation/xray/aws-xray-samplingrule.go index 789e92ba17..dc092c57f0 100644 --- a/cloudformation/xray/aws-xray-samplingrule.go +++ b/cloudformation/xray/aws-xray-samplingrule.go @@ -14,11 +14,6 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-samplingrule.html type SamplingRule struct { - // RuleName AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-samplingrule.html#cfn-xray-samplingrule-rulename - RuleName *string `json:"RuleName,omitempty"` - // SamplingRule AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-xray-samplingrule.html#cfn-xray-samplingrule-samplingrule diff --git a/schema/cdk.go b/schema/cdk.go index 3f97e48563..81f073f608 100644 --- a/schema/cdk.go +++ b/schema/cdk.go @@ -54559,6 +54559,234 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::EC2::VerifiedAccessEndpoint": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "ApplicationDomain": { + "type": "string" + }, + "AttachmentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DomainCertificateArn": { + "type": "string" + }, + "EndpointDomainPrefix": { + "type": "string" + }, + "EndpointType": { + "type": "string" + }, + "LoadBalancerOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint.LoadBalancerOptions" + }, + "NetworkInterfaceOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint.NetworkInterfaceOptions" + }, + "PolicyDocument": { + "type": "string" + }, + "PolicyEnabled": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VerifiedAccessGroupId": { + "type": "string" + } + }, + "required": [ + "ApplicationDomain", + "AttachmentType", + "DomainCertificateArn", + "EndpointDomainPrefix", + "EndpointType", + "VerifiedAccessGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VerifiedAccessEndpoint.LoadBalancerOptions": { + "additionalProperties": false, + "properties": { + "LoadBalancerArn": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessEndpoint.NetworkInterfaceOptions": { + "additionalProperties": false, + "properties": { + "NetworkInterfaceId": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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" + }, + "PolicyDocument": { + "type": "string" + }, + "PolicyEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VerifiedAccessInstanceId": { + "type": "string" + } + }, + "required": [ + "VerifiedAccessInstanceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EC2::VerifiedAccessInstance": { "additionalProperties": false, "properties": { @@ -54719,6 +54947,132 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::EC2::VerifiedAccessTrustProvider": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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" + }, + "DeviceOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider.DeviceOptions" + }, + "DeviceTrustProviderType": { + "type": "string" + }, + "OidcOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider.OidcOptions" + }, + "PolicyReferenceName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TrustProviderType": { + "type": "string" + }, + "UserTrustProviderType": { + "type": "string" + } + }, + "required": [ + "PolicyReferenceName", + "TrustProviderType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessTrustProvider" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VerifiedAccessTrustProvider.DeviceOptions": { + "additionalProperties": false, + "properties": { + "TenantId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessTrustProvider.OidcOptions": { + "additionalProperties": false, + "properties": { + "AuthorizationEndpoint": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "Issuer": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "TokenEndpoint": { + "type": "string" + }, + "UserInfoEndpoint": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::Volume": { "additionalProperties": false, "properties": { @@ -61005,6 +61359,9 @@ var CdkSchema = `{ "CacheSubnetGroupName": { "type": "string" }, + "ClusterMode": { + "type": "string" + }, "DataTieringEnabled": { "type": "boolean" }, @@ -81738,6 +82095,85 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::IoT::BillingGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "BillingGroupName": { + "type": "string" + }, + "BillingGroupProperties": { + "$ref": "#/definitions/AWS::IoT::BillingGroup.BillingGroupProperties" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::BillingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::BillingGroup.BillingGroupProperties": { + "additionalProperties": false, + "properties": { + "BillingGroupDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::CACertificate": { "additionalProperties": false, "properties": { @@ -83630,6 +84066,109 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::IoT::ThingGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "ParentGroupName": { + "type": "string" + }, + "QueryString": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThingGroupName": { + "type": "string" + }, + "ThingGroupProperties": { + "$ref": "#/definitions/AWS::IoT::ThingGroup.ThingGroupProperties" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ThingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::ThingGroup.AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoT::ThingGroup.ThingGroupProperties": { + "additionalProperties": false, + "properties": { + "AttributePayload": { + "$ref": "#/definitions/AWS::IoT::ThingGroup.AttributePayload" + }, + "ThingGroupDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::ThingPrincipalAttachment": { "additionalProperties": false, "properties": { @@ -83699,6 +84238,94 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::IoT::ThingType": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "DeprecateThingType": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThingTypeName": { + "type": "string" + }, + "ThingTypeProperties": { + "$ref": "#/definitions/AWS::IoT::ThingType.ThingTypeProperties" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ThingType" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::ThingType.ThingTypeProperties": { + "additionalProperties": false, + "properties": { + "SearchableAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ThingTypeDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::TopicRule": { "additionalProperties": false, "properties": { @@ -107593,12 +108220,27 @@ var CdkSchema = `{ "MaxLatency": { "type": "number" }, + "MinLatency": { + "type": "number" + }, "Name": { "type": "string" }, "Protocol": { "type": "string" }, + "SenderControlPort": { + "type": "number" + }, + "SenderIpAddress": { + "type": "string" + }, + "SourceListenerAddress": { + "type": "string" + }, + "SourceListenerPort": { + "type": "number" + }, "StreamId": { "type": "string" }, @@ -107668,7 +108310,6 @@ var CdkSchema = `{ } }, "required": [ - "Algorithm", "RoleArn" ], "type": "object" @@ -114129,6 +114770,9 @@ var CdkSchema = `{ "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { "additionalProperties": false, "properties": { + "PolicyVariables": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.PolicyVariables" + }, "StatefulDefaultActions": { "items": { "type": "string" @@ -114175,6 +114819,33 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::NetworkFirewall::FirewallPolicy.IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.IPSet" + } + }, + "type": "object" + } + }, + "type": "object" + }, "AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction": { "additionalProperties": false, "properties": { @@ -116838,6 +117509,149 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::OSIS::Pipeline": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "LogPublishingOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.LogPublishingOptions" + }, + "MaxUnits": { + "type": "number" + }, + "MinUnits": { + "type": "number" + }, + "PipelineConfigurationBody": { + "type": "string" + }, + "PipelineName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.VpcOptions" + } + }, + "required": [ + "MaxUnits", + "MinUnits", + "PipelineConfigurationBody", + "PipelineName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OSIS::Pipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OSIS::Pipeline.CloudWatchLogDestination": { + "additionalProperties": false, + "properties": { + "LogGroup": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.LogPublishingOptions": { + "additionalProperties": false, + "properties": { + "CloudWatchLogDestination": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.CloudWatchLogDestination" + }, + "IsLoggingEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.VpcEndpoint": { + "additionalProperties": false, + "properties": { + "VpcEndpointId": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "VpcOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.VpcOptions" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.VpcOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::Oam::Link": { "additionalProperties": false, "properties": { @@ -169730,6 +170544,9 @@ var CdkSchema = `{ }, "MemorySizeInMB": { "type": "number" + }, + "ProvisionedConcurrency": { + "type": "number" } }, "required": [ @@ -171090,6 +171907,24 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::SageMaker::ModelCard.Container": { + "additionalProperties": false, + "properties": { + "Image": { + "type": "string" + }, + "ModelDataUrl": { + "type": "string" + }, + "NearestModelName": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.Content": { "additionalProperties": false, "properties": { @@ -171111,6 +171946,9 @@ var CdkSchema = `{ "ModelOverview": { "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelOverview" }, + "ModelPackageDetails": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelPackageDetails" + }, "TrainingDetails": { "$ref": "#/definitions/AWS::SageMaker::ModelCard.TrainingDetails" } @@ -171183,6 +172021,21 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::SageMaker::ModelCard.InferenceSpecification": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.Container" + }, + "type": "array" + } + }, + "required": [ + "Containers" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.IntendedUses": { "additionalProperties": false, "properties": { @@ -171297,6 +172150,63 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::SageMaker::ModelCard.ModelPackageCreator": { + "additionalProperties": false, + "properties": { + "UserProfileName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelCard.ModelPackageDetails": { + "additionalProperties": false, + "properties": { + "ApprovalDescription": { + "type": "string" + }, + "CreatedBy": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelPackageCreator" + }, + "Domain": { + "type": "string" + }, + "InferenceSpecification": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.InferenceSpecification" + }, + "ModelApprovalStatus": { + "type": "string" + }, + "ModelPackageArn": { + "type": "string" + }, + "ModelPackageDescription": { + "type": "string" + }, + "ModelPackageGroupName": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "ModelPackageStatus": { + "type": "string" + }, + "ModelPackageVersion": { + "type": "number" + }, + "SourceAlgorithms": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.SourceAlgorithm" + }, + "type": "array" + }, + "Task": { + "type": "string" + } + }, + "type": "object" + }, "AWS::SageMaker::ModelCard.ObjectiveFunction": { "additionalProperties": false, "properties": { @@ -171318,6 +172228,21 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::SageMaker::ModelCard.SourceAlgorithm": { + "additionalProperties": false, + "properties": { + "AlgorithmName": { + "type": "string" + }, + "ModelDataUrl": { + "type": "string" + } + }, + "required": [ + "AlgorithmName" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.TrainingDetails": { "additionalProperties": false, "properties": { @@ -177912,6 +178837,9 @@ var CdkSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "MaximumDuration": { + "type": "string" + }, "Name": { "type": "string" }, @@ -177920,8 +178848,15 @@ var CdkSchema = `{ }, "SchemaS3Location": { "$ref": "#/definitions/AWS::SimSpaceWeaver::Simulation.S3Location" + }, + "SnapshotS3Location": { + "$ref": "#/definitions/AWS::SimSpaceWeaver::Simulation.S3Location" } }, + "required": [ + "Name", + "RoleArn" + ], "type": "object" }, "Type": { @@ -177940,7 +178875,8 @@ var CdkSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -178494,9 +179430,6 @@ var CdkSchema = `{ "Code": { "$ref": "#/definitions/AWS::Synthetics::Canary.Code" }, - "DeleteLambdaResourcesOnCanaryDeletion": { - "type": "boolean" - }, "ExecutionRoleArn": { "type": "string" }, @@ -178540,8 +179473,7 @@ var CdkSchema = `{ "ExecutionRoleArn", "Name", "RuntimeVersion", - "Schedule", - "StartCanaryAfterCreation" + "Schedule" ], "type": "object" }, @@ -178610,6 +179542,9 @@ var CdkSchema = `{ }, "Script": { "type": "string" + }, + "SourceLocationArn": { + "type": "string" } }, "required": [ @@ -186475,6 +187410,9 @@ var CdkSchema = `{ "type": "array" } }, + "required": [ + "GroupName" + ], "type": "object" }, "Type": { @@ -186493,7 +187431,8 @@ var CdkSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -186616,9 +187555,6 @@ var CdkSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "RuleName": { - "type": "string" - }, "SamplingRule": { "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule" }, @@ -188127,9 +189063,18 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::EC2::VPNGatewayRoutePropagation" }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint" + }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessGroup" + }, { "$ref": "#/definitions/AWS::EC2::VerifiedAccessInstance" }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider" + }, { "$ref": "#/definitions/AWS::EC2::Volume" }, @@ -188676,6 +189621,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::IoT::Authorizer" }, + { + "$ref": "#/definitions/AWS::IoT::BillingGroup" + }, { "$ref": "#/definitions/AWS::IoT::CACertificate" }, @@ -188727,9 +189675,15 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::IoT::Thing" }, + { + "$ref": "#/definitions/AWS::IoT::ThingGroup" + }, { "$ref": "#/definitions/AWS::IoT::ThingPrincipalAttachment" }, + { + "$ref": "#/definitions/AWS::IoT::ThingType" + }, { "$ref": "#/definitions/AWS::IoT::TopicRule" }, @@ -189264,6 +190218,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent" }, + { + "$ref": "#/definitions/AWS::OSIS::Pipeline" + }, { "$ref": "#/definitions/AWS::Oam::Link" }, diff --git a/schema/cdk.schema.json b/schema/cdk.schema.json index 020feb6014..0359ac979c 100644 --- a/schema/cdk.schema.json +++ b/schema/cdk.schema.json @@ -54554,6 +54554,234 @@ ], "type": "object" }, + "AWS::EC2::VerifiedAccessEndpoint": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "ApplicationDomain": { + "type": "string" + }, + "AttachmentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DomainCertificateArn": { + "type": "string" + }, + "EndpointDomainPrefix": { + "type": "string" + }, + "EndpointType": { + "type": "string" + }, + "LoadBalancerOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint.LoadBalancerOptions" + }, + "NetworkInterfaceOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint.NetworkInterfaceOptions" + }, + "PolicyDocument": { + "type": "string" + }, + "PolicyEnabled": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VerifiedAccessGroupId": { + "type": "string" + } + }, + "required": [ + "ApplicationDomain", + "AttachmentType", + "DomainCertificateArn", + "EndpointDomainPrefix", + "EndpointType", + "VerifiedAccessGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VerifiedAccessEndpoint.LoadBalancerOptions": { + "additionalProperties": false, + "properties": { + "LoadBalancerArn": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessEndpoint.NetworkInterfaceOptions": { + "additionalProperties": false, + "properties": { + "NetworkInterfaceId": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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" + }, + "PolicyDocument": { + "type": "string" + }, + "PolicyEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VerifiedAccessInstanceId": { + "type": "string" + } + }, + "required": [ + "VerifiedAccessInstanceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EC2::VerifiedAccessInstance": { "additionalProperties": false, "properties": { @@ -54714,6 +54942,132 @@ }, "type": "object" }, + "AWS::EC2::VerifiedAccessTrustProvider": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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" + }, + "DeviceOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider.DeviceOptions" + }, + "DeviceTrustProviderType": { + "type": "string" + }, + "OidcOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider.OidcOptions" + }, + "PolicyReferenceName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TrustProviderType": { + "type": "string" + }, + "UserTrustProviderType": { + "type": "string" + } + }, + "required": [ + "PolicyReferenceName", + "TrustProviderType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessTrustProvider" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VerifiedAccessTrustProvider.DeviceOptions": { + "additionalProperties": false, + "properties": { + "TenantId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessTrustProvider.OidcOptions": { + "additionalProperties": false, + "properties": { + "AuthorizationEndpoint": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "Issuer": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "TokenEndpoint": { + "type": "string" + }, + "UserInfoEndpoint": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::Volume": { "additionalProperties": false, "properties": { @@ -61000,6 +61354,9 @@ "CacheSubnetGroupName": { "type": "string" }, + "ClusterMode": { + "type": "string" + }, "DataTieringEnabled": { "type": "boolean" }, @@ -81733,6 +82090,85 @@ ], "type": "object" }, + "AWS::IoT::BillingGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "BillingGroupName": { + "type": "string" + }, + "BillingGroupProperties": { + "$ref": "#/definitions/AWS::IoT::BillingGroup.BillingGroupProperties" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::BillingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::BillingGroup.BillingGroupProperties": { + "additionalProperties": false, + "properties": { + "BillingGroupDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::CACertificate": { "additionalProperties": false, "properties": { @@ -83625,6 +84061,109 @@ }, "type": "object" }, + "AWS::IoT::ThingGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "ParentGroupName": { + "type": "string" + }, + "QueryString": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThingGroupName": { + "type": "string" + }, + "ThingGroupProperties": { + "$ref": "#/definitions/AWS::IoT::ThingGroup.ThingGroupProperties" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ThingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::ThingGroup.AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoT::ThingGroup.ThingGroupProperties": { + "additionalProperties": false, + "properties": { + "AttributePayload": { + "$ref": "#/definitions/AWS::IoT::ThingGroup.AttributePayload" + }, + "ThingGroupDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::ThingPrincipalAttachment": { "additionalProperties": false, "properties": { @@ -83694,6 +84233,94 @@ ], "type": "object" }, + "AWS::IoT::ThingType": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "DeprecateThingType": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThingTypeName": { + "type": "string" + }, + "ThingTypeProperties": { + "$ref": "#/definitions/AWS::IoT::ThingType.ThingTypeProperties" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ThingType" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::ThingType.ThingTypeProperties": { + "additionalProperties": false, + "properties": { + "SearchableAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ThingTypeDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::TopicRule": { "additionalProperties": false, "properties": { @@ -107588,12 +108215,27 @@ "MaxLatency": { "type": "number" }, + "MinLatency": { + "type": "number" + }, "Name": { "type": "string" }, "Protocol": { "type": "string" }, + "SenderControlPort": { + "type": "number" + }, + "SenderIpAddress": { + "type": "string" + }, + "SourceListenerAddress": { + "type": "string" + }, + "SourceListenerPort": { + "type": "number" + }, "StreamId": { "type": "string" }, @@ -107663,7 +108305,6 @@ } }, "required": [ - "Algorithm", "RoleArn" ], "type": "object" @@ -114124,6 +114765,9 @@ "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { "additionalProperties": false, "properties": { + "PolicyVariables": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.PolicyVariables" + }, "StatefulDefaultActions": { "items": { "type": "string" @@ -114170,6 +114814,33 @@ ], "type": "object" }, + "AWS::NetworkFirewall::FirewallPolicy.IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.IPSet" + } + }, + "type": "object" + } + }, + "type": "object" + }, "AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction": { "additionalProperties": false, "properties": { @@ -116833,6 +117504,149 @@ }, "type": "object" }, + "AWS::OSIS::Pipeline": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "LogPublishingOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.LogPublishingOptions" + }, + "MaxUnits": { + "type": "number" + }, + "MinUnits": { + "type": "number" + }, + "PipelineConfigurationBody": { + "type": "string" + }, + "PipelineName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.VpcOptions" + } + }, + "required": [ + "MaxUnits", + "MinUnits", + "PipelineConfigurationBody", + "PipelineName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OSIS::Pipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OSIS::Pipeline.CloudWatchLogDestination": { + "additionalProperties": false, + "properties": { + "LogGroup": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.LogPublishingOptions": { + "additionalProperties": false, + "properties": { + "CloudWatchLogDestination": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.CloudWatchLogDestination" + }, + "IsLoggingEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.VpcEndpoint": { + "additionalProperties": false, + "properties": { + "VpcEndpointId": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "VpcOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.VpcOptions" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.VpcOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::Oam::Link": { "additionalProperties": false, "properties": { @@ -169725,6 +170539,9 @@ }, "MemorySizeInMB": { "type": "number" + }, + "ProvisionedConcurrency": { + "type": "number" } }, "required": [ @@ -171085,6 +171902,24 @@ }, "type": "object" }, + "AWS::SageMaker::ModelCard.Container": { + "additionalProperties": false, + "properties": { + "Image": { + "type": "string" + }, + "ModelDataUrl": { + "type": "string" + }, + "NearestModelName": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.Content": { "additionalProperties": false, "properties": { @@ -171106,6 +171941,9 @@ "ModelOverview": { "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelOverview" }, + "ModelPackageDetails": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelPackageDetails" + }, "TrainingDetails": { "$ref": "#/definitions/AWS::SageMaker::ModelCard.TrainingDetails" } @@ -171178,6 +172016,21 @@ }, "type": "object" }, + "AWS::SageMaker::ModelCard.InferenceSpecification": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.Container" + }, + "type": "array" + } + }, + "required": [ + "Containers" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.IntendedUses": { "additionalProperties": false, "properties": { @@ -171292,6 +172145,63 @@ }, "type": "object" }, + "AWS::SageMaker::ModelCard.ModelPackageCreator": { + "additionalProperties": false, + "properties": { + "UserProfileName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelCard.ModelPackageDetails": { + "additionalProperties": false, + "properties": { + "ApprovalDescription": { + "type": "string" + }, + "CreatedBy": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelPackageCreator" + }, + "Domain": { + "type": "string" + }, + "InferenceSpecification": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.InferenceSpecification" + }, + "ModelApprovalStatus": { + "type": "string" + }, + "ModelPackageArn": { + "type": "string" + }, + "ModelPackageDescription": { + "type": "string" + }, + "ModelPackageGroupName": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "ModelPackageStatus": { + "type": "string" + }, + "ModelPackageVersion": { + "type": "number" + }, + "SourceAlgorithms": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.SourceAlgorithm" + }, + "type": "array" + }, + "Task": { + "type": "string" + } + }, + "type": "object" + }, "AWS::SageMaker::ModelCard.ObjectiveFunction": { "additionalProperties": false, "properties": { @@ -171313,6 +172223,21 @@ }, "type": "object" }, + "AWS::SageMaker::ModelCard.SourceAlgorithm": { + "additionalProperties": false, + "properties": { + "AlgorithmName": { + "type": "string" + }, + "ModelDataUrl": { + "type": "string" + } + }, + "required": [ + "AlgorithmName" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.TrainingDetails": { "additionalProperties": false, "properties": { @@ -177907,6 +178832,9 @@ "Properties": { "additionalProperties": false, "properties": { + "MaximumDuration": { + "type": "string" + }, "Name": { "type": "string" }, @@ -177915,8 +178843,15 @@ }, "SchemaS3Location": { "$ref": "#/definitions/AWS::SimSpaceWeaver::Simulation.S3Location" + }, + "SnapshotS3Location": { + "$ref": "#/definitions/AWS::SimSpaceWeaver::Simulation.S3Location" } }, + "required": [ + "Name", + "RoleArn" + ], "type": "object" }, "Type": { @@ -177935,7 +178870,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -178489,9 +179425,6 @@ "Code": { "$ref": "#/definitions/AWS::Synthetics::Canary.Code" }, - "DeleteLambdaResourcesOnCanaryDeletion": { - "type": "boolean" - }, "ExecutionRoleArn": { "type": "string" }, @@ -178535,8 +179468,7 @@ "ExecutionRoleArn", "Name", "RuntimeVersion", - "Schedule", - "StartCanaryAfterCreation" + "Schedule" ], "type": "object" }, @@ -178605,6 +179537,9 @@ }, "Script": { "type": "string" + }, + "SourceLocationArn": { + "type": "string" } }, "required": [ @@ -186470,6 +187405,9 @@ "type": "array" } }, + "required": [ + "GroupName" + ], "type": "object" }, "Type": { @@ -186488,7 +187426,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -186611,9 +187550,6 @@ "Properties": { "additionalProperties": false, "properties": { - "RuleName": { - "type": "string" - }, "SamplingRule": { "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule" }, @@ -188122,9 +189058,18 @@ { "$ref": "#/definitions/AWS::EC2::VPNGatewayRoutePropagation" }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint" + }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessGroup" + }, { "$ref": "#/definitions/AWS::EC2::VerifiedAccessInstance" }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider" + }, { "$ref": "#/definitions/AWS::EC2::Volume" }, @@ -188671,6 +189616,9 @@ { "$ref": "#/definitions/AWS::IoT::Authorizer" }, + { + "$ref": "#/definitions/AWS::IoT::BillingGroup" + }, { "$ref": "#/definitions/AWS::IoT::CACertificate" }, @@ -188722,9 +189670,15 @@ { "$ref": "#/definitions/AWS::IoT::Thing" }, + { + "$ref": "#/definitions/AWS::IoT::ThingGroup" + }, { "$ref": "#/definitions/AWS::IoT::ThingPrincipalAttachment" }, + { + "$ref": "#/definitions/AWS::IoT::ThingType" + }, { "$ref": "#/definitions/AWS::IoT::TopicRule" }, @@ -189259,6 +190213,9 @@ { "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent" }, + { + "$ref": "#/definitions/AWS::OSIS::Pipeline" + }, { "$ref": "#/definitions/AWS::Oam::Link" }, diff --git a/schema/cloudformation.go b/schema/cloudformation.go index d041d925fa..ae725838d4 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -54498,6 +54498,234 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EC2::VerifiedAccessEndpoint": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "ApplicationDomain": { + "type": "string" + }, + "AttachmentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DomainCertificateArn": { + "type": "string" + }, + "EndpointDomainPrefix": { + "type": "string" + }, + "EndpointType": { + "type": "string" + }, + "LoadBalancerOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint.LoadBalancerOptions" + }, + "NetworkInterfaceOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint.NetworkInterfaceOptions" + }, + "PolicyDocument": { + "type": "string" + }, + "PolicyEnabled": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VerifiedAccessGroupId": { + "type": "string" + } + }, + "required": [ + "ApplicationDomain", + "AttachmentType", + "DomainCertificateArn", + "EndpointDomainPrefix", + "EndpointType", + "VerifiedAccessGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VerifiedAccessEndpoint.LoadBalancerOptions": { + "additionalProperties": false, + "properties": { + "LoadBalancerArn": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessEndpoint.NetworkInterfaceOptions": { + "additionalProperties": false, + "properties": { + "NetworkInterfaceId": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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" + }, + "PolicyDocument": { + "type": "string" + }, + "PolicyEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VerifiedAccessInstanceId": { + "type": "string" + } + }, + "required": [ + "VerifiedAccessInstanceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EC2::VerifiedAccessInstance": { "additionalProperties": false, "properties": { @@ -54658,6 +54886,132 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::EC2::VerifiedAccessTrustProvider": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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" + }, + "DeviceOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider.DeviceOptions" + }, + "DeviceTrustProviderType": { + "type": "string" + }, + "OidcOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider.OidcOptions" + }, + "PolicyReferenceName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TrustProviderType": { + "type": "string" + }, + "UserTrustProviderType": { + "type": "string" + } + }, + "required": [ + "PolicyReferenceName", + "TrustProviderType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessTrustProvider" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VerifiedAccessTrustProvider.DeviceOptions": { + "additionalProperties": false, + "properties": { + "TenantId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessTrustProvider.OidcOptions": { + "additionalProperties": false, + "properties": { + "AuthorizationEndpoint": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "Issuer": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "TokenEndpoint": { + "type": "string" + }, + "UserInfoEndpoint": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::Volume": { "additionalProperties": false, "properties": { @@ -60944,6 +61298,9 @@ var CloudformationSchema = `{ "CacheSubnetGroupName": { "type": "string" }, + "ClusterMode": { + "type": "string" + }, "DataTieringEnabled": { "type": "boolean" }, @@ -81677,6 +82034,85 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::IoT::BillingGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "BillingGroupName": { + "type": "string" + }, + "BillingGroupProperties": { + "$ref": "#/definitions/AWS::IoT::BillingGroup.BillingGroupProperties" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::BillingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::BillingGroup.BillingGroupProperties": { + "additionalProperties": false, + "properties": { + "BillingGroupDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::CACertificate": { "additionalProperties": false, "properties": { @@ -83569,6 +84005,109 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::IoT::ThingGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "ParentGroupName": { + "type": "string" + }, + "QueryString": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThingGroupName": { + "type": "string" + }, + "ThingGroupProperties": { + "$ref": "#/definitions/AWS::IoT::ThingGroup.ThingGroupProperties" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ThingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::ThingGroup.AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoT::ThingGroup.ThingGroupProperties": { + "additionalProperties": false, + "properties": { + "AttributePayload": { + "$ref": "#/definitions/AWS::IoT::ThingGroup.AttributePayload" + }, + "ThingGroupDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::ThingPrincipalAttachment": { "additionalProperties": false, "properties": { @@ -83638,6 +84177,94 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::IoT::ThingType": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "DeprecateThingType": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThingTypeName": { + "type": "string" + }, + "ThingTypeProperties": { + "$ref": "#/definitions/AWS::IoT::ThingType.ThingTypeProperties" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ThingType" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::ThingType.ThingTypeProperties": { + "additionalProperties": false, + "properties": { + "SearchableAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ThingTypeDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::TopicRule": { "additionalProperties": false, "properties": { @@ -107532,12 +108159,27 @@ var CloudformationSchema = `{ "MaxLatency": { "type": "number" }, + "MinLatency": { + "type": "number" + }, "Name": { "type": "string" }, "Protocol": { "type": "string" }, + "SenderControlPort": { + "type": "number" + }, + "SenderIpAddress": { + "type": "string" + }, + "SourceListenerAddress": { + "type": "string" + }, + "SourceListenerPort": { + "type": "number" + }, "StreamId": { "type": "string" }, @@ -107607,7 +108249,6 @@ var CloudformationSchema = `{ } }, "required": [ - "Algorithm", "RoleArn" ], "type": "object" @@ -114068,6 +114709,9 @@ var CloudformationSchema = `{ "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { "additionalProperties": false, "properties": { + "PolicyVariables": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.PolicyVariables" + }, "StatefulDefaultActions": { "items": { "type": "string" @@ -114114,6 +114758,33 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::NetworkFirewall::FirewallPolicy.IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.IPSet" + } + }, + "type": "object" + } + }, + "type": "object" + }, "AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction": { "additionalProperties": false, "properties": { @@ -116777,6 +117448,149 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::OSIS::Pipeline": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "LogPublishingOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.LogPublishingOptions" + }, + "MaxUnits": { + "type": "number" + }, + "MinUnits": { + "type": "number" + }, + "PipelineConfigurationBody": { + "type": "string" + }, + "PipelineName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.VpcOptions" + } + }, + "required": [ + "MaxUnits", + "MinUnits", + "PipelineConfigurationBody", + "PipelineName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OSIS::Pipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OSIS::Pipeline.CloudWatchLogDestination": { + "additionalProperties": false, + "properties": { + "LogGroup": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.LogPublishingOptions": { + "additionalProperties": false, + "properties": { + "CloudWatchLogDestination": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.CloudWatchLogDestination" + }, + "IsLoggingEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.VpcEndpoint": { + "additionalProperties": false, + "properties": { + "VpcEndpointId": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "VpcOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.VpcOptions" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.VpcOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::Oam::Link": { "additionalProperties": false, "properties": { @@ -169669,6 +170483,9 @@ var CloudformationSchema = `{ }, "MemorySizeInMB": { "type": "number" + }, + "ProvisionedConcurrency": { + "type": "number" } }, "required": [ @@ -171029,6 +171846,24 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::SageMaker::ModelCard.Container": { + "additionalProperties": false, + "properties": { + "Image": { + "type": "string" + }, + "ModelDataUrl": { + "type": "string" + }, + "NearestModelName": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.Content": { "additionalProperties": false, "properties": { @@ -171050,6 +171885,9 @@ var CloudformationSchema = `{ "ModelOverview": { "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelOverview" }, + "ModelPackageDetails": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelPackageDetails" + }, "TrainingDetails": { "$ref": "#/definitions/AWS::SageMaker::ModelCard.TrainingDetails" } @@ -171122,6 +171960,21 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::SageMaker::ModelCard.InferenceSpecification": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.Container" + }, + "type": "array" + } + }, + "required": [ + "Containers" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.IntendedUses": { "additionalProperties": false, "properties": { @@ -171236,6 +172089,63 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::SageMaker::ModelCard.ModelPackageCreator": { + "additionalProperties": false, + "properties": { + "UserProfileName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelCard.ModelPackageDetails": { + "additionalProperties": false, + "properties": { + "ApprovalDescription": { + "type": "string" + }, + "CreatedBy": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelPackageCreator" + }, + "Domain": { + "type": "string" + }, + "InferenceSpecification": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.InferenceSpecification" + }, + "ModelApprovalStatus": { + "type": "string" + }, + "ModelPackageArn": { + "type": "string" + }, + "ModelPackageDescription": { + "type": "string" + }, + "ModelPackageGroupName": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "ModelPackageStatus": { + "type": "string" + }, + "ModelPackageVersion": { + "type": "number" + }, + "SourceAlgorithms": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.SourceAlgorithm" + }, + "type": "array" + }, + "Task": { + "type": "string" + } + }, + "type": "object" + }, "AWS::SageMaker::ModelCard.ObjectiveFunction": { "additionalProperties": false, "properties": { @@ -171257,6 +172167,21 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::SageMaker::ModelCard.SourceAlgorithm": { + "additionalProperties": false, + "properties": { + "AlgorithmName": { + "type": "string" + }, + "ModelDataUrl": { + "type": "string" + } + }, + "required": [ + "AlgorithmName" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.TrainingDetails": { "additionalProperties": false, "properties": { @@ -177851,6 +178776,9 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "MaximumDuration": { + "type": "string" + }, "Name": { "type": "string" }, @@ -177859,8 +178787,15 @@ var CloudformationSchema = `{ }, "SchemaS3Location": { "$ref": "#/definitions/AWS::SimSpaceWeaver::Simulation.S3Location" + }, + "SnapshotS3Location": { + "$ref": "#/definitions/AWS::SimSpaceWeaver::Simulation.S3Location" } }, + "required": [ + "Name", + "RoleArn" + ], "type": "object" }, "Type": { @@ -177879,7 +178814,8 @@ var CloudformationSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -178433,9 +179369,6 @@ var CloudformationSchema = `{ "Code": { "$ref": "#/definitions/AWS::Synthetics::Canary.Code" }, - "DeleteLambdaResourcesOnCanaryDeletion": { - "type": "boolean" - }, "ExecutionRoleArn": { "type": "string" }, @@ -178479,8 +179412,7 @@ var CloudformationSchema = `{ "ExecutionRoleArn", "Name", "RuntimeVersion", - "Schedule", - "StartCanaryAfterCreation" + "Schedule" ], "type": "object" }, @@ -178549,6 +179481,9 @@ var CloudformationSchema = `{ }, "Script": { "type": "string" + }, + "SourceLocationArn": { + "type": "string" } }, "required": [ @@ -186414,6 +187349,9 @@ var CloudformationSchema = `{ "type": "array" } }, + "required": [ + "GroupName" + ], "type": "object" }, "Type": { @@ -186432,7 +187370,8 @@ var CloudformationSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -186555,9 +187494,6 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "RuleName": { - "type": "string" - }, "SamplingRule": { "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule" }, @@ -188063,9 +188999,18 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::EC2::VPNGatewayRoutePropagation" }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint" + }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessGroup" + }, { "$ref": "#/definitions/AWS::EC2::VerifiedAccessInstance" }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider" + }, { "$ref": "#/definitions/AWS::EC2::Volume" }, @@ -188612,6 +189557,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IoT::Authorizer" }, + { + "$ref": "#/definitions/AWS::IoT::BillingGroup" + }, { "$ref": "#/definitions/AWS::IoT::CACertificate" }, @@ -188663,9 +189611,15 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IoT::Thing" }, + { + "$ref": "#/definitions/AWS::IoT::ThingGroup" + }, { "$ref": "#/definitions/AWS::IoT::ThingPrincipalAttachment" }, + { + "$ref": "#/definitions/AWS::IoT::ThingType" + }, { "$ref": "#/definitions/AWS::IoT::TopicRule" }, @@ -189200,6 +190154,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent" }, + { + "$ref": "#/definitions/AWS::OSIS::Pipeline" + }, { "$ref": "#/definitions/AWS::Oam::Link" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index f554152409..d8af1ac051 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -54493,6 +54493,234 @@ ], "type": "object" }, + "AWS::EC2::VerifiedAccessEndpoint": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "ApplicationDomain": { + "type": "string" + }, + "AttachmentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DomainCertificateArn": { + "type": "string" + }, + "EndpointDomainPrefix": { + "type": "string" + }, + "EndpointType": { + "type": "string" + }, + "LoadBalancerOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint.LoadBalancerOptions" + }, + "NetworkInterfaceOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint.NetworkInterfaceOptions" + }, + "PolicyDocument": { + "type": "string" + }, + "PolicyEnabled": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VerifiedAccessGroupId": { + "type": "string" + } + }, + "required": [ + "ApplicationDomain", + "AttachmentType", + "DomainCertificateArn", + "EndpointDomainPrefix", + "EndpointType", + "VerifiedAccessGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VerifiedAccessEndpoint.LoadBalancerOptions": { + "additionalProperties": false, + "properties": { + "LoadBalancerArn": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessEndpoint.NetworkInterfaceOptions": { + "additionalProperties": false, + "properties": { + "NetworkInterfaceId": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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" + }, + "PolicyDocument": { + "type": "string" + }, + "PolicyEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VerifiedAccessInstanceId": { + "type": "string" + } + }, + "required": [ + "VerifiedAccessInstanceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EC2::VerifiedAccessInstance": { "additionalProperties": false, "properties": { @@ -54653,6 +54881,132 @@ }, "type": "object" }, + "AWS::EC2::VerifiedAccessTrustProvider": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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" + }, + "DeviceOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider.DeviceOptions" + }, + "DeviceTrustProviderType": { + "type": "string" + }, + "OidcOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider.OidcOptions" + }, + "PolicyReferenceName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TrustProviderType": { + "type": "string" + }, + "UserTrustProviderType": { + "type": "string" + } + }, + "required": [ + "PolicyReferenceName", + "TrustProviderType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessTrustProvider" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VerifiedAccessTrustProvider.DeviceOptions": { + "additionalProperties": false, + "properties": { + "TenantId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessTrustProvider.OidcOptions": { + "additionalProperties": false, + "properties": { + "AuthorizationEndpoint": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "Issuer": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "TokenEndpoint": { + "type": "string" + }, + "UserInfoEndpoint": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::Volume": { "additionalProperties": false, "properties": { @@ -60939,6 +61293,9 @@ "CacheSubnetGroupName": { "type": "string" }, + "ClusterMode": { + "type": "string" + }, "DataTieringEnabled": { "type": "boolean" }, @@ -81672,6 +82029,85 @@ ], "type": "object" }, + "AWS::IoT::BillingGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "BillingGroupName": { + "type": "string" + }, + "BillingGroupProperties": { + "$ref": "#/definitions/AWS::IoT::BillingGroup.BillingGroupProperties" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::BillingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::BillingGroup.BillingGroupProperties": { + "additionalProperties": false, + "properties": { + "BillingGroupDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::CACertificate": { "additionalProperties": false, "properties": { @@ -83564,6 +84000,109 @@ }, "type": "object" }, + "AWS::IoT::ThingGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "ParentGroupName": { + "type": "string" + }, + "QueryString": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThingGroupName": { + "type": "string" + }, + "ThingGroupProperties": { + "$ref": "#/definitions/AWS::IoT::ThingGroup.ThingGroupProperties" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ThingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::ThingGroup.AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoT::ThingGroup.ThingGroupProperties": { + "additionalProperties": false, + "properties": { + "AttributePayload": { + "$ref": "#/definitions/AWS::IoT::ThingGroup.AttributePayload" + }, + "ThingGroupDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::ThingPrincipalAttachment": { "additionalProperties": false, "properties": { @@ -83633,6 +84172,94 @@ ], "type": "object" }, + "AWS::IoT::ThingType": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "DeprecateThingType": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThingTypeName": { + "type": "string" + }, + "ThingTypeProperties": { + "$ref": "#/definitions/AWS::IoT::ThingType.ThingTypeProperties" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ThingType" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::ThingType.ThingTypeProperties": { + "additionalProperties": false, + "properties": { + "SearchableAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ThingTypeDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::TopicRule": { "additionalProperties": false, "properties": { @@ -107527,12 +108154,27 @@ "MaxLatency": { "type": "number" }, + "MinLatency": { + "type": "number" + }, "Name": { "type": "string" }, "Protocol": { "type": "string" }, + "SenderControlPort": { + "type": "number" + }, + "SenderIpAddress": { + "type": "string" + }, + "SourceListenerAddress": { + "type": "string" + }, + "SourceListenerPort": { + "type": "number" + }, "StreamId": { "type": "string" }, @@ -107602,7 +108244,6 @@ } }, "required": [ - "Algorithm", "RoleArn" ], "type": "object" @@ -114063,6 +114704,9 @@ "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { "additionalProperties": false, "properties": { + "PolicyVariables": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.PolicyVariables" + }, "StatefulDefaultActions": { "items": { "type": "string" @@ -114109,6 +114753,33 @@ ], "type": "object" }, + "AWS::NetworkFirewall::FirewallPolicy.IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.IPSet" + } + }, + "type": "object" + } + }, + "type": "object" + }, "AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction": { "additionalProperties": false, "properties": { @@ -116772,6 +117443,149 @@ }, "type": "object" }, + "AWS::OSIS::Pipeline": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "LogPublishingOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.LogPublishingOptions" + }, + "MaxUnits": { + "type": "number" + }, + "MinUnits": { + "type": "number" + }, + "PipelineConfigurationBody": { + "type": "string" + }, + "PipelineName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.VpcOptions" + } + }, + "required": [ + "MaxUnits", + "MinUnits", + "PipelineConfigurationBody", + "PipelineName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OSIS::Pipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OSIS::Pipeline.CloudWatchLogDestination": { + "additionalProperties": false, + "properties": { + "LogGroup": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.LogPublishingOptions": { + "additionalProperties": false, + "properties": { + "CloudWatchLogDestination": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.CloudWatchLogDestination" + }, + "IsLoggingEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.VpcEndpoint": { + "additionalProperties": false, + "properties": { + "VpcEndpointId": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "VpcOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.VpcOptions" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.VpcOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::Oam::Link": { "additionalProperties": false, "properties": { @@ -169664,6 +170478,9 @@ }, "MemorySizeInMB": { "type": "number" + }, + "ProvisionedConcurrency": { + "type": "number" } }, "required": [ @@ -171024,6 +171841,24 @@ }, "type": "object" }, + "AWS::SageMaker::ModelCard.Container": { + "additionalProperties": false, + "properties": { + "Image": { + "type": "string" + }, + "ModelDataUrl": { + "type": "string" + }, + "NearestModelName": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.Content": { "additionalProperties": false, "properties": { @@ -171045,6 +171880,9 @@ "ModelOverview": { "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelOverview" }, + "ModelPackageDetails": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelPackageDetails" + }, "TrainingDetails": { "$ref": "#/definitions/AWS::SageMaker::ModelCard.TrainingDetails" } @@ -171117,6 +171955,21 @@ }, "type": "object" }, + "AWS::SageMaker::ModelCard.InferenceSpecification": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.Container" + }, + "type": "array" + } + }, + "required": [ + "Containers" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.IntendedUses": { "additionalProperties": false, "properties": { @@ -171231,6 +172084,63 @@ }, "type": "object" }, + "AWS::SageMaker::ModelCard.ModelPackageCreator": { + "additionalProperties": false, + "properties": { + "UserProfileName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelCard.ModelPackageDetails": { + "additionalProperties": false, + "properties": { + "ApprovalDescription": { + "type": "string" + }, + "CreatedBy": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelPackageCreator" + }, + "Domain": { + "type": "string" + }, + "InferenceSpecification": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.InferenceSpecification" + }, + "ModelApprovalStatus": { + "type": "string" + }, + "ModelPackageArn": { + "type": "string" + }, + "ModelPackageDescription": { + "type": "string" + }, + "ModelPackageGroupName": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "ModelPackageStatus": { + "type": "string" + }, + "ModelPackageVersion": { + "type": "number" + }, + "SourceAlgorithms": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.SourceAlgorithm" + }, + "type": "array" + }, + "Task": { + "type": "string" + } + }, + "type": "object" + }, "AWS::SageMaker::ModelCard.ObjectiveFunction": { "additionalProperties": false, "properties": { @@ -171252,6 +172162,21 @@ }, "type": "object" }, + "AWS::SageMaker::ModelCard.SourceAlgorithm": { + "additionalProperties": false, + "properties": { + "AlgorithmName": { + "type": "string" + }, + "ModelDataUrl": { + "type": "string" + } + }, + "required": [ + "AlgorithmName" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.TrainingDetails": { "additionalProperties": false, "properties": { @@ -177846,6 +178771,9 @@ "Properties": { "additionalProperties": false, "properties": { + "MaximumDuration": { + "type": "string" + }, "Name": { "type": "string" }, @@ -177854,8 +178782,15 @@ }, "SchemaS3Location": { "$ref": "#/definitions/AWS::SimSpaceWeaver::Simulation.S3Location" + }, + "SnapshotS3Location": { + "$ref": "#/definitions/AWS::SimSpaceWeaver::Simulation.S3Location" } }, + "required": [ + "Name", + "RoleArn" + ], "type": "object" }, "Type": { @@ -177874,7 +178809,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -178428,9 +179364,6 @@ "Code": { "$ref": "#/definitions/AWS::Synthetics::Canary.Code" }, - "DeleteLambdaResourcesOnCanaryDeletion": { - "type": "boolean" - }, "ExecutionRoleArn": { "type": "string" }, @@ -178474,8 +179407,7 @@ "ExecutionRoleArn", "Name", "RuntimeVersion", - "Schedule", - "StartCanaryAfterCreation" + "Schedule" ], "type": "object" }, @@ -178544,6 +179476,9 @@ }, "Script": { "type": "string" + }, + "SourceLocationArn": { + "type": "string" } }, "required": [ @@ -186409,6 +187344,9 @@ "type": "array" } }, + "required": [ + "GroupName" + ], "type": "object" }, "Type": { @@ -186427,7 +187365,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -186550,9 +187489,6 @@ "Properties": { "additionalProperties": false, "properties": { - "RuleName": { - "type": "string" - }, "SamplingRule": { "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule" }, @@ -188058,9 +188994,18 @@ { "$ref": "#/definitions/AWS::EC2::VPNGatewayRoutePropagation" }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint" + }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessGroup" + }, { "$ref": "#/definitions/AWS::EC2::VerifiedAccessInstance" }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider" + }, { "$ref": "#/definitions/AWS::EC2::Volume" }, @@ -188607,6 +189552,9 @@ { "$ref": "#/definitions/AWS::IoT::Authorizer" }, + { + "$ref": "#/definitions/AWS::IoT::BillingGroup" + }, { "$ref": "#/definitions/AWS::IoT::CACertificate" }, @@ -188658,9 +189606,15 @@ { "$ref": "#/definitions/AWS::IoT::Thing" }, + { + "$ref": "#/definitions/AWS::IoT::ThingGroup" + }, { "$ref": "#/definitions/AWS::IoT::ThingPrincipalAttachment" }, + { + "$ref": "#/definitions/AWS::IoT::ThingType" + }, { "$ref": "#/definitions/AWS::IoT::TopicRule" }, @@ -189195,6 +190149,9 @@ { "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent" }, + { + "$ref": "#/definitions/AWS::OSIS::Pipeline" + }, { "$ref": "#/definitions/AWS::Oam::Link" }, diff --git a/schema/sam.go b/schema/sam.go index 4d1e7146c2..0018f53e90 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -54498,6 +54498,234 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EC2::VerifiedAccessEndpoint": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "ApplicationDomain": { + "type": "string" + }, + "AttachmentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DomainCertificateArn": { + "type": "string" + }, + "EndpointDomainPrefix": { + "type": "string" + }, + "EndpointType": { + "type": "string" + }, + "LoadBalancerOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint.LoadBalancerOptions" + }, + "NetworkInterfaceOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint.NetworkInterfaceOptions" + }, + "PolicyDocument": { + "type": "string" + }, + "PolicyEnabled": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VerifiedAccessGroupId": { + "type": "string" + } + }, + "required": [ + "ApplicationDomain", + "AttachmentType", + "DomainCertificateArn", + "EndpointDomainPrefix", + "EndpointType", + "VerifiedAccessGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VerifiedAccessEndpoint.LoadBalancerOptions": { + "additionalProperties": false, + "properties": { + "LoadBalancerArn": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessEndpoint.NetworkInterfaceOptions": { + "additionalProperties": false, + "properties": { + "NetworkInterfaceId": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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" + }, + "PolicyDocument": { + "type": "string" + }, + "PolicyEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VerifiedAccessInstanceId": { + "type": "string" + } + }, + "required": [ + "VerifiedAccessInstanceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EC2::VerifiedAccessInstance": { "additionalProperties": false, "properties": { @@ -54658,6 +54886,132 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::EC2::VerifiedAccessTrustProvider": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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" + }, + "DeviceOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider.DeviceOptions" + }, + "DeviceTrustProviderType": { + "type": "string" + }, + "OidcOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider.OidcOptions" + }, + "PolicyReferenceName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TrustProviderType": { + "type": "string" + }, + "UserTrustProviderType": { + "type": "string" + } + }, + "required": [ + "PolicyReferenceName", + "TrustProviderType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessTrustProvider" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VerifiedAccessTrustProvider.DeviceOptions": { + "additionalProperties": false, + "properties": { + "TenantId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessTrustProvider.OidcOptions": { + "additionalProperties": false, + "properties": { + "AuthorizationEndpoint": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "Issuer": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "TokenEndpoint": { + "type": "string" + }, + "UserInfoEndpoint": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::Volume": { "additionalProperties": false, "properties": { @@ -60944,6 +61298,9 @@ var SamSchema = `{ "CacheSubnetGroupName": { "type": "string" }, + "ClusterMode": { + "type": "string" + }, "DataTieringEnabled": { "type": "boolean" }, @@ -81677,6 +82034,85 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::IoT::BillingGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "BillingGroupName": { + "type": "string" + }, + "BillingGroupProperties": { + "$ref": "#/definitions/AWS::IoT::BillingGroup.BillingGroupProperties" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::BillingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::BillingGroup.BillingGroupProperties": { + "additionalProperties": false, + "properties": { + "BillingGroupDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::CACertificate": { "additionalProperties": false, "properties": { @@ -83569,6 +84005,109 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::IoT::ThingGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "ParentGroupName": { + "type": "string" + }, + "QueryString": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThingGroupName": { + "type": "string" + }, + "ThingGroupProperties": { + "$ref": "#/definitions/AWS::IoT::ThingGroup.ThingGroupProperties" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ThingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::ThingGroup.AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoT::ThingGroup.ThingGroupProperties": { + "additionalProperties": false, + "properties": { + "AttributePayload": { + "$ref": "#/definitions/AWS::IoT::ThingGroup.AttributePayload" + }, + "ThingGroupDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::ThingPrincipalAttachment": { "additionalProperties": false, "properties": { @@ -83638,6 +84177,94 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::IoT::ThingType": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "DeprecateThingType": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThingTypeName": { + "type": "string" + }, + "ThingTypeProperties": { + "$ref": "#/definitions/AWS::IoT::ThingType.ThingTypeProperties" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ThingType" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::ThingType.ThingTypeProperties": { + "additionalProperties": false, + "properties": { + "SearchableAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ThingTypeDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::TopicRule": { "additionalProperties": false, "properties": { @@ -107532,12 +108159,27 @@ var SamSchema = `{ "MaxLatency": { "type": "number" }, + "MinLatency": { + "type": "number" + }, "Name": { "type": "string" }, "Protocol": { "type": "string" }, + "SenderControlPort": { + "type": "number" + }, + "SenderIpAddress": { + "type": "string" + }, + "SourceListenerAddress": { + "type": "string" + }, + "SourceListenerPort": { + "type": "number" + }, "StreamId": { "type": "string" }, @@ -107607,7 +108249,6 @@ var SamSchema = `{ } }, "required": [ - "Algorithm", "RoleArn" ], "type": "object" @@ -114068,6 +114709,9 @@ var SamSchema = `{ "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { "additionalProperties": false, "properties": { + "PolicyVariables": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.PolicyVariables" + }, "StatefulDefaultActions": { "items": { "type": "string" @@ -114114,6 +114758,33 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::NetworkFirewall::FirewallPolicy.IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.IPSet" + } + }, + "type": "object" + } + }, + "type": "object" + }, "AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction": { "additionalProperties": false, "properties": { @@ -116777,6 +117448,149 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::OSIS::Pipeline": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "LogPublishingOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.LogPublishingOptions" + }, + "MaxUnits": { + "type": "number" + }, + "MinUnits": { + "type": "number" + }, + "PipelineConfigurationBody": { + "type": "string" + }, + "PipelineName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.VpcOptions" + } + }, + "required": [ + "MaxUnits", + "MinUnits", + "PipelineConfigurationBody", + "PipelineName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OSIS::Pipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OSIS::Pipeline.CloudWatchLogDestination": { + "additionalProperties": false, + "properties": { + "LogGroup": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.LogPublishingOptions": { + "additionalProperties": false, + "properties": { + "CloudWatchLogDestination": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.CloudWatchLogDestination" + }, + "IsLoggingEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.VpcEndpoint": { + "additionalProperties": false, + "properties": { + "VpcEndpointId": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "VpcOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.VpcOptions" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.VpcOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::Oam::Link": { "additionalProperties": false, "properties": { @@ -169669,6 +170483,9 @@ var SamSchema = `{ }, "MemorySizeInMB": { "type": "number" + }, + "ProvisionedConcurrency": { + "type": "number" } }, "required": [ @@ -171029,6 +171846,24 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::SageMaker::ModelCard.Container": { + "additionalProperties": false, + "properties": { + "Image": { + "type": "string" + }, + "ModelDataUrl": { + "type": "string" + }, + "NearestModelName": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.Content": { "additionalProperties": false, "properties": { @@ -171050,6 +171885,9 @@ var SamSchema = `{ "ModelOverview": { "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelOverview" }, + "ModelPackageDetails": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelPackageDetails" + }, "TrainingDetails": { "$ref": "#/definitions/AWS::SageMaker::ModelCard.TrainingDetails" } @@ -171122,6 +171960,21 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::SageMaker::ModelCard.InferenceSpecification": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.Container" + }, + "type": "array" + } + }, + "required": [ + "Containers" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.IntendedUses": { "additionalProperties": false, "properties": { @@ -171236,6 +172089,63 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::SageMaker::ModelCard.ModelPackageCreator": { + "additionalProperties": false, + "properties": { + "UserProfileName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelCard.ModelPackageDetails": { + "additionalProperties": false, + "properties": { + "ApprovalDescription": { + "type": "string" + }, + "CreatedBy": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelPackageCreator" + }, + "Domain": { + "type": "string" + }, + "InferenceSpecification": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.InferenceSpecification" + }, + "ModelApprovalStatus": { + "type": "string" + }, + "ModelPackageArn": { + "type": "string" + }, + "ModelPackageDescription": { + "type": "string" + }, + "ModelPackageGroupName": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "ModelPackageStatus": { + "type": "string" + }, + "ModelPackageVersion": { + "type": "number" + }, + "SourceAlgorithms": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.SourceAlgorithm" + }, + "type": "array" + }, + "Task": { + "type": "string" + } + }, + "type": "object" + }, "AWS::SageMaker::ModelCard.ObjectiveFunction": { "additionalProperties": false, "properties": { @@ -171257,6 +172167,21 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::SageMaker::ModelCard.SourceAlgorithm": { + "additionalProperties": false, + "properties": { + "AlgorithmName": { + "type": "string" + }, + "ModelDataUrl": { + "type": "string" + } + }, + "required": [ + "AlgorithmName" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.TrainingDetails": { "additionalProperties": false, "properties": { @@ -180566,6 +181491,9 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "MaximumDuration": { + "type": "string" + }, "Name": { "type": "string" }, @@ -180574,8 +181502,15 @@ var SamSchema = `{ }, "SchemaS3Location": { "$ref": "#/definitions/AWS::SimSpaceWeaver::Simulation.S3Location" + }, + "SnapshotS3Location": { + "$ref": "#/definitions/AWS::SimSpaceWeaver::Simulation.S3Location" } }, + "required": [ + "Name", + "RoleArn" + ], "type": "object" }, "Type": { @@ -180594,7 +181529,8 @@ var SamSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -181148,9 +182084,6 @@ var SamSchema = `{ "Code": { "$ref": "#/definitions/AWS::Synthetics::Canary.Code" }, - "DeleteLambdaResourcesOnCanaryDeletion": { - "type": "boolean" - }, "ExecutionRoleArn": { "type": "string" }, @@ -181194,8 +182127,7 @@ var SamSchema = `{ "ExecutionRoleArn", "Name", "RuntimeVersion", - "Schedule", - "StartCanaryAfterCreation" + "Schedule" ], "type": "object" }, @@ -181264,6 +182196,9 @@ var SamSchema = `{ }, "Script": { "type": "string" + }, + "SourceLocationArn": { + "type": "string" } }, "required": [ @@ -189129,6 +190064,9 @@ var SamSchema = `{ "type": "array" } }, + "required": [ + "GroupName" + ], "type": "object" }, "Type": { @@ -189147,7 +190085,8 @@ var SamSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -189270,9 +190209,6 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "RuleName": { - "type": "string" - }, "SamplingRule": { "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule" }, @@ -191070,9 +192006,18 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::EC2::VPNGatewayRoutePropagation" }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint" + }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessGroup" + }, { "$ref": "#/definitions/AWS::EC2::VerifiedAccessInstance" }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider" + }, { "$ref": "#/definitions/AWS::EC2::Volume" }, @@ -191619,6 +192564,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IoT::Authorizer" }, + { + "$ref": "#/definitions/AWS::IoT::BillingGroup" + }, { "$ref": "#/definitions/AWS::IoT::CACertificate" }, @@ -191670,9 +192618,15 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IoT::Thing" }, + { + "$ref": "#/definitions/AWS::IoT::ThingGroup" + }, { "$ref": "#/definitions/AWS::IoT::ThingPrincipalAttachment" }, + { + "$ref": "#/definitions/AWS::IoT::ThingType" + }, { "$ref": "#/definitions/AWS::IoT::TopicRule" }, @@ -192207,6 +193161,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent" }, + { + "$ref": "#/definitions/AWS::OSIS::Pipeline" + }, { "$ref": "#/definitions/AWS::Oam::Link" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 4e1be2a64b..a72f54c07d 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -54493,6 +54493,234 @@ ], "type": "object" }, + "AWS::EC2::VerifiedAccessEndpoint": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "ApplicationDomain": { + "type": "string" + }, + "AttachmentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DomainCertificateArn": { + "type": "string" + }, + "EndpointDomainPrefix": { + "type": "string" + }, + "EndpointType": { + "type": "string" + }, + "LoadBalancerOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint.LoadBalancerOptions" + }, + "NetworkInterfaceOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint.NetworkInterfaceOptions" + }, + "PolicyDocument": { + "type": "string" + }, + "PolicyEnabled": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VerifiedAccessGroupId": { + "type": "string" + } + }, + "required": [ + "ApplicationDomain", + "AttachmentType", + "DomainCertificateArn", + "EndpointDomainPrefix", + "EndpointType", + "VerifiedAccessGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VerifiedAccessEndpoint.LoadBalancerOptions": { + "additionalProperties": false, + "properties": { + "LoadBalancerArn": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessEndpoint.NetworkInterfaceOptions": { + "additionalProperties": false, + "properties": { + "NetworkInterfaceId": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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" + }, + "PolicyDocument": { + "type": "string" + }, + "PolicyEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VerifiedAccessInstanceId": { + "type": "string" + } + }, + "required": [ + "VerifiedAccessInstanceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EC2::VerifiedAccessInstance": { "additionalProperties": false, "properties": { @@ -54653,6 +54881,132 @@ }, "type": "object" }, + "AWS::EC2::VerifiedAccessTrustProvider": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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" + }, + "DeviceOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider.DeviceOptions" + }, + "DeviceTrustProviderType": { + "type": "string" + }, + "OidcOptions": { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider.OidcOptions" + }, + "PolicyReferenceName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TrustProviderType": { + "type": "string" + }, + "UserTrustProviderType": { + "type": "string" + } + }, + "required": [ + "PolicyReferenceName", + "TrustProviderType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VerifiedAccessTrustProvider" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VerifiedAccessTrustProvider.DeviceOptions": { + "additionalProperties": false, + "properties": { + "TenantId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VerifiedAccessTrustProvider.OidcOptions": { + "additionalProperties": false, + "properties": { + "AuthorizationEndpoint": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "Issuer": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "TokenEndpoint": { + "type": "string" + }, + "UserInfoEndpoint": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::Volume": { "additionalProperties": false, "properties": { @@ -60939,6 +61293,9 @@ "CacheSubnetGroupName": { "type": "string" }, + "ClusterMode": { + "type": "string" + }, "DataTieringEnabled": { "type": "boolean" }, @@ -81672,6 +82029,85 @@ ], "type": "object" }, + "AWS::IoT::BillingGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "BillingGroupName": { + "type": "string" + }, + "BillingGroupProperties": { + "$ref": "#/definitions/AWS::IoT::BillingGroup.BillingGroupProperties" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::BillingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::BillingGroup.BillingGroupProperties": { + "additionalProperties": false, + "properties": { + "BillingGroupDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::CACertificate": { "additionalProperties": false, "properties": { @@ -83564,6 +84000,109 @@ }, "type": "object" }, + "AWS::IoT::ThingGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "ParentGroupName": { + "type": "string" + }, + "QueryString": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThingGroupName": { + "type": "string" + }, + "ThingGroupProperties": { + "$ref": "#/definitions/AWS::IoT::ThingGroup.ThingGroupProperties" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ThingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::ThingGroup.AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoT::ThingGroup.ThingGroupProperties": { + "additionalProperties": false, + "properties": { + "AttributePayload": { + "$ref": "#/definitions/AWS::IoT::ThingGroup.AttributePayload" + }, + "ThingGroupDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::ThingPrincipalAttachment": { "additionalProperties": false, "properties": { @@ -83633,6 +84172,94 @@ ], "type": "object" }, + "AWS::IoT::ThingType": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "DeprecateThingType": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThingTypeName": { + "type": "string" + }, + "ThingTypeProperties": { + "$ref": "#/definitions/AWS::IoT::ThingType.ThingTypeProperties" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ThingType" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::ThingType.ThingTypeProperties": { + "additionalProperties": false, + "properties": { + "SearchableAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ThingTypeDescription": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::TopicRule": { "additionalProperties": false, "properties": { @@ -107527,12 +108154,27 @@ "MaxLatency": { "type": "number" }, + "MinLatency": { + "type": "number" + }, "Name": { "type": "string" }, "Protocol": { "type": "string" }, + "SenderControlPort": { + "type": "number" + }, + "SenderIpAddress": { + "type": "string" + }, + "SourceListenerAddress": { + "type": "string" + }, + "SourceListenerPort": { + "type": "number" + }, "StreamId": { "type": "string" }, @@ -107602,7 +108244,6 @@ } }, "required": [ - "Algorithm", "RoleArn" ], "type": "object" @@ -114063,6 +114704,9 @@ "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { "additionalProperties": false, "properties": { + "PolicyVariables": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.PolicyVariables" + }, "StatefulDefaultActions": { "items": { "type": "string" @@ -114109,6 +114753,33 @@ ], "type": "object" }, + "AWS::NetworkFirewall::FirewallPolicy.IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.IPSet" + } + }, + "type": "object" + } + }, + "type": "object" + }, "AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction": { "additionalProperties": false, "properties": { @@ -116772,6 +117443,149 @@ }, "type": "object" }, + "AWS::OSIS::Pipeline": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "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": { + "LogPublishingOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.LogPublishingOptions" + }, + "MaxUnits": { + "type": "number" + }, + "MinUnits": { + "type": "number" + }, + "PipelineConfigurationBody": { + "type": "string" + }, + "PipelineName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.VpcOptions" + } + }, + "required": [ + "MaxUnits", + "MinUnits", + "PipelineConfigurationBody", + "PipelineName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OSIS::Pipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OSIS::Pipeline.CloudWatchLogDestination": { + "additionalProperties": false, + "properties": { + "LogGroup": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.LogPublishingOptions": { + "additionalProperties": false, + "properties": { + "CloudWatchLogDestination": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.CloudWatchLogDestination" + }, + "IsLoggingEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.VpcEndpoint": { + "additionalProperties": false, + "properties": { + "VpcEndpointId": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "VpcOptions": { + "$ref": "#/definitions/AWS::OSIS::Pipeline.VpcOptions" + } + }, + "type": "object" + }, + "AWS::OSIS::Pipeline.VpcOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::Oam::Link": { "additionalProperties": false, "properties": { @@ -169664,6 +170478,9 @@ }, "MemorySizeInMB": { "type": "number" + }, + "ProvisionedConcurrency": { + "type": "number" } }, "required": [ @@ -171024,6 +171841,24 @@ }, "type": "object" }, + "AWS::SageMaker::ModelCard.Container": { + "additionalProperties": false, + "properties": { + "Image": { + "type": "string" + }, + "ModelDataUrl": { + "type": "string" + }, + "NearestModelName": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.Content": { "additionalProperties": false, "properties": { @@ -171045,6 +171880,9 @@ "ModelOverview": { "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelOverview" }, + "ModelPackageDetails": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelPackageDetails" + }, "TrainingDetails": { "$ref": "#/definitions/AWS::SageMaker::ModelCard.TrainingDetails" } @@ -171117,6 +171955,21 @@ }, "type": "object" }, + "AWS::SageMaker::ModelCard.InferenceSpecification": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.Container" + }, + "type": "array" + } + }, + "required": [ + "Containers" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.IntendedUses": { "additionalProperties": false, "properties": { @@ -171231,6 +172084,63 @@ }, "type": "object" }, + "AWS::SageMaker::ModelCard.ModelPackageCreator": { + "additionalProperties": false, + "properties": { + "UserProfileName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelCard.ModelPackageDetails": { + "additionalProperties": false, + "properties": { + "ApprovalDescription": { + "type": "string" + }, + "CreatedBy": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.ModelPackageCreator" + }, + "Domain": { + "type": "string" + }, + "InferenceSpecification": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.InferenceSpecification" + }, + "ModelApprovalStatus": { + "type": "string" + }, + "ModelPackageArn": { + "type": "string" + }, + "ModelPackageDescription": { + "type": "string" + }, + "ModelPackageGroupName": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "ModelPackageStatus": { + "type": "string" + }, + "ModelPackageVersion": { + "type": "number" + }, + "SourceAlgorithms": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelCard.SourceAlgorithm" + }, + "type": "array" + }, + "Task": { + "type": "string" + } + }, + "type": "object" + }, "AWS::SageMaker::ModelCard.ObjectiveFunction": { "additionalProperties": false, "properties": { @@ -171252,6 +172162,21 @@ }, "type": "object" }, + "AWS::SageMaker::ModelCard.SourceAlgorithm": { + "additionalProperties": false, + "properties": { + "AlgorithmName": { + "type": "string" + }, + "ModelDataUrl": { + "type": "string" + } + }, + "required": [ + "AlgorithmName" + ], + "type": "object" + }, "AWS::SageMaker::ModelCard.TrainingDetails": { "additionalProperties": false, "properties": { @@ -180561,6 +181486,9 @@ "Properties": { "additionalProperties": false, "properties": { + "MaximumDuration": { + "type": "string" + }, "Name": { "type": "string" }, @@ -180569,8 +181497,15 @@ }, "SchemaS3Location": { "$ref": "#/definitions/AWS::SimSpaceWeaver::Simulation.S3Location" + }, + "SnapshotS3Location": { + "$ref": "#/definitions/AWS::SimSpaceWeaver::Simulation.S3Location" } }, + "required": [ + "Name", + "RoleArn" + ], "type": "object" }, "Type": { @@ -180589,7 +181524,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -181143,9 +182079,6 @@ "Code": { "$ref": "#/definitions/AWS::Synthetics::Canary.Code" }, - "DeleteLambdaResourcesOnCanaryDeletion": { - "type": "boolean" - }, "ExecutionRoleArn": { "type": "string" }, @@ -181189,8 +182122,7 @@ "ExecutionRoleArn", "Name", "RuntimeVersion", - "Schedule", - "StartCanaryAfterCreation" + "Schedule" ], "type": "object" }, @@ -181259,6 +182191,9 @@ }, "Script": { "type": "string" + }, + "SourceLocationArn": { + "type": "string" } }, "required": [ @@ -189124,6 +190059,9 @@ "type": "array" } }, + "required": [ + "GroupName" + ], "type": "object" }, "Type": { @@ -189142,7 +190080,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -189265,9 +190204,6 @@ "Properties": { "additionalProperties": false, "properties": { - "RuleName": { - "type": "string" - }, "SamplingRule": { "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule" }, @@ -191065,9 +192001,18 @@ { "$ref": "#/definitions/AWS::EC2::VPNGatewayRoutePropagation" }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessEndpoint" + }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessGroup" + }, { "$ref": "#/definitions/AWS::EC2::VerifiedAccessInstance" }, + { + "$ref": "#/definitions/AWS::EC2::VerifiedAccessTrustProvider" + }, { "$ref": "#/definitions/AWS::EC2::Volume" }, @@ -191614,6 +192559,9 @@ { "$ref": "#/definitions/AWS::IoT::Authorizer" }, + { + "$ref": "#/definitions/AWS::IoT::BillingGroup" + }, { "$ref": "#/definitions/AWS::IoT::CACertificate" }, @@ -191665,9 +192613,15 @@ { "$ref": "#/definitions/AWS::IoT::Thing" }, + { + "$ref": "#/definitions/AWS::IoT::ThingGroup" + }, { "$ref": "#/definitions/AWS::IoT::ThingPrincipalAttachment" }, + { + "$ref": "#/definitions/AWS::IoT::ThingType" + }, { "$ref": "#/definitions/AWS::IoT::TopicRule" }, @@ -192202,6 +193156,9 @@ { "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent" }, + { + "$ref": "#/definitions/AWS::OSIS::Pipeline" + }, { "$ref": "#/definitions/AWS::Oam::Link" },