From 2ffeeac1cd90ec90807af825e49a15b6c8346431 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 22 Nov 2021 19:01:40 +0400 Subject: [PATCH] fix(schema): CloudFormation Updates (#408) Co-authored-by: Paul Maddox --- cloudformation/all.go | 678 ++ .../apigateway/aws-apigateway-authorizer.go | 2 +- .../aws-apigateway-stage_methodsetting.go | 22 +- .../apigateway/aws-apigateway-vpclink.go | 6 + .../aws-appconfig-configurationprofile.go | 5 + ...ctorprofile_connectorprofilecredentials.go | 5 + ...ectorprofile_connectorprofileproperties.go | 5 + ...ppflow-connectorprofile_oauthproperties.go | 45 + ...ile_sapodataconnectorprofilecredentials.go | 40 + ...file_sapodataconnectorprofileproperties.go | 65 + .../aws-appflow-flow_connectoroperator.go | 5 + .../aws-appflow-flow_s3inputformatconfig.go | 35 + .../aws-appflow-flow_s3sourceproperties.go | 5 + ...s-appflow-flow_sapodatasourceproperties.go | 35 + ...-appflow-flow_sourceconnectorproperties.go | 5 + ...s-appmesh-gatewayroute_gatewayroutespec.go | 5 + .../aws-autoscaling-autoscalinggroup.go | 5 + ...utoscalinggroup_acceleratorcountrequest.go | 40 + ...ggroup_acceleratortotalmemorymibrequest.go | 40 + ...nggroup_baselineebsbandwidthmbpsrequest.go | 40 + ...g-autoscalinggroup_instancerequirements.go | 135 + ...utoscalinggroup_launchtemplateoverrides.go | 5 + ...utoscalinggroup_memorygibpervcpurequest.go | 40 + ...aling-autoscalinggroup_memorymibrequest.go | 40 + ...alinggroup_networkinterfacecountrequest.go | 40 + ...scalinggroup_totallocalstoragegbrequest.go | 40 + ...aling-autoscalinggroup_vcpucountrequest.go | 40 + .../aws-autoscaling-lifecyclehook.go | 18 +- ...upselection_backupselectionresourcetype.go | 10 + .../batch/aws-batch-computeenvironment.go | 5 + .../batch/aws-batch-jobdefinition.go | 5 + cloudformation/batch/aws-batch-jobqueue.go | 5 + .../batch/aws-batch-schedulingpolicy.go | 116 + ...-batch-schedulingpolicy_fairsharepolicy.go | 45 + ...-batch-schedulingpolicy_shareattributes.go | 40 + .../budgets/aws-budgets-budgetsaction.go | 2 +- .../cassandra/aws-cassandra-table.go | 5 + ...s-cloudfront-distribution_cachebehavior.go | 5 + ...front-distribution_defaultcachebehavior.go | 5 + .../cloudfront/aws-cloudfront-function.go | 5 - .../aws-cloudfront-responseheaderspolicy.go | 106 + ...headerspolicy_accesscontrolallowheaders.go | 35 + ...headerspolicy_accesscontrolallowmethods.go | 35 + ...headerspolicy_accesscontrolalloworigins.go | 35 + ...eaderspolicy_accesscontrolexposeheaders.go | 35 + ...onseheaderspolicy_contentsecuritypolicy.go | 40 + ...esponseheaderspolicy_contenttypeoptions.go | 35 + ...dfront-responseheaderspolicy_corsconfig.go | 65 + ...ront-responseheaderspolicy_customheader.go | 45 + ...sponseheaderspolicy_customheadersconfig.go | 35 + ...ront-responseheaderspolicy_frameoptions.go | 40 + ...nt-responseheaderspolicy_referrerpolicy.go | 40 + ...aderspolicy_responseheaderspolicyconfig.go | 55 + ...onseheaderspolicy_securityheadersconfig.go | 60 + ...seheaderspolicy_stricttransportsecurity.go | 50 + ...ont-responseheaderspolicy_xssprotection.go | 50 + .../aws-cloudwatch-anomalydetector.go | 6 +- .../aws-cloudwatch-anomalydetector_metric.go | 45 + ...watch-anomalydetector_metricdataqueries.go | 30 + ...udwatch-anomalydetector_metricdataquery.go | 65 + ...s-cloudwatch-anomalydetector_metricstat.go | 50 + ...debuild-project_projectbuildbatchconfig.go | 5 + ...-codestarnotifications-notificationrule.go | 15 + .../connect/aws-connect-hoursofoperation.go | 132 + ...hoursofoperation_hoursofoperationconfig.go | 45 + ...rsofoperation_hoursofoperationtimeslice.go | 40 + cloudformation/connect/aws-connect-user.go | 152 + .../aws-connect-user_useridentityinfo.go | 45 + .../aws-connect-user_userphoneconfig.go | 50 + .../connect/aws-connect-userhierarchygroup.go | 116 + .../datasync/aws-datasync-locationhdfs.go | 167 + .../aws-datasync-locationhdfs_namenode.go | 40 + ...-datasync-locationhdfs_qopconfiguration.go | 40 + cloudformation/dms/aws-dms-endpoint.go | 5 + .../dms/aws-dms-endpoint_kafkasettings.go | 65 + .../dms/aws-dms-endpoint_kinesissettings.go | 30 + .../dms/aws-dms-endpoint_redissettings.go | 65 + .../ec2/aws-ec2-capacityreservation.go | 10 + .../ec2/aws-ec2-capacityreservationfleet.go | 146 + ...ervationfleet_instancetypespecification.go | 65 + ...pacityreservationfleet_tagspecification.go | 41 + ...ws-ec2-ec2fleet_acceleratorcountrequest.go | 40 + ...2fleet_acceleratortotalmemorymibrequest.go | 40 + ...c2fleet_baselineebsbandwidthmbpsrequest.go | 40 + .../ec2/aws-ec2-ec2fleet_capacityrebalance.go | 40 + ...eet_fleetlaunchtemplateoverridesrequest.go | 5 + ...c2-ec2fleet_instancerequirementsrequest.go | 135 + .../aws-ec2-ec2fleet_maintenancestrategies.go | 35 + ...ws-ec2-ec2fleet_memorygibpervcpurequest.go | 40 + .../ec2/aws-ec2-ec2fleet_memorymibrequest.go | 40 + ...2-ec2fleet_networkinterfacecountrequest.go | 40 + .../aws-ec2-ec2fleet_spotoptionsrequest.go | 5 + ...leet_targetcapacityspecificationrequest.go | 5 + ...ec2-ec2fleet_totallocalstoragegbrequest.go | 40 + .../aws-ec2-ec2fleet_vcpucountrangerequest.go | 40 + cloudformation/ec2/aws-ec2-networkacl.go | 6 +- cloudformation/ec2/aws-ec2-networkaclentry.go | 20 +- cloudformation/ec2/aws-ec2-routetable.go | 6 +- ...s-ec2-spotfleet_acceleratorcountrequest.go | 40 + ...tfleet_acceleratortotalmemorymibrequest.go | 40 + ...otfleet_baselineebsbandwidthmbpsrequest.go | 40 + ...2-spotfleet_instancerequirementsrequest.go | 135 + ...s-ec2-spotfleet_launchtemplateoverrides.go | 5 + ...s-ec2-spotfleet_memorygibpervcpurequest.go | 40 + .../ec2/aws-ec2-spotfleet_memorymibrequest.go | 40 + ...-spotfleet_networkinterfacecountrequest.go | 40 + ...aws-ec2-spotfleet_spotcapacityrebalance.go | 5 + ...-spotfleet_spotfleetlaunchspecification.go | 7 +- ...c2-spotfleet_spotfleetrequestconfigdata.go | 5 + ...c2-spotfleet_totallocalstoragegbrequest.go | 40 + ...aws-ec2-spotfleet_vcpucountrangerequest.go | 40 + ...aws-ec2-transitgatewaypeeringattachment.go | 5 + ..._transitgatewaypeeringattachmentoptions.go | 35 + .../ec2/aws-ec2-vpcendpointservice.go | 5 + cloudformation/ecs/aws-ecs-taskdefinition.go | 5 + .../aws-ecs-taskdefinition_runtimeplatform.go | 40 + cloudformation/eks/aws-eks-cluster.go | 11 + .../eks/aws-eks-cluster_clusterlogging.go | 35 + .../eks/aws-eks-cluster_encryptionconfig.go | 2 +- cloudformation/eks/aws-eks-cluster_logging.go | 35 + .../eks/aws-eks-cluster_loggingtypeconfig.go | 35 + .../eks/aws-eks-cluster_resourcesvpcconfig.go | 15 + .../finspace/aws-finspace-environment.go | 10 + ...inspace-environment_superuserparameters.go | 45 + cloudformation/fms/aws-fms-policy.go | 5 + cloudformation/fsx/aws-fsx-filesystem.go | 10 + ...ws-fsx-filesystem_diskiopsconfiguration.go | 40 + .../aws-fsx-filesystem_ontapconfiguration.go | 80 + ...ipe_ebsinstanceblockdevicespecification.go | 5 + ...ipe_ebsinstanceblockdevicespecification.go | 5 + ...magebuilder-infrastructureconfiguration.go | 5 + ...reconfiguration_instancemetadataoptions.go | 40 + cloudformation/iot/aws-iot-jobtemplate.go | 152 + cloudformation/iot/aws-iot-logging.go | 116 + .../iot/aws-iot-resourcespecificlogging.go | 116 + .../iotwireless/aws-iotwireless-fuotatask.go | 152 + .../aws-iotwireless-fuotatask_lorawan.go | 40 + .../aws-iotwireless-multicastgroup.go | 132 + .../aws-iotwireless-multicastgroup_lorawan.go | 50 + .../lightsail/aws-lightsail-database.go | 177 + ...il-database_relationaldatabaseparameter.go | 70 + .../lightsail/aws-lightsail-instance.go | 16 +- .../aws-lightsail-instance_networking.go | 2 +- .../lightsail/aws-lightsail-staticip.go | 111 + .../location/aws-location-tracker.go | 5 + .../memorydb/aws-memorydb-cluster.go | 9 +- .../memorydb/aws-memorydb-parametergroup.go | 2 +- .../memorydb/aws-memorydb-subnetgroup.go | 2 +- cloudformation/mwaa/aws-mwaa-environment.go | 2 +- ...kfirewall-firewallpolicy_firewallpolicy.go | 10 + ...ll-firewallpolicy_statefulengineoptions.go | 35 + ...rewallpolicy_statefulrulegroupreference.go | 5 + ...aws-networkfirewall-rulegroup_rulegroup.go | 5 + ...kfirewall-rulegroup_statefulruleoptions.go | 35 + .../aws-panorama-applicationinstance.go | 152 + ...cationinstance_manifestoverridespayload.go | 35 + ...ama-applicationinstance_manifestpayload.go | 35 + .../panorama/aws-panorama-package.go | 112 + .../panorama/aws-panorama-packageversion.go | 131 + .../pinpoint/aws-pinpoint-campaign.go | 5 + ...-pinpoint-campaign_campaigninappmessage.go | 45 + ...int-campaign_defaultbuttonconfiguration.go | 60 + ...inpoint-campaign_inappmessagebodyconfig.go | 45 + ...ws-pinpoint-campaign_inappmessagebutton.go | 50 + ...s-pinpoint-campaign_inappmessagecontent.go | 60 + ...point-campaign_inappmessageheaderconfig.go | 45 + .../pinpoint/aws-pinpoint-campaign_limits.go | 5 + ...-pinpoint-campaign_messageconfiguration.go | 5 + ...nt-campaign_overridebuttonconfiguration.go | 40 + .../pinpoint/aws-pinpoint-inapptemplate.go | 131 + .../aws-pinpoint-inapptemplate_bodyconfig.go | 45 + ...aws-pinpoint-inapptemplate_buttonconfig.go | 50 + ...napptemplate_defaultbuttonconfiguration.go | 60 + ...aws-pinpoint-inapptemplate_headerconfig.go | 45 + ...point-inapptemplate_inappmessagecontent.go | 60 + ...apptemplate_overridebuttonconfiguration.go | 40 + .../quicksight/aws-quicksight-analysis.go | 2 +- .../quicksight/aws-quicksight-dashboard.go | 2 +- ...t-datasource_amazonopensearchparameters.go | 35 + ...cksight-datasource_datasourceparameters.go | 5 + .../quicksight/aws-quicksight-template.go | 2 +- .../redshift/aws-redshift-cluster.go | 5 - .../redshift/aws-redshift-endpointaccess.go | 126 + ...edshift-endpointaccess_vpcsecuritygroup.go | 40 + .../aws-redshift-endpointauthorization.go | 121 + .../aws-redshift-eventsubscription.go | 142 + .../redshift/aws-redshift-scheduledaction.go | 141 + ...ift-scheduledaction_pauseclustermessage.go | 35 + ...ft-scheduledaction_resizeclustermessage.go | 55 + ...ft-scheduledaction_resumeclustermessage.go | 35 + ...ift-scheduledaction_scheduledactiontype.go | 45 + .../rekognition/aws-rekognition-project.go | 106 + .../aws-route53recoverycontrol-cluster.go | 6 + ...aws-route53recoverycontrol-controlpanel.go | 6 + .../aws-route53recoverycontrol-safetyrule.go | 6 + .../aws-route53resolver-resolverconfig.go | 111 + .../aws-s3objectlambda-accesspoint.go | 4 +- ...accesspoint_transformationconfiguration.go | 4 +- .../sagemaker/aws-sagemaker-endpoint.go | 5 + ...sagemaker-endpoint_trafficroutingconfig.go | 5 + .../aws-sagemaker-notebookinstance.go | 5 + ...r-rotationschedule_hostedrotationlambda.go | 10 + .../synthetics/aws-synthetics-canary.go | 5 + .../aws-synthetics-canary_artifactconfig.go | 35 + .../aws-synthetics-canary_s3encryption.go | 40 + cloudformation/wisdom/aws-wisdom-assistant.go | 127 + ...stant_serversideencryptionconfiguration.go | 35 + .../wisdom/aws-wisdom-assistantassociation.go | 122 + ...om-assistantassociation_associationdata.go | 35 + .../wisdom/aws-wisdom-knowledgebase.go | 137 + ...wledgebase_appintegrationsconfiguration.go | 40 + ...om-knowledgebase_renderingconfiguration.go | 35 + ...ebase_serversideencryptionconfiguration.go | 35 + ...isdom-knowledgebase_sourceconfiguration.go | 35 + schema/cloudformation.go | 5956 ++++++++++++++--- schema/cloudformation.schema.json | 5956 ++++++++++++++--- schema/sam.go | 5956 ++++++++++++++--- schema/sam.schema.json | 5956 ++++++++++++++--- 218 files changed, 30300 insertions(+), 3211 deletions(-) create mode 100644 cloudformation/appflow/aws-appflow-connectorprofile_oauthproperties.go create mode 100644 cloudformation/appflow/aws-appflow-connectorprofile_sapodataconnectorprofilecredentials.go create mode 100644 cloudformation/appflow/aws-appflow-connectorprofile_sapodataconnectorprofileproperties.go create mode 100644 cloudformation/appflow/aws-appflow-flow_s3inputformatconfig.go create mode 100644 cloudformation/appflow/aws-appflow-flow_sapodatasourceproperties.go create mode 100644 cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_acceleratorcountrequest.go create mode 100644 cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_acceleratortotalmemorymibrequest.go create mode 100644 cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_baselineebsbandwidthmbpsrequest.go create mode 100644 cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_instancerequirements.go create mode 100644 cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_memorygibpervcpurequest.go create mode 100644 cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_memorymibrequest.go create mode 100644 cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_networkinterfacecountrequest.go create mode 100644 cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_totallocalstoragegbrequest.go create mode 100644 cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_vcpucountrequest.go create mode 100644 cloudformation/batch/aws-batch-schedulingpolicy.go create mode 100644 cloudformation/batch/aws-batch-schedulingpolicy_fairsharepolicy.go create mode 100644 cloudformation/batch/aws-batch-schedulingpolicy_shareattributes.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolallowheaders.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolallowmethods.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolalloworigins.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolexposeheaders.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_contentsecuritypolicy.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_contenttypeoptions.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_corsconfig.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_customheader.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_customheadersconfig.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_frameoptions.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_referrerpolicy.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_responseheaderspolicyconfig.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_securityheadersconfig.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_stricttransportsecurity.go create mode 100644 cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_xssprotection.go create mode 100644 cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metric.go create mode 100644 cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricdataqueries.go create mode 100644 cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricdataquery.go create mode 100644 cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricstat.go create mode 100644 cloudformation/connect/aws-connect-hoursofoperation.go create mode 100644 cloudformation/connect/aws-connect-hoursofoperation_hoursofoperationconfig.go create mode 100644 cloudformation/connect/aws-connect-hoursofoperation_hoursofoperationtimeslice.go create mode 100644 cloudformation/connect/aws-connect-user.go create mode 100644 cloudformation/connect/aws-connect-user_useridentityinfo.go create mode 100644 cloudformation/connect/aws-connect-user_userphoneconfig.go create mode 100644 cloudformation/connect/aws-connect-userhierarchygroup.go create mode 100644 cloudformation/datasync/aws-datasync-locationhdfs.go create mode 100644 cloudformation/datasync/aws-datasync-locationhdfs_namenode.go create mode 100644 cloudformation/datasync/aws-datasync-locationhdfs_qopconfiguration.go create mode 100644 cloudformation/dms/aws-dms-endpoint_redissettings.go create mode 100644 cloudformation/ec2/aws-ec2-capacityreservationfleet.go create mode 100644 cloudformation/ec2/aws-ec2-capacityreservationfleet_instancetypespecification.go create mode 100644 cloudformation/ec2/aws-ec2-capacityreservationfleet_tagspecification.go create mode 100644 cloudformation/ec2/aws-ec2-ec2fleet_acceleratorcountrequest.go create mode 100644 cloudformation/ec2/aws-ec2-ec2fleet_acceleratortotalmemorymibrequest.go create mode 100644 cloudformation/ec2/aws-ec2-ec2fleet_baselineebsbandwidthmbpsrequest.go create mode 100644 cloudformation/ec2/aws-ec2-ec2fleet_capacityrebalance.go create mode 100644 cloudformation/ec2/aws-ec2-ec2fleet_instancerequirementsrequest.go create mode 100644 cloudformation/ec2/aws-ec2-ec2fleet_maintenancestrategies.go create mode 100644 cloudformation/ec2/aws-ec2-ec2fleet_memorygibpervcpurequest.go create mode 100644 cloudformation/ec2/aws-ec2-ec2fleet_memorymibrequest.go create mode 100644 cloudformation/ec2/aws-ec2-ec2fleet_networkinterfacecountrequest.go create mode 100644 cloudformation/ec2/aws-ec2-ec2fleet_totallocalstoragegbrequest.go create mode 100644 cloudformation/ec2/aws-ec2-ec2fleet_vcpucountrangerequest.go create mode 100644 cloudformation/ec2/aws-ec2-spotfleet_acceleratorcountrequest.go create mode 100644 cloudformation/ec2/aws-ec2-spotfleet_acceleratortotalmemorymibrequest.go create mode 100644 cloudformation/ec2/aws-ec2-spotfleet_baselineebsbandwidthmbpsrequest.go create mode 100644 cloudformation/ec2/aws-ec2-spotfleet_instancerequirementsrequest.go create mode 100644 cloudformation/ec2/aws-ec2-spotfleet_memorygibpervcpurequest.go create mode 100644 cloudformation/ec2/aws-ec2-spotfleet_memorymibrequest.go create mode 100644 cloudformation/ec2/aws-ec2-spotfleet_networkinterfacecountrequest.go create mode 100644 cloudformation/ec2/aws-ec2-spotfleet_totallocalstoragegbrequest.go create mode 100644 cloudformation/ec2/aws-ec2-spotfleet_vcpucountrangerequest.go create mode 100644 cloudformation/ec2/aws-ec2-transitgatewaypeeringattachment_transitgatewaypeeringattachmentoptions.go create mode 100644 cloudformation/ecs/aws-ecs-taskdefinition_runtimeplatform.go create mode 100644 cloudformation/eks/aws-eks-cluster_clusterlogging.go create mode 100644 cloudformation/eks/aws-eks-cluster_logging.go create mode 100644 cloudformation/eks/aws-eks-cluster_loggingtypeconfig.go create mode 100644 cloudformation/finspace/aws-finspace-environment_superuserparameters.go create mode 100644 cloudformation/fsx/aws-fsx-filesystem_diskiopsconfiguration.go create mode 100644 cloudformation/fsx/aws-fsx-filesystem_ontapconfiguration.go create mode 100644 cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration_instancemetadataoptions.go create mode 100644 cloudformation/iot/aws-iot-jobtemplate.go create mode 100644 cloudformation/iot/aws-iot-logging.go create mode 100644 cloudformation/iot/aws-iot-resourcespecificlogging.go create mode 100644 cloudformation/iotwireless/aws-iotwireless-fuotatask.go create mode 100644 cloudformation/iotwireless/aws-iotwireless-fuotatask_lorawan.go create mode 100644 cloudformation/iotwireless/aws-iotwireless-multicastgroup.go create mode 100644 cloudformation/iotwireless/aws-iotwireless-multicastgroup_lorawan.go create mode 100644 cloudformation/lightsail/aws-lightsail-database.go create mode 100644 cloudformation/lightsail/aws-lightsail-database_relationaldatabaseparameter.go create mode 100644 cloudformation/lightsail/aws-lightsail-staticip.go create mode 100644 cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statefulengineoptions.go create mode 100644 cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statefulruleoptions.go create mode 100644 cloudformation/panorama/aws-panorama-applicationinstance.go create mode 100644 cloudformation/panorama/aws-panorama-applicationinstance_manifestoverridespayload.go create mode 100644 cloudformation/panorama/aws-panorama-applicationinstance_manifestpayload.go create mode 100644 cloudformation/panorama/aws-panorama-package.go create mode 100644 cloudformation/panorama/aws-panorama-packageversion.go create mode 100644 cloudformation/pinpoint/aws-pinpoint-campaign_campaigninappmessage.go create mode 100644 cloudformation/pinpoint/aws-pinpoint-campaign_defaultbuttonconfiguration.go create mode 100644 cloudformation/pinpoint/aws-pinpoint-campaign_inappmessagebodyconfig.go create mode 100644 cloudformation/pinpoint/aws-pinpoint-campaign_inappmessagebutton.go create mode 100644 cloudformation/pinpoint/aws-pinpoint-campaign_inappmessagecontent.go create mode 100644 cloudformation/pinpoint/aws-pinpoint-campaign_inappmessageheaderconfig.go create mode 100644 cloudformation/pinpoint/aws-pinpoint-campaign_overridebuttonconfiguration.go create mode 100644 cloudformation/pinpoint/aws-pinpoint-inapptemplate.go create mode 100644 cloudformation/pinpoint/aws-pinpoint-inapptemplate_bodyconfig.go create mode 100644 cloudformation/pinpoint/aws-pinpoint-inapptemplate_buttonconfig.go create mode 100644 cloudformation/pinpoint/aws-pinpoint-inapptemplate_defaultbuttonconfiguration.go create mode 100644 cloudformation/pinpoint/aws-pinpoint-inapptemplate_headerconfig.go create mode 100644 cloudformation/pinpoint/aws-pinpoint-inapptemplate_inappmessagecontent.go create mode 100644 cloudformation/pinpoint/aws-pinpoint-inapptemplate_overridebuttonconfiguration.go create mode 100644 cloudformation/quicksight/aws-quicksight-datasource_amazonopensearchparameters.go create mode 100644 cloudformation/redshift/aws-redshift-endpointaccess.go create mode 100644 cloudformation/redshift/aws-redshift-endpointaccess_vpcsecuritygroup.go create mode 100644 cloudformation/redshift/aws-redshift-endpointauthorization.go create mode 100644 cloudformation/redshift/aws-redshift-eventsubscription.go create mode 100644 cloudformation/redshift/aws-redshift-scheduledaction.go create mode 100644 cloudformation/redshift/aws-redshift-scheduledaction_pauseclustermessage.go create mode 100644 cloudformation/redshift/aws-redshift-scheduledaction_resizeclustermessage.go create mode 100644 cloudformation/redshift/aws-redshift-scheduledaction_resumeclustermessage.go create mode 100644 cloudformation/redshift/aws-redshift-scheduledaction_scheduledactiontype.go create mode 100644 cloudformation/rekognition/aws-rekognition-project.go create mode 100644 cloudformation/route53resolver/aws-route53resolver-resolverconfig.go create mode 100644 cloudformation/synthetics/aws-synthetics-canary_artifactconfig.go create mode 100644 cloudformation/synthetics/aws-synthetics-canary_s3encryption.go create mode 100644 cloudformation/wisdom/aws-wisdom-assistant.go create mode 100644 cloudformation/wisdom/aws-wisdom-assistant_serversideencryptionconfiguration.go create mode 100644 cloudformation/wisdom/aws-wisdom-assistantassociation.go create mode 100644 cloudformation/wisdom/aws-wisdom-assistantassociation_associationdata.go create mode 100644 cloudformation/wisdom/aws-wisdom-knowledgebase.go create mode 100644 cloudformation/wisdom/aws-wisdom-knowledgebase_appintegrationsconfiguration.go create mode 100644 cloudformation/wisdom/aws-wisdom-knowledgebase_renderingconfiguration.go create mode 100644 cloudformation/wisdom/aws-wisdom-knowledgebase_serversideencryptionconfiguration.go create mode 100644 cloudformation/wisdom/aws-wisdom-knowledgebase_sourceconfiguration.go diff --git a/cloudformation/all.go b/cloudformation/all.go index 567ff144d7..56affbf58b 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -133,6 +133,7 @@ import ( "github.com/awslabs/goformation/v5/cloudformation/opensearchservice" "github.com/awslabs/goformation/v5/cloudformation/opsworks" "github.com/awslabs/goformation/v5/cloudformation/opsworkscm" + "github.com/awslabs/goformation/v5/cloudformation/panorama" "github.com/awslabs/goformation/v5/cloudformation/pinpoint" "github.com/awslabs/goformation/v5/cloudformation/pinpointemail" "github.com/awslabs/goformation/v5/cloudformation/qldb" @@ -140,6 +141,7 @@ import ( "github.com/awslabs/goformation/v5/cloudformation/ram" "github.com/awslabs/goformation/v5/cloudformation/rds" "github.com/awslabs/goformation/v5/cloudformation/redshift" + "github.com/awslabs/goformation/v5/cloudformation/rekognition" "github.com/awslabs/goformation/v5/cloudformation/resourcegroups" "github.com/awslabs/goformation/v5/cloudformation/robomaker" "github.com/awslabs/goformation/v5/cloudformation/route53" @@ -172,6 +174,7 @@ import ( "github.com/awslabs/goformation/v5/cloudformation/waf" "github.com/awslabs/goformation/v5/cloudformation/wafregional" "github.com/awslabs/goformation/v5/cloudformation/wafv2" + "github.com/awslabs/goformation/v5/cloudformation/wisdom" "github.com/awslabs/goformation/v5/cloudformation/workspaces" "github.com/awslabs/goformation/v5/cloudformation/xray" @@ -280,6 +283,7 @@ func AllResources() map[string]Resource { "AWS::Batch::ComputeEnvironment": &batch.ComputeEnvironment{}, "AWS::Batch::JobDefinition": &batch.JobDefinition{}, "AWS::Batch::JobQueue": &batch.JobQueue{}, + "AWS::Batch::SchedulingPolicy": &batch.SchedulingPolicy{}, "AWS::Budgets::Budget": &budgets.Budget{}, "AWS::Budgets::BudgetsAction": &budgets.BudgetsAction{}, "AWS::CE::AnomalyMonitor": &ce.AnomalyMonitor{}, @@ -313,6 +317,7 @@ func AllResources() map[string]Resource { "AWS::CloudFront::OriginRequestPolicy": &cloudfront.OriginRequestPolicy{}, "AWS::CloudFront::PublicKey": &cloudfront.PublicKey{}, "AWS::CloudFront::RealtimeLogConfig": &cloudfront.RealtimeLogConfig{}, + "AWS::CloudFront::ResponseHeadersPolicy": &cloudfront.ResponseHeadersPolicy{}, "AWS::CloudFront::StreamingDistribution": &cloudfront.StreamingDistribution{}, "AWS::CloudTrail::Trail": &cloudtrail.Trail{}, "AWS::CloudWatch::Alarm": &cloudwatch.Alarm{}, @@ -360,7 +365,10 @@ func AllResources() map[string]Resource { "AWS::Config::OrganizationConformancePack": &config.OrganizationConformancePack{}, "AWS::Config::RemediationConfiguration": &config.RemediationConfiguration{}, "AWS::Config::StoredQuery": &config.StoredQuery{}, + "AWS::Connect::HoursOfOperation": &connect.HoursOfOperation{}, "AWS::Connect::QuickConnect": &connect.QuickConnect{}, + "AWS::Connect::User": &connect.User{}, + "AWS::Connect::UserHierarchyGroup": &connect.UserHierarchyGroup{}, "AWS::CustomerProfiles::Domain": &customerprofiles.Domain{}, "AWS::CustomerProfiles::Integration": &customerprofiles.Integration{}, "AWS::CustomerProfiles::ObjectType": &customerprofiles.ObjectType{}, @@ -383,6 +391,7 @@ func AllResources() map[string]Resource { "AWS::DataSync::Agent": &datasync.Agent{}, "AWS::DataSync::LocationEFS": &datasync.LocationEFS{}, "AWS::DataSync::LocationFSxWindows": &datasync.LocationFSxWindows{}, + "AWS::DataSync::LocationHDFS": &datasync.LocationHDFS{}, "AWS::DataSync::LocationNFS": &datasync.LocationNFS{}, "AWS::DataSync::LocationObjectStorage": &datasync.LocationObjectStorage{}, "AWS::DataSync::LocationS3": &datasync.LocationS3{}, @@ -401,6 +410,7 @@ func AllResources() map[string]Resource { "AWS::DynamoDB::GlobalTable": &dynamodb.GlobalTable{}, "AWS::DynamoDB::Table": &dynamodb.Table{}, "AWS::EC2::CapacityReservation": &ec2.CapacityReservation{}, + "AWS::EC2::CapacityReservationFleet": &ec2.CapacityReservationFleet{}, "AWS::EC2::CarrierGateway": &ec2.CarrierGateway{}, "AWS::EC2::ClientVpnAuthorizationRule": &ec2.ClientVpnAuthorizationRule{}, "AWS::EC2::ClientVpnEndpoint": &ec2.ClientVpnEndpoint{}, @@ -632,10 +642,13 @@ func AllResources() map[string]Resource { "AWS::IoT::Dimension": &iot.Dimension{}, "AWS::IoT::DomainConfiguration": &iot.DomainConfiguration{}, "AWS::IoT::FleetMetric": &iot.FleetMetric{}, + "AWS::IoT::JobTemplate": &iot.JobTemplate{}, + "AWS::IoT::Logging": &iot.Logging{}, "AWS::IoT::MitigationAction": &iot.MitigationAction{}, "AWS::IoT::Policy": &iot.Policy{}, "AWS::IoT::PolicyPrincipalAttachment": &iot.PolicyPrincipalAttachment{}, "AWS::IoT::ProvisioningTemplate": &iot.ProvisioningTemplate{}, + "AWS::IoT::ResourceSpecificLogging": &iot.ResourceSpecificLogging{}, "AWS::IoT::ScheduledAudit": &iot.ScheduledAudit{}, "AWS::IoT::SecurityProfile": &iot.SecurityProfile{}, "AWS::IoT::Thing": &iot.Thing{}, @@ -660,6 +673,8 @@ func AllResources() map[string]Resource { "AWS::IoTThingsGraph::FlowTemplate": &iotthingsgraph.FlowTemplate{}, "AWS::IoTWireless::Destination": &iotwireless.Destination{}, "AWS::IoTWireless::DeviceProfile": &iotwireless.DeviceProfile{}, + "AWS::IoTWireless::FuotaTask": &iotwireless.FuotaTask{}, + "AWS::IoTWireless::MulticastGroup": &iotwireless.MulticastGroup{}, "AWS::IoTWireless::PartnerAccount": &iotwireless.PartnerAccount{}, "AWS::IoTWireless::ServiceProfile": &iotwireless.ServiceProfile{}, "AWS::IoTWireless::TaskDefinition": &iotwireless.TaskDefinition{}, @@ -695,8 +710,10 @@ func AllResources() map[string]Resource { "AWS::Lambda::Version": &lambda.Version{}, "AWS::LicenseManager::Grant": &licensemanager.Grant{}, "AWS::LicenseManager::License": &licensemanager.License{}, + "AWS::Lightsail::Database": &lightsail.Database{}, "AWS::Lightsail::Disk": &lightsail.Disk{}, "AWS::Lightsail::Instance": &lightsail.Instance{}, + "AWS::Lightsail::StaticIp": &lightsail.StaticIp{}, "AWS::Location::GeofenceCollection": &location.GeofenceCollection{}, "AWS::Location::Map": &location.Map{}, "AWS::Location::PlaceIndex": &location.PlaceIndex{}, @@ -772,6 +789,9 @@ func AllResources() map[string]Resource { "AWS::OpsWorks::UserProfile": &opsworks.UserProfile{}, "AWS::OpsWorks::Volume": &opsworks.Volume{}, "AWS::OpsWorksCM::Server": &opsworkscm.Server{}, + "AWS::Panorama::ApplicationInstance": &panorama.ApplicationInstance{}, + "AWS::Panorama::Package": &panorama.Package{}, + "AWS::Panorama::PackageVersion": &panorama.PackageVersion{}, "AWS::Pinpoint::ADMChannel": &pinpoint.ADMChannel{}, "AWS::Pinpoint::APNSChannel": &pinpoint.APNSChannel{}, "AWS::Pinpoint::APNSSandboxChannel": &pinpoint.APNSSandboxChannel{}, @@ -785,6 +805,7 @@ func AllResources() map[string]Resource { "AWS::Pinpoint::EmailTemplate": &pinpoint.EmailTemplate{}, "AWS::Pinpoint::EventStream": &pinpoint.EventStream{}, "AWS::Pinpoint::GCMChannel": &pinpoint.GCMChannel{}, + "AWS::Pinpoint::InAppTemplate": &pinpoint.InAppTemplate{}, "AWS::Pinpoint::PushTemplate": &pinpoint.PushTemplate{}, "AWS::Pinpoint::SMSChannel": &pinpoint.SMSChannel{}, "AWS::Pinpoint::Segment": &pinpoint.Segment{}, @@ -821,6 +842,11 @@ func AllResources() map[string]Resource { "AWS::Redshift::ClusterSecurityGroup": &redshift.ClusterSecurityGroup{}, "AWS::Redshift::ClusterSecurityGroupIngress": &redshift.ClusterSecurityGroupIngress{}, "AWS::Redshift::ClusterSubnetGroup": &redshift.ClusterSubnetGroup{}, + "AWS::Redshift::EndpointAccess": &redshift.EndpointAccess{}, + "AWS::Redshift::EndpointAuthorization": &redshift.EndpointAuthorization{}, + "AWS::Redshift::EventSubscription": &redshift.EventSubscription{}, + "AWS::Redshift::ScheduledAction": &redshift.ScheduledAction{}, + "AWS::Rekognition::Project": &rekognition.Project{}, "AWS::ResourceGroups::Group": &resourcegroups.Group{}, "AWS::RoboMaker::Fleet": &robomaker.Fleet{}, "AWS::RoboMaker::Robot": &robomaker.Robot{}, @@ -845,6 +871,7 @@ func AllResources() map[string]Resource { "AWS::Route53Resolver::FirewallDomainList": &route53resolver.FirewallDomainList{}, "AWS::Route53Resolver::FirewallRuleGroup": &route53resolver.FirewallRuleGroup{}, "AWS::Route53Resolver::FirewallRuleGroupAssociation": &route53resolver.FirewallRuleGroupAssociation{}, + "AWS::Route53Resolver::ResolverConfig": &route53resolver.ResolverConfig{}, "AWS::Route53Resolver::ResolverDNSSECConfig": &route53resolver.ResolverDNSSECConfig{}, "AWS::Route53Resolver::ResolverEndpoint": &route53resolver.ResolverEndpoint{}, "AWS::Route53Resolver::ResolverQueryLoggingConfig": &route53resolver.ResolverQueryLoggingConfig{}, @@ -985,6 +1012,9 @@ func AllResources() map[string]Resource { "AWS::WAFv2::RuleGroup": &wafv2.RuleGroup{}, "AWS::WAFv2::WebACL": &wafv2.WebACL{}, "AWS::WAFv2::WebACLAssociation": &wafv2.WebACLAssociation{}, + "AWS::Wisdom::Assistant": &wisdom.Assistant{}, + "AWS::Wisdom::AssistantAssociation": &wisdom.AssistantAssociation{}, + "AWS::Wisdom::KnowledgeBase": &wisdom.KnowledgeBase{}, "AWS::WorkSpaces::ConnectionAlias": &workspaces.ConnectionAlias{}, "AWS::WorkSpaces::Workspace": &workspaces.Workspace{}, "AWS::XRay::Group": &xray.Group{}, @@ -3373,6 +3403,30 @@ func (t *Template) GetBatchJobQueueWithName(name string) (*batch.JobQueue, error return nil, fmt.Errorf("resource %q of type batch.JobQueue not found", name) } +// GetAllBatchSchedulingPolicyResources retrieves all batch.SchedulingPolicy items from an AWS CloudFormation template +func (t *Template) GetAllBatchSchedulingPolicyResources() map[string]*batch.SchedulingPolicy { + results := map[string]*batch.SchedulingPolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *batch.SchedulingPolicy: + results[name] = resource + } + } + return results +} + +// GetBatchSchedulingPolicyWithName retrieves all batch.SchedulingPolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetBatchSchedulingPolicyWithName(name string) (*batch.SchedulingPolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *batch.SchedulingPolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type batch.SchedulingPolicy not found", name) +} + // GetAllBudgetsBudgetResources retrieves all budgets.Budget items from an AWS CloudFormation template func (t *Template) GetAllBudgetsBudgetResources() map[string]*budgets.Budget { results := map[string]*budgets.Budget{} @@ -4165,6 +4219,30 @@ func (t *Template) GetCloudFrontRealtimeLogConfigWithName(name string) (*cloudfr return nil, fmt.Errorf("resource %q of type cloudfront.RealtimeLogConfig not found", name) } +// GetAllCloudFrontResponseHeadersPolicyResources retrieves all cloudfront.ResponseHeadersPolicy items from an AWS CloudFormation template +func (t *Template) GetAllCloudFrontResponseHeadersPolicyResources() map[string]*cloudfront.ResponseHeadersPolicy { + results := map[string]*cloudfront.ResponseHeadersPolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *cloudfront.ResponseHeadersPolicy: + results[name] = resource + } + } + return results +} + +// GetCloudFrontResponseHeadersPolicyWithName retrieves all cloudfront.ResponseHeadersPolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetCloudFrontResponseHeadersPolicyWithName(name string) (*cloudfront.ResponseHeadersPolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *cloudfront.ResponseHeadersPolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type cloudfront.ResponseHeadersPolicy not found", name) +} + // GetAllCloudFrontStreamingDistributionResources retrieves all cloudfront.StreamingDistribution items from an AWS CloudFormation template func (t *Template) GetAllCloudFrontStreamingDistributionResources() map[string]*cloudfront.StreamingDistribution { results := map[string]*cloudfront.StreamingDistribution{} @@ -5293,6 +5371,30 @@ func (t *Template) GetConfigStoredQueryWithName(name string) (*config.StoredQuer return nil, fmt.Errorf("resource %q of type config.StoredQuery not found", name) } +// GetAllConnectHoursOfOperationResources retrieves all connect.HoursOfOperation items from an AWS CloudFormation template +func (t *Template) GetAllConnectHoursOfOperationResources() map[string]*connect.HoursOfOperation { + results := map[string]*connect.HoursOfOperation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *connect.HoursOfOperation: + results[name] = resource + } + } + return results +} + +// GetConnectHoursOfOperationWithName retrieves all connect.HoursOfOperation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetConnectHoursOfOperationWithName(name string) (*connect.HoursOfOperation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *connect.HoursOfOperation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type connect.HoursOfOperation not found", name) +} + // GetAllConnectQuickConnectResources retrieves all connect.QuickConnect items from an AWS CloudFormation template func (t *Template) GetAllConnectQuickConnectResources() map[string]*connect.QuickConnect { results := map[string]*connect.QuickConnect{} @@ -5317,6 +5419,54 @@ func (t *Template) GetConnectQuickConnectWithName(name string) (*connect.QuickCo return nil, fmt.Errorf("resource %q of type connect.QuickConnect not found", name) } +// GetAllConnectUserResources retrieves all connect.User items from an AWS CloudFormation template +func (t *Template) GetAllConnectUserResources() map[string]*connect.User { + results := map[string]*connect.User{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *connect.User: + results[name] = resource + } + } + return results +} + +// GetConnectUserWithName retrieves all connect.User items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetConnectUserWithName(name string) (*connect.User, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *connect.User: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type connect.User not found", name) +} + +// GetAllConnectUserHierarchyGroupResources retrieves all connect.UserHierarchyGroup items from an AWS CloudFormation template +func (t *Template) GetAllConnectUserHierarchyGroupResources() map[string]*connect.UserHierarchyGroup { + results := map[string]*connect.UserHierarchyGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *connect.UserHierarchyGroup: + results[name] = resource + } + } + return results +} + +// GetConnectUserHierarchyGroupWithName retrieves all connect.UserHierarchyGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetConnectUserHierarchyGroupWithName(name string) (*connect.UserHierarchyGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *connect.UserHierarchyGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type connect.UserHierarchyGroup not found", name) +} + // GetAllCustomerProfilesDomainResources retrieves all customerprofiles.Domain items from an AWS CloudFormation template func (t *Template) GetAllCustomerProfilesDomainResources() map[string]*customerprofiles.Domain { results := map[string]*customerprofiles.Domain{} @@ -5845,6 +5995,30 @@ func (t *Template) GetDataSyncLocationFSxWindowsWithName(name string) (*datasync return nil, fmt.Errorf("resource %q of type datasync.LocationFSxWindows not found", name) } +// GetAllDataSyncLocationHDFSResources retrieves all datasync.LocationHDFS items from an AWS CloudFormation template +func (t *Template) GetAllDataSyncLocationHDFSResources() map[string]*datasync.LocationHDFS { + results := map[string]*datasync.LocationHDFS{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *datasync.LocationHDFS: + results[name] = resource + } + } + return results +} + +// GetDataSyncLocationHDFSWithName retrieves all datasync.LocationHDFS items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetDataSyncLocationHDFSWithName(name string) (*datasync.LocationHDFS, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *datasync.LocationHDFS: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type datasync.LocationHDFS not found", name) +} + // GetAllDataSyncLocationNFSResources retrieves all datasync.LocationNFS items from an AWS CloudFormation template func (t *Template) GetAllDataSyncLocationNFSResources() map[string]*datasync.LocationNFS { results := map[string]*datasync.LocationNFS{} @@ -6277,6 +6451,30 @@ func (t *Template) GetEC2CapacityReservationWithName(name string) (*ec2.Capacity return nil, fmt.Errorf("resource %q of type ec2.CapacityReservation not found", name) } +// GetAllEC2CapacityReservationFleetResources retrieves all ec2.CapacityReservationFleet items from an AWS CloudFormation template +func (t *Template) GetAllEC2CapacityReservationFleetResources() map[string]*ec2.CapacityReservationFleet { + results := map[string]*ec2.CapacityReservationFleet{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *ec2.CapacityReservationFleet: + results[name] = resource + } + } + return results +} + +// GetEC2CapacityReservationFleetWithName retrieves all ec2.CapacityReservationFleet items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetEC2CapacityReservationFleetWithName(name string) (*ec2.CapacityReservationFleet, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *ec2.CapacityReservationFleet: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type ec2.CapacityReservationFleet not found", name) +} + // GetAllEC2CarrierGatewayResources retrieves all ec2.CarrierGateway items from an AWS CloudFormation template func (t *Template) GetAllEC2CarrierGatewayResources() map[string]*ec2.CarrierGateway { results := map[string]*ec2.CarrierGateway{} @@ -11821,6 +12019,54 @@ func (t *Template) GetIoTFleetMetricWithName(name string) (*iot.FleetMetric, err return nil, fmt.Errorf("resource %q of type iot.FleetMetric not found", name) } +// GetAllIoTJobTemplateResources retrieves all iot.JobTemplate items from an AWS CloudFormation template +func (t *Template) GetAllIoTJobTemplateResources() map[string]*iot.JobTemplate { + results := map[string]*iot.JobTemplate{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iot.JobTemplate: + results[name] = resource + } + } + return results +} + +// GetIoTJobTemplateWithName retrieves all iot.JobTemplate items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTJobTemplateWithName(name string) (*iot.JobTemplate, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iot.JobTemplate: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iot.JobTemplate not found", name) +} + +// GetAllIoTLoggingResources retrieves all iot.Logging items from an AWS CloudFormation template +func (t *Template) GetAllIoTLoggingResources() map[string]*iot.Logging { + results := map[string]*iot.Logging{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iot.Logging: + results[name] = resource + } + } + return results +} + +// GetIoTLoggingWithName retrieves all iot.Logging items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTLoggingWithName(name string) (*iot.Logging, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iot.Logging: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iot.Logging not found", name) +} + // GetAllIoTMitigationActionResources retrieves all iot.MitigationAction items from an AWS CloudFormation template func (t *Template) GetAllIoTMitigationActionResources() map[string]*iot.MitigationAction { results := map[string]*iot.MitigationAction{} @@ -11917,6 +12163,30 @@ func (t *Template) GetIoTProvisioningTemplateWithName(name string) (*iot.Provisi return nil, fmt.Errorf("resource %q of type iot.ProvisioningTemplate not found", name) } +// GetAllIoTResourceSpecificLoggingResources retrieves all iot.ResourceSpecificLogging items from an AWS CloudFormation template +func (t *Template) GetAllIoTResourceSpecificLoggingResources() map[string]*iot.ResourceSpecificLogging { + results := map[string]*iot.ResourceSpecificLogging{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iot.ResourceSpecificLogging: + results[name] = resource + } + } + return results +} + +// GetIoTResourceSpecificLoggingWithName retrieves all iot.ResourceSpecificLogging items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTResourceSpecificLoggingWithName(name string) (*iot.ResourceSpecificLogging, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iot.ResourceSpecificLogging: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iot.ResourceSpecificLogging not found", name) +} + // GetAllIoTScheduledAuditResources retrieves all iot.ScheduledAudit items from an AWS CloudFormation template func (t *Template) GetAllIoTScheduledAuditResources() map[string]*iot.ScheduledAudit { results := map[string]*iot.ScheduledAudit{} @@ -12493,6 +12763,54 @@ func (t *Template) GetIoTWirelessDeviceProfileWithName(name string) (*iotwireles return nil, fmt.Errorf("resource %q of type iotwireless.DeviceProfile not found", name) } +// GetAllIoTWirelessFuotaTaskResources retrieves all iotwireless.FuotaTask items from an AWS CloudFormation template +func (t *Template) GetAllIoTWirelessFuotaTaskResources() map[string]*iotwireless.FuotaTask { + results := map[string]*iotwireless.FuotaTask{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iotwireless.FuotaTask: + results[name] = resource + } + } + return results +} + +// GetIoTWirelessFuotaTaskWithName retrieves all iotwireless.FuotaTask items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTWirelessFuotaTaskWithName(name string) (*iotwireless.FuotaTask, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iotwireless.FuotaTask: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iotwireless.FuotaTask not found", name) +} + +// GetAllIoTWirelessMulticastGroupResources retrieves all iotwireless.MulticastGroup items from an AWS CloudFormation template +func (t *Template) GetAllIoTWirelessMulticastGroupResources() map[string]*iotwireless.MulticastGroup { + results := map[string]*iotwireless.MulticastGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iotwireless.MulticastGroup: + results[name] = resource + } + } + return results +} + +// GetIoTWirelessMulticastGroupWithName retrieves all iotwireless.MulticastGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTWirelessMulticastGroupWithName(name string) (*iotwireless.MulticastGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iotwireless.MulticastGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iotwireless.MulticastGroup not found", name) +} + // GetAllIoTWirelessPartnerAccountResources retrieves all iotwireless.PartnerAccount items from an AWS CloudFormation template func (t *Template) GetAllIoTWirelessPartnerAccountResources() map[string]*iotwireless.PartnerAccount { results := map[string]*iotwireless.PartnerAccount{} @@ -13333,6 +13651,30 @@ func (t *Template) GetLicenseManagerLicenseWithName(name string) (*licensemanage return nil, fmt.Errorf("resource %q of type licensemanager.License not found", name) } +// GetAllLightsailDatabaseResources retrieves all lightsail.Database items from an AWS CloudFormation template +func (t *Template) GetAllLightsailDatabaseResources() map[string]*lightsail.Database { + results := map[string]*lightsail.Database{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *lightsail.Database: + results[name] = resource + } + } + return results +} + +// GetLightsailDatabaseWithName retrieves all lightsail.Database items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetLightsailDatabaseWithName(name string) (*lightsail.Database, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *lightsail.Database: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type lightsail.Database not found", name) +} + // GetAllLightsailDiskResources retrieves all lightsail.Disk items from an AWS CloudFormation template func (t *Template) GetAllLightsailDiskResources() map[string]*lightsail.Disk { results := map[string]*lightsail.Disk{} @@ -13381,6 +13723,30 @@ func (t *Template) GetLightsailInstanceWithName(name string) (*lightsail.Instanc return nil, fmt.Errorf("resource %q of type lightsail.Instance not found", name) } +// GetAllLightsailStaticIpResources retrieves all lightsail.StaticIp items from an AWS CloudFormation template +func (t *Template) GetAllLightsailStaticIpResources() map[string]*lightsail.StaticIp { + results := map[string]*lightsail.StaticIp{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *lightsail.StaticIp: + results[name] = resource + } + } + return results +} + +// GetLightsailStaticIpWithName retrieves all lightsail.StaticIp items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetLightsailStaticIpWithName(name string) (*lightsail.StaticIp, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *lightsail.StaticIp: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type lightsail.StaticIp not found", name) +} + // GetAllLocationGeofenceCollectionResources retrieves all location.GeofenceCollection items from an AWS CloudFormation template func (t *Template) GetAllLocationGeofenceCollectionResources() map[string]*location.GeofenceCollection { results := map[string]*location.GeofenceCollection{} @@ -15181,6 +15547,78 @@ func (t *Template) GetOpsWorksCMServerWithName(name string) (*opsworkscm.Server, return nil, fmt.Errorf("resource %q of type opsworkscm.Server not found", name) } +// GetAllPanoramaApplicationInstanceResources retrieves all panorama.ApplicationInstance items from an AWS CloudFormation template +func (t *Template) GetAllPanoramaApplicationInstanceResources() map[string]*panorama.ApplicationInstance { + results := map[string]*panorama.ApplicationInstance{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *panorama.ApplicationInstance: + results[name] = resource + } + } + return results +} + +// GetPanoramaApplicationInstanceWithName retrieves all panorama.ApplicationInstance items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetPanoramaApplicationInstanceWithName(name string) (*panorama.ApplicationInstance, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *panorama.ApplicationInstance: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type panorama.ApplicationInstance not found", name) +} + +// GetAllPanoramaPackageResources retrieves all panorama.Package items from an AWS CloudFormation template +func (t *Template) GetAllPanoramaPackageResources() map[string]*panorama.Package { + results := map[string]*panorama.Package{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *panorama.Package: + results[name] = resource + } + } + return results +} + +// GetPanoramaPackageWithName retrieves all panorama.Package items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetPanoramaPackageWithName(name string) (*panorama.Package, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *panorama.Package: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type panorama.Package not found", name) +} + +// GetAllPanoramaPackageVersionResources retrieves all panorama.PackageVersion items from an AWS CloudFormation template +func (t *Template) GetAllPanoramaPackageVersionResources() map[string]*panorama.PackageVersion { + results := map[string]*panorama.PackageVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *panorama.PackageVersion: + results[name] = resource + } + } + return results +} + +// GetPanoramaPackageVersionWithName retrieves all panorama.PackageVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetPanoramaPackageVersionWithName(name string) (*panorama.PackageVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *panorama.PackageVersion: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type panorama.PackageVersion not found", name) +} + // GetAllPinpointADMChannelResources retrieves all pinpoint.ADMChannel items from an AWS CloudFormation template func (t *Template) GetAllPinpointADMChannelResources() map[string]*pinpoint.ADMChannel { results := map[string]*pinpoint.ADMChannel{} @@ -15493,6 +15931,30 @@ func (t *Template) GetPinpointGCMChannelWithName(name string) (*pinpoint.GCMChan return nil, fmt.Errorf("resource %q of type pinpoint.GCMChannel not found", name) } +// GetAllPinpointInAppTemplateResources retrieves all pinpoint.InAppTemplate items from an AWS CloudFormation template +func (t *Template) GetAllPinpointInAppTemplateResources() map[string]*pinpoint.InAppTemplate { + results := map[string]*pinpoint.InAppTemplate{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *pinpoint.InAppTemplate: + results[name] = resource + } + } + return results +} + +// GetPinpointInAppTemplateWithName retrieves all pinpoint.InAppTemplate items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetPinpointInAppTemplateWithName(name string) (*pinpoint.InAppTemplate, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *pinpoint.InAppTemplate: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type pinpoint.InAppTemplate not found", name) +} + // GetAllPinpointPushTemplateResources retrieves all pinpoint.PushTemplate items from an AWS CloudFormation template func (t *Template) GetAllPinpointPushTemplateResources() map[string]*pinpoint.PushTemplate { results := map[string]*pinpoint.PushTemplate{} @@ -16357,6 +16819,126 @@ func (t *Template) GetRedshiftClusterSubnetGroupWithName(name string) (*redshift return nil, fmt.Errorf("resource %q of type redshift.ClusterSubnetGroup not found", name) } +// GetAllRedshiftEndpointAccessResources retrieves all redshift.EndpointAccess items from an AWS CloudFormation template +func (t *Template) GetAllRedshiftEndpointAccessResources() map[string]*redshift.EndpointAccess { + results := map[string]*redshift.EndpointAccess{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *redshift.EndpointAccess: + results[name] = resource + } + } + return results +} + +// GetRedshiftEndpointAccessWithName retrieves all redshift.EndpointAccess items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetRedshiftEndpointAccessWithName(name string) (*redshift.EndpointAccess, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *redshift.EndpointAccess: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type redshift.EndpointAccess not found", name) +} + +// GetAllRedshiftEndpointAuthorizationResources retrieves all redshift.EndpointAuthorization items from an AWS CloudFormation template +func (t *Template) GetAllRedshiftEndpointAuthorizationResources() map[string]*redshift.EndpointAuthorization { + results := map[string]*redshift.EndpointAuthorization{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *redshift.EndpointAuthorization: + results[name] = resource + } + } + return results +} + +// GetRedshiftEndpointAuthorizationWithName retrieves all redshift.EndpointAuthorization items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetRedshiftEndpointAuthorizationWithName(name string) (*redshift.EndpointAuthorization, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *redshift.EndpointAuthorization: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type redshift.EndpointAuthorization not found", name) +} + +// GetAllRedshiftEventSubscriptionResources retrieves all redshift.EventSubscription items from an AWS CloudFormation template +func (t *Template) GetAllRedshiftEventSubscriptionResources() map[string]*redshift.EventSubscription { + results := map[string]*redshift.EventSubscription{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *redshift.EventSubscription: + results[name] = resource + } + } + return results +} + +// GetRedshiftEventSubscriptionWithName retrieves all redshift.EventSubscription items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetRedshiftEventSubscriptionWithName(name string) (*redshift.EventSubscription, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *redshift.EventSubscription: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type redshift.EventSubscription not found", name) +} + +// GetAllRedshiftScheduledActionResources retrieves all redshift.ScheduledAction items from an AWS CloudFormation template +func (t *Template) GetAllRedshiftScheduledActionResources() map[string]*redshift.ScheduledAction { + results := map[string]*redshift.ScheduledAction{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *redshift.ScheduledAction: + results[name] = resource + } + } + return results +} + +// GetRedshiftScheduledActionWithName retrieves all redshift.ScheduledAction items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetRedshiftScheduledActionWithName(name string) (*redshift.ScheduledAction, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *redshift.ScheduledAction: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type redshift.ScheduledAction not found", name) +} + +// GetAllRekognitionProjectResources retrieves all rekognition.Project items from an AWS CloudFormation template +func (t *Template) GetAllRekognitionProjectResources() map[string]*rekognition.Project { + results := map[string]*rekognition.Project{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *rekognition.Project: + results[name] = resource + } + } + return results +} + +// GetRekognitionProjectWithName retrieves all rekognition.Project items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetRekognitionProjectWithName(name string) (*rekognition.Project, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *rekognition.Project: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type rekognition.Project not found", name) +} + // GetAllResourceGroupsGroupResources retrieves all resourcegroups.Group items from an AWS CloudFormation template func (t *Template) GetAllResourceGroupsGroupResources() map[string]*resourcegroups.Group { results := map[string]*resourcegroups.Group{} @@ -16933,6 +17515,30 @@ func (t *Template) GetRoute53ResolverFirewallRuleGroupAssociationWithName(name s return nil, fmt.Errorf("resource %q of type route53resolver.FirewallRuleGroupAssociation not found", name) } +// GetAllRoute53ResolverResolverConfigResources retrieves all route53resolver.ResolverConfig items from an AWS CloudFormation template +func (t *Template) GetAllRoute53ResolverResolverConfigResources() map[string]*route53resolver.ResolverConfig { + results := map[string]*route53resolver.ResolverConfig{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *route53resolver.ResolverConfig: + results[name] = resource + } + } + return results +} + +// GetRoute53ResolverResolverConfigWithName retrieves all route53resolver.ResolverConfig items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetRoute53ResolverResolverConfigWithName(name string) (*route53resolver.ResolverConfig, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *route53resolver.ResolverConfig: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type route53resolver.ResolverConfig not found", name) +} + // GetAllRoute53ResolverResolverDNSSECConfigResources retrieves all route53resolver.ResolverDNSSECConfig items from an AWS CloudFormation template func (t *Template) GetAllRoute53ResolverResolverDNSSECConfigResources() map[string]*route53resolver.ResolverDNSSECConfig { results := map[string]*route53resolver.ResolverDNSSECConfig{} @@ -20293,6 +20899,78 @@ func (t *Template) GetWAFv2WebACLAssociationWithName(name string) (*wafv2.WebACL return nil, fmt.Errorf("resource %q of type wafv2.WebACLAssociation not found", name) } +// GetAllWisdomAssistantResources retrieves all wisdom.Assistant items from an AWS CloudFormation template +func (t *Template) GetAllWisdomAssistantResources() map[string]*wisdom.Assistant { + results := map[string]*wisdom.Assistant{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *wisdom.Assistant: + results[name] = resource + } + } + return results +} + +// GetWisdomAssistantWithName retrieves all wisdom.Assistant items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetWisdomAssistantWithName(name string) (*wisdom.Assistant, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *wisdom.Assistant: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type wisdom.Assistant not found", name) +} + +// GetAllWisdomAssistantAssociationResources retrieves all wisdom.AssistantAssociation items from an AWS CloudFormation template +func (t *Template) GetAllWisdomAssistantAssociationResources() map[string]*wisdom.AssistantAssociation { + results := map[string]*wisdom.AssistantAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *wisdom.AssistantAssociation: + results[name] = resource + } + } + return results +} + +// GetWisdomAssistantAssociationWithName retrieves all wisdom.AssistantAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetWisdomAssistantAssociationWithName(name string) (*wisdom.AssistantAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *wisdom.AssistantAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type wisdom.AssistantAssociation not found", name) +} + +// GetAllWisdomKnowledgeBaseResources retrieves all wisdom.KnowledgeBase items from an AWS CloudFormation template +func (t *Template) GetAllWisdomKnowledgeBaseResources() map[string]*wisdom.KnowledgeBase { + results := map[string]*wisdom.KnowledgeBase{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *wisdom.KnowledgeBase: + results[name] = resource + } + } + return results +} + +// GetWisdomKnowledgeBaseWithName retrieves all wisdom.KnowledgeBase items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetWisdomKnowledgeBaseWithName(name string) (*wisdom.KnowledgeBase, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *wisdom.KnowledgeBase: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type wisdom.KnowledgeBase not found", name) +} + // GetAllWorkSpacesConnectionAliasResources retrieves all workspaces.ConnectionAlias items from an AWS CloudFormation template func (t *Template) GetAllWorkSpacesConnectionAliasResources() map[string]*workspaces.ConnectionAlias { results := map[string]*workspaces.ConnectionAlias{} diff --git a/cloudformation/apigateway/aws-apigateway-authorizer.go b/cloudformation/apigateway/aws-apigateway-authorizer.go index 77d34789ea..92b1a84b90 100644 --- a/cloudformation/apigateway/aws-apigateway-authorizer.go +++ b/cloudformation/apigateway/aws-apigateway-authorizer.go @@ -43,7 +43,7 @@ type Authorizer struct { IdentityValidationExpression string `json:"IdentityValidationExpression,omitempty"` // Name AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-name Name string `json:"Name,omitempty"` diff --git a/cloudformation/apigateway/aws-apigateway-stage_methodsetting.go b/cloudformation/apigateway/aws-apigateway-stage_methodsetting.go index 2ec0a36b15..7b1b3872fd 100644 --- a/cloudformation/apigateway/aws-apigateway-stage_methodsetting.go +++ b/cloudformation/apigateway/aws-apigateway-stage_methodsetting.go @@ -5,57 +5,57 @@ import ( ) // Stage_MethodSetting AWS CloudFormation Resource (AWS::ApiGateway::Stage.MethodSetting) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html type Stage_MethodSetting struct { // CacheDataEncrypted AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-cachedataencrypted + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-cachedataencrypted CacheDataEncrypted bool `json:"CacheDataEncrypted,omitempty"` // CacheTtlInSeconds AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-cachettlinseconds + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-cachettlinseconds CacheTtlInSeconds int `json:"CacheTtlInSeconds,omitempty"` // CachingEnabled AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-cachingenabled + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-cachingenabled CachingEnabled bool `json:"CachingEnabled,omitempty"` // DataTraceEnabled AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-datatraceenabled + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-datatraceenabled DataTraceEnabled bool `json:"DataTraceEnabled,omitempty"` // HttpMethod AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-httpmethod + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-httpmethod HttpMethod string `json:"HttpMethod,omitempty"` // LoggingLevel AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-logginglevel + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-logginglevel LoggingLevel string `json:"LoggingLevel,omitempty"` // MetricsEnabled AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-metricsenabled + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-metricsenabled MetricsEnabled bool `json:"MetricsEnabled,omitempty"` // ResourcePath AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-resourcepath + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-resourcepath ResourcePath string `json:"ResourcePath,omitempty"` // ThrottlingBurstLimit AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-throttlingburstlimit + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-throttlingburstlimit ThrottlingBurstLimit int `json:"ThrottlingBurstLimit,omitempty"` // ThrottlingRateLimit AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-throttlingratelimit + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-throttlingratelimit ThrottlingRateLimit float64 `json:"ThrottlingRateLimit,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/apigateway/aws-apigateway-vpclink.go b/cloudformation/apigateway/aws-apigateway-vpclink.go index f209d23dc0..3f11a3ba12 100644 --- a/cloudformation/apigateway/aws-apigateway-vpclink.go +++ b/cloudformation/apigateway/aws-apigateway-vpclink.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" ) // VpcLink AWS CloudFormation Resource (AWS::ApiGateway::VpcLink) @@ -22,6 +23,11 @@ type VpcLink struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-name Name string `json:"Name,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-tags + Tags []tags.Tag `json:"Tags,omitempty"` + // TargetArns AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-targetarns diff --git a/cloudformation/appconfig/aws-appconfig-configurationprofile.go b/cloudformation/appconfig/aws-appconfig-configurationprofile.go index 2044562cc2..fe7eaca3d1 100644 --- a/cloudformation/appconfig/aws-appconfig-configurationprofile.go +++ b/cloudformation/appconfig/aws-appconfig-configurationprofile.go @@ -42,6 +42,11 @@ type ConfigurationProfile struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-tags Tags []ConfigurationProfile_Tags `json:"Tags,omitempty"` + // Type AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-type + Type string `json:"Type,omitempty"` + // Validators AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-validators diff --git a/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofilecredentials.go b/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofilecredentials.go index 39025c73bc..947dca431b 100644 --- a/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofilecredentials.go +++ b/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofilecredentials.go @@ -43,6 +43,11 @@ type ConnectorProfile_ConnectorProfileCredentials struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-redshift Redshift *ConnectorProfile_RedshiftConnectorProfileCredentials `json:"Redshift,omitempty"` + // SAPOData AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-sapodata + SAPOData *ConnectorProfile_SAPODataConnectorProfileCredentials `json:"SAPOData,omitempty"` + // Salesforce AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-salesforce diff --git a/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofileproperties.go b/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofileproperties.go index a23060a67f..a37af7c640 100644 --- a/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofileproperties.go +++ b/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofileproperties.go @@ -33,6 +33,11 @@ type ConnectorProfile_ConnectorProfileProperties struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-redshift Redshift *ConnectorProfile_RedshiftConnectorProfileProperties `json:"Redshift,omitempty"` + // SAPOData AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-sapodata + SAPOData *ConnectorProfile_SAPODataConnectorProfileProperties `json:"SAPOData,omitempty"` + // Salesforce AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-salesforce diff --git a/cloudformation/appflow/aws-appflow-connectorprofile_oauthproperties.go b/cloudformation/appflow/aws-appflow-connectorprofile_oauthproperties.go new file mode 100644 index 0000000000..230f76b441 --- /dev/null +++ b/cloudformation/appflow/aws-appflow-connectorprofile_oauthproperties.go @@ -0,0 +1,45 @@ +package appflow + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ConnectorProfile_OAuthProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.OAuthProperties) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthproperties.html +type ConnectorProfile_OAuthProperties struct { + + // AuthCodeUrl AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthproperties.html#cfn-appflow-connectorprofile-oauthproperties-authcodeurl + AuthCodeUrl string `json:"AuthCodeUrl,omitempty"` + + // OAuthScopes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthproperties.html#cfn-appflow-connectorprofile-oauthproperties-oauthscopes + OAuthScopes []string `json:"OAuthScopes,omitempty"` + + // TokenUrl AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthproperties.html#cfn-appflow-connectorprofile-oauthproperties-tokenurl + TokenUrl string `json:"TokenUrl,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 *ConnectorProfile_OAuthProperties) AWSCloudFormationType() string { + return "AWS::AppFlow::ConnectorProfile.OAuthProperties" +} diff --git a/cloudformation/appflow/aws-appflow-connectorprofile_sapodataconnectorprofilecredentials.go b/cloudformation/appflow/aws-appflow-connectorprofile_sapodataconnectorprofilecredentials.go new file mode 100644 index 0000000000..0443c86c56 --- /dev/null +++ b/cloudformation/appflow/aws-appflow-connectorprofile_sapodataconnectorprofilecredentials.go @@ -0,0 +1,40 @@ +package appflow + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ConnectorProfile_SAPODataConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofilecredentials.html +type ConnectorProfile_SAPODataConnectorProfileCredentials struct { + + // BasicAuthCredentials AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofilecredentials.html#cfn-appflow-connectorprofile-sapodataconnectorprofilecredentials-basicauthcredentials + BasicAuthCredentials interface{} `json:"BasicAuthCredentials,omitempty"` + + // OAuthCredentials AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofilecredentials.html#cfn-appflow-connectorprofile-sapodataconnectorprofilecredentials-oauthcredentials + OAuthCredentials interface{} `json:"OAuthCredentials,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 *ConnectorProfile_SAPODataConnectorProfileCredentials) AWSCloudFormationType() string { + return "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials" +} diff --git a/cloudformation/appflow/aws-appflow-connectorprofile_sapodataconnectorprofileproperties.go b/cloudformation/appflow/aws-appflow-connectorprofile_sapodataconnectorprofileproperties.go new file mode 100644 index 0000000000..6b668d217d --- /dev/null +++ b/cloudformation/appflow/aws-appflow-connectorprofile_sapodataconnectorprofileproperties.go @@ -0,0 +1,65 @@ +package appflow + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ConnectorProfile_SAPODataConnectorProfileProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html +type ConnectorProfile_SAPODataConnectorProfileProperties struct { + + // ApplicationHostUrl AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-applicationhosturl + ApplicationHostUrl string `json:"ApplicationHostUrl,omitempty"` + + // ApplicationServicePath AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-applicationservicepath + ApplicationServicePath string `json:"ApplicationServicePath,omitempty"` + + // ClientNumber AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-clientnumber + ClientNumber string `json:"ClientNumber,omitempty"` + + // LogonLanguage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-logonlanguage + LogonLanguage string `json:"LogonLanguage,omitempty"` + + // OAuthProperties AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-oauthproperties + OAuthProperties *ConnectorProfile_OAuthProperties `json:"OAuthProperties,omitempty"` + + // PortNumber AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-portnumber + PortNumber int `json:"PortNumber,omitempty"` + + // PrivateLinkServiceName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-privatelinkservicename + PrivateLinkServiceName string `json:"PrivateLinkServiceName,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 *ConnectorProfile_SAPODataConnectorProfileProperties) AWSCloudFormationType() string { + return "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties" +} diff --git a/cloudformation/appflow/aws-appflow-flow_connectoroperator.go b/cloudformation/appflow/aws-appflow-flow_connectoroperator.go index 689a04966e..82e1101319 100644 --- a/cloudformation/appflow/aws-appflow-flow_connectoroperator.go +++ b/cloudformation/appflow/aws-appflow-flow_connectoroperator.go @@ -43,6 +43,11 @@ type Flow_ConnectorOperator struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-s3 S3 string `json:"S3,omitempty"` + // SAPOData AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-sapodata + SAPOData string `json:"SAPOData,omitempty"` + // Salesforce AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-salesforce diff --git a/cloudformation/appflow/aws-appflow-flow_s3inputformatconfig.go b/cloudformation/appflow/aws-appflow-flow_s3inputformatconfig.go new file mode 100644 index 0000000000..5fbb09180b --- /dev/null +++ b/cloudformation/appflow/aws-appflow-flow_s3inputformatconfig.go @@ -0,0 +1,35 @@ +package appflow + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Flow_S3InputFormatConfig AWS CloudFormation Resource (AWS::AppFlow::Flow.S3InputFormatConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3inputformatconfig.html +type Flow_S3InputFormatConfig struct { + + // S3InputFileType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3inputformatconfig.html#cfn-appflow-flow-s3inputformatconfig-s3inputfiletype + S3InputFileType string `json:"S3InputFileType,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Flow_S3InputFormatConfig) AWSCloudFormationType() string { + return "AWS::AppFlow::Flow.S3InputFormatConfig" +} diff --git a/cloudformation/appflow/aws-appflow-flow_s3sourceproperties.go b/cloudformation/appflow/aws-appflow-flow_s3sourceproperties.go index 7fece733a4..d9847ecc9e 100644 --- a/cloudformation/appflow/aws-appflow-flow_s3sourceproperties.go +++ b/cloudformation/appflow/aws-appflow-flow_s3sourceproperties.go @@ -18,6 +18,11 @@ type Flow_S3SourceProperties struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3sourceproperties.html#cfn-appflow-flow-s3sourceproperties-bucketprefix BucketPrefix string `json:"BucketPrefix,omitempty"` + // S3InputFormatConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3sourceproperties.html#cfn-appflow-flow-s3sourceproperties-s3inputformatconfig + S3InputFormatConfig *Flow_S3InputFormatConfig `json:"S3InputFormatConfig,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/appflow/aws-appflow-flow_sapodatasourceproperties.go b/cloudformation/appflow/aws-appflow-flow_sapodatasourceproperties.go new file mode 100644 index 0000000000..90dd4c51c1 --- /dev/null +++ b/cloudformation/appflow/aws-appflow-flow_sapodatasourceproperties.go @@ -0,0 +1,35 @@ +package appflow + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Flow_SAPODataSourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.SAPODataSourceProperties) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatasourceproperties.html +type Flow_SAPODataSourceProperties struct { + + // ObjectPath AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatasourceproperties.html#cfn-appflow-flow-sapodatasourceproperties-objectpath + ObjectPath string `json:"ObjectPath,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Flow_SAPODataSourceProperties) AWSCloudFormationType() string { + return "AWS::AppFlow::Flow.SAPODataSourceProperties" +} diff --git a/cloudformation/appflow/aws-appflow-flow_sourceconnectorproperties.go b/cloudformation/appflow/aws-appflow-flow_sourceconnectorproperties.go index 55915fc801..11a456520e 100644 --- a/cloudformation/appflow/aws-appflow-flow_sourceconnectorproperties.go +++ b/cloudformation/appflow/aws-appflow-flow_sourceconnectorproperties.go @@ -43,6 +43,11 @@ type Flow_SourceConnectorProperties struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-s3 S3 *Flow_S3SourceProperties `json:"S3,omitempty"` + // SAPOData AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-sapodata + SAPOData *Flow_SAPODataSourceProperties `json:"SAPOData,omitempty"` + // Salesforce AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-salesforce diff --git a/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutespec.go b/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutespec.go index 4f677480d9..445f5034de 100644 --- a/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutespec.go +++ b/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutespec.go @@ -23,6 +23,11 @@ type GatewayRoute_GatewayRouteSpec struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutespec.html#cfn-appmesh-gatewayroute-gatewayroutespec-httproute HttpRoute *GatewayRoute_HttpGatewayRoute `json:"HttpRoute,omitempty"` + // Priority AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutespec.html#cfn-appmesh-gatewayroute-gatewayroutespec-priority + Priority int `json:"Priority,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup.go b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup.go index c0f49d8439..f935d509df 100644 --- a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup.go +++ b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup.go @@ -42,6 +42,11 @@ type AutoScalingGroup struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-desiredcapacity DesiredCapacity string `json:"DesiredCapacity,omitempty"` + // DesiredCapacityType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-desiredcapacitytype + DesiredCapacityType string `json:"DesiredCapacityType,omitempty"` + // HealthCheckGracePeriod AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-healthcheckgraceperiod diff --git a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_acceleratorcountrequest.go b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_acceleratorcountrequest.go new file mode 100644 index 0000000000..56fd12bd53 --- /dev/null +++ b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_acceleratorcountrequest.go @@ -0,0 +1,40 @@ +package autoscaling + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// AutoScalingGroup_AcceleratorCountRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratorcountrequest.html +type AutoScalingGroup_AcceleratorCountRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratorcountrequest.html#cfn-autoscaling-autoscalinggroup-acceleratorcountrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratorcountrequest.html#cfn-autoscaling-autoscalinggroup-acceleratorcountrequest-min + Min int `json:"Min,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 *AutoScalingGroup_AcceleratorCountRequest) AWSCloudFormationType() string { + return "AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest" +} diff --git a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_acceleratortotalmemorymibrequest.go b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_acceleratortotalmemorymibrequest.go new file mode 100644 index 0000000000..d7a1edee07 --- /dev/null +++ b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_acceleratortotalmemorymibrequest.go @@ -0,0 +1,40 @@ +package autoscaling + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// AutoScalingGroup_AcceleratorTotalMemoryMiBRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratortotalmemorymibrequest.html +type AutoScalingGroup_AcceleratorTotalMemoryMiBRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratortotalmemorymibrequest.html#cfn-autoscaling-autoscalinggroup-acceleratortotalmemorymibrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratortotalmemorymibrequest.html#cfn-autoscaling-autoscalinggroup-acceleratortotalmemorymibrequest-min + Min int `json:"Min,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 *AutoScalingGroup_AcceleratorTotalMemoryMiBRequest) AWSCloudFormationType() string { + return "AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest" +} diff --git a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_baselineebsbandwidthmbpsrequest.go b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_baselineebsbandwidthmbpsrequest.go new file mode 100644 index 0000000000..4be34a6d38 --- /dev/null +++ b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_baselineebsbandwidthmbpsrequest.go @@ -0,0 +1,40 @@ +package autoscaling + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// AutoScalingGroup_BaselineEbsBandwidthMbpsRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-baselineebsbandwidthmbpsrequest.html +type AutoScalingGroup_BaselineEbsBandwidthMbpsRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-baselineebsbandwidthmbpsrequest.html#cfn-autoscaling-autoscalinggroup-baselineebsbandwidthmbpsrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-baselineebsbandwidthmbpsrequest.html#cfn-autoscaling-autoscalinggroup-baselineebsbandwidthmbpsrequest-min + Min int `json:"Min,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 *AutoScalingGroup_BaselineEbsBandwidthMbpsRequest) AWSCloudFormationType() string { + return "AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest" +} diff --git a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_instancerequirements.go b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_instancerequirements.go new file mode 100644 index 0000000000..b64c6e2302 --- /dev/null +++ b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_instancerequirements.go @@ -0,0 +1,135 @@ +package autoscaling + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// AutoScalingGroup_InstanceRequirements AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.InstanceRequirements) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html +type AutoScalingGroup_InstanceRequirements struct { + + // AcceleratorCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-acceleratorcount + AcceleratorCount *AutoScalingGroup_AcceleratorCountRequest `json:"AcceleratorCount,omitempty"` + + // AcceleratorManufacturers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-acceleratormanufacturers + AcceleratorManufacturers []string `json:"AcceleratorManufacturers,omitempty"` + + // AcceleratorNames AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-acceleratornames + AcceleratorNames []string `json:"AcceleratorNames,omitempty"` + + // AcceleratorTotalMemoryMiB AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-acceleratortotalmemorymib + AcceleratorTotalMemoryMiB *AutoScalingGroup_AcceleratorTotalMemoryMiBRequest `json:"AcceleratorTotalMemoryMiB,omitempty"` + + // AcceleratorTypes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-acceleratortypes + AcceleratorTypes []string `json:"AcceleratorTypes,omitempty"` + + // BareMetal AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-baremetal + BareMetal string `json:"BareMetal,omitempty"` + + // BaselineEbsBandwidthMbps AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-baselineebsbandwidthmbps + BaselineEbsBandwidthMbps *AutoScalingGroup_BaselineEbsBandwidthMbpsRequest `json:"BaselineEbsBandwidthMbps,omitempty"` + + // BurstablePerformance AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-burstableperformance + BurstablePerformance string `json:"BurstablePerformance,omitempty"` + + // CpuManufacturers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-cpumanufacturers + CpuManufacturers []string `json:"CpuManufacturers,omitempty"` + + // ExcludedInstanceTypes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-excludedinstancetypes + ExcludedInstanceTypes []string `json:"ExcludedInstanceTypes,omitempty"` + + // InstanceGenerations AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-instancegenerations + InstanceGenerations []string `json:"InstanceGenerations,omitempty"` + + // LocalStorage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-localstorage + LocalStorage string `json:"LocalStorage,omitempty"` + + // LocalStorageTypes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-localstoragetypes + LocalStorageTypes []string `json:"LocalStorageTypes,omitempty"` + + // MemoryGiBPerVCpu AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-memorygibpervcpu + MemoryGiBPerVCpu *AutoScalingGroup_MemoryGiBPerVCpuRequest `json:"MemoryGiBPerVCpu,omitempty"` + + // MemoryMiB AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-memorymib + MemoryMiB *AutoScalingGroup_MemoryMiBRequest `json:"MemoryMiB,omitempty"` + + // NetworkInterfaceCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-networkinterfacecount + NetworkInterfaceCount *AutoScalingGroup_NetworkInterfaceCountRequest `json:"NetworkInterfaceCount,omitempty"` + + // OnDemandMaxPricePercentageOverLowestPrice AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-ondemandmaxpricepercentageoverlowestprice + OnDemandMaxPricePercentageOverLowestPrice int `json:"OnDemandMaxPricePercentageOverLowestPrice,omitempty"` + + // RequireHibernateSupport AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-requirehibernatesupport + RequireHibernateSupport bool `json:"RequireHibernateSupport,omitempty"` + + // SpotMaxPricePercentageOverLowestPrice AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-spotmaxpricepercentageoverlowestprice + SpotMaxPricePercentageOverLowestPrice int `json:"SpotMaxPricePercentageOverLowestPrice,omitempty"` + + // TotalLocalStorageGB AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-totallocalstoragegb + TotalLocalStorageGB *AutoScalingGroup_TotalLocalStorageGBRequest `json:"TotalLocalStorageGB,omitempty"` + + // VCpuCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-vcpucount + VCpuCount *AutoScalingGroup_VCpuCountRequest `json:"VCpuCount,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 *AutoScalingGroup_InstanceRequirements) AWSCloudFormationType() string { + return "AWS::AutoScaling::AutoScalingGroup.InstanceRequirements" +} diff --git a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go index b2f88a0e36..69663a59f4 100644 --- a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go +++ b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go @@ -8,6 +8,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplateoverrides.html type AutoScalingGroup_LaunchTemplateOverrides struct { + // InstanceRequirements AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplateoverrides.html#cfn-as-mixedinstancespolicy-instancerequirements + InstanceRequirements *AutoScalingGroup_InstanceRequirements `json:"InstanceRequirements,omitempty"` + // InstanceType AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplateoverrides.html#cfn-autoscaling-autoscalinggroup-launchtemplateoverrides-instancetype diff --git a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_memorygibpervcpurequest.go b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_memorygibpervcpurequest.go new file mode 100644 index 0000000000..804e34bcb2 --- /dev/null +++ b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_memorygibpervcpurequest.go @@ -0,0 +1,40 @@ +package autoscaling + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// AutoScalingGroup_MemoryGiBPerVCpuRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorygibpervcpurequest.html +type AutoScalingGroup_MemoryGiBPerVCpuRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorygibpervcpurequest.html#cfn-autoscaling-autoscalinggroup-memorygibpervcpurequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorygibpervcpurequest.html#cfn-autoscaling-autoscalinggroup-memorygibpervcpurequest-min + Min int `json:"Min,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 *AutoScalingGroup_MemoryGiBPerVCpuRequest) AWSCloudFormationType() string { + return "AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest" +} diff --git a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_memorymibrequest.go b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_memorymibrequest.go new file mode 100644 index 0000000000..3ff71046f3 --- /dev/null +++ b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_memorymibrequest.go @@ -0,0 +1,40 @@ +package autoscaling + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// AutoScalingGroup_MemoryMiBRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorymibrequest.html +type AutoScalingGroup_MemoryMiBRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorymibrequest.html#cfn-autoscaling-autoscalinggroup-memorymibrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorymibrequest.html#cfn-autoscaling-autoscalinggroup-memorymibrequest-min + Min int `json:"Min,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 *AutoScalingGroup_MemoryMiBRequest) AWSCloudFormationType() string { + return "AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest" +} diff --git a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_networkinterfacecountrequest.go b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_networkinterfacecountrequest.go new file mode 100644 index 0000000000..bc5c488762 --- /dev/null +++ b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_networkinterfacecountrequest.go @@ -0,0 +1,40 @@ +package autoscaling + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// AutoScalingGroup_NetworkInterfaceCountRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-networkinterfacecountrequest.html +type AutoScalingGroup_NetworkInterfaceCountRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-networkinterfacecountrequest.html#cfn-autoscaling-autoscalinggroup-networkinterfacecountrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-networkinterfacecountrequest.html#cfn-autoscaling-autoscalinggroup-networkinterfacecountrequest-min + Min int `json:"Min,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 *AutoScalingGroup_NetworkInterfaceCountRequest) AWSCloudFormationType() string { + return "AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest" +} diff --git a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_totallocalstoragegbrequest.go b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_totallocalstoragegbrequest.go new file mode 100644 index 0000000000..c85100cc74 --- /dev/null +++ b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_totallocalstoragegbrequest.go @@ -0,0 +1,40 @@ +package autoscaling + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// AutoScalingGroup_TotalLocalStorageGBRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-totallocalstoragegbrequest.html +type AutoScalingGroup_TotalLocalStorageGBRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-totallocalstoragegbrequest.html#cfn-autoscaling-autoscalinggroup-totallocalstoragegbrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-totallocalstoragegbrequest.html#cfn-autoscaling-autoscalinggroup-totallocalstoragegbrequest-min + Min int `json:"Min,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 *AutoScalingGroup_TotalLocalStorageGBRequest) AWSCloudFormationType() string { + return "AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest" +} diff --git a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_vcpucountrequest.go b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_vcpucountrequest.go new file mode 100644 index 0000000000..77257e5101 --- /dev/null +++ b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_vcpucountrequest.go @@ -0,0 +1,40 @@ +package autoscaling + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// AutoScalingGroup_VCpuCountRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-vcpucountrequest.html +type AutoScalingGroup_VCpuCountRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-vcpucountrequest.html#cfn-autoscaling-autoscalinggroup-vcpucountrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-vcpucountrequest.html#cfn-autoscaling-autoscalinggroup-vcpucountrequest-min + Min int `json:"Min,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 *AutoScalingGroup_VCpuCountRequest) AWSCloudFormationType() string { + return "AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest" +} diff --git a/cloudformation/autoscaling/aws-autoscaling-lifecyclehook.go b/cloudformation/autoscaling/aws-autoscaling-lifecyclehook.go index 8c1b8bc76e..c70c0e74bd 100644 --- a/cloudformation/autoscaling/aws-autoscaling-lifecyclehook.go +++ b/cloudformation/autoscaling/aws-autoscaling-lifecyclehook.go @@ -9,47 +9,47 @@ import ( ) // LifecycleHook AWS CloudFormation Resource (AWS::AutoScaling::LifecycleHook) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html type LifecycleHook struct { // AutoScalingGroupName AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-as-lifecyclehook-autoscalinggroupname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-autoscalinggroupname AutoScalingGroupName string `json:"AutoScalingGroupName,omitempty"` // DefaultResult AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-as-lifecyclehook-defaultresult + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-defaultresult DefaultResult string `json:"DefaultResult,omitempty"` // HeartbeatTimeout AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-as-lifecyclehook-heartbeattimeout + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-heartbeattimeout HeartbeatTimeout int `json:"HeartbeatTimeout,omitempty"` // LifecycleHookName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-autoscaling-lifecyclehook-lifecyclehookname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-lifecyclehookname LifecycleHookName string `json:"LifecycleHookName,omitempty"` // LifecycleTransition AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-as-lifecyclehook-lifecycletransition + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-lifecycletransition LifecycleTransition string `json:"LifecycleTransition,omitempty"` // NotificationMetadata AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-as-lifecyclehook-notificationmetadata + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-notificationmetadata NotificationMetadata string `json:"NotificationMetadata,omitempty"` // NotificationTargetARN AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-as-lifecyclehook-notificationtargetarn + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-notificationtargetarn NotificationTargetARN string `json:"NotificationTargetARN,omitempty"` // RoleARN AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#cfn-as-lifecyclehook-rolearn + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-rolearn RoleARN string `json:"RoleARN,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/backup/aws-backup-backupselection_backupselectionresourcetype.go b/cloudformation/backup/aws-backup-backupselection_backupselectionresourcetype.go index 7f37030287..c98fbfeb2b 100644 --- a/cloudformation/backup/aws-backup-backupselection_backupselectionresourcetype.go +++ b/cloudformation/backup/aws-backup-backupselection_backupselectionresourcetype.go @@ -8,6 +8,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html type BackupSelection_BackupSelectionResourceType struct { + // Conditions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html#cfn-backup-backupselection-backupselectionresourcetype-conditions + Conditions interface{} `json:"Conditions,omitempty"` + // IamRoleArn AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html#cfn-backup-backupselection-backupselectionresourcetype-iamrolearn @@ -18,6 +23,11 @@ type BackupSelection_BackupSelectionResourceType struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html#cfn-backup-backupselection-backupselectionresourcetype-listoftags ListOfTags []BackupSelection_ConditionResourceType `json:"ListOfTags,omitempty"` + // NotResources AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html#cfn-backup-backupselection-backupselectionresourcetype-notresources + NotResources []string `json:"NotResources,omitempty"` + // Resources AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html#cfn-backup-backupselection-backupselectionresourcetype-resources diff --git a/cloudformation/batch/aws-batch-computeenvironment.go b/cloudformation/batch/aws-batch-computeenvironment.go index 751239e119..c47990989b 100644 --- a/cloudformation/batch/aws-batch-computeenvironment.go +++ b/cloudformation/batch/aws-batch-computeenvironment.go @@ -42,6 +42,11 @@ type ComputeEnvironment struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-type Type string `json:"Type,omitempty"` + // UnmanagedvCpus AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-unmanagedvcpus + UnmanagedvCpus int `json:"UnmanagedvCpus,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/batch/aws-batch-jobdefinition.go b/cloudformation/batch/aws-batch-jobdefinition.go index 400d0d2e36..edb2024764 100644 --- a/cloudformation/batch/aws-batch-jobdefinition.go +++ b/cloudformation/batch/aws-batch-jobdefinition.go @@ -47,6 +47,11 @@ type JobDefinition struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-retrystrategy RetryStrategy *JobDefinition_RetryStrategy `json:"RetryStrategy,omitempty"` + // SchedulingPriority AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-schedulingpriority + SchedulingPriority int `json:"SchedulingPriority,omitempty"` + // Tags AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-tags diff --git a/cloudformation/batch/aws-batch-jobqueue.go b/cloudformation/batch/aws-batch-jobqueue.go index bf4a8a61b6..d5e0810fed 100644 --- a/cloudformation/batch/aws-batch-jobqueue.go +++ b/cloudformation/batch/aws-batch-jobqueue.go @@ -27,6 +27,11 @@ type JobQueue struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-priority Priority int `json:"Priority"` + // SchedulingPolicyArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-schedulingpolicyarn + SchedulingPolicyArn string `json:"SchedulingPolicyArn,omitempty"` + // State AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-state diff --git a/cloudformation/batch/aws-batch-schedulingpolicy.go b/cloudformation/batch/aws-batch-schedulingpolicy.go new file mode 100644 index 0000000000..e08ebbabc1 --- /dev/null +++ b/cloudformation/batch/aws-batch-schedulingpolicy.go @@ -0,0 +1,116 @@ +package batch + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// SchedulingPolicy AWS CloudFormation Resource (AWS::Batch::SchedulingPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html +type SchedulingPolicy struct { + + // FairsharePolicy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html#cfn-batch-schedulingpolicy-fairsharepolicy + FairsharePolicy *SchedulingPolicy_FairsharePolicy `json:"FairsharePolicy,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html#cfn-batch-schedulingpolicy-name + Name string `json:"Name,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html#cfn-batch-schedulingpolicy-tags + Tags map[string]string `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 *SchedulingPolicy) AWSCloudFormationType() string { + return "AWS::Batch::SchedulingPolicy" +} + +// 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 SchedulingPolicy) MarshalJSON() ([]byte, error) { + type Properties SchedulingPolicy + 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 *SchedulingPolicy) UnmarshalJSON(b []byte) error { + type Properties SchedulingPolicy + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = SchedulingPolicy(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/batch/aws-batch-schedulingpolicy_fairsharepolicy.go b/cloudformation/batch/aws-batch-schedulingpolicy_fairsharepolicy.go new file mode 100644 index 0000000000..b590172879 --- /dev/null +++ b/cloudformation/batch/aws-batch-schedulingpolicy_fairsharepolicy.go @@ -0,0 +1,45 @@ +package batch + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// SchedulingPolicy_FairsharePolicy AWS CloudFormation Resource (AWS::Batch::SchedulingPolicy.FairsharePolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-fairsharepolicy.html +type SchedulingPolicy_FairsharePolicy struct { + + // ComputeReservation AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-fairsharepolicy.html#cfn-batch-schedulingpolicy-fairsharepolicy-computereservation + ComputeReservation float64 `json:"ComputeReservation,omitempty"` + + // ShareDecaySeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-fairsharepolicy.html#cfn-batch-schedulingpolicy-fairsharepolicy-sharedecayseconds + ShareDecaySeconds float64 `json:"ShareDecaySeconds,omitempty"` + + // ShareDistribution AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-fairsharepolicy.html#cfn-batch-schedulingpolicy-fairsharepolicy-sharedistribution + ShareDistribution []SchedulingPolicy_ShareAttributes `json:"ShareDistribution,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 *SchedulingPolicy_FairsharePolicy) AWSCloudFormationType() string { + return "AWS::Batch::SchedulingPolicy.FairsharePolicy" +} diff --git a/cloudformation/batch/aws-batch-schedulingpolicy_shareattributes.go b/cloudformation/batch/aws-batch-schedulingpolicy_shareattributes.go new file mode 100644 index 0000000000..936a08d548 --- /dev/null +++ b/cloudformation/batch/aws-batch-schedulingpolicy_shareattributes.go @@ -0,0 +1,40 @@ +package batch + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// SchedulingPolicy_ShareAttributes AWS CloudFormation Resource (AWS::Batch::SchedulingPolicy.ShareAttributes) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-shareattributes.html +type SchedulingPolicy_ShareAttributes struct { + + // ShareIdentifier AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-shareattributes.html#cfn-batch-schedulingpolicy-shareattributes-shareidentifier + ShareIdentifier string `json:"ShareIdentifier,omitempty"` + + // WeightFactor AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-shareattributes.html#cfn-batch-schedulingpolicy-shareattributes-weightfactor + WeightFactor float64 `json:"WeightFactor,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 *SchedulingPolicy_ShareAttributes) AWSCloudFormationType() string { + return "AWS::Batch::SchedulingPolicy.ShareAttributes" +} diff --git a/cloudformation/budgets/aws-budgets-budgetsaction.go b/cloudformation/budgets/aws-budgets-budgetsaction.go index b8537c590b..1caf7e89af 100644 --- a/cloudformation/budgets/aws-budgets-budgetsaction.go +++ b/cloudformation/budgets/aws-budgets-budgetsaction.go @@ -48,7 +48,7 @@ type BudgetsAction struct { NotificationType string `json:"NotificationType,omitempty"` // Subscribers AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budgetsaction.html#cfn-budgets-budgetsaction-subscribers Subscribers []BudgetsAction_Subscriber `json:"Subscribers,omitempty"` diff --git a/cloudformation/cassandra/aws-cassandra-table.go b/cloudformation/cassandra/aws-cassandra-table.go index 6db314e050..3cd6b8af77 100644 --- a/cloudformation/cassandra/aws-cassandra-table.go +++ b/cloudformation/cassandra/aws-cassandra-table.go @@ -23,6 +23,11 @@ type Table struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-clusteringkeycolumns ClusteringKeyColumns []Table_ClusteringKeyColumn `json:"ClusteringKeyColumns,omitempty"` + // DefaultTimeToLive AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-defaulttimetolive + DefaultTimeToLive int `json:"DefaultTimeToLive,omitempty"` + // EncryptionSpecification AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-encryptionspecification diff --git a/cloudformation/cloudfront/aws-cloudfront-distribution_cachebehavior.go b/cloudformation/cloudfront/aws-cloudfront-distribution_cachebehavior.go index de9fd3bd15..9461664c7e 100644 --- a/cloudformation/cloudfront/aws-cloudfront-distribution_cachebehavior.go +++ b/cloudformation/cloudfront/aws-cloudfront-distribution_cachebehavior.go @@ -78,6 +78,11 @@ type Distribution_CacheBehavior struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-realtimelogconfigarn RealtimeLogConfigArn string `json:"RealtimeLogConfigArn,omitempty"` + // ResponseHeadersPolicyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-responseheaderspolicyid + ResponseHeadersPolicyId string `json:"ResponseHeadersPolicyId,omitempty"` + // SmoothStreaming AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-smoothstreaming diff --git a/cloudformation/cloudfront/aws-cloudfront-distribution_defaultcachebehavior.go b/cloudformation/cloudfront/aws-cloudfront-distribution_defaultcachebehavior.go index 913c5b9df0..cb731a8a4a 100644 --- a/cloudformation/cloudfront/aws-cloudfront-distribution_defaultcachebehavior.go +++ b/cloudformation/cloudfront/aws-cloudfront-distribution_defaultcachebehavior.go @@ -73,6 +73,11 @@ type Distribution_DefaultCacheBehavior struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-realtimelogconfigarn RealtimeLogConfigArn string `json:"RealtimeLogConfigArn,omitempty"` + // ResponseHeadersPolicyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-responseheaderspolicyid + ResponseHeadersPolicyId string `json:"ResponseHeadersPolicyId,omitempty"` + // SmoothStreaming AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-smoothstreaming diff --git a/cloudformation/cloudfront/aws-cloudfront-function.go b/cloudformation/cloudfront/aws-cloudfront-function.go index c0f94c8cbf..407ecd1ba6 100644 --- a/cloudformation/cloudfront/aws-cloudfront-function.go +++ b/cloudformation/cloudfront/aws-cloudfront-function.go @@ -27,11 +27,6 @@ type Function struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-function.html#cfn-cloudfront-function-functionconfig FunctionConfig *Function_FunctionConfig `json:"FunctionConfig,omitempty"` - // FunctionMetadata AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-function.html#cfn-cloudfront-function-functionmetadata - FunctionMetadata *Function_FunctionMetadata `json:"FunctionMetadata,omitempty"` - // Name AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-function.html#cfn-cloudfront-function-name diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy.go new file mode 100644 index 0000000000..6ed0b0b7d3 --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy.go @@ -0,0 +1,106 @@ +package cloudfront + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-responseheaderspolicy.html +type ResponseHeadersPolicy struct { + + // ResponseHeadersPolicyConfig AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-responseheaderspolicy.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig + ResponseHeadersPolicyConfig *ResponseHeadersPolicy_ResponseHeadersPolicyConfig `json:"ResponseHeadersPolicyConfig,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 *ResponseHeadersPolicy) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy" +} + +// 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 ResponseHeadersPolicy) MarshalJSON() ([]byte, error) { + type Properties ResponseHeadersPolicy + 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 *ResponseHeadersPolicy) UnmarshalJSON(b []byte) error { + type Properties ResponseHeadersPolicy + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = ResponseHeadersPolicy(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolallowheaders.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolallowheaders.go new file mode 100644 index 0000000000..5c448908f0 --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolallowheaders.go @@ -0,0 +1,35 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy_AccessControlAllowHeaders AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolallowheaders.html +type ResponseHeadersPolicy_AccessControlAllowHeaders struct { + + // Items AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolallowheaders.html#cfn-cloudfront-responseheaderspolicy-accesscontrolallowheaders-items + Items []string `json:"Items,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 *ResponseHeadersPolicy_AccessControlAllowHeaders) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolallowmethods.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolallowmethods.go new file mode 100644 index 0000000000..b7be2efc40 --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolallowmethods.go @@ -0,0 +1,35 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy_AccessControlAllowMethods AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolallowmethods.html +type ResponseHeadersPolicy_AccessControlAllowMethods struct { + + // Items AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolallowmethods.html#cfn-cloudfront-responseheaderspolicy-accesscontrolallowmethods-items + Items []string `json:"Items,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 *ResponseHeadersPolicy_AccessControlAllowMethods) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolalloworigins.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolalloworigins.go new file mode 100644 index 0000000000..6128f2f938 --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolalloworigins.go @@ -0,0 +1,35 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy_AccessControlAllowOrigins AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolalloworigins.html +type ResponseHeadersPolicy_AccessControlAllowOrigins struct { + + // Items AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolalloworigins.html#cfn-cloudfront-responseheaderspolicy-accesscontrolalloworigins-items + Items []string `json:"Items,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 *ResponseHeadersPolicy_AccessControlAllowOrigins) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolexposeheaders.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolexposeheaders.go new file mode 100644 index 0000000000..944e352c0f --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolexposeheaders.go @@ -0,0 +1,35 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy_AccessControlExposeHeaders AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolexposeheaders.html +type ResponseHeadersPolicy_AccessControlExposeHeaders struct { + + // Items AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolexposeheaders.html#cfn-cloudfront-responseheaderspolicy-accesscontrolexposeheaders-items + Items []string `json:"Items,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 *ResponseHeadersPolicy_AccessControlExposeHeaders) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_contentsecuritypolicy.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_contentsecuritypolicy.go new file mode 100644 index 0000000000..5e1c85c2be --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_contentsecuritypolicy.go @@ -0,0 +1,40 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy_ContentSecurityPolicy AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contentsecuritypolicy.html +type ResponseHeadersPolicy_ContentSecurityPolicy struct { + + // ContentSecurityPolicy AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contentsecuritypolicy.html#cfn-cloudfront-responseheaderspolicy-contentsecuritypolicy-contentsecuritypolicy + ContentSecurityPolicy string `json:"ContentSecurityPolicy,omitempty"` + + // Override AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contentsecuritypolicy.html#cfn-cloudfront-responseheaderspolicy-contentsecuritypolicy-override + Override bool `json:"Override"` + + // 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 *ResponseHeadersPolicy_ContentSecurityPolicy) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_contenttypeoptions.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_contenttypeoptions.go new file mode 100644 index 0000000000..d49053793a --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_contenttypeoptions.go @@ -0,0 +1,35 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy_ContentTypeOptions AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contenttypeoptions.html +type ResponseHeadersPolicy_ContentTypeOptions struct { + + // Override AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contenttypeoptions.html#cfn-cloudfront-responseheaderspolicy-contenttypeoptions-override + Override bool `json:"Override"` + + // 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 *ResponseHeadersPolicy_ContentTypeOptions) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_corsconfig.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_corsconfig.go new file mode 100644 index 0000000000..032de6ab0f --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_corsconfig.go @@ -0,0 +1,65 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy_CorsConfig AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.CorsConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html +type ResponseHeadersPolicy_CorsConfig struct { + + // AccessControlAllowCredentials AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html#cfn-cloudfront-responseheaderspolicy-corsconfig-accesscontrolallowcredentials + AccessControlAllowCredentials bool `json:"AccessControlAllowCredentials"` + + // AccessControlAllowHeaders AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html#cfn-cloudfront-responseheaderspolicy-corsconfig-accesscontrolallowheaders + AccessControlAllowHeaders *ResponseHeadersPolicy_AccessControlAllowHeaders `json:"AccessControlAllowHeaders,omitempty"` + + // AccessControlAllowMethods AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html#cfn-cloudfront-responseheaderspolicy-corsconfig-accesscontrolallowmethods + AccessControlAllowMethods *ResponseHeadersPolicy_AccessControlAllowMethods `json:"AccessControlAllowMethods,omitempty"` + + // AccessControlAllowOrigins AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html#cfn-cloudfront-responseheaderspolicy-corsconfig-accesscontrolalloworigins + AccessControlAllowOrigins *ResponseHeadersPolicy_AccessControlAllowOrigins `json:"AccessControlAllowOrigins,omitempty"` + + // AccessControlExposeHeaders AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html#cfn-cloudfront-responseheaderspolicy-corsconfig-accesscontrolexposeheaders + AccessControlExposeHeaders *ResponseHeadersPolicy_AccessControlExposeHeaders `json:"AccessControlExposeHeaders,omitempty"` + + // AccessControlMaxAgeSec AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html#cfn-cloudfront-responseheaderspolicy-corsconfig-accesscontrolmaxagesec + AccessControlMaxAgeSec int `json:"AccessControlMaxAgeSec,omitempty"` + + // OriginOverride AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html#cfn-cloudfront-responseheaderspolicy-corsconfig-originoverride + OriginOverride bool `json:"OriginOverride"` + + // 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 *ResponseHeadersPolicy_CorsConfig) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.CorsConfig" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_customheader.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_customheader.go new file mode 100644 index 0000000000..80adeaddb3 --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_customheader.go @@ -0,0 +1,45 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy_CustomHeader AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.CustomHeader) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheader.html +type ResponseHeadersPolicy_CustomHeader struct { + + // Header AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheader.html#cfn-cloudfront-responseheaderspolicy-customheader-header + Header string `json:"Header,omitempty"` + + // Override AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheader.html#cfn-cloudfront-responseheaderspolicy-customheader-override + Override bool `json:"Override"` + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheader.html#cfn-cloudfront-responseheaderspolicy-customheader-value + Value string `json:"Value,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 *ResponseHeadersPolicy_CustomHeader) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.CustomHeader" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_customheadersconfig.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_customheadersconfig.go new file mode 100644 index 0000000000..460d30d409 --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_customheadersconfig.go @@ -0,0 +1,35 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy_CustomHeadersConfig AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheadersconfig.html +type ResponseHeadersPolicy_CustomHeadersConfig struct { + + // Items AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheadersconfig.html#cfn-cloudfront-responseheaderspolicy-customheadersconfig-items + Items []ResponseHeadersPolicy_CustomHeader `json:"Items,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 *ResponseHeadersPolicy_CustomHeadersConfig) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_frameoptions.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_frameoptions.go new file mode 100644 index 0000000000..9299d6a852 --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_frameoptions.go @@ -0,0 +1,40 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy_FrameOptions AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.FrameOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-frameoptions.html +type ResponseHeadersPolicy_FrameOptions struct { + + // FrameOption AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-frameoptions.html#cfn-cloudfront-responseheaderspolicy-frameoptions-frameoption + FrameOption string `json:"FrameOption,omitempty"` + + // Override AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-frameoptions.html#cfn-cloudfront-responseheaderspolicy-frameoptions-override + Override bool `json:"Override"` + + // 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 *ResponseHeadersPolicy_FrameOptions) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.FrameOptions" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_referrerpolicy.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_referrerpolicy.go new file mode 100644 index 0000000000..5f36311ed0 --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_referrerpolicy.go @@ -0,0 +1,40 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy_ReferrerPolicy AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-referrerpolicy.html +type ResponseHeadersPolicy_ReferrerPolicy struct { + + // Override AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-referrerpolicy.html#cfn-cloudfront-responseheaderspolicy-referrerpolicy-override + Override bool `json:"Override"` + + // ReferrerPolicy AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-referrerpolicy.html#cfn-cloudfront-responseheaderspolicy-referrerpolicy-referrerpolicy + ReferrerPolicy string `json:"ReferrerPolicy,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 *ResponseHeadersPolicy_ReferrerPolicy) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_responseheaderspolicyconfig.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_responseheaderspolicyconfig.go new file mode 100644 index 0000000000..b398274023 --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_responseheaderspolicyconfig.go @@ -0,0 +1,55 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy_ResponseHeadersPolicyConfig AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html +type ResponseHeadersPolicy_ResponseHeadersPolicyConfig struct { + + // Comment AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-comment + Comment string `json:"Comment,omitempty"` + + // CorsConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-corsconfig + CorsConfig *ResponseHeadersPolicy_CorsConfig `json:"CorsConfig,omitempty"` + + // CustomHeadersConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-customheadersconfig + CustomHeadersConfig *ResponseHeadersPolicy_CustomHeadersConfig `json:"CustomHeadersConfig,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-name + Name string `json:"Name,omitempty"` + + // SecurityHeadersConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-securityheadersconfig + SecurityHeadersConfig *ResponseHeadersPolicy_SecurityHeadersConfig `json:"SecurityHeadersConfig,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 *ResponseHeadersPolicy_ResponseHeadersPolicyConfig) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_securityheadersconfig.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_securityheadersconfig.go new file mode 100644 index 0000000000..36071b1fac --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_securityheadersconfig.go @@ -0,0 +1,60 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy_SecurityHeadersConfig AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html +type ResponseHeadersPolicy_SecurityHeadersConfig struct { + + // ContentSecurityPolicy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html#cfn-cloudfront-responseheaderspolicy-securityheadersconfig-contentsecuritypolicy + ContentSecurityPolicy *ResponseHeadersPolicy_ContentSecurityPolicy `json:"ContentSecurityPolicy,omitempty"` + + // ContentTypeOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html#cfn-cloudfront-responseheaderspolicy-securityheadersconfig-contenttypeoptions + ContentTypeOptions *ResponseHeadersPolicy_ContentTypeOptions `json:"ContentTypeOptions,omitempty"` + + // FrameOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html#cfn-cloudfront-responseheaderspolicy-securityheadersconfig-frameoptions + FrameOptions *ResponseHeadersPolicy_FrameOptions `json:"FrameOptions,omitempty"` + + // ReferrerPolicy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html#cfn-cloudfront-responseheaderspolicy-securityheadersconfig-referrerpolicy + ReferrerPolicy *ResponseHeadersPolicy_ReferrerPolicy `json:"ReferrerPolicy,omitempty"` + + // StrictTransportSecurity AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html#cfn-cloudfront-responseheaderspolicy-securityheadersconfig-stricttransportsecurity + StrictTransportSecurity *ResponseHeadersPolicy_StrictTransportSecurity `json:"StrictTransportSecurity,omitempty"` + + // XSSProtection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html#cfn-cloudfront-responseheaderspolicy-securityheadersconfig-xssprotection + XSSProtection *ResponseHeadersPolicy_XSSProtection `json:"XSSProtection,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 *ResponseHeadersPolicy_SecurityHeadersConfig) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_stricttransportsecurity.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_stricttransportsecurity.go new file mode 100644 index 0000000000..9e3840f290 --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_stricttransportsecurity.go @@ -0,0 +1,50 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy_StrictTransportSecurity AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-stricttransportsecurity.html +type ResponseHeadersPolicy_StrictTransportSecurity struct { + + // AccessControlMaxAgeSec AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-stricttransportsecurity.html#cfn-cloudfront-responseheaderspolicy-stricttransportsecurity-accesscontrolmaxagesec + AccessControlMaxAgeSec int `json:"AccessControlMaxAgeSec"` + + // IncludeSubdomains AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-stricttransportsecurity.html#cfn-cloudfront-responseheaderspolicy-stricttransportsecurity-includesubdomains + IncludeSubdomains bool `json:"IncludeSubdomains,omitempty"` + + // Override AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-stricttransportsecurity.html#cfn-cloudfront-responseheaderspolicy-stricttransportsecurity-override + Override bool `json:"Override"` + + // Preload AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-stricttransportsecurity.html#cfn-cloudfront-responseheaderspolicy-stricttransportsecurity-preload + Preload bool `json:"Preload,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 *ResponseHeadersPolicy_StrictTransportSecurity) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_xssprotection.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_xssprotection.go new file mode 100644 index 0000000000..538dc1a44e --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_xssprotection.go @@ -0,0 +1,50 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResponseHeadersPolicy_XSSProtection AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.XSSProtection) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-xssprotection.html +type ResponseHeadersPolicy_XSSProtection struct { + + // ModeBlock AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-xssprotection.html#cfn-cloudfront-responseheaderspolicy-xssprotection-modeblock + ModeBlock bool `json:"ModeBlock,omitempty"` + + // Override AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-xssprotection.html#cfn-cloudfront-responseheaderspolicy-xssprotection-override + Override bool `json:"Override"` + + // Protection AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-xssprotection.html#cfn-cloudfront-responseheaderspolicy-xssprotection-protection + Protection bool `json:"Protection"` + + // ReportUri AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-xssprotection.html#cfn-cloudfront-responseheaderspolicy-xssprotection-reporturi + ReportUri string `json:"ReportUri,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 *ResponseHeadersPolicy_XSSProtection) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.XSSProtection" +} diff --git a/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector.go b/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector.go index 2468e3f911..f930a72ebc 100644 --- a/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector.go +++ b/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector.go @@ -23,17 +23,17 @@ type AnomalyDetector struct { Dimensions []AnomalyDetector_Dimension `json:"Dimensions,omitempty"` // MetricName AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-metricname MetricName string `json:"MetricName,omitempty"` // Namespace AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-namespace Namespace string `json:"Namespace,omitempty"` // Stat AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-stat Stat string `json:"Stat,omitempty"` diff --git a/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metric.go b/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metric.go new file mode 100644 index 0000000000..9fce640498 --- /dev/null +++ b/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metric.go @@ -0,0 +1,45 @@ +package cloudwatch + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// AnomalyDetector_Metric AWS CloudFormation Resource (AWS::CloudWatch::AnomalyDetector.Metric) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metric.html +type AnomalyDetector_Metric struct { + + // Dimensions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metric.html#cfn-cloudwatch-anomalydetector-metric-dimensions + Dimensions []AnomalyDetector_Dimension `json:"Dimensions,omitempty"` + + // MetricName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metric.html#cfn-cloudwatch-anomalydetector-metric-metricname + MetricName string `json:"MetricName,omitempty"` + + // Namespace AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metric.html#cfn-cloudwatch-anomalydetector-metric-namespace + Namespace string `json:"Namespace,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 *AnomalyDetector_Metric) AWSCloudFormationType() string { + return "AWS::CloudWatch::AnomalyDetector.Metric" +} diff --git a/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricdataqueries.go b/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricdataqueries.go new file mode 100644 index 0000000000..bb067adf3f --- /dev/null +++ b/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricdataqueries.go @@ -0,0 +1,30 @@ +package cloudwatch + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// AnomalyDetector_MetricDataQueries AWS CloudFormation Resource (AWS::CloudWatch::AnomalyDetector.MetricDataQueries) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataqueries.html +type AnomalyDetector_MetricDataQueries struct { + + // 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 *AnomalyDetector_MetricDataQueries) AWSCloudFormationType() string { + return "AWS::CloudWatch::AnomalyDetector.MetricDataQueries" +} diff --git a/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricdataquery.go b/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricdataquery.go new file mode 100644 index 0000000000..1d43a96ef8 --- /dev/null +++ b/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricdataquery.go @@ -0,0 +1,65 @@ +package cloudwatch + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// AnomalyDetector_MetricDataQuery AWS CloudFormation Resource (AWS::CloudWatch::AnomalyDetector.MetricDataQuery) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html +type AnomalyDetector_MetricDataQuery struct { + + // AccountId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html#cfn-cloudwatch-anomalydetector-metricdataquery-accountid + AccountId string `json:"AccountId,omitempty"` + + // Expression AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html#cfn-cloudwatch-anomalydetector-metricdataquery-expression + Expression string `json:"Expression,omitempty"` + + // Id AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html#cfn-cloudwatch-anomalydetector-metricdataquery-id + Id string `json:"Id,omitempty"` + + // Label AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html#cfn-cloudwatch-anomalydetector-metricdataquery-label + Label string `json:"Label,omitempty"` + + // MetricStat AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html#cfn-cloudwatch-anomalydetector-metricdataquery-metricstat + MetricStat *AnomalyDetector_MetricStat `json:"MetricStat,omitempty"` + + // Period AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html#cfn-cloudwatch-anomalydetector-metricdataquery-period + Period int `json:"Period,omitempty"` + + // ReturnData AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html#cfn-cloudwatch-anomalydetector-metricdataquery-returndata + ReturnData bool `json:"ReturnData,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 *AnomalyDetector_MetricDataQuery) AWSCloudFormationType() string { + return "AWS::CloudWatch::AnomalyDetector.MetricDataQuery" +} diff --git a/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricstat.go b/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricstat.go new file mode 100644 index 0000000000..7efd40387b --- /dev/null +++ b/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricstat.go @@ -0,0 +1,50 @@ +package cloudwatch + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// AnomalyDetector_MetricStat AWS CloudFormation Resource (AWS::CloudWatch::AnomalyDetector.MetricStat) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricstat.html +type AnomalyDetector_MetricStat struct { + + // Metric AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricstat.html#cfn-cloudwatch-anomalydetector-metricstat-metric + Metric *AnomalyDetector_Metric `json:"Metric,omitempty"` + + // Period AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricstat.html#cfn-cloudwatch-anomalydetector-metricstat-period + Period int `json:"Period"` + + // Stat AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricstat.html#cfn-cloudwatch-anomalydetector-metricstat-stat + Stat string `json:"Stat,omitempty"` + + // Unit AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricstat.html#cfn-cloudwatch-anomalydetector-metricstat-unit + Unit string `json:"Unit,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 *AnomalyDetector_MetricStat) AWSCloudFormationType() string { + return "AWS::CloudWatch::AnomalyDetector.MetricStat" +} diff --git a/cloudformation/codebuild/aws-codebuild-project_projectbuildbatchconfig.go b/cloudformation/codebuild/aws-codebuild-project_projectbuildbatchconfig.go index b4b39d3120..a32931950b 100644 --- a/cloudformation/codebuild/aws-codebuild-project_projectbuildbatchconfig.go +++ b/cloudformation/codebuild/aws-codebuild-project_projectbuildbatchconfig.go @@ -8,6 +8,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectbuildbatchconfig.html type Project_ProjectBuildBatchConfig struct { + // BatchReportMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectbuildbatchconfig.html#cfn-codebuild-project-projectbuildbatchconfig-batchreportmode + BatchReportMode string `json:"BatchReportMode,omitempty"` + // CombineArtifacts AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectbuildbatchconfig.html#cfn-codebuild-project-projectbuildbatchconfig-combineartifacts diff --git a/cloudformation/codestarnotifications/aws-codestarnotifications-notificationrule.go b/cloudformation/codestarnotifications/aws-codestarnotifications-notificationrule.go index 769922c740..4055b2468f 100644 --- a/cloudformation/codestarnotifications/aws-codestarnotifications-notificationrule.go +++ b/cloudformation/codestarnotifications/aws-codestarnotifications-notificationrule.go @@ -12,11 +12,21 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html type NotificationRule struct { + // CreatedBy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-createdby + CreatedBy string `json:"CreatedBy,omitempty"` + // DetailType AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-detailtype DetailType string `json:"DetailType,omitempty"` + // EventTypeId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-eventtypeid + EventTypeId string `json:"EventTypeId,omitempty"` + // EventTypeIds AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-eventtypeids @@ -42,6 +52,11 @@ type NotificationRule struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-tags Tags interface{} `json:"Tags,omitempty"` + // TargetAddress AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-targetaddress + TargetAddress string `json:"TargetAddress,omitempty"` + // Targets AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-targets diff --git a/cloudformation/connect/aws-connect-hoursofoperation.go b/cloudformation/connect/aws-connect-hoursofoperation.go new file mode 100644 index 0000000000..3033c1b538 --- /dev/null +++ b/cloudformation/connect/aws-connect-hoursofoperation.go @@ -0,0 +1,132 @@ +package connect + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// HoursOfOperation AWS CloudFormation Resource (AWS::Connect::HoursOfOperation) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html +type HoursOfOperation struct { + + // Config AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html#cfn-connect-hoursofoperation-config + Config []HoursOfOperation_HoursOfOperationConfig `json:"Config,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html#cfn-connect-hoursofoperation-description + Description string `json:"Description,omitempty"` + + // InstanceArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html#cfn-connect-hoursofoperation-instancearn + InstanceArn string `json:"InstanceArn,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html#cfn-connect-hoursofoperation-name + Name string `json:"Name,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html#cfn-connect-hoursofoperation-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // TimeZone AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html#cfn-connect-hoursofoperation-timezone + TimeZone string `json:"TimeZone,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 *HoursOfOperation) AWSCloudFormationType() string { + return "AWS::Connect::HoursOfOperation" +} + +// 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 HoursOfOperation) MarshalJSON() ([]byte, error) { + type Properties HoursOfOperation + 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 *HoursOfOperation) UnmarshalJSON(b []byte) error { + type Properties HoursOfOperation + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = HoursOfOperation(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/connect/aws-connect-hoursofoperation_hoursofoperationconfig.go b/cloudformation/connect/aws-connect-hoursofoperation_hoursofoperationconfig.go new file mode 100644 index 0000000000..d13d5265d6 --- /dev/null +++ b/cloudformation/connect/aws-connect-hoursofoperation_hoursofoperationconfig.go @@ -0,0 +1,45 @@ +package connect + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// HoursOfOperation_HoursOfOperationConfig AWS CloudFormation Resource (AWS::Connect::HoursOfOperation.HoursOfOperationConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationconfig.html +type HoursOfOperation_HoursOfOperationConfig struct { + + // Day AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationconfig.html#cfn-connect-hoursofoperation-hoursofoperationconfig-day + Day string `json:"Day,omitempty"` + + // EndTime AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationconfig.html#cfn-connect-hoursofoperation-hoursofoperationconfig-endtime + EndTime *HoursOfOperation_HoursOfOperationTimeSlice `json:"EndTime,omitempty"` + + // StartTime AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationconfig.html#cfn-connect-hoursofoperation-hoursofoperationconfig-starttime + StartTime *HoursOfOperation_HoursOfOperationTimeSlice `json:"StartTime,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 *HoursOfOperation_HoursOfOperationConfig) AWSCloudFormationType() string { + return "AWS::Connect::HoursOfOperation.HoursOfOperationConfig" +} diff --git a/cloudformation/connect/aws-connect-hoursofoperation_hoursofoperationtimeslice.go b/cloudformation/connect/aws-connect-hoursofoperation_hoursofoperationtimeslice.go new file mode 100644 index 0000000000..73dfefc3bc --- /dev/null +++ b/cloudformation/connect/aws-connect-hoursofoperation_hoursofoperationtimeslice.go @@ -0,0 +1,40 @@ +package connect + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// HoursOfOperation_HoursOfOperationTimeSlice AWS CloudFormation Resource (AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationtimeslice.html +type HoursOfOperation_HoursOfOperationTimeSlice struct { + + // Hours AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationtimeslice.html#cfn-connect-hoursofoperation-hoursofoperationtimeslice-hours + Hours int `json:"Hours"` + + // Minutes AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationtimeslice.html#cfn-connect-hoursofoperation-hoursofoperationtimeslice-minutes + Minutes int `json:"Minutes"` + + // 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 *HoursOfOperation_HoursOfOperationTimeSlice) AWSCloudFormationType() string { + return "AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice" +} diff --git a/cloudformation/connect/aws-connect-user.go b/cloudformation/connect/aws-connect-user.go new file mode 100644 index 0000000000..47256eea54 --- /dev/null +++ b/cloudformation/connect/aws-connect-user.go @@ -0,0 +1,152 @@ +package connect + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// User AWS CloudFormation Resource (AWS::Connect::User) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html +type User struct { + + // DirectoryUserId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-directoryuserid + DirectoryUserId string `json:"DirectoryUserId,omitempty"` + + // HierarchyGroupArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-hierarchygrouparn + HierarchyGroupArn string `json:"HierarchyGroupArn,omitempty"` + + // IdentityInfo AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-identityinfo + IdentityInfo *User_UserIdentityInfo `json:"IdentityInfo,omitempty"` + + // InstanceArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-instancearn + InstanceArn string `json:"InstanceArn,omitempty"` + + // Password AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-password + Password string `json:"Password,omitempty"` + + // PhoneConfig AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-phoneconfig + PhoneConfig *User_UserPhoneConfig `json:"PhoneConfig,omitempty"` + + // RoutingProfileArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-routingprofilearn + RoutingProfileArn string `json:"RoutingProfileArn,omitempty"` + + // SecurityProfileArns AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-securityprofilearns + SecurityProfileArns []string `json:"SecurityProfileArns,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // Username AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-username + Username string `json:"Username,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 *User) AWSCloudFormationType() string { + return "AWS::Connect::User" +} + +// 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 User) MarshalJSON() ([]byte, error) { + type Properties User + 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 *User) UnmarshalJSON(b []byte) error { + type Properties User + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = User(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/connect/aws-connect-user_useridentityinfo.go b/cloudformation/connect/aws-connect-user_useridentityinfo.go new file mode 100644 index 0000000000..fb963741ed --- /dev/null +++ b/cloudformation/connect/aws-connect-user_useridentityinfo.go @@ -0,0 +1,45 @@ +package connect + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// User_UserIdentityInfo AWS CloudFormation Resource (AWS::Connect::User.UserIdentityInfo) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-useridentityinfo.html +type User_UserIdentityInfo struct { + + // Email AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-useridentityinfo.html#cfn-connect-user-useridentityinfo-email + Email string `json:"Email,omitempty"` + + // FirstName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-useridentityinfo.html#cfn-connect-user-useridentityinfo-firstname + FirstName string `json:"FirstName,omitempty"` + + // LastName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-useridentityinfo.html#cfn-connect-user-useridentityinfo-lastname + LastName string `json:"LastName,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 *User_UserIdentityInfo) AWSCloudFormationType() string { + return "AWS::Connect::User.UserIdentityInfo" +} diff --git a/cloudformation/connect/aws-connect-user_userphoneconfig.go b/cloudformation/connect/aws-connect-user_userphoneconfig.go new file mode 100644 index 0000000000..41896fe901 --- /dev/null +++ b/cloudformation/connect/aws-connect-user_userphoneconfig.go @@ -0,0 +1,50 @@ +package connect + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// User_UserPhoneConfig AWS CloudFormation Resource (AWS::Connect::User.UserPhoneConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-userphoneconfig.html +type User_UserPhoneConfig struct { + + // AfterContactWorkTimeLimit AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-userphoneconfig.html#cfn-connect-user-userphoneconfig-aftercontactworktimelimit + AfterContactWorkTimeLimit int `json:"AfterContactWorkTimeLimit,omitempty"` + + // AutoAccept AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-userphoneconfig.html#cfn-connect-user-userphoneconfig-autoaccept + AutoAccept bool `json:"AutoAccept,omitempty"` + + // DeskPhoneNumber AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-userphoneconfig.html#cfn-connect-user-userphoneconfig-deskphonenumber + DeskPhoneNumber string `json:"DeskPhoneNumber,omitempty"` + + // PhoneType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-userphoneconfig.html#cfn-connect-user-userphoneconfig-phonetype + PhoneType string `json:"PhoneType,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 *User_UserPhoneConfig) AWSCloudFormationType() string { + return "AWS::Connect::User.UserPhoneConfig" +} diff --git a/cloudformation/connect/aws-connect-userhierarchygroup.go b/cloudformation/connect/aws-connect-userhierarchygroup.go new file mode 100644 index 0000000000..d2f7c9928d --- /dev/null +++ b/cloudformation/connect/aws-connect-userhierarchygroup.go @@ -0,0 +1,116 @@ +package connect + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// UserHierarchyGroup AWS CloudFormation Resource (AWS::Connect::UserHierarchyGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchygroup.html +type UserHierarchyGroup struct { + + // InstanceArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchygroup.html#cfn-connect-userhierarchygroup-instancearn + InstanceArn string `json:"InstanceArn,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchygroup.html#cfn-connect-userhierarchygroup-name + Name string `json:"Name,omitempty"` + + // ParentGroupArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchygroup.html#cfn-connect-userhierarchygroup-parentgrouparn + ParentGroupArn string `json:"ParentGroupArn,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 *UserHierarchyGroup) AWSCloudFormationType() string { + return "AWS::Connect::UserHierarchyGroup" +} + +// 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 UserHierarchyGroup) MarshalJSON() ([]byte, error) { + type Properties UserHierarchyGroup + 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 *UserHierarchyGroup) UnmarshalJSON(b []byte) error { + type Properties UserHierarchyGroup + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = UserHierarchyGroup(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/datasync/aws-datasync-locationhdfs.go b/cloudformation/datasync/aws-datasync-locationhdfs.go new file mode 100644 index 0000000000..829734e608 --- /dev/null +++ b/cloudformation/datasync/aws-datasync-locationhdfs.go @@ -0,0 +1,167 @@ +package datasync + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// LocationHDFS AWS CloudFormation Resource (AWS::DataSync::LocationHDFS) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html +type LocationHDFS struct { + + // AgentArns AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-agentarns + AgentArns []string `json:"AgentArns,omitempty"` + + // AuthenticationType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-authenticationtype + AuthenticationType string `json:"AuthenticationType,omitempty"` + + // BlockSize AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-blocksize + BlockSize int `json:"BlockSize,omitempty"` + + // KerberosKeytab AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-kerberoskeytab + KerberosKeytab string `json:"KerberosKeytab,omitempty"` + + // KerberosKrb5Conf AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-kerberoskrb5conf + KerberosKrb5Conf string `json:"KerberosKrb5Conf,omitempty"` + + // KerberosPrincipal AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-kerberosprincipal + KerberosPrincipal string `json:"KerberosPrincipal,omitempty"` + + // KmsKeyProviderUri AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-kmskeyprovideruri + KmsKeyProviderUri string `json:"KmsKeyProviderUri,omitempty"` + + // NameNodes AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-namenodes + NameNodes []LocationHDFS_NameNode `json:"NameNodes,omitempty"` + + // QopConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-qopconfiguration + QopConfiguration *LocationHDFS_QopConfiguration `json:"QopConfiguration,omitempty"` + + // ReplicationFactor AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-replicationfactor + ReplicationFactor int `json:"ReplicationFactor,omitempty"` + + // SimpleUser AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-simpleuser + SimpleUser string `json:"SimpleUser,omitempty"` + + // Subdirectory AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-subdirectory + Subdirectory string `json:"Subdirectory,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-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 *LocationHDFS) AWSCloudFormationType() string { + return "AWS::DataSync::LocationHDFS" +} + +// 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 LocationHDFS) MarshalJSON() ([]byte, error) { + type Properties LocationHDFS + 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 *LocationHDFS) UnmarshalJSON(b []byte) error { + type Properties LocationHDFS + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = LocationHDFS(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/datasync/aws-datasync-locationhdfs_namenode.go b/cloudformation/datasync/aws-datasync-locationhdfs_namenode.go new file mode 100644 index 0000000000..ecbf4b9f75 --- /dev/null +++ b/cloudformation/datasync/aws-datasync-locationhdfs_namenode.go @@ -0,0 +1,40 @@ +package datasync + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// LocationHDFS_NameNode AWS CloudFormation Resource (AWS::DataSync::LocationHDFS.NameNode) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-namenode.html +type LocationHDFS_NameNode struct { + + // Hostname AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-namenode.html#cfn-datasync-locationhdfs-namenode-hostname + Hostname string `json:"Hostname,omitempty"` + + // Port AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-namenode.html#cfn-datasync-locationhdfs-namenode-port + Port int `json:"Port"` + + // 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 *LocationHDFS_NameNode) AWSCloudFormationType() string { + return "AWS::DataSync::LocationHDFS.NameNode" +} diff --git a/cloudformation/datasync/aws-datasync-locationhdfs_qopconfiguration.go b/cloudformation/datasync/aws-datasync-locationhdfs_qopconfiguration.go new file mode 100644 index 0000000000..a0826d80a3 --- /dev/null +++ b/cloudformation/datasync/aws-datasync-locationhdfs_qopconfiguration.go @@ -0,0 +1,40 @@ +package datasync + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// LocationHDFS_QopConfiguration AWS CloudFormation Resource (AWS::DataSync::LocationHDFS.QopConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-qopconfiguration.html +type LocationHDFS_QopConfiguration struct { + + // DataTransferProtection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-qopconfiguration.html#cfn-datasync-locationhdfs-qopconfiguration-datatransferprotection + DataTransferProtection string `json:"DataTransferProtection,omitempty"` + + // RpcProtection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-qopconfiguration.html#cfn-datasync-locationhdfs-qopconfiguration-rpcprotection + RpcProtection string `json:"RpcProtection,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 *LocationHDFS_QopConfiguration) AWSCloudFormationType() string { + return "AWS::DataSync::LocationHDFS.QopConfiguration" +} diff --git a/cloudformation/dms/aws-dms-endpoint.go b/cloudformation/dms/aws-dms-endpoint.go index ab99bdbf0f..a471b0e084 100644 --- a/cloudformation/dms/aws-dms-endpoint.go +++ b/cloudformation/dms/aws-dms-endpoint.go @@ -118,6 +118,11 @@ type Endpoint struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-postgresqlsettings PostgreSqlSettings *Endpoint_PostgreSqlSettings `json:"PostgreSqlSettings,omitempty"` + // RedisSettings AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-redissettings + RedisSettings *Endpoint_RedisSettings `json:"RedisSettings,omitempty"` + // RedshiftSettings AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-redshiftsettings diff --git a/cloudformation/dms/aws-dms-endpoint_kafkasettings.go b/cloudformation/dms/aws-dms-endpoint_kafkasettings.go index d870bc114c..2b7e1454e0 100644 --- a/cloudformation/dms/aws-dms-endpoint_kafkasettings.go +++ b/cloudformation/dms/aws-dms-endpoint_kafkasettings.go @@ -13,6 +13,71 @@ type Endpoint_KafkaSettings struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-broker Broker string `json:"Broker,omitempty"` + // IncludeControlDetails AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-includecontroldetails + IncludeControlDetails bool `json:"IncludeControlDetails,omitempty"` + + // IncludeNullAndEmpty AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-includenullandempty + IncludeNullAndEmpty bool `json:"IncludeNullAndEmpty,omitempty"` + + // IncludeTableAlterOperations AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-includetablealteroperations + IncludeTableAlterOperations bool `json:"IncludeTableAlterOperations,omitempty"` + + // IncludeTransactionDetails AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-includetransactiondetails + IncludeTransactionDetails bool `json:"IncludeTransactionDetails,omitempty"` + + // NoHexPrefix AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-nohexprefix + NoHexPrefix bool `json:"NoHexPrefix,omitempty"` + + // PartitionIncludeSchemaTable AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-partitionincludeschematable + PartitionIncludeSchemaTable bool `json:"PartitionIncludeSchemaTable,omitempty"` + + // SaslPassword AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-saslpassword + SaslPassword string `json:"SaslPassword,omitempty"` + + // SaslUserName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-saslusername + SaslUserName string `json:"SaslUserName,omitempty"` + + // SecurityProtocol AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-securityprotocol + SecurityProtocol string `json:"SecurityProtocol,omitempty"` + + // SslCaCertificateArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-sslcacertificatearn + SslCaCertificateArn string `json:"SslCaCertificateArn,omitempty"` + + // SslClientCertificateArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-sslclientcertificatearn + SslClientCertificateArn string `json:"SslClientCertificateArn,omitempty"` + + // SslClientKeyArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-sslclientkeyarn + SslClientKeyArn string `json:"SslClientKeyArn,omitempty"` + + // SslClientKeyPassword AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-sslclientkeypassword + SslClientKeyPassword string `json:"SslClientKeyPassword,omitempty"` + // Topic AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-topic diff --git a/cloudformation/dms/aws-dms-endpoint_kinesissettings.go b/cloudformation/dms/aws-dms-endpoint_kinesissettings.go index f9597b3063..48fd17c20c 100644 --- a/cloudformation/dms/aws-dms-endpoint_kinesissettings.go +++ b/cloudformation/dms/aws-dms-endpoint_kinesissettings.go @@ -8,11 +8,41 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html type Endpoint_KinesisSettings struct { + // IncludeControlDetails AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-includecontroldetails + IncludeControlDetails bool `json:"IncludeControlDetails,omitempty"` + + // IncludeNullAndEmpty AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-includenullandempty + IncludeNullAndEmpty bool `json:"IncludeNullAndEmpty,omitempty"` + + // IncludeTableAlterOperations AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-includetablealteroperations + IncludeTableAlterOperations bool `json:"IncludeTableAlterOperations,omitempty"` + + // IncludeTransactionDetails AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-includetransactiondetails + IncludeTransactionDetails bool `json:"IncludeTransactionDetails,omitempty"` + // MessageFormat AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-messageformat MessageFormat string `json:"MessageFormat,omitempty"` + // NoHexPrefix AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-nohexprefix + NoHexPrefix bool `json:"NoHexPrefix,omitempty"` + + // PartitionIncludeSchemaTable AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-partitionincludeschematable + PartitionIncludeSchemaTable bool `json:"PartitionIncludeSchemaTable,omitempty"` + // ServiceAccessRoleArn AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-serviceaccessrolearn diff --git a/cloudformation/dms/aws-dms-endpoint_redissettings.go b/cloudformation/dms/aws-dms-endpoint_redissettings.go new file mode 100644 index 0000000000..b340ac9bd6 --- /dev/null +++ b/cloudformation/dms/aws-dms-endpoint_redissettings.go @@ -0,0 +1,65 @@ +package dms + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Endpoint_RedisSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.RedisSettings) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html +type Endpoint_RedisSettings struct { + + // AuthPassword AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-authpassword + AuthPassword string `json:"AuthPassword,omitempty"` + + // AuthType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-authtype + AuthType string `json:"AuthType,omitempty"` + + // AuthUserName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-authusername + AuthUserName string `json:"AuthUserName,omitempty"` + + // Port AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-port + Port float64 `json:"Port,omitempty"` + + // ServerName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-servername + ServerName string `json:"ServerName,omitempty"` + + // SslCaCertificateArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-sslcacertificatearn + SslCaCertificateArn string `json:"SslCaCertificateArn,omitempty"` + + // SslSecurityProtocol AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-sslsecurityprotocol + SslSecurityProtocol string `json:"SslSecurityProtocol,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 *Endpoint_RedisSettings) AWSCloudFormationType() string { + return "AWS::DMS::Endpoint.RedisSettings" +} diff --git a/cloudformation/ec2/aws-ec2-capacityreservation.go b/cloudformation/ec2/aws-ec2-capacityreservation.go index 823a1de236..080549f8bc 100644 --- a/cloudformation/ec2/aws-ec2-capacityreservation.go +++ b/cloudformation/ec2/aws-ec2-capacityreservation.go @@ -57,6 +57,16 @@ type CapacityReservation struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-instancetype InstanceType string `json:"InstanceType,omitempty"` + // OutPostArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-outpostarn + OutPostArn string `json:"OutPostArn,omitempty"` + + // PlacementGroupArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-placementgrouparn + PlacementGroupArn string `json:"PlacementGroupArn,omitempty"` + // TagSpecifications AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-tagspecifications diff --git a/cloudformation/ec2/aws-ec2-capacityreservationfleet.go b/cloudformation/ec2/aws-ec2-capacityreservationfleet.go new file mode 100644 index 0000000000..2ebedcb667 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-capacityreservationfleet.go @@ -0,0 +1,146 @@ +package ec2 + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// CapacityReservationFleet AWS CloudFormation Resource (AWS::EC2::CapacityReservationFleet) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html +type CapacityReservationFleet struct { + + // AllocationStrategy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-allocationstrategy + AllocationStrategy string `json:"AllocationStrategy,omitempty"` + + // EndDate AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-enddate + EndDate string `json:"EndDate,omitempty"` + + // InstanceMatchCriteria AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-instancematchcriteria + InstanceMatchCriteria string `json:"InstanceMatchCriteria,omitempty"` + + // InstanceTypeSpecifications AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-instancetypespecifications + InstanceTypeSpecifications []CapacityReservationFleet_InstanceTypeSpecification `json:"InstanceTypeSpecifications,omitempty"` + + // NoRemoveEndDate AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-noremoveenddate + NoRemoveEndDate bool `json:"NoRemoveEndDate,omitempty"` + + // RemoveEndDate AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-removeenddate + RemoveEndDate bool `json:"RemoveEndDate,omitempty"` + + // TagSpecifications AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-tagspecifications + TagSpecifications []CapacityReservationFleet_TagSpecification `json:"TagSpecifications,omitempty"` + + // Tenancy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-tenancy + Tenancy string `json:"Tenancy,omitempty"` + + // TotalTargetCapacity AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-totaltargetcapacity + TotalTargetCapacity int `json:"TotalTargetCapacity,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 *CapacityReservationFleet) AWSCloudFormationType() string { + return "AWS::EC2::CapacityReservationFleet" +} + +// 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 CapacityReservationFleet) MarshalJSON() ([]byte, error) { + type Properties CapacityReservationFleet + 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 *CapacityReservationFleet) UnmarshalJSON(b []byte) error { + type Properties CapacityReservationFleet + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = CapacityReservationFleet(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/ec2/aws-ec2-capacityreservationfleet_instancetypespecification.go b/cloudformation/ec2/aws-ec2-capacityreservationfleet_instancetypespecification.go new file mode 100644 index 0000000000..128da6d3aa --- /dev/null +++ b/cloudformation/ec2/aws-ec2-capacityreservationfleet_instancetypespecification.go @@ -0,0 +1,65 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// CapacityReservationFleet_InstanceTypeSpecification AWS CloudFormation Resource (AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html +type CapacityReservationFleet_InstanceTypeSpecification struct { + + // AvailabilityZone AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html#cfn-ec2-capacityreservationfleet-instancetypespecification-availabilityzone + AvailabilityZone string `json:"AvailabilityZone,omitempty"` + + // AvailabilityZoneId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html#cfn-ec2-capacityreservationfleet-instancetypespecification-availabilityzoneid + AvailabilityZoneId string `json:"AvailabilityZoneId,omitempty"` + + // EbsOptimized AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html#cfn-ec2-capacityreservationfleet-instancetypespecification-ebsoptimized + EbsOptimized bool `json:"EbsOptimized,omitempty"` + + // InstancePlatform AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html#cfn-ec2-capacityreservationfleet-instancetypespecification-instanceplatform + InstancePlatform string `json:"InstancePlatform,omitempty"` + + // InstanceType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html#cfn-ec2-capacityreservationfleet-instancetypespecification-instancetype + InstanceType string `json:"InstanceType,omitempty"` + + // Priority AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html#cfn-ec2-capacityreservationfleet-instancetypespecification-priority + Priority int `json:"Priority,omitempty"` + + // Weight AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html#cfn-ec2-capacityreservationfleet-instancetypespecification-weight + Weight float64 `json:"Weight,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 *CapacityReservationFleet_InstanceTypeSpecification) AWSCloudFormationType() string { + return "AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification" +} diff --git a/cloudformation/ec2/aws-ec2-capacityreservationfleet_tagspecification.go b/cloudformation/ec2/aws-ec2-capacityreservationfleet_tagspecification.go new file mode 100644 index 0000000000..35a62dee32 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-capacityreservationfleet_tagspecification.go @@ -0,0 +1,41 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// CapacityReservationFleet_TagSpecification AWS CloudFormation Resource (AWS::EC2::CapacityReservationFleet.TagSpecification) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-tagspecification.html +type CapacityReservationFleet_TagSpecification struct { + + // ResourceType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-tagspecification.html#cfn-ec2-capacityreservationfleet-tagspecification-resourcetype + ResourceType string `json:"ResourceType,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-tagspecification.html#cfn-ec2-capacityreservationfleet-tagspecification-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 *CapacityReservationFleet_TagSpecification) AWSCloudFormationType() string { + return "AWS::EC2::CapacityReservationFleet.TagSpecification" +} diff --git a/cloudformation/ec2/aws-ec2-ec2fleet_acceleratorcountrequest.go b/cloudformation/ec2/aws-ec2-ec2fleet_acceleratorcountrequest.go new file mode 100644 index 0000000000..0eb2d20891 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-ec2fleet_acceleratorcountrequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// EC2Fleet_AcceleratorCountRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.AcceleratorCountRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratorcountrequest.html +type EC2Fleet_AcceleratorCountRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratorcountrequest.html#cfn-ec2-ec2fleet-acceleratorcountrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratorcountrequest.html#cfn-ec2-ec2fleet-acceleratorcountrequest-min + Min int `json:"Min,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 *EC2Fleet_AcceleratorCountRequest) AWSCloudFormationType() string { + return "AWS::EC2::EC2Fleet.AcceleratorCountRequest" +} diff --git a/cloudformation/ec2/aws-ec2-ec2fleet_acceleratortotalmemorymibrequest.go b/cloudformation/ec2/aws-ec2-ec2fleet_acceleratortotalmemorymibrequest.go new file mode 100644 index 0000000000..fffb520881 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-ec2fleet_acceleratortotalmemorymibrequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// EC2Fleet_AcceleratorTotalMemoryMiBRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratortotalmemorymibrequest.html +type EC2Fleet_AcceleratorTotalMemoryMiBRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratortotalmemorymibrequest.html#cfn-ec2-ec2fleet-acceleratortotalmemorymibrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratortotalmemorymibrequest.html#cfn-ec2-ec2fleet-acceleratortotalmemorymibrequest-min + Min int `json:"Min,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 *EC2Fleet_AcceleratorTotalMemoryMiBRequest) AWSCloudFormationType() string { + return "AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest" +} diff --git a/cloudformation/ec2/aws-ec2-ec2fleet_baselineebsbandwidthmbpsrequest.go b/cloudformation/ec2/aws-ec2-ec2fleet_baselineebsbandwidthmbpsrequest.go new file mode 100644 index 0000000000..2d646afd24 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-ec2fleet_baselineebsbandwidthmbpsrequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// EC2Fleet_BaselineEbsBandwidthMbpsRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-baselineebsbandwidthmbpsrequest.html +type EC2Fleet_BaselineEbsBandwidthMbpsRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-baselineebsbandwidthmbpsrequest.html#cfn-ec2-ec2fleet-baselineebsbandwidthmbpsrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-baselineebsbandwidthmbpsrequest.html#cfn-ec2-ec2fleet-baselineebsbandwidthmbpsrequest-min + Min int `json:"Min,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 *EC2Fleet_BaselineEbsBandwidthMbpsRequest) AWSCloudFormationType() string { + return "AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest" +} diff --git a/cloudformation/ec2/aws-ec2-ec2fleet_capacityrebalance.go b/cloudformation/ec2/aws-ec2-ec2fleet_capacityrebalance.go new file mode 100644 index 0000000000..228a25dc82 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-ec2fleet_capacityrebalance.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// EC2Fleet_CapacityRebalance AWS CloudFormation Resource (AWS::EC2::EC2Fleet.CapacityRebalance) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityrebalance.html +type EC2Fleet_CapacityRebalance struct { + + // ReplacementStrategy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityrebalance.html#cfn-ec2-ec2fleet-capacityrebalance-replacementstrategy + ReplacementStrategy string `json:"ReplacementStrategy,omitempty"` + + // TerminationDelay AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityrebalance.html#cfn-ec2-ec2fleet-capacityrebalance-terminationdelay + TerminationDelay int `json:"TerminationDelay,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 *EC2Fleet_CapacityRebalance) AWSCloudFormationType() string { + return "AWS::EC2::EC2Fleet.CapacityRebalance" +} diff --git a/cloudformation/ec2/aws-ec2-ec2fleet_fleetlaunchtemplateoverridesrequest.go b/cloudformation/ec2/aws-ec2-ec2fleet_fleetlaunchtemplateoverridesrequest.go index decd09c6f3..5c8215c58d 100644 --- a/cloudformation/ec2/aws-ec2-ec2fleet_fleetlaunchtemplateoverridesrequest.go +++ b/cloudformation/ec2/aws-ec2-ec2fleet_fleetlaunchtemplateoverridesrequest.go @@ -13,6 +13,11 @@ type EC2Fleet_FleetLaunchTemplateOverridesRequest struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest-availabilityzone AvailabilityZone string `json:"AvailabilityZone,omitempty"` + // InstanceRequirements AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest-instancerequirements + InstanceRequirements *EC2Fleet_InstanceRequirementsRequest `json:"InstanceRequirements,omitempty"` + // InstanceType AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest-instancetype diff --git a/cloudformation/ec2/aws-ec2-ec2fleet_instancerequirementsrequest.go b/cloudformation/ec2/aws-ec2-ec2fleet_instancerequirementsrequest.go new file mode 100644 index 0000000000..0d7a41e29b --- /dev/null +++ b/cloudformation/ec2/aws-ec2-ec2fleet_instancerequirementsrequest.go @@ -0,0 +1,135 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// EC2Fleet_InstanceRequirementsRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.InstanceRequirementsRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html +type EC2Fleet_InstanceRequirementsRequest struct { + + // AcceleratorCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-acceleratorcount + AcceleratorCount *EC2Fleet_AcceleratorCountRequest `json:"AcceleratorCount,omitempty"` + + // AcceleratorManufacturers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-acceleratormanufacturers + AcceleratorManufacturers []string `json:"AcceleratorManufacturers,omitempty"` + + // AcceleratorNames AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-acceleratornames + AcceleratorNames []string `json:"AcceleratorNames,omitempty"` + + // AcceleratorTotalMemoryMiB AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-acceleratortotalmemorymib + AcceleratorTotalMemoryMiB *EC2Fleet_AcceleratorTotalMemoryMiBRequest `json:"AcceleratorTotalMemoryMiB,omitempty"` + + // AcceleratorTypes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-acceleratortypes + AcceleratorTypes []string `json:"AcceleratorTypes,omitempty"` + + // BareMetal AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-baremetal + BareMetal string `json:"BareMetal,omitempty"` + + // BaselineEbsBandwidthMbps AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-baselineebsbandwidthmbps + BaselineEbsBandwidthMbps *EC2Fleet_BaselineEbsBandwidthMbpsRequest `json:"BaselineEbsBandwidthMbps,omitempty"` + + // BurstablePerformance AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-burstableperformance + BurstablePerformance string `json:"BurstablePerformance,omitempty"` + + // CpuManufacturers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-cpumanufacturers + CpuManufacturers []string `json:"CpuManufacturers,omitempty"` + + // ExcludedInstanceTypes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-excludedinstancetypes + ExcludedInstanceTypes []string `json:"ExcludedInstanceTypes,omitempty"` + + // InstanceGenerations AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-instancegenerations + InstanceGenerations []string `json:"InstanceGenerations,omitempty"` + + // LocalStorage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-localstorage + LocalStorage string `json:"LocalStorage,omitempty"` + + // LocalStorageTypes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-localstoragetypes + LocalStorageTypes []string `json:"LocalStorageTypes,omitempty"` + + // MemoryGiBPerVCpu AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-memorygibpervcpu + MemoryGiBPerVCpu *EC2Fleet_MemoryGiBPerVCpuRequest `json:"MemoryGiBPerVCpu,omitempty"` + + // MemoryMiB AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-memorymib + MemoryMiB *EC2Fleet_MemoryMiBRequest `json:"MemoryMiB,omitempty"` + + // NetworkInterfaceCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-networkinterfacecount + NetworkInterfaceCount *EC2Fleet_NetworkInterfaceCountRequest `json:"NetworkInterfaceCount,omitempty"` + + // OnDemandMaxPricePercentageOverLowestPrice AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-ondemandmaxpricepercentageoverlowestprice + OnDemandMaxPricePercentageOverLowestPrice int `json:"OnDemandMaxPricePercentageOverLowestPrice,omitempty"` + + // RequireHibernateSupport AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-requirehibernatesupport + RequireHibernateSupport bool `json:"RequireHibernateSupport,omitempty"` + + // SpotMaxPricePercentageOverLowestPrice AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-spotmaxpricepercentageoverlowestprice + SpotMaxPricePercentageOverLowestPrice int `json:"SpotMaxPricePercentageOverLowestPrice,omitempty"` + + // TotalLocalStorageGB AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-totallocalstoragegb + TotalLocalStorageGB *EC2Fleet_TotalLocalStorageGBRequest `json:"TotalLocalStorageGB,omitempty"` + + // VCpuCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-vcpucount + VCpuCount *EC2Fleet_VCpuCountRangeRequest `json:"VCpuCount,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 *EC2Fleet_InstanceRequirementsRequest) AWSCloudFormationType() string { + return "AWS::EC2::EC2Fleet.InstanceRequirementsRequest" +} diff --git a/cloudformation/ec2/aws-ec2-ec2fleet_maintenancestrategies.go b/cloudformation/ec2/aws-ec2-ec2fleet_maintenancestrategies.go new file mode 100644 index 0000000000..cf997ae52c --- /dev/null +++ b/cloudformation/ec2/aws-ec2-ec2fleet_maintenancestrategies.go @@ -0,0 +1,35 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// EC2Fleet_MaintenanceStrategies AWS CloudFormation Resource (AWS::EC2::EC2Fleet.MaintenanceStrategies) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-maintenancestrategies.html +type EC2Fleet_MaintenanceStrategies struct { + + // CapacityRebalance AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-maintenancestrategies.html#cfn-ec2-ec2fleet-maintenancestrategies-capacityrebalance + CapacityRebalance *EC2Fleet_CapacityRebalance `json:"CapacityRebalance,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 *EC2Fleet_MaintenanceStrategies) AWSCloudFormationType() string { + return "AWS::EC2::EC2Fleet.MaintenanceStrategies" +} diff --git a/cloudformation/ec2/aws-ec2-ec2fleet_memorygibpervcpurequest.go b/cloudformation/ec2/aws-ec2-ec2fleet_memorygibpervcpurequest.go new file mode 100644 index 0000000000..8bb82293b2 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-ec2fleet_memorygibpervcpurequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// EC2Fleet_MemoryGiBPerVCpuRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorygibpervcpurequest.html +type EC2Fleet_MemoryGiBPerVCpuRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorygibpervcpurequest.html#cfn-ec2-ec2fleet-memorygibpervcpurequest-max + Max float64 `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorygibpervcpurequest.html#cfn-ec2-ec2fleet-memorygibpervcpurequest-min + Min float64 `json:"Min,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 *EC2Fleet_MemoryGiBPerVCpuRequest) AWSCloudFormationType() string { + return "AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest" +} diff --git a/cloudformation/ec2/aws-ec2-ec2fleet_memorymibrequest.go b/cloudformation/ec2/aws-ec2-ec2fleet_memorymibrequest.go new file mode 100644 index 0000000000..11e9d61cf7 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-ec2fleet_memorymibrequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// EC2Fleet_MemoryMiBRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.MemoryMiBRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorymibrequest.html +type EC2Fleet_MemoryMiBRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorymibrequest.html#cfn-ec2-ec2fleet-memorymibrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorymibrequest.html#cfn-ec2-ec2fleet-memorymibrequest-min + Min int `json:"Min,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 *EC2Fleet_MemoryMiBRequest) AWSCloudFormationType() string { + return "AWS::EC2::EC2Fleet.MemoryMiBRequest" +} diff --git a/cloudformation/ec2/aws-ec2-ec2fleet_networkinterfacecountrequest.go b/cloudformation/ec2/aws-ec2-ec2fleet_networkinterfacecountrequest.go new file mode 100644 index 0000000000..f15ba07fc6 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-ec2fleet_networkinterfacecountrequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// EC2Fleet_NetworkInterfaceCountRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-networkinterfacecountrequest.html +type EC2Fleet_NetworkInterfaceCountRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-networkinterfacecountrequest.html#cfn-ec2-ec2fleet-networkinterfacecountrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-networkinterfacecountrequest.html#cfn-ec2-ec2fleet-networkinterfacecountrequest-min + Min int `json:"Min,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 *EC2Fleet_NetworkInterfaceCountRequest) AWSCloudFormationType() string { + return "AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest" +} diff --git a/cloudformation/ec2/aws-ec2-ec2fleet_spotoptionsrequest.go b/cloudformation/ec2/aws-ec2-ec2fleet_spotoptionsrequest.go index 93db916fb6..41eefd6d36 100644 --- a/cloudformation/ec2/aws-ec2-ec2fleet_spotoptionsrequest.go +++ b/cloudformation/ec2/aws-ec2-ec2fleet_spotoptionsrequest.go @@ -23,6 +23,11 @@ type EC2Fleet_SpotOptionsRequest struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-instancepoolstousecount InstancePoolsToUseCount int `json:"InstancePoolsToUseCount,omitempty"` + // MaintenanceStrategies AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-maintenancestrategies + MaintenanceStrategies *EC2Fleet_MaintenanceStrategies `json:"MaintenanceStrategies,omitempty"` + // MaxTotalPrice AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-maxtotalprice diff --git a/cloudformation/ec2/aws-ec2-ec2fleet_targetcapacityspecificationrequest.go b/cloudformation/ec2/aws-ec2-ec2fleet_targetcapacityspecificationrequest.go index a8642e87f2..232a55c534 100644 --- a/cloudformation/ec2/aws-ec2-ec2fleet_targetcapacityspecificationrequest.go +++ b/cloudformation/ec2/aws-ec2-ec2fleet_targetcapacityspecificationrequest.go @@ -23,6 +23,11 @@ type EC2Fleet_TargetCapacitySpecificationRequest struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html#cfn-ec2-ec2fleet-targetcapacityspecificationrequest-spottargetcapacity SpotTargetCapacity int `json:"SpotTargetCapacity,omitempty"` + // TargetCapacityUnitType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html#cfn-ec2-ec2fleet-targetcapacityspecificationrequest-targetcapacityunittype + TargetCapacityUnitType string `json:"TargetCapacityUnitType,omitempty"` + // TotalTargetCapacity AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html#cfn-ec2-ec2fleet-targetcapacityspecificationrequest-totaltargetcapacity diff --git a/cloudformation/ec2/aws-ec2-ec2fleet_totallocalstoragegbrequest.go b/cloudformation/ec2/aws-ec2-ec2fleet_totallocalstoragegbrequest.go new file mode 100644 index 0000000000..109aa9d3ac --- /dev/null +++ b/cloudformation/ec2/aws-ec2-ec2fleet_totallocalstoragegbrequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// EC2Fleet_TotalLocalStorageGBRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-totallocalstoragegbrequest.html +type EC2Fleet_TotalLocalStorageGBRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-totallocalstoragegbrequest.html#cfn-ec2-ec2fleet-totallocalstoragegbrequest-max + Max float64 `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-totallocalstoragegbrequest.html#cfn-ec2-ec2fleet-totallocalstoragegbrequest-min + Min float64 `json:"Min,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 *EC2Fleet_TotalLocalStorageGBRequest) AWSCloudFormationType() string { + return "AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest" +} diff --git a/cloudformation/ec2/aws-ec2-ec2fleet_vcpucountrangerequest.go b/cloudformation/ec2/aws-ec2-ec2fleet_vcpucountrangerequest.go new file mode 100644 index 0000000000..ebff930a3d --- /dev/null +++ b/cloudformation/ec2/aws-ec2-ec2fleet_vcpucountrangerequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// EC2Fleet_VCpuCountRangeRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.VCpuCountRangeRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-vcpucountrangerequest.html +type EC2Fleet_VCpuCountRangeRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-vcpucountrangerequest.html#cfn-ec2-ec2fleet-vcpucountrangerequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-vcpucountrangerequest.html#cfn-ec2-ec2fleet-vcpucountrangerequest-min + Min int `json:"Min,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 *EC2Fleet_VCpuCountRangeRequest) AWSCloudFormationType() string { + return "AWS::EC2::EC2Fleet.VCpuCountRangeRequest" +} diff --git a/cloudformation/ec2/aws-ec2-networkacl.go b/cloudformation/ec2/aws-ec2-networkacl.go index 05a3305864..5c9345d603 100644 --- a/cloudformation/ec2/aws-ec2-networkacl.go +++ b/cloudformation/ec2/aws-ec2-networkacl.go @@ -10,17 +10,17 @@ import ( ) // NetworkAcl AWS CloudFormation Resource (AWS::EC2::NetworkAcl) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkacl.html type NetworkAcl struct { // Tags AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl.html#cfn-ec2-networkacl-tags + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkacl.html#cfn-ec2-networkacl-tags Tags []tags.Tag `json:"Tags,omitempty"` // VpcId AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl.html#cfn-ec2-networkacl-vpcid + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkacl.html#cfn-ec2-networkacl-vpcid VpcId string `json:"VpcId,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/ec2/aws-ec2-networkaclentry.go b/cloudformation/ec2/aws-ec2-networkaclentry.go index 315d2a630f..6d61e8c1ab 100644 --- a/cloudformation/ec2/aws-ec2-networkaclentry.go +++ b/cloudformation/ec2/aws-ec2-networkaclentry.go @@ -9,52 +9,52 @@ import ( ) // NetworkAclEntry AWS CloudFormation Resource (AWS::EC2::NetworkAclEntry) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html type NetworkAclEntry struct { // CidrBlock AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-cidrblock + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-cidrblock CidrBlock string `json:"CidrBlock,omitempty"` // Egress AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-egress + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-egress Egress bool `json:"Egress,omitempty"` // Icmp AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-icmp + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-icmp Icmp *NetworkAclEntry_Icmp `json:"Icmp,omitempty"` // Ipv6CidrBlock AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-ipv6cidrblock + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-ipv6cidrblock Ipv6CidrBlock string `json:"Ipv6CidrBlock,omitempty"` // NetworkAclId AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-networkaclid + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-networkaclid NetworkAclId string `json:"NetworkAclId,omitempty"` // PortRange AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-portrange + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-portrange PortRange *NetworkAclEntry_PortRange `json:"PortRange,omitempty"` // Protocol AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-protocol + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-protocol Protocol int `json:"Protocol"` // RuleAction AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-ruleaction + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-ruleaction RuleAction string `json:"RuleAction,omitempty"` // RuleNumber AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-acl-entry.html#cfn-ec2-networkaclentry-rulenumber + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-rulenumber RuleNumber int `json:"RuleNumber"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/ec2/aws-ec2-routetable.go b/cloudformation/ec2/aws-ec2-routetable.go index f1ef010287..fd5bab9d8e 100644 --- a/cloudformation/ec2/aws-ec2-routetable.go +++ b/cloudformation/ec2/aws-ec2-routetable.go @@ -10,17 +10,17 @@ import ( ) // RouteTable AWS CloudFormation Resource (AWS::EC2::RouteTable) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route-table.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html type RouteTable struct { // Tags AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route-table.html#cfn-ec2-routetable-tags + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html#cfn-ec2-routetable-tags Tags []tags.Tag `json:"Tags,omitempty"` // VpcId AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route-table.html#cfn-ec2-routetable-vpcid + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html#cfn-ec2-routetable-vpcid VpcId string `json:"VpcId,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/ec2/aws-ec2-spotfleet_acceleratorcountrequest.go b/cloudformation/ec2/aws-ec2-spotfleet_acceleratorcountrequest.go new file mode 100644 index 0000000000..acbe979929 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-spotfleet_acceleratorcountrequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// SpotFleet_AcceleratorCountRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.AcceleratorCountRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratorcountrequest.html +type SpotFleet_AcceleratorCountRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratorcountrequest.html#cfn-ec2-spotfleet-acceleratorcountrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratorcountrequest.html#cfn-ec2-spotfleet-acceleratorcountrequest-min + Min int `json:"Min,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 *SpotFleet_AcceleratorCountRequest) AWSCloudFormationType() string { + return "AWS::EC2::SpotFleet.AcceleratorCountRequest" +} diff --git a/cloudformation/ec2/aws-ec2-spotfleet_acceleratortotalmemorymibrequest.go b/cloudformation/ec2/aws-ec2-spotfleet_acceleratortotalmemorymibrequest.go new file mode 100644 index 0000000000..48e9bff6bd --- /dev/null +++ b/cloudformation/ec2/aws-ec2-spotfleet_acceleratortotalmemorymibrequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// SpotFleet_AcceleratorTotalMemoryMiBRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest.html +type SpotFleet_AcceleratorTotalMemoryMiBRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest.html#cfn-ec2-spotfleet-acceleratortotalmemorymibrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest.html#cfn-ec2-spotfleet-acceleratortotalmemorymibrequest-min + Min int `json:"Min,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 *SpotFleet_AcceleratorTotalMemoryMiBRequest) AWSCloudFormationType() string { + return "AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest" +} diff --git a/cloudformation/ec2/aws-ec2-spotfleet_baselineebsbandwidthmbpsrequest.go b/cloudformation/ec2/aws-ec2-spotfleet_baselineebsbandwidthmbpsrequest.go new file mode 100644 index 0000000000..9acfa081e1 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-spotfleet_baselineebsbandwidthmbpsrequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// SpotFleet_BaselineEbsBandwidthMbpsRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest.html +type SpotFleet_BaselineEbsBandwidthMbpsRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest.html#cfn-ec2-spotfleet-baselineebsbandwidthmbpsrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest.html#cfn-ec2-spotfleet-baselineebsbandwidthmbpsrequest-min + Min int `json:"Min,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 *SpotFleet_BaselineEbsBandwidthMbpsRequest) AWSCloudFormationType() string { + return "AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest" +} diff --git a/cloudformation/ec2/aws-ec2-spotfleet_instancerequirementsrequest.go b/cloudformation/ec2/aws-ec2-spotfleet_instancerequirementsrequest.go new file mode 100644 index 0000000000..afb2a777ab --- /dev/null +++ b/cloudformation/ec2/aws-ec2-spotfleet_instancerequirementsrequest.go @@ -0,0 +1,135 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// SpotFleet_InstanceRequirementsRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.InstanceRequirementsRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html +type SpotFleet_InstanceRequirementsRequest struct { + + // AcceleratorCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratorcount + AcceleratorCount *SpotFleet_AcceleratorCountRequest `json:"AcceleratorCount,omitempty"` + + // AcceleratorManufacturers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratormanufacturers + AcceleratorManufacturers []string `json:"AcceleratorManufacturers,omitempty"` + + // AcceleratorNames AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratornames + AcceleratorNames []string `json:"AcceleratorNames,omitempty"` + + // AcceleratorTotalMemoryMiB AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratortotalmemorymib + AcceleratorTotalMemoryMiB *SpotFleet_AcceleratorTotalMemoryMiBRequest `json:"AcceleratorTotalMemoryMiB,omitempty"` + + // AcceleratorTypes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratortypes + AcceleratorTypes []string `json:"AcceleratorTypes,omitempty"` + + // BareMetal AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-baremetal + BareMetal string `json:"BareMetal,omitempty"` + + // BaselineEbsBandwidthMbps AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-baselineebsbandwidthmbps + BaselineEbsBandwidthMbps *SpotFleet_BaselineEbsBandwidthMbpsRequest `json:"BaselineEbsBandwidthMbps,omitempty"` + + // BurstablePerformance AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-burstableperformance + BurstablePerformance string `json:"BurstablePerformance,omitempty"` + + // CpuManufacturers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-cpumanufacturers + CpuManufacturers []string `json:"CpuManufacturers,omitempty"` + + // ExcludedInstanceTypes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-excludedinstancetypes + ExcludedInstanceTypes []string `json:"ExcludedInstanceTypes,omitempty"` + + // InstanceGenerations AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-instancegenerations + InstanceGenerations []string `json:"InstanceGenerations,omitempty"` + + // LocalStorage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-localstorage + LocalStorage string `json:"LocalStorage,omitempty"` + + // LocalStorageTypes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-localstoragetypes + LocalStorageTypes []string `json:"LocalStorageTypes,omitempty"` + + // MemoryGiBPerVCpu AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-memorygibpervcpu + MemoryGiBPerVCpu *SpotFleet_MemoryGiBPerVCpuRequest `json:"MemoryGiBPerVCpu,omitempty"` + + // MemoryMiB AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-memorymib + MemoryMiB *SpotFleet_MemoryMiBRequest `json:"MemoryMiB,omitempty"` + + // NetworkInterfaceCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-networkinterfacecount + NetworkInterfaceCount *SpotFleet_NetworkInterfaceCountRequest `json:"NetworkInterfaceCount,omitempty"` + + // OnDemandMaxPricePercentageOverLowestPrice AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-ondemandmaxpricepercentageoverlowestprice + OnDemandMaxPricePercentageOverLowestPrice int `json:"OnDemandMaxPricePercentageOverLowestPrice,omitempty"` + + // RequireHibernateSupport AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-requirehibernatesupport + RequireHibernateSupport bool `json:"RequireHibernateSupport,omitempty"` + + // SpotMaxPricePercentageOverLowestPrice AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-spotmaxpricepercentageoverlowestprice + SpotMaxPricePercentageOverLowestPrice int `json:"SpotMaxPricePercentageOverLowestPrice,omitempty"` + + // TotalLocalStorageGB AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-totallocalstoragegb + TotalLocalStorageGB *SpotFleet_TotalLocalStorageGBRequest `json:"TotalLocalStorageGB,omitempty"` + + // VCpuCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-vcpucount + VCpuCount *SpotFleet_VCpuCountRangeRequest `json:"VCpuCount,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 *SpotFleet_InstanceRequirementsRequest) AWSCloudFormationType() string { + return "AWS::EC2::SpotFleet.InstanceRequirementsRequest" +} diff --git a/cloudformation/ec2/aws-ec2-spotfleet_launchtemplateoverrides.go b/cloudformation/ec2/aws-ec2-spotfleet_launchtemplateoverrides.go index 925be321a0..7ac022fde1 100644 --- a/cloudformation/ec2/aws-ec2-spotfleet_launchtemplateoverrides.go +++ b/cloudformation/ec2/aws-ec2-spotfleet_launchtemplateoverrides.go @@ -13,6 +13,11 @@ type SpotFleet_LaunchTemplateOverrides struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateoverrides.html#cfn-ec2-spotfleet-launchtemplateoverrides-availabilityzone AvailabilityZone string `json:"AvailabilityZone,omitempty"` + // InstanceRequirements AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateoverrides.html#cfn-ec2-spotfleet-launchtemplateoverrides-instancerequirements + InstanceRequirements *SpotFleet_InstanceRequirementsRequest `json:"InstanceRequirements,omitempty"` + // InstanceType AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateoverrides.html#cfn-ec2-spotfleet-launchtemplateoverrides-instancetype diff --git a/cloudformation/ec2/aws-ec2-spotfleet_memorygibpervcpurequest.go b/cloudformation/ec2/aws-ec2-spotfleet_memorygibpervcpurequest.go new file mode 100644 index 0000000000..de2ea705e6 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-spotfleet_memorygibpervcpurequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// SpotFleet_MemoryGiBPerVCpuRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorygibpervcpurequest.html +type SpotFleet_MemoryGiBPerVCpuRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorygibpervcpurequest.html#cfn-ec2-spotfleet-memorygibpervcpurequest-max + Max float64 `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorygibpervcpurequest.html#cfn-ec2-spotfleet-memorygibpervcpurequest-min + Min float64 `json:"Min,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 *SpotFleet_MemoryGiBPerVCpuRequest) AWSCloudFormationType() string { + return "AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest" +} diff --git a/cloudformation/ec2/aws-ec2-spotfleet_memorymibrequest.go b/cloudformation/ec2/aws-ec2-spotfleet_memorymibrequest.go new file mode 100644 index 0000000000..3351abd20f --- /dev/null +++ b/cloudformation/ec2/aws-ec2-spotfleet_memorymibrequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// SpotFleet_MemoryMiBRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.MemoryMiBRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorymibrequest.html +type SpotFleet_MemoryMiBRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorymibrequest.html#cfn-ec2-spotfleet-memorymibrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorymibrequest.html#cfn-ec2-spotfleet-memorymibrequest-min + Min int `json:"Min,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 *SpotFleet_MemoryMiBRequest) AWSCloudFormationType() string { + return "AWS::EC2::SpotFleet.MemoryMiBRequest" +} diff --git a/cloudformation/ec2/aws-ec2-spotfleet_networkinterfacecountrequest.go b/cloudformation/ec2/aws-ec2-spotfleet_networkinterfacecountrequest.go new file mode 100644 index 0000000000..1044fad6ba --- /dev/null +++ b/cloudformation/ec2/aws-ec2-spotfleet_networkinterfacecountrequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// SpotFleet_NetworkInterfaceCountRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.NetworkInterfaceCountRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-networkinterfacecountrequest.html +type SpotFleet_NetworkInterfaceCountRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-networkinterfacecountrequest.html#cfn-ec2-spotfleet-networkinterfacecountrequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-networkinterfacecountrequest.html#cfn-ec2-spotfleet-networkinterfacecountrequest-min + Min int `json:"Min,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 *SpotFleet_NetworkInterfaceCountRequest) AWSCloudFormationType() string { + return "AWS::EC2::SpotFleet.NetworkInterfaceCountRequest" +} diff --git a/cloudformation/ec2/aws-ec2-spotfleet_spotcapacityrebalance.go b/cloudformation/ec2/aws-ec2-spotfleet_spotcapacityrebalance.go index f9530cce8b..a8dc873a2e 100644 --- a/cloudformation/ec2/aws-ec2-spotfleet_spotcapacityrebalance.go +++ b/cloudformation/ec2/aws-ec2-spotfleet_spotcapacityrebalance.go @@ -13,6 +13,11 @@ type SpotFleet_SpotCapacityRebalance struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotcapacityrebalance.html#cfn-ec2-spotfleet-spotcapacityrebalance-replacementstrategy ReplacementStrategy string `json:"ReplacementStrategy,omitempty"` + // TerminationDelay AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotcapacityrebalance.html#cfn-ec2-spotfleet-spotcapacityrebalance-terminationdelay + TerminationDelay int `json:"TerminationDelay,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/ec2/aws-ec2-spotfleet_spotfleetlaunchspecification.go b/cloudformation/ec2/aws-ec2-spotfleet_spotfleetlaunchspecification.go index 84b6f2d267..47a8c852f7 100644 --- a/cloudformation/ec2/aws-ec2-spotfleet_spotfleetlaunchspecification.go +++ b/cloudformation/ec2/aws-ec2-spotfleet_spotfleetlaunchspecification.go @@ -28,8 +28,13 @@ type SpotFleet_SpotFleetLaunchSpecification struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-imageid ImageId string `json:"ImageId,omitempty"` + // InstanceRequirements AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-instancerequirements + InstanceRequirements *SpotFleet_InstanceRequirementsRequest `json:"InstanceRequirements,omitempty"` + // InstanceType AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-instancetype InstanceType string `json:"InstanceType,omitempty"` diff --git a/cloudformation/ec2/aws-ec2-spotfleet_spotfleetrequestconfigdata.go b/cloudformation/ec2/aws-ec2-spotfleet_spotfleetrequestconfigdata.go index 6a2495ebd5..e920bdebf6 100644 --- a/cloudformation/ec2/aws-ec2-spotfleet_spotfleetrequestconfigdata.go +++ b/cloudformation/ec2/aws-ec2-spotfleet_spotfleetrequestconfigdata.go @@ -93,6 +93,11 @@ type SpotFleet_SpotFleetRequestConfigData struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-targetcapacity TargetCapacity int `json:"TargetCapacity"` + // TargetCapacityUnitType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-targetcapacityunittype + TargetCapacityUnitType string `json:"TargetCapacityUnitType,omitempty"` + // TerminateInstancesWithExpiration AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-terminateinstanceswithexpiration diff --git a/cloudformation/ec2/aws-ec2-spotfleet_totallocalstoragegbrequest.go b/cloudformation/ec2/aws-ec2-spotfleet_totallocalstoragegbrequest.go new file mode 100644 index 0000000000..10b2fb8b97 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-spotfleet_totallocalstoragegbrequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// SpotFleet_TotalLocalStorageGBRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.TotalLocalStorageGBRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-totallocalstoragegbrequest.html +type SpotFleet_TotalLocalStorageGBRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-totallocalstoragegbrequest.html#cfn-ec2-spotfleet-totallocalstoragegbrequest-max + Max float64 `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-totallocalstoragegbrequest.html#cfn-ec2-spotfleet-totallocalstoragegbrequest-min + Min float64 `json:"Min,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 *SpotFleet_TotalLocalStorageGBRequest) AWSCloudFormationType() string { + return "AWS::EC2::SpotFleet.TotalLocalStorageGBRequest" +} diff --git a/cloudformation/ec2/aws-ec2-spotfleet_vcpucountrangerequest.go b/cloudformation/ec2/aws-ec2-spotfleet_vcpucountrangerequest.go new file mode 100644 index 0000000000..8739b0da55 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-spotfleet_vcpucountrangerequest.go @@ -0,0 +1,40 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// SpotFleet_VCpuCountRangeRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.VCpuCountRangeRequest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-vcpucountrangerequest.html +type SpotFleet_VCpuCountRangeRequest struct { + + // Max AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-vcpucountrangerequest.html#cfn-ec2-spotfleet-vcpucountrangerequest-max + Max int `json:"Max,omitempty"` + + // Min AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-vcpucountrangerequest.html#cfn-ec2-spotfleet-vcpucountrangerequest-min + Min int `json:"Min,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 *SpotFleet_VCpuCountRangeRequest) AWSCloudFormationType() string { + return "AWS::EC2::SpotFleet.VCpuCountRangeRequest" +} diff --git a/cloudformation/ec2/aws-ec2-transitgatewaypeeringattachment.go b/cloudformation/ec2/aws-ec2-transitgatewaypeeringattachment.go index 9d7bbb6839..5dc51471a8 100644 --- a/cloudformation/ec2/aws-ec2-transitgatewaypeeringattachment.go +++ b/cloudformation/ec2/aws-ec2-transitgatewaypeeringattachment.go @@ -13,6 +13,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html type TransitGatewayPeeringAttachment struct { + // Options AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html#cfn-ec2-transitgatewaypeeringattachment-options + Options *TransitGatewayPeeringAttachment_TransitGatewayPeeringAttachmentOptions `json:"Options,omitempty"` + // PeerAccountId AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html#cfn-ec2-transitgatewaypeeringattachment-peeraccountid diff --git a/cloudformation/ec2/aws-ec2-transitgatewaypeeringattachment_transitgatewaypeeringattachmentoptions.go b/cloudformation/ec2/aws-ec2-transitgatewaypeeringattachment_transitgatewaypeeringattachmentoptions.go new file mode 100644 index 0000000000..6b21e2b0ea --- /dev/null +++ b/cloudformation/ec2/aws-ec2-transitgatewaypeeringattachment_transitgatewaypeeringattachmentoptions.go @@ -0,0 +1,35 @@ +package ec2 + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// TransitGatewayPeeringAttachment_TransitGatewayPeeringAttachmentOptions AWS CloudFormation Resource (AWS::EC2::TransitGatewayPeeringAttachment.TransitGatewayPeeringAttachmentOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewaypeeringattachment-transitgatewaypeeringattachmentoptions.html +type TransitGatewayPeeringAttachment_TransitGatewayPeeringAttachmentOptions struct { + + // DynamicRouting AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewaypeeringattachment-transitgatewaypeeringattachmentoptions.html#cfn-ec2-transitgatewaypeeringattachment-transitgatewaypeeringattachmentoptions-dynamicrouting + DynamicRouting string `json:"DynamicRouting,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 *TransitGatewayPeeringAttachment_TransitGatewayPeeringAttachmentOptions) AWSCloudFormationType() string { + return "AWS::EC2::TransitGatewayPeeringAttachment.TransitGatewayPeeringAttachmentOptions" +} diff --git a/cloudformation/ec2/aws-ec2-vpcendpointservice.go b/cloudformation/ec2/aws-ec2-vpcendpointservice.go index d101ae35d3..514d87b9c4 100644 --- a/cloudformation/ec2/aws-ec2-vpcendpointservice.go +++ b/cloudformation/ec2/aws-ec2-vpcendpointservice.go @@ -27,6 +27,11 @@ type VPCEndpointService struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-networkloadbalancerarns NetworkLoadBalancerArns []string `json:"NetworkLoadBalancerArns,omitempty"` + // PayerResponsibility AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-payerresponsibility + PayerResponsibility string `json:"PayerResponsibility,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/ecs/aws-ecs-taskdefinition.go b/cloudformation/ecs/aws-ecs-taskdefinition.go index 15cce8ede0..1d12c63f7b 100644 --- a/cloudformation/ecs/aws-ecs-taskdefinition.go +++ b/cloudformation/ecs/aws-ecs-taskdefinition.go @@ -78,6 +78,11 @@ type TaskDefinition struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-requirescompatibilities RequiresCompatibilities []string `json:"RequiresCompatibilities,omitempty"` + // RuntimePlatform AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-runtimeplatform + RuntimePlatform *TaskDefinition_RuntimePlatform `json:"RuntimePlatform,omitempty"` + // Tags AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-tags diff --git a/cloudformation/ecs/aws-ecs-taskdefinition_runtimeplatform.go b/cloudformation/ecs/aws-ecs-taskdefinition_runtimeplatform.go new file mode 100644 index 0000000000..287471ca6b --- /dev/null +++ b/cloudformation/ecs/aws-ecs-taskdefinition_runtimeplatform.go @@ -0,0 +1,40 @@ +package ecs + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// TaskDefinition_RuntimePlatform AWS CloudFormation Resource (AWS::ECS::TaskDefinition.RuntimePlatform) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-runtimeplatform.html +type TaskDefinition_RuntimePlatform struct { + + // CpuArchitecture AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-runtimeplatform.html#cfn-ecs-taskdefinition-runtimeplatform-cpuarchitecture + CpuArchitecture string `json:"CpuArchitecture,omitempty"` + + // OperatingSystemFamily AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-runtimeplatform.html#cfn-ecs-taskdefinition-runtimeplatform-operatingsystemfamily + OperatingSystemFamily string `json:"OperatingSystemFamily,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 *TaskDefinition_RuntimePlatform) AWSCloudFormationType() string { + return "AWS::ECS::TaskDefinition.RuntimePlatform" +} diff --git a/cloudformation/eks/aws-eks-cluster.go b/cloudformation/eks/aws-eks-cluster.go index bd38e1cab3..8457f03b31 100644 --- a/cloudformation/eks/aws-eks-cluster.go +++ b/cloudformation/eks/aws-eks-cluster.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" ) // Cluster AWS CloudFormation Resource (AWS::EKS::Cluster) @@ -22,6 +23,11 @@ type Cluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-kubernetesnetworkconfig KubernetesNetworkConfig *Cluster_KubernetesNetworkConfig `json:"KubernetesNetworkConfig,omitempty"` + // Logging AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-logging + Logging *Cluster_Logging `json:"Logging,omitempty"` + // Name AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-name @@ -37,6 +43,11 @@ type Cluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-rolearn RoleArn string `json:"RoleArn,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-tags + Tags []tags.Tag `json:"Tags,omitempty"` + // Version AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-version diff --git a/cloudformation/eks/aws-eks-cluster_clusterlogging.go b/cloudformation/eks/aws-eks-cluster_clusterlogging.go new file mode 100644 index 0000000000..7044f7bf75 --- /dev/null +++ b/cloudformation/eks/aws-eks-cluster_clusterlogging.go @@ -0,0 +1,35 @@ +package eks + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Cluster_ClusterLogging AWS CloudFormation Resource (AWS::EKS::Cluster.ClusterLogging) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-clusterlogging.html +type Cluster_ClusterLogging struct { + + // EnabledTypes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-clusterlogging.html#cfn-eks-cluster-clusterlogging-enabledtypes + EnabledTypes []Cluster_LoggingTypeConfig `json:"EnabledTypes,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Cluster_ClusterLogging) AWSCloudFormationType() string { + return "AWS::EKS::Cluster.ClusterLogging" +} diff --git a/cloudformation/eks/aws-eks-cluster_encryptionconfig.go b/cloudformation/eks/aws-eks-cluster_encryptionconfig.go index 6fe6aba7d8..ca2e17f074 100644 --- a/cloudformation/eks/aws-eks-cluster_encryptionconfig.go +++ b/cloudformation/eks/aws-eks-cluster_encryptionconfig.go @@ -11,7 +11,7 @@ type Cluster_EncryptionConfig struct { // Provider AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-encryptionconfig.html#cfn-eks-cluster-encryptionconfig-provider - Provider *Cluster_Provider `json:"Provider,omitempty"` + Provider interface{} `json:"Provider,omitempty"` // Resources AWS CloudFormation Property // Required: false diff --git a/cloudformation/eks/aws-eks-cluster_logging.go b/cloudformation/eks/aws-eks-cluster_logging.go new file mode 100644 index 0000000000..4e29dad5a4 --- /dev/null +++ b/cloudformation/eks/aws-eks-cluster_logging.go @@ -0,0 +1,35 @@ +package eks + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Cluster_Logging AWS CloudFormation Resource (AWS::EKS::Cluster.Logging) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-logging.html +type Cluster_Logging struct { + + // ClusterLogging AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-logging.html#cfn-eks-cluster-logging-clusterlogging + ClusterLogging *Cluster_ClusterLogging `json:"ClusterLogging,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Cluster_Logging) AWSCloudFormationType() string { + return "AWS::EKS::Cluster.Logging" +} diff --git a/cloudformation/eks/aws-eks-cluster_loggingtypeconfig.go b/cloudformation/eks/aws-eks-cluster_loggingtypeconfig.go new file mode 100644 index 0000000000..be880ff5da --- /dev/null +++ b/cloudformation/eks/aws-eks-cluster_loggingtypeconfig.go @@ -0,0 +1,35 @@ +package eks + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Cluster_LoggingTypeConfig AWS CloudFormation Resource (AWS::EKS::Cluster.LoggingTypeConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-loggingtypeconfig.html +type Cluster_LoggingTypeConfig struct { + + // Type AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-loggingtypeconfig.html#cfn-eks-cluster-loggingtypeconfig-type + Type string `json:"Type,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Cluster_LoggingTypeConfig) AWSCloudFormationType() string { + return "AWS::EKS::Cluster.LoggingTypeConfig" +} diff --git a/cloudformation/eks/aws-eks-cluster_resourcesvpcconfig.go b/cloudformation/eks/aws-eks-cluster_resourcesvpcconfig.go index d857b16760..4e82cc3322 100644 --- a/cloudformation/eks/aws-eks-cluster_resourcesvpcconfig.go +++ b/cloudformation/eks/aws-eks-cluster_resourcesvpcconfig.go @@ -8,6 +8,21 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html type Cluster_ResourcesVpcConfig struct { + // EndpointPrivateAccess AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-endpointprivateaccess + EndpointPrivateAccess bool `json:"EndpointPrivateAccess,omitempty"` + + // EndpointPublicAccess AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-endpointpublicaccess + EndpointPublicAccess bool `json:"EndpointPublicAccess,omitempty"` + + // PublicAccessCidrs AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-publicaccesscidrs + PublicAccessCidrs []string `json:"PublicAccessCidrs,omitempty"` + // SecurityGroupIds AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-securitygroupids diff --git a/cloudformation/finspace/aws-finspace-environment.go b/cloudformation/finspace/aws-finspace-environment.go index 91904b04e1..d316d327fd 100644 --- a/cloudformation/finspace/aws-finspace-environment.go +++ b/cloudformation/finspace/aws-finspace-environment.go @@ -12,6 +12,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html type Environment struct { + // DataBundles AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html#cfn-finspace-environment-databundles + DataBundles []string `json:"DataBundles,omitempty"` + // Description AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html#cfn-finspace-environment-description @@ -37,6 +42,11 @@ type Environment struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html#cfn-finspace-environment-name Name string `json:"Name,omitempty"` + // SuperuserParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html#cfn-finspace-environment-superuserparameters + SuperuserParameters *Environment_SuperuserParameters `json:"SuperuserParameters,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/finspace/aws-finspace-environment_superuserparameters.go b/cloudformation/finspace/aws-finspace-environment_superuserparameters.go new file mode 100644 index 0000000000..37c319cbb9 --- /dev/null +++ b/cloudformation/finspace/aws-finspace-environment_superuserparameters.go @@ -0,0 +1,45 @@ +package finspace + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Environment_SuperuserParameters AWS CloudFormation Resource (AWS::FinSpace::Environment.SuperuserParameters) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-superuserparameters.html +type Environment_SuperuserParameters struct { + + // EmailAddress AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-superuserparameters.html#cfn-finspace-environment-superuserparameters-emailaddress + EmailAddress string `json:"EmailAddress,omitempty"` + + // FirstName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-superuserparameters.html#cfn-finspace-environment-superuserparameters-firstname + FirstName string `json:"FirstName,omitempty"` + + // LastName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-superuserparameters.html#cfn-finspace-environment-superuserparameters-lastname + LastName string `json:"LastName,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 *Environment_SuperuserParameters) AWSCloudFormationType() string { + return "AWS::FinSpace::Environment.SuperuserParameters" +} diff --git a/cloudformation/fms/aws-fms-policy.go b/cloudformation/fms/aws-fms-policy.go index 8a069bcf94..6593ca742c 100644 --- a/cloudformation/fms/aws-fms-policy.go +++ b/cloudformation/fms/aws-fms-policy.go @@ -57,6 +57,11 @@ type Policy struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-resourcetypelist ResourceTypeList []string `json:"ResourceTypeList,omitempty"` + // ResourcesCleanUp AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-resourcescleanup + ResourcesCleanUp bool `json:"ResourcesCleanUp,omitempty"` + // SecurityServicePolicyData AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-securityservicepolicydata diff --git a/cloudformation/fsx/aws-fsx-filesystem.go b/cloudformation/fsx/aws-fsx-filesystem.go index 348403d1fa..af3dc6528c 100644 --- a/cloudformation/fsx/aws-fsx-filesystem.go +++ b/cloudformation/fsx/aws-fsx-filesystem.go @@ -23,6 +23,11 @@ type FileSystem struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-filesystemtype FileSystemType string `json:"FileSystemType,omitempty"` + // FileSystemTypeVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-filesystemtypeversion + FileSystemTypeVersion string `json:"FileSystemTypeVersion,omitempty"` + // KmsKeyId AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-kmskeyid @@ -33,6 +38,11 @@ type FileSystem struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-lustreconfiguration LustreConfiguration *FileSystem_LustreConfiguration `json:"LustreConfiguration,omitempty"` + // OntapConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-ontapconfiguration + OntapConfiguration *FileSystem_OntapConfiguration `json:"OntapConfiguration,omitempty"` + // SecurityGroupIds AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-securitygroupids diff --git a/cloudformation/fsx/aws-fsx-filesystem_diskiopsconfiguration.go b/cloudformation/fsx/aws-fsx-filesystem_diskiopsconfiguration.go new file mode 100644 index 0000000000..f095f772db --- /dev/null +++ b/cloudformation/fsx/aws-fsx-filesystem_diskiopsconfiguration.go @@ -0,0 +1,40 @@ +package fsx + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// FileSystem_DiskIopsConfiguration AWS CloudFormation Resource (AWS::FSx::FileSystem.DiskIopsConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration-diskiopsconfiguration.html +type FileSystem_DiskIopsConfiguration struct { + + // Iops AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration-diskiopsconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-diskiopsconfiguration-iops + Iops int `json:"Iops,omitempty"` + + // Mode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration-diskiopsconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-diskiopsconfiguration-mode + Mode string `json:"Mode,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *FileSystem_DiskIopsConfiguration) AWSCloudFormationType() string { + return "AWS::FSx::FileSystem.DiskIopsConfiguration" +} diff --git a/cloudformation/fsx/aws-fsx-filesystem_ontapconfiguration.go b/cloudformation/fsx/aws-fsx-filesystem_ontapconfiguration.go new file mode 100644 index 0000000000..372ce503ea --- /dev/null +++ b/cloudformation/fsx/aws-fsx-filesystem_ontapconfiguration.go @@ -0,0 +1,80 @@ +package fsx + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// FileSystem_OntapConfiguration AWS CloudFormation Resource (AWS::FSx::FileSystem.OntapConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html +type FileSystem_OntapConfiguration struct { + + // AutomaticBackupRetentionDays AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-automaticbackupretentiondays + AutomaticBackupRetentionDays int `json:"AutomaticBackupRetentionDays,omitempty"` + + // DailyAutomaticBackupStartTime AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-dailyautomaticbackupstarttime + DailyAutomaticBackupStartTime string `json:"DailyAutomaticBackupStartTime,omitempty"` + + // DeploymentType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-deploymenttype + DeploymentType string `json:"DeploymentType,omitempty"` + + // DiskIopsConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-diskiopsconfiguration + DiskIopsConfiguration *FileSystem_DiskIopsConfiguration `json:"DiskIopsConfiguration,omitempty"` + + // EndpointIpAddressRange AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-endpointipaddressrange + EndpointIpAddressRange string `json:"EndpointIpAddressRange,omitempty"` + + // FsxAdminPassword AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-fsxadminpassword + FsxAdminPassword string `json:"FsxAdminPassword,omitempty"` + + // PreferredSubnetId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-preferredsubnetid + PreferredSubnetId string `json:"PreferredSubnetId,omitempty"` + + // RouteTableIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-routetableids + RouteTableIds []string `json:"RouteTableIds,omitempty"` + + // ThroughputCapacity AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-throughputcapacity + ThroughputCapacity int `json:"ThroughputCapacity,omitempty"` + + // WeeklyMaintenanceStartTime AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-weeklymaintenancestarttime + WeeklyMaintenanceStartTime string `json:"WeeklyMaintenanceStartTime,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 *FileSystem_OntapConfiguration) AWSCloudFormationType() string { + return "AWS::FSx::FileSystem.OntapConfiguration" +} diff --git a/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_ebsinstanceblockdevicespecification.go b/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_ebsinstanceblockdevicespecification.go index 48602b4115..3b6a419d4e 100644 --- a/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_ebsinstanceblockdevicespecification.go +++ b/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_ebsinstanceblockdevicespecification.go @@ -33,6 +33,11 @@ type ContainerRecipe_EbsInstanceBlockDeviceSpecification struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-snapshotid SnapshotId string `json:"SnapshotId,omitempty"` + // Throughput AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-throughput + Throughput int `json:"Throughput,omitempty"` + // VolumeSize AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-volumesize diff --git a/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_ebsinstanceblockdevicespecification.go b/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_ebsinstanceblockdevicespecification.go index 3c0871a025..7e8f662835 100644 --- a/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_ebsinstanceblockdevicespecification.go +++ b/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_ebsinstanceblockdevicespecification.go @@ -33,6 +33,11 @@ type ImageRecipe_EbsInstanceBlockDeviceSpecification struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-snapshotid SnapshotId string `json:"SnapshotId,omitempty"` + // Throughput AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-throughput + Throughput int `json:"Throughput,omitempty"` + // VolumeSize AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-volumesize diff --git a/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration.go b/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration.go index 811587cec8..e1524a751a 100644 --- a/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration.go +++ b/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration.go @@ -17,6 +17,11 @@ type InfrastructureConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-description Description string `json:"Description,omitempty"` + // InstanceMetadataOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions + InstanceMetadataOptions *InfrastructureConfiguration_InstanceMetadataOptions `json:"InstanceMetadataOptions,omitempty"` + // InstanceProfileName AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-instanceprofilename diff --git a/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration_instancemetadataoptions.go b/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration_instancemetadataoptions.go new file mode 100644 index 0000000000..7d87ba03e4 --- /dev/null +++ b/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration_instancemetadataoptions.go @@ -0,0 +1,40 @@ +package imagebuilder + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// InfrastructureConfiguration_InstanceMetadataOptions AWS CloudFormation Resource (AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-instancemetadataoptions.html +type InfrastructureConfiguration_InstanceMetadataOptions struct { + + // HttpPutResponseHopLimit AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-instancemetadataoptions.html#cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions-httpputresponsehoplimit + HttpPutResponseHopLimit int `json:"HttpPutResponseHopLimit,omitempty"` + + // HttpTokens AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-instancemetadataoptions.html#cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions-httptokens + HttpTokens string `json:"HttpTokens,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 *InfrastructureConfiguration_InstanceMetadataOptions) AWSCloudFormationType() string { + return "AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions" +} diff --git a/cloudformation/iot/aws-iot-jobtemplate.go b/cloudformation/iot/aws-iot-jobtemplate.go new file mode 100644 index 0000000000..f649cfba40 --- /dev/null +++ b/cloudformation/iot/aws-iot-jobtemplate.go @@ -0,0 +1,152 @@ +package iot + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// JobTemplate AWS CloudFormation Resource (AWS::IoT::JobTemplate) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html +type JobTemplate struct { + + // AbortConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-abortconfig + AbortConfig interface{} `json:"AbortConfig,omitempty"` + + // Description AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-description + Description string `json:"Description,omitempty"` + + // Document AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-document + Document string `json:"Document,omitempty"` + + // DocumentSource AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-documentsource + DocumentSource string `json:"DocumentSource,omitempty"` + + // JobArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-jobarn + JobArn string `json:"JobArn,omitempty"` + + // JobExecutionsRolloutConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-jobexecutionsrolloutconfig + JobExecutionsRolloutConfig interface{} `json:"JobExecutionsRolloutConfig,omitempty"` + + // JobTemplateId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-jobtemplateid + JobTemplateId string `json:"JobTemplateId,omitempty"` + + // PresignedUrlConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-presignedurlconfig + PresignedUrlConfig interface{} `json:"PresignedUrlConfig,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // TimeoutConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-timeoutconfig + TimeoutConfig interface{} `json:"TimeoutConfig,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 *JobTemplate) AWSCloudFormationType() string { + return "AWS::IoT::JobTemplate" +} + +// 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 JobTemplate) MarshalJSON() ([]byte, error) { + type Properties JobTemplate + 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 *JobTemplate) UnmarshalJSON(b []byte) error { + type Properties JobTemplate + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = JobTemplate(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iot/aws-iot-logging.go b/cloudformation/iot/aws-iot-logging.go new file mode 100644 index 0000000000..b119af5375 --- /dev/null +++ b/cloudformation/iot/aws-iot-logging.go @@ -0,0 +1,116 @@ +package iot + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Logging AWS CloudFormation Resource (AWS::IoT::Logging) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-logging.html +type Logging struct { + + // AccountId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-logging.html#cfn-iot-logging-accountid + AccountId string `json:"AccountId,omitempty"` + + // DefaultLogLevel AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-logging.html#cfn-iot-logging-defaultloglevel + DefaultLogLevel string `json:"DefaultLogLevel,omitempty"` + + // RoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-logging.html#cfn-iot-logging-rolearn + RoleArn string `json:"RoleArn,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 *Logging) AWSCloudFormationType() string { + return "AWS::IoT::Logging" +} + +// 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 Logging) MarshalJSON() ([]byte, error) { + type Properties Logging + 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 *Logging) UnmarshalJSON(b []byte) error { + type Properties Logging + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Logging(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iot/aws-iot-resourcespecificlogging.go b/cloudformation/iot/aws-iot-resourcespecificlogging.go new file mode 100644 index 0000000000..ca0e6ee75f --- /dev/null +++ b/cloudformation/iot/aws-iot-resourcespecificlogging.go @@ -0,0 +1,116 @@ +package iot + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResourceSpecificLogging AWS CloudFormation Resource (AWS::IoT::ResourceSpecificLogging) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-resourcespecificlogging.html +type ResourceSpecificLogging struct { + + // LogLevel AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-resourcespecificlogging.html#cfn-iot-resourcespecificlogging-loglevel + LogLevel string `json:"LogLevel,omitempty"` + + // TargetName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-resourcespecificlogging.html#cfn-iot-resourcespecificlogging-targetname + TargetName string `json:"TargetName,omitempty"` + + // TargetType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-resourcespecificlogging.html#cfn-iot-resourcespecificlogging-targettype + TargetType string `json:"TargetType,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 *ResourceSpecificLogging) AWSCloudFormationType() string { + return "AWS::IoT::ResourceSpecificLogging" +} + +// 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 ResourceSpecificLogging) MarshalJSON() ([]byte, error) { + type Properties ResourceSpecificLogging + 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 *ResourceSpecificLogging) UnmarshalJSON(b []byte) error { + type Properties ResourceSpecificLogging + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = ResourceSpecificLogging(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iotwireless/aws-iotwireless-fuotatask.go b/cloudformation/iotwireless/aws-iotwireless-fuotatask.go new file mode 100644 index 0000000000..412f93f4d0 --- /dev/null +++ b/cloudformation/iotwireless/aws-iotwireless-fuotatask.go @@ -0,0 +1,152 @@ +package iotwireless + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// FuotaTask AWS CloudFormation Resource (AWS::IoTWireless::FuotaTask) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html +type FuotaTask struct { + + // AssociateMulticastGroup AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-associatemulticastgroup + AssociateMulticastGroup string `json:"AssociateMulticastGroup,omitempty"` + + // AssociateWirelessDevice AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-associatewirelessdevice + AssociateWirelessDevice string `json:"AssociateWirelessDevice,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-description + Description string `json:"Description,omitempty"` + + // DisassociateMulticastGroup AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-disassociatemulticastgroup + DisassociateMulticastGroup string `json:"DisassociateMulticastGroup,omitempty"` + + // DisassociateWirelessDevice AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-disassociatewirelessdevice + DisassociateWirelessDevice string `json:"DisassociateWirelessDevice,omitempty"` + + // FirmwareUpdateImage AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-firmwareupdateimage + FirmwareUpdateImage string `json:"FirmwareUpdateImage,omitempty"` + + // FirmwareUpdateRole AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-firmwareupdaterole + FirmwareUpdateRole string `json:"FirmwareUpdateRole,omitempty"` + + // LoRaWAN AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-lorawan + LoRaWAN *FuotaTask_LoRaWAN `json:"LoRaWAN,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-name + Name string `json:"Name,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-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 *FuotaTask) AWSCloudFormationType() string { + return "AWS::IoTWireless::FuotaTask" +} + +// 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 FuotaTask) MarshalJSON() ([]byte, error) { + type Properties FuotaTask + 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 *FuotaTask) UnmarshalJSON(b []byte) error { + type Properties FuotaTask + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = FuotaTask(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iotwireless/aws-iotwireless-fuotatask_lorawan.go b/cloudformation/iotwireless/aws-iotwireless-fuotatask_lorawan.go new file mode 100644 index 0000000000..16a24f7453 --- /dev/null +++ b/cloudformation/iotwireless/aws-iotwireless-fuotatask_lorawan.go @@ -0,0 +1,40 @@ +package iotwireless + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// FuotaTask_LoRaWAN AWS CloudFormation Resource (AWS::IoTWireless::FuotaTask.LoRaWAN) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-fuotatask-lorawan.html +type FuotaTask_LoRaWAN struct { + + // RfRegion AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-fuotatask-lorawan.html#cfn-iotwireless-fuotatask-lorawan-rfregion + RfRegion string `json:"RfRegion,omitempty"` + + // StartTime AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-fuotatask-lorawan.html#cfn-iotwireless-fuotatask-lorawan-starttime + StartTime string `json:"StartTime,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 *FuotaTask_LoRaWAN) AWSCloudFormationType() string { + return "AWS::IoTWireless::FuotaTask.LoRaWAN" +} diff --git a/cloudformation/iotwireless/aws-iotwireless-multicastgroup.go b/cloudformation/iotwireless/aws-iotwireless-multicastgroup.go new file mode 100644 index 0000000000..3d7b533d3c --- /dev/null +++ b/cloudformation/iotwireless/aws-iotwireless-multicastgroup.go @@ -0,0 +1,132 @@ +package iotwireless + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// MulticastGroup AWS CloudFormation Resource (AWS::IoTWireless::MulticastGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html +type MulticastGroup struct { + + // AssociateWirelessDevice AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html#cfn-iotwireless-multicastgroup-associatewirelessdevice + AssociateWirelessDevice string `json:"AssociateWirelessDevice,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html#cfn-iotwireless-multicastgroup-description + Description string `json:"Description,omitempty"` + + // DisassociateWirelessDevice AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html#cfn-iotwireless-multicastgroup-disassociatewirelessdevice + DisassociateWirelessDevice string `json:"DisassociateWirelessDevice,omitempty"` + + // LoRaWAN AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html#cfn-iotwireless-multicastgroup-lorawan + LoRaWAN *MulticastGroup_LoRaWAN `json:"LoRaWAN,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html#cfn-iotwireless-multicastgroup-name + Name string `json:"Name,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html#cfn-iotwireless-multicastgroup-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 *MulticastGroup) AWSCloudFormationType() string { + return "AWS::IoTWireless::MulticastGroup" +} + +// 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 MulticastGroup) MarshalJSON() ([]byte, error) { + type Properties MulticastGroup + 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 *MulticastGroup) UnmarshalJSON(b []byte) error { + type Properties MulticastGroup + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = MulticastGroup(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iotwireless/aws-iotwireless-multicastgroup_lorawan.go b/cloudformation/iotwireless/aws-iotwireless-multicastgroup_lorawan.go new file mode 100644 index 0000000000..84078cefb8 --- /dev/null +++ b/cloudformation/iotwireless/aws-iotwireless-multicastgroup_lorawan.go @@ -0,0 +1,50 @@ +package iotwireless + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// MulticastGroup_LoRaWAN AWS CloudFormation Resource (AWS::IoTWireless::MulticastGroup.LoRaWAN) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-multicastgroup-lorawan.html +type MulticastGroup_LoRaWAN struct { + + // DlClass AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-multicastgroup-lorawan.html#cfn-iotwireless-multicastgroup-lorawan-dlclass + DlClass string `json:"DlClass,omitempty"` + + // NumberOfDevicesInGroup AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-multicastgroup-lorawan.html#cfn-iotwireless-multicastgroup-lorawan-numberofdevicesingroup + NumberOfDevicesInGroup int `json:"NumberOfDevicesInGroup,omitempty"` + + // NumberOfDevicesRequested AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-multicastgroup-lorawan.html#cfn-iotwireless-multicastgroup-lorawan-numberofdevicesrequested + NumberOfDevicesRequested int `json:"NumberOfDevicesRequested,omitempty"` + + // RfRegion AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-multicastgroup-lorawan.html#cfn-iotwireless-multicastgroup-lorawan-rfregion + RfRegion string `json:"RfRegion,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 *MulticastGroup_LoRaWAN) AWSCloudFormationType() string { + return "AWS::IoTWireless::MulticastGroup.LoRaWAN" +} diff --git a/cloudformation/lightsail/aws-lightsail-database.go b/cloudformation/lightsail/aws-lightsail-database.go new file mode 100644 index 0000000000..5ea46e9284 --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-database.go @@ -0,0 +1,177 @@ +package lightsail + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// Database AWS CloudFormation Resource (AWS::Lightsail::Database) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html +type Database struct { + + // AvailabilityZone AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-availabilityzone + AvailabilityZone string `json:"AvailabilityZone,omitempty"` + + // BackupRetention AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-backupretention + BackupRetention bool `json:"BackupRetention,omitempty"` + + // CaCertificateIdentifier AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-cacertificateidentifier + CaCertificateIdentifier string `json:"CaCertificateIdentifier,omitempty"` + + // MasterDatabaseName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-masterdatabasename + MasterDatabaseName string `json:"MasterDatabaseName,omitempty"` + + // MasterUserPassword AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-masteruserpassword + MasterUserPassword string `json:"MasterUserPassword,omitempty"` + + // MasterUsername AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-masterusername + MasterUsername string `json:"MasterUsername,omitempty"` + + // PreferredBackupWindow AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-preferredbackupwindow + PreferredBackupWindow string `json:"PreferredBackupWindow,omitempty"` + + // PreferredMaintenanceWindow AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-preferredmaintenancewindow + PreferredMaintenanceWindow string `json:"PreferredMaintenanceWindow,omitempty"` + + // PubliclyAccessible AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-publiclyaccessible + PubliclyAccessible bool `json:"PubliclyAccessible,omitempty"` + + // RelationalDatabaseBlueprintId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-relationaldatabaseblueprintid + RelationalDatabaseBlueprintId string `json:"RelationalDatabaseBlueprintId,omitempty"` + + // RelationalDatabaseBundleId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-relationaldatabasebundleid + RelationalDatabaseBundleId string `json:"RelationalDatabaseBundleId,omitempty"` + + // RelationalDatabaseName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-relationaldatabasename + RelationalDatabaseName string `json:"RelationalDatabaseName,omitempty"` + + // RelationalDatabaseParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-relationaldatabaseparameters + RelationalDatabaseParameters []Database_RelationalDatabaseParameter `json:"RelationalDatabaseParameters,omitempty"` + + // RotateMasterUserPassword AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-rotatemasteruserpassword + RotateMasterUserPassword bool `json:"RotateMasterUserPassword,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-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 *Database) AWSCloudFormationType() string { + return "AWS::Lightsail::Database" +} + +// 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 Database) MarshalJSON() ([]byte, error) { + type Properties Database + 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 *Database) UnmarshalJSON(b []byte) error { + type Properties Database + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Database(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/lightsail/aws-lightsail-database_relationaldatabaseparameter.go b/cloudformation/lightsail/aws-lightsail-database_relationaldatabaseparameter.go new file mode 100644 index 0000000000..42c565e482 --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-database_relationaldatabaseparameter.go @@ -0,0 +1,70 @@ +package lightsail + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Database_RelationalDatabaseParameter AWS CloudFormation Resource (AWS::Lightsail::Database.RelationalDatabaseParameter) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html +type Database_RelationalDatabaseParameter struct { + + // AllowedValues AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-allowedvalues + AllowedValues string `json:"AllowedValues,omitempty"` + + // ApplyMethod AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-applymethod + ApplyMethod string `json:"ApplyMethod,omitempty"` + + // ApplyType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-applytype + ApplyType string `json:"ApplyType,omitempty"` + + // DataType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-datatype + DataType string `json:"DataType,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-description + Description string `json:"Description,omitempty"` + + // IsModifiable AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-ismodifiable + IsModifiable bool `json:"IsModifiable,omitempty"` + + // ParameterName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-parametername + ParameterName string `json:"ParameterName,omitempty"` + + // ParameterValue AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-parametervalue + ParameterValue string `json:"ParameterValue,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 *Database_RelationalDatabaseParameter) AWSCloudFormationType() string { + return "AWS::Lightsail::Database.RelationalDatabaseParameter" +} diff --git a/cloudformation/lightsail/aws-lightsail-instance.go b/cloudformation/lightsail/aws-lightsail-instance.go index 7492d77940..08de79f4e8 100644 --- a/cloudformation/lightsail/aws-lightsail-instance.go +++ b/cloudformation/lightsail/aws-lightsail-instance.go @@ -43,26 +43,26 @@ type Instance struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-instancename InstanceName string `json:"InstanceName,omitempty"` - // Location AWS CloudFormation Property + // KeyPairName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-location - Location *Instance_Location `json:"Location,omitempty"` + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-keypairname + KeyPairName string `json:"KeyPairName,omitempty"` // Networking AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-networking Networking *Instance_Networking `json:"Networking,omitempty"` - // State AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-state - State *Instance_State `json:"State,omitempty"` - // Tags AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-tags Tags []tags.Tag `json:"Tags,omitempty"` + // UserData AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-userdata + UserData string `json:"UserData,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/lightsail/aws-lightsail-instance_networking.go b/cloudformation/lightsail/aws-lightsail-instance_networking.go index 60f1de7d10..d6a7a3bc89 100644 --- a/cloudformation/lightsail/aws-lightsail-instance_networking.go +++ b/cloudformation/lightsail/aws-lightsail-instance_networking.go @@ -11,7 +11,7 @@ type Instance_Networking struct { // MonthlyTransfer AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-networking.html#cfn-lightsail-instance-networking-monthlytransfer - MonthlyTransfer interface{} `json:"MonthlyTransfer,omitempty"` + MonthlyTransfer *Instance_MonthlyTransfer `json:"MonthlyTransfer,omitempty"` // Ports AWS CloudFormation Property // Required: true diff --git a/cloudformation/lightsail/aws-lightsail-staticip.go b/cloudformation/lightsail/aws-lightsail-staticip.go new file mode 100644 index 0000000000..678a199e61 --- /dev/null +++ b/cloudformation/lightsail/aws-lightsail-staticip.go @@ -0,0 +1,111 @@ +package lightsail + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// StaticIp AWS CloudFormation Resource (AWS::Lightsail::StaticIp) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-staticip.html +type StaticIp struct { + + // AttachedTo AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-staticip.html#cfn-lightsail-staticip-attachedto + AttachedTo string `json:"AttachedTo,omitempty"` + + // StaticIpName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-staticip.html#cfn-lightsail-staticip-staticipname + StaticIpName string `json:"StaticIpName,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 *StaticIp) AWSCloudFormationType() string { + return "AWS::Lightsail::StaticIp" +} + +// 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 StaticIp) MarshalJSON() ([]byte, error) { + type Properties StaticIp + 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 *StaticIp) UnmarshalJSON(b []byte) error { + type Properties StaticIp + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = StaticIp(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/location/aws-location-tracker.go b/cloudformation/location/aws-location-tracker.go index 7e6c8e0bdd..4f337fc87a 100644 --- a/cloudformation/location/aws-location-tracker.go +++ b/cloudformation/location/aws-location-tracker.go @@ -22,6 +22,11 @@ type Tracker struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-tracker.html#cfn-location-tracker-kmskeyid KmsKeyId string `json:"KmsKeyId,omitempty"` + // PositionFiltering AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-tracker.html#cfn-location-tracker-positionfiltering + PositionFiltering string `json:"PositionFiltering,omitempty"` + // PricingPlan AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-tracker.html#cfn-location-tracker-pricingplan diff --git a/cloudformation/memorydb/aws-memorydb-cluster.go b/cloudformation/memorydb/aws-memorydb-cluster.go index cedb621dc0..3eac40ca25 100644 --- a/cloudformation/memorydb/aws-memorydb-cluster.go +++ b/cloudformation/memorydb/aws-memorydb-cluster.go @@ -14,7 +14,7 @@ import ( type Cluster struct { // ACLName AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-aclname ACLName string `json:"ACLName,omitempty"` @@ -23,11 +23,6 @@ type Cluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-autominorversionupgrade AutoMinorVersionUpgrade bool `json:"AutoMinorVersionUpgrade,omitempty"` - // ClusterEndpoint AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-clusterendpoint - ClusterEndpoint *Cluster_Endpoint `json:"ClusterEndpoint,omitempty"` - // ClusterName AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-clustername @@ -59,7 +54,7 @@ type Cluster struct { MaintenanceWindow string `json:"MaintenanceWindow,omitempty"` // NodeType AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-cluster.html#cfn-memorydb-cluster-nodetype NodeType string `json:"NodeType,omitempty"` diff --git a/cloudformation/memorydb/aws-memorydb-parametergroup.go b/cloudformation/memorydb/aws-memorydb-parametergroup.go index 25a06c0c9a..5e8f586daf 100644 --- a/cloudformation/memorydb/aws-memorydb-parametergroup.go +++ b/cloudformation/memorydb/aws-memorydb-parametergroup.go @@ -19,7 +19,7 @@ type ParameterGroup struct { Description string `json:"Description,omitempty"` // Family AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-parametergroup.html#cfn-memorydb-parametergroup-family Family string `json:"Family,omitempty"` diff --git a/cloudformation/memorydb/aws-memorydb-subnetgroup.go b/cloudformation/memorydb/aws-memorydb-subnetgroup.go index 8eec33e7d9..3387b9e230 100644 --- a/cloudformation/memorydb/aws-memorydb-subnetgroup.go +++ b/cloudformation/memorydb/aws-memorydb-subnetgroup.go @@ -24,7 +24,7 @@ type SubnetGroup struct { SubnetGroupName string `json:"SubnetGroupName,omitempty"` // SubnetIds AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-memorydb-subnetgroup.html#cfn-memorydb-subnetgroup-subnetids SubnetIds []string `json:"SubnetIds,omitempty"` diff --git a/cloudformation/mwaa/aws-mwaa-environment.go b/cloudformation/mwaa/aws-mwaa-environment.go index 81d5775e47..4c917618b9 100644 --- a/cloudformation/mwaa/aws-mwaa-environment.go +++ b/cloudformation/mwaa/aws-mwaa-environment.go @@ -100,7 +100,7 @@ type Environment struct { // Tags AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mwaa-environment.html#cfn-mwaa-environment-tags - Tags *Environment_TagMap `json:"Tags,omitempty"` + Tags interface{} `json:"Tags,omitempty"` // WebserverAccessMode AWS CloudFormation Property // Required: false diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_firewallpolicy.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_firewallpolicy.go index a736d8a4f7..8a67783700 100644 --- a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_firewallpolicy.go +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_firewallpolicy.go @@ -8,6 +8,16 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-firewallpolicy.html type FirewallPolicy_FirewallPolicy struct { + // 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 + StatefulDefaultActions []string `json:"StatefulDefaultActions,omitempty"` + + // StatefulEngineOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-firewallpolicy.html#cfn-networkfirewall-firewallpolicy-firewallpolicy-statefulengineoptions + StatefulEngineOptions *FirewallPolicy_StatefulEngineOptions `json:"StatefulEngineOptions,omitempty"` + // StatefulRuleGroupReferences AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-firewallpolicy.html#cfn-networkfirewall-firewallpolicy-firewallpolicy-statefulrulegroupreferences diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statefulengineoptions.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statefulengineoptions.go new file mode 100644 index 0000000000..ca6cd304bc --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statefulengineoptions.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// FirewallPolicy_StatefulEngineOptions AWS CloudFormation Resource (AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulengineoptions.html +type FirewallPolicy_StatefulEngineOptions struct { + + // RuleOrder AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulengineoptions.html#cfn-networkfirewall-firewallpolicy-statefulengineoptions-ruleorder + RuleOrder string `json:"RuleOrder,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_StatefulEngineOptions) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions" +} diff --git a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statefulrulegroupreference.go b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statefulrulegroupreference.go index 3c90ab18f3..1e2e13d189 100644 --- a/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statefulrulegroupreference.go +++ b/cloudformation/networkfirewall/aws-networkfirewall-firewallpolicy_statefulrulegroupreference.go @@ -8,6 +8,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulrulegroupreference.html type FirewallPolicy_StatefulRuleGroupReference struct { + // Priority AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulrulegroupreference.html#cfn-networkfirewall-firewallpolicy-statefulrulegroupreference-priority + Priority int `json:"Priority,omitempty"` + // ResourceArn AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulrulegroupreference.html#cfn-networkfirewall-firewallpolicy-statefulrulegroupreference-resourcearn diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulegroup.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulegroup.go index b2cd3400bb..eaee57a194 100644 --- a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulegroup.go +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_rulegroup.go @@ -18,6 +18,11 @@ type RuleGroup_RuleGroup struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulegroup.html#cfn-networkfirewall-rulegroup-rulegroup-rulessource RulesSource *RuleGroup_RulesSource `json:"RulesSource,omitempty"` + // StatefulRuleOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulegroup.html#cfn-networkfirewall-rulegroup-rulegroup-statefulruleoptions + StatefulRuleOptions *RuleGroup_StatefulRuleOptions `json:"StatefulRuleOptions,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statefulruleoptions.go b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statefulruleoptions.go new file mode 100644 index 0000000000..87e12b6084 --- /dev/null +++ b/cloudformation/networkfirewall/aws-networkfirewall-rulegroup_statefulruleoptions.go @@ -0,0 +1,35 @@ +package networkfirewall + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// RuleGroup_StatefulRuleOptions AWS CloudFormation Resource (AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulruleoptions.html +type RuleGroup_StatefulRuleOptions struct { + + // RuleOrder AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulruleoptions.html#cfn-networkfirewall-rulegroup-statefulruleoptions-ruleorder + RuleOrder string `json:"RuleOrder,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 *RuleGroup_StatefulRuleOptions) AWSCloudFormationType() string { + return "AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions" +} diff --git a/cloudformation/panorama/aws-panorama-applicationinstance.go b/cloudformation/panorama/aws-panorama-applicationinstance.go new file mode 100644 index 0000000000..2cb92ef0fb --- /dev/null +++ b/cloudformation/panorama/aws-panorama-applicationinstance.go @@ -0,0 +1,152 @@ +package panorama + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// ApplicationInstance AWS CloudFormation Resource (AWS::Panorama::ApplicationInstance) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-applicationinstance.html +type ApplicationInstance struct { + + // ApplicationInstanceIdToReplace AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-applicationinstance.html#cfn-panorama-applicationinstance-applicationinstanceidtoreplace + ApplicationInstanceIdToReplace string `json:"ApplicationInstanceIdToReplace,omitempty"` + + // DefaultRuntimeContextDevice AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-applicationinstance.html#cfn-panorama-applicationinstance-defaultruntimecontextdevice + DefaultRuntimeContextDevice string `json:"DefaultRuntimeContextDevice,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-applicationinstance.html#cfn-panorama-applicationinstance-description + Description string `json:"Description,omitempty"` + + // DeviceId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-applicationinstance.html#cfn-panorama-applicationinstance-deviceid + DeviceId string `json:"DeviceId,omitempty"` + + // ManifestOverridesPayload AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-applicationinstance.html#cfn-panorama-applicationinstance-manifestoverridespayload + ManifestOverridesPayload *ApplicationInstance_ManifestOverridesPayload `json:"ManifestOverridesPayload,omitempty"` + + // ManifestPayload AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-applicationinstance.html#cfn-panorama-applicationinstance-manifestpayload + ManifestPayload *ApplicationInstance_ManifestPayload `json:"ManifestPayload,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-applicationinstance.html#cfn-panorama-applicationinstance-name + Name string `json:"Name,omitempty"` + + // RuntimeRoleArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-applicationinstance.html#cfn-panorama-applicationinstance-runtimerolearn + RuntimeRoleArn string `json:"RuntimeRoleArn,omitempty"` + + // StatusFilter AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-applicationinstance.html#cfn-panorama-applicationinstance-statusfilter + StatusFilter string `json:"StatusFilter,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-applicationinstance.html#cfn-panorama-applicationinstance-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 *ApplicationInstance) AWSCloudFormationType() string { + return "AWS::Panorama::ApplicationInstance" +} + +// 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 ApplicationInstance) MarshalJSON() ([]byte, error) { + type Properties ApplicationInstance + 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 *ApplicationInstance) UnmarshalJSON(b []byte) error { + type Properties ApplicationInstance + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = ApplicationInstance(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/panorama/aws-panorama-applicationinstance_manifestoverridespayload.go b/cloudformation/panorama/aws-panorama-applicationinstance_manifestoverridespayload.go new file mode 100644 index 0000000000..52a8664eeb --- /dev/null +++ b/cloudformation/panorama/aws-panorama-applicationinstance_manifestoverridespayload.go @@ -0,0 +1,35 @@ +package panorama + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ApplicationInstance_ManifestOverridesPayload AWS CloudFormation Resource (AWS::Panorama::ApplicationInstance.ManifestOverridesPayload) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-panorama-applicationinstance-manifestoverridespayload.html +type ApplicationInstance_ManifestOverridesPayload struct { + + // PayloadData AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-panorama-applicationinstance-manifestoverridespayload.html#cfn-panorama-applicationinstance-manifestoverridespayload-payloaddata + PayloadData string `json:"PayloadData,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 *ApplicationInstance_ManifestOverridesPayload) AWSCloudFormationType() string { + return "AWS::Panorama::ApplicationInstance.ManifestOverridesPayload" +} diff --git a/cloudformation/panorama/aws-panorama-applicationinstance_manifestpayload.go b/cloudformation/panorama/aws-panorama-applicationinstance_manifestpayload.go new file mode 100644 index 0000000000..7b942ecba0 --- /dev/null +++ b/cloudformation/panorama/aws-panorama-applicationinstance_manifestpayload.go @@ -0,0 +1,35 @@ +package panorama + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ApplicationInstance_ManifestPayload AWS CloudFormation Resource (AWS::Panorama::ApplicationInstance.ManifestPayload) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-panorama-applicationinstance-manifestpayload.html +type ApplicationInstance_ManifestPayload struct { + + // PayloadData AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-panorama-applicationinstance-manifestpayload.html#cfn-panorama-applicationinstance-manifestpayload-payloaddata + PayloadData string `json:"PayloadData,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 *ApplicationInstance_ManifestPayload) AWSCloudFormationType() string { + return "AWS::Panorama::ApplicationInstance.ManifestPayload" +} diff --git a/cloudformation/panorama/aws-panorama-package.go b/cloudformation/panorama/aws-panorama-package.go new file mode 100644 index 0000000000..b46e93b34e --- /dev/null +++ b/cloudformation/panorama/aws-panorama-package.go @@ -0,0 +1,112 @@ +package panorama + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// Package AWS CloudFormation Resource (AWS::Panorama::Package) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-package.html +type Package struct { + + // PackageName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-package.html#cfn-panorama-package-packagename + PackageName string `json:"PackageName,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-package.html#cfn-panorama-package-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 *Package) AWSCloudFormationType() string { + return "AWS::Panorama::Package" +} + +// 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 Package) MarshalJSON() ([]byte, error) { + type Properties Package + 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 *Package) UnmarshalJSON(b []byte) error { + type Properties Package + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Package(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/panorama/aws-panorama-packageversion.go b/cloudformation/panorama/aws-panorama-packageversion.go new file mode 100644 index 0000000000..e8aa517697 --- /dev/null +++ b/cloudformation/panorama/aws-panorama-packageversion.go @@ -0,0 +1,131 @@ +package panorama + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// PackageVersion AWS CloudFormation Resource (AWS::Panorama::PackageVersion) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-packageversion.html +type PackageVersion struct { + + // MarkLatest AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-packageversion.html#cfn-panorama-packageversion-marklatest + MarkLatest bool `json:"MarkLatest,omitempty"` + + // OwnerAccount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-packageversion.html#cfn-panorama-packageversion-owneraccount + OwnerAccount string `json:"OwnerAccount,omitempty"` + + // PackageId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-packageversion.html#cfn-panorama-packageversion-packageid + PackageId string `json:"PackageId,omitempty"` + + // PackageVersion AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-packageversion.html#cfn-panorama-packageversion-packageversion + PackageVersion string `json:"PackageVersion,omitempty"` + + // PatchVersion AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-packageversion.html#cfn-panorama-packageversion-patchversion + PatchVersion string `json:"PatchVersion,omitempty"` + + // UpdatedLatestPatchVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-panorama-packageversion.html#cfn-panorama-packageversion-updatedlatestpatchversion + UpdatedLatestPatchVersion string `json:"UpdatedLatestPatchVersion,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 *PackageVersion) AWSCloudFormationType() string { + return "AWS::Panorama::PackageVersion" +} + +// 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 PackageVersion) MarshalJSON() ([]byte, error) { + type Properties PackageVersion + 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 *PackageVersion) UnmarshalJSON(b []byte) error { + type Properties PackageVersion + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = PackageVersion(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/pinpoint/aws-pinpoint-campaign.go b/cloudformation/pinpoint/aws-pinpoint-campaign.go index bd9ceb1928..ae24e13f10 100644 --- a/cloudformation/pinpoint/aws-pinpoint-campaign.go +++ b/cloudformation/pinpoint/aws-pinpoint-campaign.go @@ -57,6 +57,11 @@ type Campaign struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-name Name string `json:"Name,omitempty"` + // Priority AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-priority + Priority int `json:"Priority,omitempty"` + // Schedule AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-schedule diff --git a/cloudformation/pinpoint/aws-pinpoint-campaign_campaigninappmessage.go b/cloudformation/pinpoint/aws-pinpoint-campaign_campaigninappmessage.go new file mode 100644 index 0000000000..4089ec0454 --- /dev/null +++ b/cloudformation/pinpoint/aws-pinpoint-campaign_campaigninappmessage.go @@ -0,0 +1,45 @@ +package pinpoint + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Campaign_CampaignInAppMessage AWS CloudFormation Resource (AWS::Pinpoint::Campaign.CampaignInAppMessage) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaigninappmessage.html +type Campaign_CampaignInAppMessage struct { + + // Content AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaigninappmessage.html#cfn-pinpoint-campaign-campaigninappmessage-content + Content []Campaign_InAppMessageContent `json:"Content,omitempty"` + + // CustomConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaigninappmessage.html#cfn-pinpoint-campaign-campaigninappmessage-customconfig + CustomConfig interface{} `json:"CustomConfig,omitempty"` + + // Layout AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaigninappmessage.html#cfn-pinpoint-campaign-campaigninappmessage-layout + Layout string `json:"Layout,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 *Campaign_CampaignInAppMessage) AWSCloudFormationType() string { + return "AWS::Pinpoint::Campaign.CampaignInAppMessage" +} diff --git a/cloudformation/pinpoint/aws-pinpoint-campaign_defaultbuttonconfiguration.go b/cloudformation/pinpoint/aws-pinpoint-campaign_defaultbuttonconfiguration.go new file mode 100644 index 0000000000..6fa1002760 --- /dev/null +++ b/cloudformation/pinpoint/aws-pinpoint-campaign_defaultbuttonconfiguration.go @@ -0,0 +1,60 @@ +package pinpoint + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Campaign_DefaultButtonConfiguration AWS CloudFormation Resource (AWS::Pinpoint::Campaign.DefaultButtonConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-defaultbuttonconfiguration.html +type Campaign_DefaultButtonConfiguration struct { + + // BackgroundColor AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-defaultbuttonconfiguration.html#cfn-pinpoint-campaign-defaultbuttonconfiguration-backgroundcolor + BackgroundColor string `json:"BackgroundColor,omitempty"` + + // BorderRadius AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-defaultbuttonconfiguration.html#cfn-pinpoint-campaign-defaultbuttonconfiguration-borderradius + BorderRadius int `json:"BorderRadius,omitempty"` + + // ButtonAction AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-defaultbuttonconfiguration.html#cfn-pinpoint-campaign-defaultbuttonconfiguration-buttonaction + ButtonAction string `json:"ButtonAction,omitempty"` + + // Link AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-defaultbuttonconfiguration.html#cfn-pinpoint-campaign-defaultbuttonconfiguration-link + Link string `json:"Link,omitempty"` + + // Text AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-defaultbuttonconfiguration.html#cfn-pinpoint-campaign-defaultbuttonconfiguration-text + Text string `json:"Text,omitempty"` + + // TextColor AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-defaultbuttonconfiguration.html#cfn-pinpoint-campaign-defaultbuttonconfiguration-textcolor + TextColor string `json:"TextColor,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 *Campaign_DefaultButtonConfiguration) AWSCloudFormationType() string { + return "AWS::Pinpoint::Campaign.DefaultButtonConfiguration" +} diff --git a/cloudformation/pinpoint/aws-pinpoint-campaign_inappmessagebodyconfig.go b/cloudformation/pinpoint/aws-pinpoint-campaign_inappmessagebodyconfig.go new file mode 100644 index 0000000000..74198deabb --- /dev/null +++ b/cloudformation/pinpoint/aws-pinpoint-campaign_inappmessagebodyconfig.go @@ -0,0 +1,45 @@ +package pinpoint + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Campaign_InAppMessageBodyConfig AWS CloudFormation Resource (AWS::Pinpoint::Campaign.InAppMessageBodyConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebodyconfig.html +type Campaign_InAppMessageBodyConfig struct { + + // Alignment AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebodyconfig.html#cfn-pinpoint-campaign-inappmessagebodyconfig-alignment + Alignment string `json:"Alignment,omitempty"` + + // Body AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebodyconfig.html#cfn-pinpoint-campaign-inappmessagebodyconfig-body + Body string `json:"Body,omitempty"` + + // TextColor AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebodyconfig.html#cfn-pinpoint-campaign-inappmessagebodyconfig-textcolor + TextColor string `json:"TextColor,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 *Campaign_InAppMessageBodyConfig) AWSCloudFormationType() string { + return "AWS::Pinpoint::Campaign.InAppMessageBodyConfig" +} diff --git a/cloudformation/pinpoint/aws-pinpoint-campaign_inappmessagebutton.go b/cloudformation/pinpoint/aws-pinpoint-campaign_inappmessagebutton.go new file mode 100644 index 0000000000..37360ace83 --- /dev/null +++ b/cloudformation/pinpoint/aws-pinpoint-campaign_inappmessagebutton.go @@ -0,0 +1,50 @@ +package pinpoint + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Campaign_InAppMessageButton AWS CloudFormation Resource (AWS::Pinpoint::Campaign.InAppMessageButton) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebutton.html +type Campaign_InAppMessageButton struct { + + // Android AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebutton.html#cfn-pinpoint-campaign-inappmessagebutton-android + Android *Campaign_OverrideButtonConfiguration `json:"Android,omitempty"` + + // DefaultConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebutton.html#cfn-pinpoint-campaign-inappmessagebutton-defaultconfig + DefaultConfig *Campaign_DefaultButtonConfiguration `json:"DefaultConfig,omitempty"` + + // IOS AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebutton.html#cfn-pinpoint-campaign-inappmessagebutton-ios + IOS *Campaign_OverrideButtonConfiguration `json:"IOS,omitempty"` + + // Web AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebutton.html#cfn-pinpoint-campaign-inappmessagebutton-web + Web *Campaign_OverrideButtonConfiguration `json:"Web,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 *Campaign_InAppMessageButton) AWSCloudFormationType() string { + return "AWS::Pinpoint::Campaign.InAppMessageButton" +} diff --git a/cloudformation/pinpoint/aws-pinpoint-campaign_inappmessagecontent.go b/cloudformation/pinpoint/aws-pinpoint-campaign_inappmessagecontent.go new file mode 100644 index 0000000000..a8da22326c --- /dev/null +++ b/cloudformation/pinpoint/aws-pinpoint-campaign_inappmessagecontent.go @@ -0,0 +1,60 @@ +package pinpoint + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Campaign_InAppMessageContent AWS CloudFormation Resource (AWS::Pinpoint::Campaign.InAppMessageContent) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagecontent.html +type Campaign_InAppMessageContent struct { + + // BackgroundColor AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagecontent.html#cfn-pinpoint-campaign-inappmessagecontent-backgroundcolor + BackgroundColor string `json:"BackgroundColor,omitempty"` + + // BodyConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagecontent.html#cfn-pinpoint-campaign-inappmessagecontent-bodyconfig + BodyConfig *Campaign_InAppMessageBodyConfig `json:"BodyConfig,omitempty"` + + // HeaderConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagecontent.html#cfn-pinpoint-campaign-inappmessagecontent-headerconfig + HeaderConfig *Campaign_InAppMessageHeaderConfig `json:"HeaderConfig,omitempty"` + + // ImageUrl AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagecontent.html#cfn-pinpoint-campaign-inappmessagecontent-imageurl + ImageUrl string `json:"ImageUrl,omitempty"` + + // PrimaryBtn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagecontent.html#cfn-pinpoint-campaign-inappmessagecontent-primarybtn + PrimaryBtn *Campaign_InAppMessageButton `json:"PrimaryBtn,omitempty"` + + // SecondaryBtn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagecontent.html#cfn-pinpoint-campaign-inappmessagecontent-secondarybtn + SecondaryBtn *Campaign_InAppMessageButton `json:"SecondaryBtn,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 *Campaign_InAppMessageContent) AWSCloudFormationType() string { + return "AWS::Pinpoint::Campaign.InAppMessageContent" +} diff --git a/cloudformation/pinpoint/aws-pinpoint-campaign_inappmessageheaderconfig.go b/cloudformation/pinpoint/aws-pinpoint-campaign_inappmessageheaderconfig.go new file mode 100644 index 0000000000..57f72eaf8c --- /dev/null +++ b/cloudformation/pinpoint/aws-pinpoint-campaign_inappmessageheaderconfig.go @@ -0,0 +1,45 @@ +package pinpoint + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Campaign_InAppMessageHeaderConfig AWS CloudFormation Resource (AWS::Pinpoint::Campaign.InAppMessageHeaderConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessageheaderconfig.html +type Campaign_InAppMessageHeaderConfig struct { + + // Alignment AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessageheaderconfig.html#cfn-pinpoint-campaign-inappmessageheaderconfig-alignment + Alignment string `json:"Alignment,omitempty"` + + // Header AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessageheaderconfig.html#cfn-pinpoint-campaign-inappmessageheaderconfig-header + Header string `json:"Header,omitempty"` + + // TextColor AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessageheaderconfig.html#cfn-pinpoint-campaign-inappmessageheaderconfig-textcolor + TextColor string `json:"TextColor,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 *Campaign_InAppMessageHeaderConfig) AWSCloudFormationType() string { + return "AWS::Pinpoint::Campaign.InAppMessageHeaderConfig" +} diff --git a/cloudformation/pinpoint/aws-pinpoint-campaign_limits.go b/cloudformation/pinpoint/aws-pinpoint-campaign_limits.go index 39d5e18604..182890eda3 100644 --- a/cloudformation/pinpoint/aws-pinpoint-campaign_limits.go +++ b/cloudformation/pinpoint/aws-pinpoint-campaign_limits.go @@ -23,6 +23,11 @@ type Campaign_Limits struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-limits.html#cfn-pinpoint-campaign-limits-messagespersecond MessagesPerSecond int `json:"MessagesPerSecond,omitempty"` + // Session AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-limits.html#cfn-pinpoint-campaign-limits-session + Session int `json:"Session,omitempty"` + // Total AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-limits.html#cfn-pinpoint-campaign-limits-total diff --git a/cloudformation/pinpoint/aws-pinpoint-campaign_messageconfiguration.go b/cloudformation/pinpoint/aws-pinpoint-campaign_messageconfiguration.go index fa18c21209..34d43f3d14 100644 --- a/cloudformation/pinpoint/aws-pinpoint-campaign_messageconfiguration.go +++ b/cloudformation/pinpoint/aws-pinpoint-campaign_messageconfiguration.go @@ -38,6 +38,11 @@ type Campaign_MessageConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-messageconfiguration.html#cfn-pinpoint-campaign-messageconfiguration-gcmmessage GCMMessage *Campaign_Message `json:"GCMMessage,omitempty"` + // InAppMessage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-messageconfiguration.html#cfn-pinpoint-campaign-messageconfiguration-inappmessage + InAppMessage *Campaign_CampaignInAppMessage `json:"InAppMessage,omitempty"` + // SMSMessage AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-messageconfiguration.html#cfn-pinpoint-campaign-messageconfiguration-smsmessage diff --git a/cloudformation/pinpoint/aws-pinpoint-campaign_overridebuttonconfiguration.go b/cloudformation/pinpoint/aws-pinpoint-campaign_overridebuttonconfiguration.go new file mode 100644 index 0000000000..ccfdfc4655 --- /dev/null +++ b/cloudformation/pinpoint/aws-pinpoint-campaign_overridebuttonconfiguration.go @@ -0,0 +1,40 @@ +package pinpoint + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Campaign_OverrideButtonConfiguration AWS CloudFormation Resource (AWS::Pinpoint::Campaign.OverrideButtonConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-overridebuttonconfiguration.html +type Campaign_OverrideButtonConfiguration struct { + + // ButtonAction AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-overridebuttonconfiguration.html#cfn-pinpoint-campaign-overridebuttonconfiguration-buttonaction + ButtonAction string `json:"ButtonAction,omitempty"` + + // Link AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-overridebuttonconfiguration.html#cfn-pinpoint-campaign-overridebuttonconfiguration-link + Link string `json:"Link,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 *Campaign_OverrideButtonConfiguration) AWSCloudFormationType() string { + return "AWS::Pinpoint::Campaign.OverrideButtonConfiguration" +} diff --git a/cloudformation/pinpoint/aws-pinpoint-inapptemplate.go b/cloudformation/pinpoint/aws-pinpoint-inapptemplate.go new file mode 100644 index 0000000000..59f8a423d8 --- /dev/null +++ b/cloudformation/pinpoint/aws-pinpoint-inapptemplate.go @@ -0,0 +1,131 @@ +package pinpoint + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// InAppTemplate AWS CloudFormation Resource (AWS::Pinpoint::InAppTemplate) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-inapptemplate.html +type InAppTemplate struct { + + // Content AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-inapptemplate.html#cfn-pinpoint-inapptemplate-content + Content []InAppTemplate_InAppMessageContent `json:"Content,omitempty"` + + // CustomConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-inapptemplate.html#cfn-pinpoint-inapptemplate-customconfig + CustomConfig interface{} `json:"CustomConfig,omitempty"` + + // Layout AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-inapptemplate.html#cfn-pinpoint-inapptemplate-layout + Layout string `json:"Layout,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-inapptemplate.html#cfn-pinpoint-inapptemplate-tags + Tags interface{} `json:"Tags,omitempty"` + + // TemplateDescription AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-inapptemplate.html#cfn-pinpoint-inapptemplate-templatedescription + TemplateDescription string `json:"TemplateDescription,omitempty"` + + // TemplateName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-inapptemplate.html#cfn-pinpoint-inapptemplate-templatename + TemplateName string `json:"TemplateName,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 *InAppTemplate) AWSCloudFormationType() string { + return "AWS::Pinpoint::InAppTemplate" +} + +// 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 InAppTemplate) MarshalJSON() ([]byte, error) { + type Properties InAppTemplate + 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 *InAppTemplate) UnmarshalJSON(b []byte) error { + type Properties InAppTemplate + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = InAppTemplate(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/pinpoint/aws-pinpoint-inapptemplate_bodyconfig.go b/cloudformation/pinpoint/aws-pinpoint-inapptemplate_bodyconfig.go new file mode 100644 index 0000000000..39aa2dfeb4 --- /dev/null +++ b/cloudformation/pinpoint/aws-pinpoint-inapptemplate_bodyconfig.go @@ -0,0 +1,45 @@ +package pinpoint + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// InAppTemplate_BodyConfig AWS CloudFormation Resource (AWS::Pinpoint::InAppTemplate.BodyConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-bodyconfig.html +type InAppTemplate_BodyConfig struct { + + // Alignment AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-bodyconfig.html#cfn-pinpoint-inapptemplate-bodyconfig-alignment + Alignment string `json:"Alignment,omitempty"` + + // Body AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-bodyconfig.html#cfn-pinpoint-inapptemplate-bodyconfig-body + Body string `json:"Body,omitempty"` + + // TextColor AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-bodyconfig.html#cfn-pinpoint-inapptemplate-bodyconfig-textcolor + TextColor string `json:"TextColor,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 *InAppTemplate_BodyConfig) AWSCloudFormationType() string { + return "AWS::Pinpoint::InAppTemplate.BodyConfig" +} diff --git a/cloudformation/pinpoint/aws-pinpoint-inapptemplate_buttonconfig.go b/cloudformation/pinpoint/aws-pinpoint-inapptemplate_buttonconfig.go new file mode 100644 index 0000000000..8ed180a17a --- /dev/null +++ b/cloudformation/pinpoint/aws-pinpoint-inapptemplate_buttonconfig.go @@ -0,0 +1,50 @@ +package pinpoint + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// InAppTemplate_ButtonConfig AWS CloudFormation Resource (AWS::Pinpoint::InAppTemplate.ButtonConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-buttonconfig.html +type InAppTemplate_ButtonConfig struct { + + // Android AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-buttonconfig.html#cfn-pinpoint-inapptemplate-buttonconfig-android + Android *InAppTemplate_OverrideButtonConfiguration `json:"Android,omitempty"` + + // DefaultConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-buttonconfig.html#cfn-pinpoint-inapptemplate-buttonconfig-defaultconfig + DefaultConfig *InAppTemplate_DefaultButtonConfiguration `json:"DefaultConfig,omitempty"` + + // IOS AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-buttonconfig.html#cfn-pinpoint-inapptemplate-buttonconfig-ios + IOS *InAppTemplate_OverrideButtonConfiguration `json:"IOS,omitempty"` + + // Web AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-buttonconfig.html#cfn-pinpoint-inapptemplate-buttonconfig-web + Web *InAppTemplate_OverrideButtonConfiguration `json:"Web,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 *InAppTemplate_ButtonConfig) AWSCloudFormationType() string { + return "AWS::Pinpoint::InAppTemplate.ButtonConfig" +} diff --git a/cloudformation/pinpoint/aws-pinpoint-inapptemplate_defaultbuttonconfiguration.go b/cloudformation/pinpoint/aws-pinpoint-inapptemplate_defaultbuttonconfiguration.go new file mode 100644 index 0000000000..50f04bc176 --- /dev/null +++ b/cloudformation/pinpoint/aws-pinpoint-inapptemplate_defaultbuttonconfiguration.go @@ -0,0 +1,60 @@ +package pinpoint + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// InAppTemplate_DefaultButtonConfiguration AWS CloudFormation Resource (AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-defaultbuttonconfiguration.html +type InAppTemplate_DefaultButtonConfiguration struct { + + // BackgroundColor AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-defaultbuttonconfiguration.html#cfn-pinpoint-inapptemplate-defaultbuttonconfiguration-backgroundcolor + BackgroundColor string `json:"BackgroundColor,omitempty"` + + // BorderRadius AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-defaultbuttonconfiguration.html#cfn-pinpoint-inapptemplate-defaultbuttonconfiguration-borderradius + BorderRadius int `json:"BorderRadius,omitempty"` + + // ButtonAction AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-defaultbuttonconfiguration.html#cfn-pinpoint-inapptemplate-defaultbuttonconfiguration-buttonaction + ButtonAction string `json:"ButtonAction,omitempty"` + + // Link AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-defaultbuttonconfiguration.html#cfn-pinpoint-inapptemplate-defaultbuttonconfiguration-link + Link string `json:"Link,omitempty"` + + // Text AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-defaultbuttonconfiguration.html#cfn-pinpoint-inapptemplate-defaultbuttonconfiguration-text + Text string `json:"Text,omitempty"` + + // TextColor AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-defaultbuttonconfiguration.html#cfn-pinpoint-inapptemplate-defaultbuttonconfiguration-textcolor + TextColor string `json:"TextColor,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 *InAppTemplate_DefaultButtonConfiguration) AWSCloudFormationType() string { + return "AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration" +} diff --git a/cloudformation/pinpoint/aws-pinpoint-inapptemplate_headerconfig.go b/cloudformation/pinpoint/aws-pinpoint-inapptemplate_headerconfig.go new file mode 100644 index 0000000000..45c75a52fc --- /dev/null +++ b/cloudformation/pinpoint/aws-pinpoint-inapptemplate_headerconfig.go @@ -0,0 +1,45 @@ +package pinpoint + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// InAppTemplate_HeaderConfig AWS CloudFormation Resource (AWS::Pinpoint::InAppTemplate.HeaderConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-headerconfig.html +type InAppTemplate_HeaderConfig struct { + + // Alignment AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-headerconfig.html#cfn-pinpoint-inapptemplate-headerconfig-alignment + Alignment string `json:"Alignment,omitempty"` + + // Header AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-headerconfig.html#cfn-pinpoint-inapptemplate-headerconfig-header + Header string `json:"Header,omitempty"` + + // TextColor AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-headerconfig.html#cfn-pinpoint-inapptemplate-headerconfig-textcolor + TextColor string `json:"TextColor,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 *InAppTemplate_HeaderConfig) AWSCloudFormationType() string { + return "AWS::Pinpoint::InAppTemplate.HeaderConfig" +} diff --git a/cloudformation/pinpoint/aws-pinpoint-inapptemplate_inappmessagecontent.go b/cloudformation/pinpoint/aws-pinpoint-inapptemplate_inappmessagecontent.go new file mode 100644 index 0000000000..b2a5feac45 --- /dev/null +++ b/cloudformation/pinpoint/aws-pinpoint-inapptemplate_inappmessagecontent.go @@ -0,0 +1,60 @@ +package pinpoint + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// InAppTemplate_InAppMessageContent AWS CloudFormation Resource (AWS::Pinpoint::InAppTemplate.InAppMessageContent) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-inappmessagecontent.html +type InAppTemplate_InAppMessageContent struct { + + // BackgroundColor AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-inappmessagecontent.html#cfn-pinpoint-inapptemplate-inappmessagecontent-backgroundcolor + BackgroundColor string `json:"BackgroundColor,omitempty"` + + // BodyConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-inappmessagecontent.html#cfn-pinpoint-inapptemplate-inappmessagecontent-bodyconfig + BodyConfig *InAppTemplate_BodyConfig `json:"BodyConfig,omitempty"` + + // HeaderConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-inappmessagecontent.html#cfn-pinpoint-inapptemplate-inappmessagecontent-headerconfig + HeaderConfig *InAppTemplate_HeaderConfig `json:"HeaderConfig,omitempty"` + + // ImageUrl AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-inappmessagecontent.html#cfn-pinpoint-inapptemplate-inappmessagecontent-imageurl + ImageUrl string `json:"ImageUrl,omitempty"` + + // PrimaryBtn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-inappmessagecontent.html#cfn-pinpoint-inapptemplate-inappmessagecontent-primarybtn + PrimaryBtn *InAppTemplate_ButtonConfig `json:"PrimaryBtn,omitempty"` + + // SecondaryBtn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-inappmessagecontent.html#cfn-pinpoint-inapptemplate-inappmessagecontent-secondarybtn + SecondaryBtn *InAppTemplate_ButtonConfig `json:"SecondaryBtn,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 *InAppTemplate_InAppMessageContent) AWSCloudFormationType() string { + return "AWS::Pinpoint::InAppTemplate.InAppMessageContent" +} diff --git a/cloudformation/pinpoint/aws-pinpoint-inapptemplate_overridebuttonconfiguration.go b/cloudformation/pinpoint/aws-pinpoint-inapptemplate_overridebuttonconfiguration.go new file mode 100644 index 0000000000..3767e37931 --- /dev/null +++ b/cloudformation/pinpoint/aws-pinpoint-inapptemplate_overridebuttonconfiguration.go @@ -0,0 +1,40 @@ +package pinpoint + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// InAppTemplate_OverrideButtonConfiguration AWS CloudFormation Resource (AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-overridebuttonconfiguration.html +type InAppTemplate_OverrideButtonConfiguration struct { + + // ButtonAction AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-overridebuttonconfiguration.html#cfn-pinpoint-inapptemplate-overridebuttonconfiguration-buttonaction + ButtonAction string `json:"ButtonAction,omitempty"` + + // Link AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-overridebuttonconfiguration.html#cfn-pinpoint-inapptemplate-overridebuttonconfiguration-link + Link string `json:"Link,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 *InAppTemplate_OverrideButtonConfiguration) AWSCloudFormationType() string { + return "AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" +} diff --git a/cloudformation/quicksight/aws-quicksight-analysis.go b/cloudformation/quicksight/aws-quicksight-analysis.go index a6275b98dd..262461f4c9 100644 --- a/cloudformation/quicksight/aws-quicksight-analysis.go +++ b/cloudformation/quicksight/aws-quicksight-analysis.go @@ -44,7 +44,7 @@ type Analysis struct { Permissions []Analysis_ResourcePermission `json:"Permissions,omitempty"` // SourceEntity AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-analysis.html#cfn-quicksight-analysis-sourceentity SourceEntity *Analysis_AnalysisSourceEntity `json:"SourceEntity,omitempty"` diff --git a/cloudformation/quicksight/aws-quicksight-dashboard.go b/cloudformation/quicksight/aws-quicksight-dashboard.go index 321a1aee41..d4a1732e57 100644 --- a/cloudformation/quicksight/aws-quicksight-dashboard.go +++ b/cloudformation/quicksight/aws-quicksight-dashboard.go @@ -44,7 +44,7 @@ type Dashboard struct { Permissions []Dashboard_ResourcePermission `json:"Permissions,omitempty"` // SourceEntity AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-sourceentity SourceEntity *Dashboard_DashboardSourceEntity `json:"SourceEntity,omitempty"` diff --git a/cloudformation/quicksight/aws-quicksight-datasource_amazonopensearchparameters.go b/cloudformation/quicksight/aws-quicksight-datasource_amazonopensearchparameters.go new file mode 100644 index 0000000000..53a2114f56 --- /dev/null +++ b/cloudformation/quicksight/aws-quicksight-datasource_amazonopensearchparameters.go @@ -0,0 +1,35 @@ +package quicksight + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// DataSource_AmazonOpenSearchParameters AWS CloudFormation Resource (AWS::QuickSight::DataSource.AmazonOpenSearchParameters) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-amazonopensearchparameters.html +type DataSource_AmazonOpenSearchParameters struct { + + // Domain AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-amazonopensearchparameters.html#cfn-quicksight-datasource-amazonopensearchparameters-domain + Domain string `json:"Domain,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 *DataSource_AmazonOpenSearchParameters) AWSCloudFormationType() string { + return "AWS::QuickSight::DataSource.AmazonOpenSearchParameters" +} diff --git a/cloudformation/quicksight/aws-quicksight-datasource_datasourceparameters.go b/cloudformation/quicksight/aws-quicksight-datasource_datasourceparameters.go index 0f0b03acd4..a3a3d4a96b 100644 --- a/cloudformation/quicksight/aws-quicksight-datasource_datasourceparameters.go +++ b/cloudformation/quicksight/aws-quicksight-datasource_datasourceparameters.go @@ -13,6 +13,11 @@ type DataSource_DataSourceParameters struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourceparameters.html#cfn-quicksight-datasource-datasourceparameters-amazonelasticsearchparameters AmazonElasticsearchParameters *DataSource_AmazonElasticsearchParameters `json:"AmazonElasticsearchParameters,omitempty"` + // AmazonOpenSearchParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourceparameters.html#cfn-quicksight-datasource-datasourceparameters-amazonopensearchparameters + AmazonOpenSearchParameters *DataSource_AmazonOpenSearchParameters `json:"AmazonOpenSearchParameters,omitempty"` + // AthenaParameters AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourceparameters.html#cfn-quicksight-datasource-datasourceparameters-athenaparameters diff --git a/cloudformation/quicksight/aws-quicksight-template.go b/cloudformation/quicksight/aws-quicksight-template.go index ee8adff8a1..011358c468 100644 --- a/cloudformation/quicksight/aws-quicksight-template.go +++ b/cloudformation/quicksight/aws-quicksight-template.go @@ -29,7 +29,7 @@ type Template struct { Permissions []Template_ResourcePermission `json:"Permissions,omitempty"` // SourceEntity AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-template.html#cfn-quicksight-template-sourceentity SourceEntity *Template_TemplateSourceEntity `json:"SourceEntity,omitempty"` diff --git a/cloudformation/redshift/aws-redshift-cluster.go b/cloudformation/redshift/aws-redshift-cluster.go index 2519b368de..1e8d07e44b 100644 --- a/cloudformation/redshift/aws-redshift-cluster.go +++ b/cloudformation/redshift/aws-redshift-cluster.go @@ -118,11 +118,6 @@ type Cluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-encrypted Encrypted bool `json:"Encrypted,omitempty"` - // Endpoint AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-endpoint - Endpoint *Cluster_Endpoint `json:"Endpoint,omitempty"` - // EnhancedVpcRouting AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-enhancedvpcrouting diff --git a/cloudformation/redshift/aws-redshift-endpointaccess.go b/cloudformation/redshift/aws-redshift-endpointaccess.go new file mode 100644 index 0000000000..1fc3cdd6fa --- /dev/null +++ b/cloudformation/redshift/aws-redshift-endpointaccess.go @@ -0,0 +1,126 @@ +package redshift + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// EndpointAccess AWS CloudFormation Resource (AWS::Redshift::EndpointAccess) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointaccess.html +type EndpointAccess struct { + + // ClusterIdentifier AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointaccess.html#cfn-redshift-endpointaccess-clusteridentifier + ClusterIdentifier string `json:"ClusterIdentifier,omitempty"` + + // EndpointName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointaccess.html#cfn-redshift-endpointaccess-endpointname + EndpointName string `json:"EndpointName,omitempty"` + + // ResourceOwner AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointaccess.html#cfn-redshift-endpointaccess-resourceowner + ResourceOwner string `json:"ResourceOwner,omitempty"` + + // SubnetGroupName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointaccess.html#cfn-redshift-endpointaccess-subnetgroupname + SubnetGroupName string `json:"SubnetGroupName,omitempty"` + + // VpcSecurityGroupIds AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointaccess.html#cfn-redshift-endpointaccess-vpcsecuritygroupids + VpcSecurityGroupIds []string `json:"VpcSecurityGroupIds,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 *EndpointAccess) AWSCloudFormationType() string { + return "AWS::Redshift::EndpointAccess" +} + +// 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 EndpointAccess) MarshalJSON() ([]byte, error) { + type Properties EndpointAccess + 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 *EndpointAccess) UnmarshalJSON(b []byte) error { + type Properties EndpointAccess + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = EndpointAccess(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/redshift/aws-redshift-endpointaccess_vpcsecuritygroup.go b/cloudformation/redshift/aws-redshift-endpointaccess_vpcsecuritygroup.go new file mode 100644 index 0000000000..9385046c4b --- /dev/null +++ b/cloudformation/redshift/aws-redshift-endpointaccess_vpcsecuritygroup.go @@ -0,0 +1,40 @@ +package redshift + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// EndpointAccess_VpcSecurityGroup AWS CloudFormation Resource (AWS::Redshift::EndpointAccess.VpcSecurityGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-endpointaccess-vpcsecuritygroup.html +type EndpointAccess_VpcSecurityGroup struct { + + // Status AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-endpointaccess-vpcsecuritygroup.html#cfn-redshift-endpointaccess-vpcsecuritygroup-status + Status string `json:"Status,omitempty"` + + // VpcSecurityGroupId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-endpointaccess-vpcsecuritygroup.html#cfn-redshift-endpointaccess-vpcsecuritygroup-vpcsecuritygroupid + VpcSecurityGroupId string `json:"VpcSecurityGroupId,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 *EndpointAccess_VpcSecurityGroup) AWSCloudFormationType() string { + return "AWS::Redshift::EndpointAccess.VpcSecurityGroup" +} diff --git a/cloudformation/redshift/aws-redshift-endpointauthorization.go b/cloudformation/redshift/aws-redshift-endpointauthorization.go new file mode 100644 index 0000000000..2b0a333095 --- /dev/null +++ b/cloudformation/redshift/aws-redshift-endpointauthorization.go @@ -0,0 +1,121 @@ +package redshift + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// EndpointAuthorization AWS CloudFormation Resource (AWS::Redshift::EndpointAuthorization) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointauthorization.html +type EndpointAuthorization struct { + + // Account AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointauthorization.html#cfn-redshift-endpointauthorization-account + Account string `json:"Account,omitempty"` + + // ClusterIdentifier AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointauthorization.html#cfn-redshift-endpointauthorization-clusteridentifier + ClusterIdentifier string `json:"ClusterIdentifier,omitempty"` + + // Force AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointauthorization.html#cfn-redshift-endpointauthorization-force + Force bool `json:"Force,omitempty"` + + // VpcIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-endpointauthorization.html#cfn-redshift-endpointauthorization-vpcids + VpcIds []string `json:"VpcIds,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 *EndpointAuthorization) AWSCloudFormationType() string { + return "AWS::Redshift::EndpointAuthorization" +} + +// 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 EndpointAuthorization) MarshalJSON() ([]byte, error) { + type Properties EndpointAuthorization + 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 *EndpointAuthorization) UnmarshalJSON(b []byte) error { + type Properties EndpointAuthorization + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = EndpointAuthorization(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/redshift/aws-redshift-eventsubscription.go b/cloudformation/redshift/aws-redshift-eventsubscription.go new file mode 100644 index 0000000000..9705fcb43c --- /dev/null +++ b/cloudformation/redshift/aws-redshift-eventsubscription.go @@ -0,0 +1,142 @@ +package redshift + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// EventSubscription AWS CloudFormation Resource (AWS::Redshift::EventSubscription) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-eventsubscription.html +type EventSubscription struct { + + // Enabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-eventsubscription.html#cfn-redshift-eventsubscription-enabled + Enabled bool `json:"Enabled,omitempty"` + + // EventCategories AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-eventsubscription.html#cfn-redshift-eventsubscription-eventcategories + EventCategories []string `json:"EventCategories,omitempty"` + + // Severity AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-eventsubscription.html#cfn-redshift-eventsubscription-severity + Severity string `json:"Severity,omitempty"` + + // SnsTopicArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-eventsubscription.html#cfn-redshift-eventsubscription-snstopicarn + SnsTopicArn string `json:"SnsTopicArn,omitempty"` + + // SourceIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-eventsubscription.html#cfn-redshift-eventsubscription-sourceids + SourceIds []string `json:"SourceIds,omitempty"` + + // SourceType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-eventsubscription.html#cfn-redshift-eventsubscription-sourcetype + SourceType string `json:"SourceType,omitempty"` + + // SubscriptionName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-eventsubscription.html#cfn-redshift-eventsubscription-subscriptionname + SubscriptionName string `json:"SubscriptionName,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-eventsubscription.html#cfn-redshift-eventsubscription-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 *EventSubscription) AWSCloudFormationType() string { + return "AWS::Redshift::EventSubscription" +} + +// 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 EventSubscription) MarshalJSON() ([]byte, error) { + type Properties EventSubscription + 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 *EventSubscription) UnmarshalJSON(b []byte) error { + type Properties EventSubscription + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = EventSubscription(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/redshift/aws-redshift-scheduledaction.go b/cloudformation/redshift/aws-redshift-scheduledaction.go new file mode 100644 index 0000000000..6780c2b1e7 --- /dev/null +++ b/cloudformation/redshift/aws-redshift-scheduledaction.go @@ -0,0 +1,141 @@ +package redshift + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ScheduledAction AWS CloudFormation Resource (AWS::Redshift::ScheduledAction) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-scheduledaction.html +type ScheduledAction struct { + + // Enable AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-scheduledaction.html#cfn-redshift-scheduledaction-enable + Enable bool `json:"Enable,omitempty"` + + // EndTime AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-scheduledaction.html#cfn-redshift-scheduledaction-endtime + EndTime string `json:"EndTime,omitempty"` + + // IamRole AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-scheduledaction.html#cfn-redshift-scheduledaction-iamrole + IamRole string `json:"IamRole,omitempty"` + + // Schedule AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-scheduledaction.html#cfn-redshift-scheduledaction-schedule + Schedule string `json:"Schedule,omitempty"` + + // ScheduledActionDescription AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-scheduledaction.html#cfn-redshift-scheduledaction-scheduledactiondescription + ScheduledActionDescription string `json:"ScheduledActionDescription,omitempty"` + + // ScheduledActionName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-scheduledaction.html#cfn-redshift-scheduledaction-scheduledactionname + ScheduledActionName string `json:"ScheduledActionName,omitempty"` + + // StartTime AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-scheduledaction.html#cfn-redshift-scheduledaction-starttime + StartTime string `json:"StartTime,omitempty"` + + // TargetAction AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-scheduledaction.html#cfn-redshift-scheduledaction-targetaction + TargetAction *ScheduledAction_ScheduledActionType `json:"TargetAction,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 *ScheduledAction) AWSCloudFormationType() string { + return "AWS::Redshift::ScheduledAction" +} + +// 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 ScheduledAction) MarshalJSON() ([]byte, error) { + type Properties ScheduledAction + 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 *ScheduledAction) UnmarshalJSON(b []byte) error { + type Properties ScheduledAction + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = ScheduledAction(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/redshift/aws-redshift-scheduledaction_pauseclustermessage.go b/cloudformation/redshift/aws-redshift-scheduledaction_pauseclustermessage.go new file mode 100644 index 0000000000..a7af43a1f9 --- /dev/null +++ b/cloudformation/redshift/aws-redshift-scheduledaction_pauseclustermessage.go @@ -0,0 +1,35 @@ +package redshift + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ScheduledAction_PauseClusterMessage AWS CloudFormation Resource (AWS::Redshift::ScheduledAction.PauseClusterMessage) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-pauseclustermessage.html +type ScheduledAction_PauseClusterMessage struct { + + // ClusterIdentifier AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-pauseclustermessage.html#cfn-redshift-scheduledaction-pauseclustermessage-clusteridentifier + ClusterIdentifier string `json:"ClusterIdentifier,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 *ScheduledAction_PauseClusterMessage) AWSCloudFormationType() string { + return "AWS::Redshift::ScheduledAction.PauseClusterMessage" +} diff --git a/cloudformation/redshift/aws-redshift-scheduledaction_resizeclustermessage.go b/cloudformation/redshift/aws-redshift-scheduledaction_resizeclustermessage.go new file mode 100644 index 0000000000..9a78b59f08 --- /dev/null +++ b/cloudformation/redshift/aws-redshift-scheduledaction_resizeclustermessage.go @@ -0,0 +1,55 @@ +package redshift + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ScheduledAction_ResizeClusterMessage AWS CloudFormation Resource (AWS::Redshift::ScheduledAction.ResizeClusterMessage) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resizeclustermessage.html +type ScheduledAction_ResizeClusterMessage struct { + + // Classic AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resizeclustermessage.html#cfn-redshift-scheduledaction-resizeclustermessage-classic + Classic bool `json:"Classic,omitempty"` + + // ClusterIdentifier AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resizeclustermessage.html#cfn-redshift-scheduledaction-resizeclustermessage-clusteridentifier + ClusterIdentifier string `json:"ClusterIdentifier,omitempty"` + + // ClusterType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resizeclustermessage.html#cfn-redshift-scheduledaction-resizeclustermessage-clustertype + ClusterType string `json:"ClusterType,omitempty"` + + // NodeType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resizeclustermessage.html#cfn-redshift-scheduledaction-resizeclustermessage-nodetype + NodeType string `json:"NodeType,omitempty"` + + // NumberOfNodes AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resizeclustermessage.html#cfn-redshift-scheduledaction-resizeclustermessage-numberofnodes + NumberOfNodes int `json:"NumberOfNodes,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 *ScheduledAction_ResizeClusterMessage) AWSCloudFormationType() string { + return "AWS::Redshift::ScheduledAction.ResizeClusterMessage" +} diff --git a/cloudformation/redshift/aws-redshift-scheduledaction_resumeclustermessage.go b/cloudformation/redshift/aws-redshift-scheduledaction_resumeclustermessage.go new file mode 100644 index 0000000000..7b11993106 --- /dev/null +++ b/cloudformation/redshift/aws-redshift-scheduledaction_resumeclustermessage.go @@ -0,0 +1,35 @@ +package redshift + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ScheduledAction_ResumeClusterMessage AWS CloudFormation Resource (AWS::Redshift::ScheduledAction.ResumeClusterMessage) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resumeclustermessage.html +type ScheduledAction_ResumeClusterMessage struct { + + // ClusterIdentifier AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resumeclustermessage.html#cfn-redshift-scheduledaction-resumeclustermessage-clusteridentifier + ClusterIdentifier string `json:"ClusterIdentifier,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 *ScheduledAction_ResumeClusterMessage) AWSCloudFormationType() string { + return "AWS::Redshift::ScheduledAction.ResumeClusterMessage" +} diff --git a/cloudformation/redshift/aws-redshift-scheduledaction_scheduledactiontype.go b/cloudformation/redshift/aws-redshift-scheduledaction_scheduledactiontype.go new file mode 100644 index 0000000000..92addb9846 --- /dev/null +++ b/cloudformation/redshift/aws-redshift-scheduledaction_scheduledactiontype.go @@ -0,0 +1,45 @@ +package redshift + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ScheduledAction_ScheduledActionType AWS CloudFormation Resource (AWS::Redshift::ScheduledAction.ScheduledActionType) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-scheduledactiontype.html +type ScheduledAction_ScheduledActionType struct { + + // PauseCluster AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-scheduledactiontype.html#cfn-redshift-scheduledaction-scheduledactiontype-pausecluster + PauseCluster *ScheduledAction_PauseClusterMessage `json:"PauseCluster,omitempty"` + + // ResizeCluster AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-scheduledactiontype.html#cfn-redshift-scheduledaction-scheduledactiontype-resizecluster + ResizeCluster *ScheduledAction_ResizeClusterMessage `json:"ResizeCluster,omitempty"` + + // ResumeCluster AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-scheduledactiontype.html#cfn-redshift-scheduledaction-scheduledactiontype-resumecluster + ResumeCluster *ScheduledAction_ResumeClusterMessage `json:"ResumeCluster,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 *ScheduledAction_ScheduledActionType) AWSCloudFormationType() string { + return "AWS::Redshift::ScheduledAction.ScheduledActionType" +} diff --git a/cloudformation/rekognition/aws-rekognition-project.go b/cloudformation/rekognition/aws-rekognition-project.go new file mode 100644 index 0000000000..1b77b4427e --- /dev/null +++ b/cloudformation/rekognition/aws-rekognition-project.go @@ -0,0 +1,106 @@ +package rekognition + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Project AWS CloudFormation Resource (AWS::Rekognition::Project) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rekognition-project.html +type Project struct { + + // ProjectName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rekognition-project.html#cfn-rekognition-project-projectname + ProjectName string `json:"ProjectName,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Project) AWSCloudFormationType() string { + return "AWS::Rekognition::Project" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r Project) MarshalJSON() ([]byte, error) { + type Properties Project + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *Project) UnmarshalJSON(b []byte) error { + type Properties Project + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Project(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/route53recoverycontrol/aws-route53recoverycontrol-cluster.go b/cloudformation/route53recoverycontrol/aws-route53recoverycontrol-cluster.go index 9856a46a1d..38dbc46f88 100644 --- a/cloudformation/route53recoverycontrol/aws-route53recoverycontrol-cluster.go +++ b/cloudformation/route53recoverycontrol/aws-route53recoverycontrol-cluster.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" ) // Cluster AWS CloudFormation Resource (AWS::Route53RecoveryControl::Cluster) @@ -17,6 +18,11 @@ type Cluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-cluster.html#cfn-route53recoverycontrol-cluster-name Name string `json:"Name,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-cluster.html#cfn-route53recoverycontrol-cluster-tags + Tags []tags.Tag `json:"Tags,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/route53recoverycontrol/aws-route53recoverycontrol-controlpanel.go b/cloudformation/route53recoverycontrol/aws-route53recoverycontrol-controlpanel.go index d0981a9640..1ba974d950 100644 --- a/cloudformation/route53recoverycontrol/aws-route53recoverycontrol-controlpanel.go +++ b/cloudformation/route53recoverycontrol/aws-route53recoverycontrol-controlpanel.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" ) // ControlPanel AWS CloudFormation Resource (AWS::Route53RecoveryControl::ControlPanel) @@ -22,6 +23,11 @@ type ControlPanel struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-controlpanel.html#cfn-route53recoverycontrol-controlpanel-name Name string `json:"Name,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-controlpanel.html#cfn-route53recoverycontrol-controlpanel-tags + Tags []tags.Tag `json:"Tags,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/route53recoverycontrol/aws-route53recoverycontrol-safetyrule.go b/cloudformation/route53recoverycontrol/aws-route53recoverycontrol-safetyrule.go index 6543c5cf05..0eff8f5ab6 100644 --- a/cloudformation/route53recoverycontrol/aws-route53recoverycontrol-safetyrule.go +++ b/cloudformation/route53recoverycontrol/aws-route53recoverycontrol-safetyrule.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" ) // SafetyRule AWS CloudFormation Resource (AWS::Route53RecoveryControl::SafetyRule) @@ -37,6 +38,11 @@ type SafetyRule struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-safetyrule.html#cfn-route53recoverycontrol-safetyrule-ruleconfig RuleConfig *SafetyRule_RuleConfig `json:"RuleConfig,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53recoverycontrol-safetyrule.html#cfn-route53recoverycontrol-safetyrule-tags + Tags []tags.Tag `json:"Tags,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/route53resolver/aws-route53resolver-resolverconfig.go b/cloudformation/route53resolver/aws-route53resolver-resolverconfig.go new file mode 100644 index 0000000000..73eb67792e --- /dev/null +++ b/cloudformation/route53resolver/aws-route53resolver-resolverconfig.go @@ -0,0 +1,111 @@ +package route53resolver + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// ResolverConfig AWS CloudFormation Resource (AWS::Route53Resolver::ResolverConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverconfig.html +type ResolverConfig struct { + + // AutodefinedReverseFlag AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverconfig.html#cfn-route53resolver-resolverconfig-autodefinedreverseflag + AutodefinedReverseFlag string `json:"AutodefinedReverseFlag,omitempty"` + + // ResourceId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverconfig.html#cfn-route53resolver-resolverconfig-resourceid + ResourceId string `json:"ResourceId,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 *ResolverConfig) AWSCloudFormationType() string { + return "AWS::Route53Resolver::ResolverConfig" +} + +// 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 ResolverConfig) MarshalJSON() ([]byte, error) { + type Properties ResolverConfig + 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 *ResolverConfig) UnmarshalJSON(b []byte) error { + type Properties ResolverConfig + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = ResolverConfig(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/s3objectlambda/aws-s3objectlambda-accesspoint.go b/cloudformation/s3objectlambda/aws-s3objectlambda-accesspoint.go index 31a7174d79..902897b45d 100644 --- a/cloudformation/s3objectlambda/aws-s3objectlambda-accesspoint.go +++ b/cloudformation/s3objectlambda/aws-s3objectlambda-accesspoint.go @@ -13,12 +13,12 @@ import ( type AccessPoint struct { // Name AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspoint.html#cfn-s3objectlambda-accesspoint-name Name string `json:"Name,omitempty"` // ObjectLambdaConfiguration AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3objectlambda-accesspoint.html#cfn-s3objectlambda-accesspoint-objectlambdaconfiguration ObjectLambdaConfiguration *AccessPoint_ObjectLambdaConfiguration `json:"ObjectLambdaConfiguration,omitempty"` diff --git a/cloudformation/s3objectlambda/aws-s3objectlambda-accesspoint_transformationconfiguration.go b/cloudformation/s3objectlambda/aws-s3objectlambda-accesspoint_transformationconfiguration.go index bdd5ab43c4..5b3a876ccb 100644 --- a/cloudformation/s3objectlambda/aws-s3objectlambda-accesspoint_transformationconfiguration.go +++ b/cloudformation/s3objectlambda/aws-s3objectlambda-accesspoint_transformationconfiguration.go @@ -9,12 +9,12 @@ import ( type AccessPoint_TransformationConfiguration struct { // Actions AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3objectlambda-accesspoint-transformationconfiguration.html#cfn-s3objectlambda-accesspoint-transformationconfiguration-actions Actions []string `json:"Actions,omitempty"` // ContentTransformation AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3objectlambda-accesspoint-transformationconfiguration.html#cfn-s3objectlambda-accesspoint-transformationconfiguration-contenttransformation ContentTransformation interface{} `json:"ContentTransformation,omitempty"` diff --git a/cloudformation/sagemaker/aws-sagemaker-endpoint.go b/cloudformation/sagemaker/aws-sagemaker-endpoint.go index 296283c66d..4c83d31d5f 100644 --- a/cloudformation/sagemaker/aws-sagemaker-endpoint.go +++ b/cloudformation/sagemaker/aws-sagemaker-endpoint.go @@ -38,6 +38,11 @@ type Endpoint struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpoint.html#cfn-sagemaker-endpoint-retainallvariantproperties RetainAllVariantProperties bool `json:"RetainAllVariantProperties,omitempty"` + // RetainDeploymentConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpoint.html#cfn-sagemaker-endpoint-retaindeploymentconfig + RetainDeploymentConfig bool `json:"RetainDeploymentConfig,omitempty"` + // Tags AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpoint.html#cfn-sagemaker-endpoint-tags diff --git a/cloudformation/sagemaker/aws-sagemaker-endpoint_trafficroutingconfig.go b/cloudformation/sagemaker/aws-sagemaker-endpoint_trafficroutingconfig.go index 3cd193d8a8..da13668381 100644 --- a/cloudformation/sagemaker/aws-sagemaker-endpoint_trafficroutingconfig.go +++ b/cloudformation/sagemaker/aws-sagemaker-endpoint_trafficroutingconfig.go @@ -13,6 +13,11 @@ type Endpoint_TrafficRoutingConfig struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-trafficroutingconfig.html#cfn-sagemaker-endpoint-trafficroutingconfig-canarysize CanarySize *Endpoint_CapacitySize `json:"CanarySize,omitempty"` + // LinearStepSize AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-trafficroutingconfig.html#cfn-sagemaker-endpoint-trafficroutingconfig-linearstepsize + LinearStepSize *Endpoint_CapacitySize `json:"LinearStepSize,omitempty"` + // Type AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-trafficroutingconfig.html#cfn-sagemaker-endpoint-trafficroutingconfig-type diff --git a/cloudformation/sagemaker/aws-sagemaker-notebookinstance.go b/cloudformation/sagemaker/aws-sagemaker-notebookinstance.go index 3566c5e712..87259b7013 100644 --- a/cloudformation/sagemaker/aws-sagemaker-notebookinstance.go +++ b/cloudformation/sagemaker/aws-sagemaker-notebookinstance.go @@ -53,6 +53,11 @@ type NotebookInstance struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstance.html#cfn-sagemaker-notebookinstance-notebookinstancename NotebookInstanceName string `json:"NotebookInstanceName,omitempty"` + // PlatformIdentifier AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstance.html#cfn-sagemaker-notebookinstance-platformidentifier + PlatformIdentifier string `json:"PlatformIdentifier,omitempty"` + // RoleArn AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstance.html#cfn-sagemaker-notebookinstance-rolearn diff --git a/cloudformation/secretsmanager/aws-secretsmanager-rotationschedule_hostedrotationlambda.go b/cloudformation/secretsmanager/aws-secretsmanager-rotationschedule_hostedrotationlambda.go index aaa622e6b0..9bf9695320 100644 --- a/cloudformation/secretsmanager/aws-secretsmanager-rotationschedule_hostedrotationlambda.go +++ b/cloudformation/secretsmanager/aws-secretsmanager-rotationschedule_hostedrotationlambda.go @@ -33,6 +33,16 @@ type RotationSchedule_HostedRotationLambda struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html#cfn-secretsmanager-rotationschedule-hostedrotationlambda-rotationtype RotationType string `json:"RotationType,omitempty"` + // SuperuserSecretArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html#cfn-secretsmanager-rotationschedule-hostedrotationlambda-superusersecretarn + SuperuserSecretArn string `json:"SuperuserSecretArn,omitempty"` + + // SuperuserSecretKmsKeyArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html#cfn-secretsmanager-rotationschedule-hostedrotationlambda-superusersecretkmskeyarn + SuperuserSecretKmsKeyArn string `json:"SuperuserSecretKmsKeyArn,omitempty"` + // VpcSecurityGroupIds AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html#cfn-secretsmanager-rotationschedule-hostedrotationlambda-vpcsecuritygroupids diff --git a/cloudformation/synthetics/aws-synthetics-canary.go b/cloudformation/synthetics/aws-synthetics-canary.go index 6d522458a3..61a9f56e08 100644 --- a/cloudformation/synthetics/aws-synthetics-canary.go +++ b/cloudformation/synthetics/aws-synthetics-canary.go @@ -13,6 +13,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-canary.html type Canary struct { + // ArtifactConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-canary.html#cfn-synthetics-canary-artifactconfig + ArtifactConfig *Canary_ArtifactConfig `json:"ArtifactConfig,omitempty"` + // ArtifactS3Location AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-canary.html#cfn-synthetics-canary-artifacts3location diff --git a/cloudformation/synthetics/aws-synthetics-canary_artifactconfig.go b/cloudformation/synthetics/aws-synthetics-canary_artifactconfig.go new file mode 100644 index 0000000000..086b5d0385 --- /dev/null +++ b/cloudformation/synthetics/aws-synthetics-canary_artifactconfig.go @@ -0,0 +1,35 @@ +package synthetics + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Canary_ArtifactConfig AWS CloudFormation Resource (AWS::Synthetics::Canary.ArtifactConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-artifactconfig.html +type Canary_ArtifactConfig struct { + + // S3Encryption AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-artifactconfig.html#cfn-synthetics-canary-artifactconfig-s3encryption + S3Encryption *Canary_S3Encryption `json:"S3Encryption,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 *Canary_ArtifactConfig) AWSCloudFormationType() string { + return "AWS::Synthetics::Canary.ArtifactConfig" +} diff --git a/cloudformation/synthetics/aws-synthetics-canary_s3encryption.go b/cloudformation/synthetics/aws-synthetics-canary_s3encryption.go new file mode 100644 index 0000000000..29e27a329d --- /dev/null +++ b/cloudformation/synthetics/aws-synthetics-canary_s3encryption.go @@ -0,0 +1,40 @@ +package synthetics + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Canary_S3Encryption AWS CloudFormation Resource (AWS::Synthetics::Canary.S3Encryption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-s3encryption.html +type Canary_S3Encryption struct { + + // EncryptionMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-s3encryption.html#cfn-synthetics-canary-s3encryption-encryptionmode + EncryptionMode string `json:"EncryptionMode,omitempty"` + + // KmsKeyArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-s3encryption.html#cfn-synthetics-canary-s3encryption-kmskeyarn + KmsKeyArn string `json:"KmsKeyArn,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 *Canary_S3Encryption) AWSCloudFormationType() string { + return "AWS::Synthetics::Canary.S3Encryption" +} diff --git a/cloudformation/wisdom/aws-wisdom-assistant.go b/cloudformation/wisdom/aws-wisdom-assistant.go new file mode 100644 index 0000000000..0b3e4ea509 --- /dev/null +++ b/cloudformation/wisdom/aws-wisdom-assistant.go @@ -0,0 +1,127 @@ +package wisdom + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// Assistant AWS CloudFormation Resource (AWS::Wisdom::Assistant) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistant.html +type Assistant struct { + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistant.html#cfn-wisdom-assistant-description + Description string `json:"Description,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistant.html#cfn-wisdom-assistant-name + Name string `json:"Name,omitempty"` + + // ServerSideEncryptionConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistant.html#cfn-wisdom-assistant-serversideencryptionconfiguration + ServerSideEncryptionConfiguration *Assistant_ServerSideEncryptionConfiguration `json:"ServerSideEncryptionConfiguration,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistant.html#cfn-wisdom-assistant-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // Type AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistant.html#cfn-wisdom-assistant-type + Type string `json:"Type,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 *Assistant) AWSCloudFormationType() string { + return "AWS::Wisdom::Assistant" +} + +// 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 Assistant) MarshalJSON() ([]byte, error) { + type Properties Assistant + 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 *Assistant) UnmarshalJSON(b []byte) error { + type Properties Assistant + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Assistant(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/wisdom/aws-wisdom-assistant_serversideencryptionconfiguration.go b/cloudformation/wisdom/aws-wisdom-assistant_serversideencryptionconfiguration.go new file mode 100644 index 0000000000..4b6342e4ef --- /dev/null +++ b/cloudformation/wisdom/aws-wisdom-assistant_serversideencryptionconfiguration.go @@ -0,0 +1,35 @@ +package wisdom + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Assistant_ServerSideEncryptionConfiguration AWS CloudFormation Resource (AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-assistant-serversideencryptionconfiguration.html +type Assistant_ServerSideEncryptionConfiguration struct { + + // KmsKeyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-assistant-serversideencryptionconfiguration.html#cfn-wisdom-assistant-serversideencryptionconfiguration-kmskeyid + KmsKeyId string `json:"KmsKeyId,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 *Assistant_ServerSideEncryptionConfiguration) AWSCloudFormationType() string { + return "AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration" +} diff --git a/cloudformation/wisdom/aws-wisdom-assistantassociation.go b/cloudformation/wisdom/aws-wisdom-assistantassociation.go new file mode 100644 index 0000000000..448b7795c7 --- /dev/null +++ b/cloudformation/wisdom/aws-wisdom-assistantassociation.go @@ -0,0 +1,122 @@ +package wisdom + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// AssistantAssociation AWS CloudFormation Resource (AWS::Wisdom::AssistantAssociation) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistantassociation.html +type AssistantAssociation struct { + + // AssistantId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistantassociation.html#cfn-wisdom-assistantassociation-assistantid + AssistantId string `json:"AssistantId,omitempty"` + + // Association AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistantassociation.html#cfn-wisdom-assistantassociation-association + Association *AssistantAssociation_AssociationData `json:"Association,omitempty"` + + // AssociationType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistantassociation.html#cfn-wisdom-assistantassociation-associationtype + AssociationType string `json:"AssociationType,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistantassociation.html#cfn-wisdom-assistantassociation-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 *AssistantAssociation) AWSCloudFormationType() string { + return "AWS::Wisdom::AssistantAssociation" +} + +// 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 AssistantAssociation) MarshalJSON() ([]byte, error) { + type Properties AssistantAssociation + 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 *AssistantAssociation) UnmarshalJSON(b []byte) error { + type Properties AssistantAssociation + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = AssistantAssociation(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/wisdom/aws-wisdom-assistantassociation_associationdata.go b/cloudformation/wisdom/aws-wisdom-assistantassociation_associationdata.go new file mode 100644 index 0000000000..ca6165a4ca --- /dev/null +++ b/cloudformation/wisdom/aws-wisdom-assistantassociation_associationdata.go @@ -0,0 +1,35 @@ +package wisdom + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// AssistantAssociation_AssociationData AWS CloudFormation Resource (AWS::Wisdom::AssistantAssociation.AssociationData) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-assistantassociation-associationdata.html +type AssistantAssociation_AssociationData struct { + + // KnowledgeBaseId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-assistantassociation-associationdata.html#cfn-wisdom-assistantassociation-associationdata-knowledgebaseid + KnowledgeBaseId string `json:"KnowledgeBaseId,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 *AssistantAssociation_AssociationData) AWSCloudFormationType() string { + return "AWS::Wisdom::AssistantAssociation.AssociationData" +} diff --git a/cloudformation/wisdom/aws-wisdom-knowledgebase.go b/cloudformation/wisdom/aws-wisdom-knowledgebase.go new file mode 100644 index 0000000000..ee906b0a0d --- /dev/null +++ b/cloudformation/wisdom/aws-wisdom-knowledgebase.go @@ -0,0 +1,137 @@ +package wisdom + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// KnowledgeBase AWS CloudFormation Resource (AWS::Wisdom::KnowledgeBase) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-knowledgebase.html +type KnowledgeBase struct { + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-knowledgebase.html#cfn-wisdom-knowledgebase-description + Description string `json:"Description,omitempty"` + + // KnowledgeBaseType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-knowledgebase.html#cfn-wisdom-knowledgebase-knowledgebasetype + KnowledgeBaseType string `json:"KnowledgeBaseType,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-knowledgebase.html#cfn-wisdom-knowledgebase-name + Name string `json:"Name,omitempty"` + + // RenderingConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-knowledgebase.html#cfn-wisdom-knowledgebase-renderingconfiguration + RenderingConfiguration *KnowledgeBase_RenderingConfiguration `json:"RenderingConfiguration,omitempty"` + + // ServerSideEncryptionConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-knowledgebase.html#cfn-wisdom-knowledgebase-serversideencryptionconfiguration + ServerSideEncryptionConfiguration *KnowledgeBase_ServerSideEncryptionConfiguration `json:"ServerSideEncryptionConfiguration,omitempty"` + + // SourceConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-knowledgebase.html#cfn-wisdom-knowledgebase-sourceconfiguration + SourceConfiguration *KnowledgeBase_SourceConfiguration `json:"SourceConfiguration,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-knowledgebase.html#cfn-wisdom-knowledgebase-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 *KnowledgeBase) AWSCloudFormationType() string { + return "AWS::Wisdom::KnowledgeBase" +} + +// 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 KnowledgeBase) MarshalJSON() ([]byte, error) { + type Properties KnowledgeBase + 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 *KnowledgeBase) UnmarshalJSON(b []byte) error { + type Properties KnowledgeBase + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = KnowledgeBase(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/wisdom/aws-wisdom-knowledgebase_appintegrationsconfiguration.go b/cloudformation/wisdom/aws-wisdom-knowledgebase_appintegrationsconfiguration.go new file mode 100644 index 0000000000..f6abb4ac88 --- /dev/null +++ b/cloudformation/wisdom/aws-wisdom-knowledgebase_appintegrationsconfiguration.go @@ -0,0 +1,40 @@ +package wisdom + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// KnowledgeBase_AppIntegrationsConfiguration AWS CloudFormation Resource (AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-appintegrationsconfiguration.html +type KnowledgeBase_AppIntegrationsConfiguration struct { + + // AppIntegrationArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-appintegrationsconfiguration.html#cfn-wisdom-knowledgebase-appintegrationsconfiguration-appintegrationarn + AppIntegrationArn string `json:"AppIntegrationArn,omitempty"` + + // ObjectFields AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-appintegrationsconfiguration.html#cfn-wisdom-knowledgebase-appintegrationsconfiguration-objectfields + ObjectFields []string `json:"ObjectFields,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 *KnowledgeBase_AppIntegrationsConfiguration) AWSCloudFormationType() string { + return "AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration" +} diff --git a/cloudformation/wisdom/aws-wisdom-knowledgebase_renderingconfiguration.go b/cloudformation/wisdom/aws-wisdom-knowledgebase_renderingconfiguration.go new file mode 100644 index 0000000000..6cfeaefd75 --- /dev/null +++ b/cloudformation/wisdom/aws-wisdom-knowledgebase_renderingconfiguration.go @@ -0,0 +1,35 @@ +package wisdom + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// KnowledgeBase_RenderingConfiguration AWS CloudFormation Resource (AWS::Wisdom::KnowledgeBase.RenderingConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-renderingconfiguration.html +type KnowledgeBase_RenderingConfiguration struct { + + // TemplateUri AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-renderingconfiguration.html#cfn-wisdom-knowledgebase-renderingconfiguration-templateuri + TemplateUri string `json:"TemplateUri,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 *KnowledgeBase_RenderingConfiguration) AWSCloudFormationType() string { + return "AWS::Wisdom::KnowledgeBase.RenderingConfiguration" +} diff --git a/cloudformation/wisdom/aws-wisdom-knowledgebase_serversideencryptionconfiguration.go b/cloudformation/wisdom/aws-wisdom-knowledgebase_serversideencryptionconfiguration.go new file mode 100644 index 0000000000..54a740adb0 --- /dev/null +++ b/cloudformation/wisdom/aws-wisdom-knowledgebase_serversideencryptionconfiguration.go @@ -0,0 +1,35 @@ +package wisdom + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// KnowledgeBase_ServerSideEncryptionConfiguration AWS CloudFormation Resource (AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-serversideencryptionconfiguration.html +type KnowledgeBase_ServerSideEncryptionConfiguration struct { + + // KmsKeyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-serversideencryptionconfiguration.html#cfn-wisdom-knowledgebase-serversideencryptionconfiguration-kmskeyid + KmsKeyId string `json:"KmsKeyId,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 *KnowledgeBase_ServerSideEncryptionConfiguration) AWSCloudFormationType() string { + return "AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration" +} diff --git a/cloudformation/wisdom/aws-wisdom-knowledgebase_sourceconfiguration.go b/cloudformation/wisdom/aws-wisdom-knowledgebase_sourceconfiguration.go new file mode 100644 index 0000000000..d723a64726 --- /dev/null +++ b/cloudformation/wisdom/aws-wisdom-knowledgebase_sourceconfiguration.go @@ -0,0 +1,35 @@ +package wisdom + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// KnowledgeBase_SourceConfiguration AWS CloudFormation Resource (AWS::Wisdom::KnowledgeBase.SourceConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-sourceconfiguration.html +type KnowledgeBase_SourceConfiguration struct { + + // AppIntegrations AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-sourceconfiguration.html#cfn-wisdom-knowledgebase-sourceconfiguration-appintegrations + AppIntegrations *KnowledgeBase_AppIntegrationsConfiguration `json:"AppIntegrations,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 *KnowledgeBase_SourceConfiguration) AWSCloudFormationType() string { + return "AWS::Wisdom::KnowledgeBase.SourceConfiguration" +} diff --git a/schema/cloudformation.go b/schema/cloudformation.go index 21045913d2..a4762109a6 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -2219,6 +2219,7 @@ var CloudformationSchema = `{ } }, "required": [ + "Name", "RestApiId", "Type" ], @@ -4005,6 +4006,12 @@ var CloudformationSchema = `{ "Name": { "type": "string" }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "TargetArns": { "items": { "type": "string" @@ -5583,6 +5590,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "Type": { + "type": "string" + }, "Validators": { "items": { "$ref": "#/definitions/AWS::AppConfig::ConfigurationProfile.Validators" @@ -6170,6 +6180,9 @@ var CloudformationSchema = `{ "Redshift": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials" }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials" + }, "Salesforce": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials" }, @@ -6215,6 +6228,9 @@ var CloudformationSchema = `{ "Redshift": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileProperties" }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties" + }, "Salesforce": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileProperties" }, @@ -6383,6 +6399,24 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AppFlow::ConnectorProfile.OAuthProperties": { + "additionalProperties": false, + "properties": { + "AuthCodeUrl": { + "type": "string" + }, + "OAuthScopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TokenUrl": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials": { "additionalProperties": false, "properties": { @@ -6422,6 +6456,45 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "BasicAuthCredentials": { + "type": "object" + }, + "OAuthCredentials": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "ApplicationHostUrl": { + "type": "string" + }, + "ApplicationServicePath": { + "type": "string" + }, + "ClientNumber": { + "type": "string" + }, + "LogonLanguage": { + "type": "string" + }, + "OAuthProperties": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuthProperties" + }, + "PortNumber": { + "type": "number" + }, + "PrivateLinkServiceName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials": { "additionalProperties": false, "properties": { @@ -6789,6 +6862,9 @@ var CloudformationSchema = `{ "S3": { "type": "string" }, + "SAPOData": { + "type": "string" + }, "Salesforce": { "type": "string" }, @@ -7022,6 +7098,15 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AppFlow::Flow.S3InputFormatConfig": { + "additionalProperties": false, + "properties": { + "S3InputFileType": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppFlow::Flow.S3OutputFormatConfig": { "additionalProperties": false, "properties": { @@ -7045,6 +7130,9 @@ var CloudformationSchema = `{ }, "BucketPrefix": { "type": "string" + }, + "S3InputFormatConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.S3InputFormatConfig" } }, "required": [ @@ -7053,6 +7141,18 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AppFlow::Flow.SAPODataSourceProperties": { + "additionalProperties": false, + "properties": { + "ObjectPath": { + "type": "string" + } + }, + "required": [ + "ObjectPath" + ], + "type": "object" + }, "AWS::AppFlow::Flow.SalesforceDestinationProperties": { "additionalProperties": false, "properties": { @@ -7204,6 +7304,9 @@ var CloudformationSchema = `{ "S3": { "$ref": "#/definitions/AWS::AppFlow::Flow.S3SourceProperties" }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SAPODataSourceProperties" + }, "Salesforce": { "$ref": "#/definitions/AWS::AppFlow::Flow.SalesforceSourceProperties" }, @@ -7703,6 +7806,9 @@ var CloudformationSchema = `{ }, "HttpRoute": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoute" + }, + "Priority": { + "type": "number" } }, "type": "object" @@ -13465,6 +13571,9 @@ var CloudformationSchema = `{ "DesiredCapacity": { "type": "string" }, + "DesiredCapacityType": { + "type": "string" + }, "HealthCheckGracePeriod": { "type": "number" }, @@ -13580,6 +13689,132 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.InstanceRequirements": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest" + } + }, + "type": "object" + }, "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution": { "additionalProperties": false, "properties": { @@ -13625,6 +13860,9 @@ var CloudformationSchema = `{ "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides": { "additionalProperties": false, "properties": { + "InstanceRequirements": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstanceRequirements" + }, "InstanceType": { "type": "string" }, @@ -13686,6 +13924,30 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": { "additionalProperties": false, "properties": { @@ -13719,6 +13981,18 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": { "additionalProperties": false, "properties": { @@ -13757,6 +14031,30 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AutoScaling::LaunchConfiguration": { "additionalProperties": false, "properties": { @@ -15020,6 +15318,9 @@ var CloudformationSchema = `{ "AWS::Backup::BackupSelection.BackupSelectionResourceType": { "additionalProperties": false, "properties": { + "Conditions": { + "type": "object" + }, "IamRoleArn": { "type": "string" }, @@ -15029,6 +15330,12 @@ var CloudformationSchema = `{ }, "type": "array" }, + "NotResources": { + "items": { + "type": "string" + }, + "type": "array" + }, "Resources": { "items": { "type": "string" @@ -15426,6 +15733,9 @@ var CloudformationSchema = `{ }, "Type": { "type": "string" + }, + "UnmanagedvCpus": { + "type": "number" } }, "required": [ @@ -15614,6 +15924,9 @@ var CloudformationSchema = `{ "RetryStrategy": { "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" }, + "SchedulingPriority": { + "type": "number" + }, "Tags": { "type": "object" }, @@ -16111,6 +16424,9 @@ var CloudformationSchema = `{ "Priority": { "type": "number" }, + "SchedulingPolicyArn": { + "type": "string" + }, "State": { "type": "string" }, @@ -16161,6 +16477,106 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Batch::SchedulingPolicy": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "FairsharePolicy": { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.FairsharePolicy" + }, + "Name": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Batch::SchedulingPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Batch::SchedulingPolicy.FairsharePolicy": { + "additionalProperties": false, + "properties": { + "ComputeReservation": { + "type": "number" + }, + "ShareDecaySeconds": { + "type": "number" + }, + "ShareDistribution": { + "items": { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.ShareAttributes" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Batch::SchedulingPolicy.ShareAttributes": { + "additionalProperties": false, + "properties": { + "ShareIdentifier": { + "type": "string" + }, + "WeightFactor": { + "type": "number" + } + }, + "type": "object" + }, "AWS::Budgets::Budget": { "additionalProperties": false, "properties": { @@ -16454,7 +16870,8 @@ var CloudformationSchema = `{ "BudgetName", "Definition", "ExecutionRoleArn", - "NotificationType" + "NotificationType", + "Subscribers" ], "type": "object" }, @@ -17063,6 +17480,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "DefaultTimeToLive": { + "type": "number" + }, "EncryptionSpecification": { "$ref": "#/definitions/AWS::Cassandra::Table.EncryptionSpecification" }, @@ -19009,6 +19429,9 @@ var CloudformationSchema = `{ "RealtimeLogConfigArn": { "type": "string" }, + "ResponseHeadersPolicyId": { + "type": "string" + }, "SmoothStreaming": { "type": "boolean" }, @@ -19161,6 +19584,9 @@ var CloudformationSchema = `{ "RealtimeLogConfigArn": { "type": "string" }, + "ResponseHeadersPolicyId": { + "type": "string" + }, "SmoothStreaming": { "type": "boolean" }, @@ -19655,9 +20081,6 @@ var CloudformationSchema = `{ "FunctionConfig": { "$ref": "#/definitions/AWS::CloudFront::Function.FunctionConfig" }, - "FunctionMetadata": { - "$ref": "#/definitions/AWS::CloudFront::Function.FunctionMetadata" - }, "Name": { "type": "string" } @@ -20137,6 +20560,349 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::CloudFront::ResponseHeadersPolicy": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ResponseHeadersPolicyConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig" + } + }, + "required": [ + "ResponseHeadersPolicyConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::ResponseHeadersPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy": { + "additionalProperties": false, + "properties": { + "ContentSecurityPolicy": { + "type": "string" + }, + "Override": { + "type": "boolean" + } + }, + "required": [ + "ContentSecurityPolicy", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions": { + "additionalProperties": false, + "properties": { + "Override": { + "type": "boolean" + } + }, + "required": [ + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CorsConfig": { + "additionalProperties": false, + "properties": { + "AccessControlAllowCredentials": { + "type": "boolean" + }, + "AccessControlAllowHeaders": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders" + }, + "AccessControlAllowMethods": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods" + }, + "AccessControlAllowOrigins": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins" + }, + "AccessControlExposeHeaders": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders" + }, + "AccessControlMaxAgeSec": { + "type": "number" + }, + "OriginOverride": { + "type": "boolean" + } + }, + "required": [ + "AccessControlAllowCredentials", + "AccessControlAllowHeaders", + "AccessControlAllowMethods", + "AccessControlAllowOrigins", + "OriginOverride" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CustomHeader": { + "additionalProperties": false, + "properties": { + "Header": { + "type": "string" + }, + "Override": { + "type": "boolean" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Header", + "Override", + "Value" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeader" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.FrameOptions": { + "additionalProperties": false, + "properties": { + "FrameOption": { + "type": "string" + }, + "Override": { + "type": "boolean" + } + }, + "required": [ + "FrameOption", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy": { + "additionalProperties": false, + "properties": { + "Override": { + "type": "boolean" + }, + "ReferrerPolicy": { + "type": "string" + } + }, + "required": [ + "Override", + "ReferrerPolicy" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "CorsConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CorsConfig" + }, + "CustomHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig" + }, + "Name": { + "type": "string" + }, + "SecurityHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig": { + "additionalProperties": false, + "properties": { + "ContentSecurityPolicy": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy" + }, + "ContentTypeOptions": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions" + }, + "FrameOptions": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.FrameOptions" + }, + "ReferrerPolicy": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy" + }, + "StrictTransportSecurity": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity" + }, + "XSSProtection": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.XSSProtection" + } + }, + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity": { + "additionalProperties": false, + "properties": { + "AccessControlMaxAgeSec": { + "type": "number" + }, + "IncludeSubdomains": { + "type": "boolean" + }, + "Override": { + "type": "boolean" + }, + "Preload": { + "type": "boolean" + } + }, + "required": [ + "AccessControlMaxAgeSec", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.XSSProtection": { + "additionalProperties": false, + "properties": { + "ModeBlock": { + "type": "boolean" + }, + "Override": { + "type": "boolean" + }, + "Protection": { + "type": "boolean" + }, + "ReportUri": { + "type": "string" + } + }, + "required": [ + "Override", + "Protection" + ], + "type": "object" + }, "AWS::CloudFront::StreamingDistribution": { "additionalProperties": false, "properties": { @@ -20737,11 +21503,6 @@ var CloudformationSchema = `{ "type": "string" } }, - "required": [ - "MetricName", - "Namespace", - "Stat" - ], "type": "object" }, "Type": { @@ -20760,8 +21521,7 @@ var CloudformationSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -20796,6 +21556,86 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::CloudWatch::AnomalyDetector.Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricDataQueries": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricDataQuery": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Expression": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricStat" + }, + "Period": { + "type": "number" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Metric" + }, + "Period": { + "type": "number" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Metric", + "Period", + "Stat" + ], + "type": "object" + }, "AWS::CloudWatch::AnomalyDetector.Range": { "additionalProperties": false, "properties": { @@ -21634,6 +22474,9 @@ var CloudformationSchema = `{ "AWS::CodeBuild::Project.ProjectBuildBatchConfig": { "additionalProperties": false, "properties": { + "BatchReportMode": { + "type": "string" + }, "CombineArtifacts": { "type": "boolean" }, @@ -23817,9 +24660,15 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "CreatedBy": { + "type": "string" + }, "DetailType": { "type": "string" }, + "EventTypeId": { + "type": "string" + }, "EventTypeIds": { "items": { "type": "string" @@ -23838,6 +24687,9 @@ var CloudformationSchema = `{ "Tags": { "type": "object" }, + "TargetAddress": { + "type": "string" + }, "Targets": { "items": { "$ref": "#/definitions/AWS::CodeStarNotifications::NotificationRule.Target" @@ -26629,6 +27481,128 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Connect::HoursOfOperation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Config": { + "items": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationConfig" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeZone": { + "type": "string" + } + }, + "required": [ + "Config", + "InstanceArn", + "Name", + "TimeZone" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::HoursOfOperation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::HoursOfOperation.HoursOfOperationConfig": { + "additionalProperties": false, + "properties": { + "Day": { + "type": "string" + }, + "EndTime": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice" + }, + "StartTime": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice" + } + }, + "required": [ + "Day", + "EndTime", + "StartTime" + ], + "type": "object" + }, + "AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice": { + "additionalProperties": false, + "properties": { + "Hours": { + "type": "number" + }, + "Minutes": { + "type": "number" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, "AWS::Connect::QuickConnect": { "additionalProperties": false, "properties": { @@ -26773,6 +27747,210 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Connect::User": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DirectoryUserId": { + "type": "string" + }, + "HierarchyGroupArn": { + "type": "string" + }, + "IdentityInfo": { + "$ref": "#/definitions/AWS::Connect::User.UserIdentityInfo" + }, + "InstanceArn": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "PhoneConfig": { + "$ref": "#/definitions/AWS::Connect::User.UserPhoneConfig" + }, + "RoutingProfileArn": { + "type": "string" + }, + "SecurityProfileArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "InstanceArn", + "PhoneConfig", + "RoutingProfileArn", + "SecurityProfileArns", + "Username" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::User.UserIdentityInfo": { + "additionalProperties": false, + "properties": { + "Email": { + "type": "string" + }, + "FirstName": { + "type": "string" + }, + "LastName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Connect::User.UserPhoneConfig": { + "additionalProperties": false, + "properties": { + "AfterContactWorkTimeLimit": { + "type": "number" + }, + "AutoAccept": { + "type": "boolean" + }, + "DeskPhoneNumber": { + "type": "string" + }, + "PhoneType": { + "type": "string" + } + }, + "required": [ + "PhoneType" + ], + "type": "object" + }, + "AWS::Connect::UserHierarchyGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParentGroupArn": { + "type": "string" + } + }, + "required": [ + "InstanceArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::UserHierarchyGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::CustomerProfiles::Domain": { "additionalProperties": false, "properties": { @@ -28198,6 +29376,9 @@ var CloudformationSchema = `{ "PostgreSqlSettings": { "$ref": "#/definitions/AWS::DMS::Endpoint.PostgreSqlSettings" }, + "RedisSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.RedisSettings" + }, "RedshiftSettings": { "$ref": "#/definitions/AWS::DMS::Endpoint.RedshiftSettings" }, @@ -28310,6 +29491,45 @@ var CloudformationSchema = `{ "Broker": { "type": "string" }, + "IncludeControlDetails": { + "type": "boolean" + }, + "IncludeNullAndEmpty": { + "type": "boolean" + }, + "IncludeTableAlterOperations": { + "type": "boolean" + }, + "IncludeTransactionDetails": { + "type": "boolean" + }, + "NoHexPrefix": { + "type": "boolean" + }, + "PartitionIncludeSchemaTable": { + "type": "boolean" + }, + "SaslPassword": { + "type": "string" + }, + "SaslUserName": { + "type": "string" + }, + "SecurityProtocol": { + "type": "string" + }, + "SslCaCertificateArn": { + "type": "string" + }, + "SslClientCertificateArn": { + "type": "string" + }, + "SslClientKeyArn": { + "type": "string" + }, + "SslClientKeyPassword": { + "type": "string" + }, "Topic": { "type": "string" } @@ -28319,9 +29539,27 @@ var CloudformationSchema = `{ "AWS::DMS::Endpoint.KinesisSettings": { "additionalProperties": false, "properties": { + "IncludeControlDetails": { + "type": "boolean" + }, + "IncludeNullAndEmpty": { + "type": "boolean" + }, + "IncludeTableAlterOperations": { + "type": "boolean" + }, + "IncludeTransactionDetails": { + "type": "boolean" + }, "MessageFormat": { "type": "string" }, + "NoHexPrefix": { + "type": "boolean" + }, + "PartitionIncludeSchemaTable": { + "type": "boolean" + }, "ServiceAccessRoleArn": { "type": "string" }, @@ -28457,6 +29695,33 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::DMS::Endpoint.RedisSettings": { + "additionalProperties": false, + "properties": { + "AuthPassword": { + "type": "string" + }, + "AuthType": { + "type": "string" + }, + "AuthUserName": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "ServerName": { + "type": "string" + }, + "SslCaCertificateArn": { + "type": "string" + }, + "SslSecurityProtocol": { + "type": "string" + } + }, + "type": "object" + }, "AWS::DMS::Endpoint.RedshiftSettings": { "additionalProperties": false, "properties": { @@ -30764,7 +32029,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DataSync::LocationNFS": { + "AWS::DataSync::LocationHDFS": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -30796,13 +32061,43 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "MountOptions": { - "$ref": "#/definitions/AWS::DataSync::LocationNFS.MountOptions" + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "OnPremConfig": { - "$ref": "#/definitions/AWS::DataSync::LocationNFS.OnPremConfig" + "AuthenticationType": { + "type": "string" }, - "ServerHostname": { + "BlockSize": { + "type": "number" + }, + "KerberosKeytab": { + "type": "string" + }, + "KerberosKrb5Conf": { + "type": "string" + }, + "KerberosPrincipal": { + "type": "string" + }, + "KmsKeyProviderUri": { + "type": "string" + }, + "NameNodes": { + "items": { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS.NameNode" + }, + "type": "array" + }, + "QopConfiguration": { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS.QopConfiguration" + }, + "ReplicationFactor": { + "type": "number" + }, + "SimpleUser": { "type": "string" }, "Subdirectory": { @@ -30816,15 +32111,15 @@ var CloudformationSchema = `{ } }, "required": [ - "OnPremConfig", - "ServerHostname", - "Subdirectory" + "AgentArns", + "AuthenticationType", + "NameNodes" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationNFS" + "AWS::DataSync::LocationHDFS" ], "type": "string" }, @@ -30843,31 +32138,35 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DataSync::LocationNFS.MountOptions": { + "AWS::DataSync::LocationHDFS.NameNode": { "additionalProperties": false, "properties": { - "Version": { + "Hostname": { "type": "string" + }, + "Port": { + "type": "number" } }, + "required": [ + "Hostname", + "Port" + ], "type": "object" }, - "AWS::DataSync::LocationNFS.OnPremConfig": { + "AWS::DataSync::LocationHDFS.QopConfiguration": { "additionalProperties": false, "properties": { - "AgentArns": { - "items": { - "type": "string" - }, - "type": "array" + "DataTransferProtection": { + "type": "string" + }, + "RpcProtection": { + "type": "string" } }, - "required": [ - "AgentArns" - ], "type": "object" }, - "AWS::DataSync::LocationObjectStorage": { + "AWS::DataSync::LocationNFS": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -30899,30 +32198,15 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AccessKey": { - "type": "string" - }, - "AgentArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "BucketName": { - "type": "string" + "MountOptions": { + "$ref": "#/definitions/AWS::DataSync::LocationNFS.MountOptions" }, - "SecretKey": { - "type": "string" + "OnPremConfig": { + "$ref": "#/definitions/AWS::DataSync::LocationNFS.OnPremConfig" }, "ServerHostname": { "type": "string" }, - "ServerPort": { - "type": "number" - }, - "ServerProtocol": { - "type": "string" - }, "Subdirectory": { "type": "string" }, @@ -30934,15 +32218,15 @@ var CloudformationSchema = `{ } }, "required": [ - "AgentArns", - "BucketName", - "ServerHostname" + "OnPremConfig", + "ServerHostname", + "Subdirectory" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationObjectStorage" + "AWS::DataSync::LocationNFS" ], "type": "string" }, @@ -30961,7 +32245,31 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DataSync::LocationS3": { + "AWS::DataSync::LocationNFS.MountOptions": { + "additionalProperties": false, + "properties": { + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::LocationNFS.OnPremConfig": { + "additionalProperties": false, + "properties": { + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AgentArns" + ], + "type": "object" + }, + "AWS::DataSync::LocationObjectStorage": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -30993,13 +32301,28 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "S3BucketArn": { + "AccessKey": { "type": "string" }, - "S3Config": { - "$ref": "#/definitions/AWS::DataSync::LocationS3.S3Config" + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "S3StorageClass": { + "BucketName": { + "type": "string" + }, + "SecretKey": { + "type": "string" + }, + "ServerHostname": { + "type": "string" + }, + "ServerPort": { + "type": "number" + }, + "ServerProtocol": { "type": "string" }, "Subdirectory": { @@ -31013,14 +32336,15 @@ var CloudformationSchema = `{ } }, "required": [ - "S3BucketArn", - "S3Config" + "AgentArns", + "BucketName", + "ServerHostname" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationS3" + "AWS::DataSync::LocationObjectStorage" ], "type": "string" }, @@ -31039,19 +32363,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DataSync::LocationS3.S3Config": { - "additionalProperties": false, - "properties": { - "BucketAccessRoleArn": { - "type": "string" - } - }, - "required": [ - "BucketAccessRoleArn" - ], - "type": "object" - }, - "AWS::DataSync::LocationSMB": { + "AWS::DataSync::LocationS3": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -31083,22 +32395,13 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AgentArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Domain": { + "S3BucketArn": { "type": "string" }, - "MountOptions": { - "$ref": "#/definitions/AWS::DataSync::LocationSMB.MountOptions" - }, - "Password": { - "type": "string" + "S3Config": { + "$ref": "#/definitions/AWS::DataSync::LocationS3.S3Config" }, - "ServerHostname": { + "S3StorageClass": { "type": "string" }, "Subdirectory": { @@ -31109,23 +32412,17 @@ var CloudformationSchema = `{ "$ref": "#/definitions/Tag" }, "type": "array" - }, - "User": { - "type": "string" } }, "required": [ - "AgentArns", - "Password", - "ServerHostname", - "Subdirectory", - "User" + "S3BucketArn", + "S3Config" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationSMB" + "AWS::DataSync::LocationS3" ], "type": "string" }, @@ -31144,16 +32441,121 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::DataSync::LocationSMB.MountOptions": { + "AWS::DataSync::LocationS3.S3Config": { "additionalProperties": false, "properties": { - "Version": { + "BucketAccessRoleArn": { "type": "string" } }, + "required": [ + "BucketAccessRoleArn" + ], "type": "object" }, - "AWS::DataSync::Task": { + "AWS::DataSync::LocationSMB": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Domain": { + "type": "string" + }, + "MountOptions": { + "$ref": "#/definitions/AWS::DataSync::LocationSMB.MountOptions" + }, + "Password": { + "type": "string" + }, + "ServerHostname": { + "type": "string" + }, + "Subdirectory": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "User": { + "type": "string" + } + }, + "required": [ + "AgentArns", + "Password", + "ServerHostname", + "Subdirectory", + "User" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::LocationSMB" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::LocationSMB.MountOptions": { + "additionalProperties": false, + "properties": { + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::Task": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -32962,6 +34364,12 @@ var CloudformationSchema = `{ "InstanceType": { "type": "string" }, + "OutPostArn": { + "type": "string" + }, + "PlacementGroupArn": { + "type": "string" + }, "TagSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::CapacityReservation.TagSpecification" @@ -33016,6 +34424,136 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::EC2::CapacityReservationFleet": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "type": "string" + }, + "InstanceTypeSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification" + }, + "type": "array" + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.TagSpecification" + }, + "type": "array" + }, + "Tenancy": { + "type": "string" + }, + "TotalTargetCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::CapacityReservationFleet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::CapacityReservationFleet.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::EC2::CarrierGateway": { "additionalProperties": false, "properties": { @@ -33789,6 +35327,54 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EC2::EC2Fleet.AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.CapacityRebalance": { + "additionalProperties": false, + "properties": { + "ReplacementStrategy": { + "type": "string" + }, + "TerminationDelay": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::EC2Fleet.CapacityReservationOptionsRequest": { "additionalProperties": false, "properties": { @@ -33819,6 +35405,9 @@ var CloudformationSchema = `{ "AvailabilityZone": { "type": "string" }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.InstanceRequirementsRequest" + }, "InstanceType": { "type": "string" }, @@ -33855,6 +35444,141 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::EC2::EC2Fleet.InstanceRequirementsRequest": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryMiBRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.VCpuCountRangeRequest" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MaintenanceStrategies": { + "additionalProperties": false, + "properties": { + "CapacityRebalance": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.CapacityRebalance" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::EC2Fleet.OnDemandOptionsRequest": { "additionalProperties": false, "properties": { @@ -33921,6 +35645,9 @@ var CloudformationSchema = `{ "InstancePoolsToUseCount": { "type": "number" }, + "MaintenanceStrategies": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MaintenanceStrategies" + }, "MaxTotalPrice": { "type": "string" }, @@ -33963,6 +35690,9 @@ var CloudformationSchema = `{ "SpotTargetCapacity": { "type": "number" }, + "TargetCapacityUnitType": { + "type": "string" + }, "TotalTargetCapacity": { "type": "number" } @@ -33972,6 +35702,30 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.VCpuCountRangeRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::EIP": { "additionalProperties": false, "properties": { @@ -37588,6 +39342,42 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EC2::SpotFleet.AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::SpotFleet.BlockDeviceMapping": { "additionalProperties": false, "properties": { @@ -37759,6 +39549,96 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::EC2::SpotFleet.InstanceRequirementsRequest": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryMiBRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.VCpuCountRangeRequest" + } + }, + "type": "object" + }, "AWS::EC2::SpotFleet.LaunchTemplateConfig": { "additionalProperties": false, "properties": { @@ -37780,6 +39660,9 @@ var CloudformationSchema = `{ "AvailabilityZone": { "type": "string" }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest" + }, "InstanceType": { "type": "string" }, @@ -37807,6 +39690,42 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": { "additionalProperties": false, "properties": { @@ -37827,6 +39746,9 @@ var CloudformationSchema = `{ "properties": { "ReplacementStrategy": { "type": "string" + }, + "TerminationDelay": { + "type": "number" } }, "type": "object" @@ -37849,6 +39771,9 @@ var CloudformationSchema = `{ "ImageId": { "type": "string" }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest" + }, "InstanceType": { "type": "string" }, @@ -37899,8 +39824,7 @@ var CloudformationSchema = `{ } }, "required": [ - "ImageId", - "InstanceType" + "ImageId" ], "type": "object" }, @@ -37973,6 +39897,9 @@ var CloudformationSchema = `{ "TargetCapacity": { "type": "number" }, + "TargetCapacityUnitType": { + "type": "string" + }, "TerminateInstancesWithExpiration": { "type": "boolean" }, @@ -38058,6 +39985,30 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EC2::SpotFleet.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.VCpuCountRangeRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::Subnet": { "additionalProperties": false, "properties": { @@ -39252,6 +41203,9 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "Options": { + "$ref": "#/definitions/AWS::EC2::TransitGatewayPeeringAttachment.TransitGatewayPeeringAttachmentOptions" + }, "PeerAccountId": { "type": "string" }, @@ -39300,6 +41254,15 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EC2::TransitGatewayPeeringAttachment.TransitGatewayPeeringAttachmentOptions": { + "additionalProperties": false, + "properties": { + "DynamicRouting": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::TransitGatewayRoute": { "additionalProperties": false, "properties": { @@ -40090,6 +42053,9 @@ var CloudformationSchema = `{ "type": "string" }, "type": "array" + }, + "PayerResponsibility": { + "type": "string" } }, "type": "object" @@ -41982,6 +43948,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "RuntimePlatform": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.RuntimePlatform" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42561,6 +44530,18 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::ECS::TaskDefinition.RuntimePlatform": { + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "type": "string" + }, + "OperatingSystemFamily": { + "type": "string" + } + }, + "type": "object" + }, "AWS::ECS::TaskDefinition.Secret": { "additionalProperties": false, "properties": { @@ -43328,6 +45309,9 @@ var CloudformationSchema = `{ "KubernetesNetworkConfig": { "$ref": "#/definitions/AWS::EKS::Cluster.KubernetesNetworkConfig" }, + "Logging": { + "$ref": "#/definitions/AWS::EKS::Cluster.Logging" + }, "Name": { "type": "string" }, @@ -43337,6 +45321,12 @@ var CloudformationSchema = `{ "RoleArn": { "type": "string" }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "Version": { "type": "string" } @@ -43368,11 +45358,23 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EKS::Cluster.ClusterLogging": { + "additionalProperties": false, + "properties": { + "EnabledTypes": { + "items": { + "$ref": "#/definitions/AWS::EKS::Cluster.LoggingTypeConfig" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::EKS::Cluster.EncryptionConfig": { "additionalProperties": false, "properties": { "Provider": { - "$ref": "#/definitions/AWS::EKS::Cluster.Provider" + "type": "object" }, "Resources": { "items": { @@ -43392,10 +45394,19 @@ var CloudformationSchema = `{ }, "type": "object" }, - "AWS::EKS::Cluster.Provider": { + "AWS::EKS::Cluster.Logging": { "additionalProperties": false, "properties": { - "KeyArn": { + "ClusterLogging": { + "$ref": "#/definitions/AWS::EKS::Cluster.ClusterLogging" + } + }, + "type": "object" + }, + "AWS::EKS::Cluster.LoggingTypeConfig": { + "additionalProperties": false, + "properties": { + "Type": { "type": "string" } }, @@ -43404,6 +45415,18 @@ var CloudformationSchema = `{ "AWS::EKS::Cluster.ResourcesVpcConfig": { "additionalProperties": false, "properties": { + "EndpointPrivateAccess": { + "type": "boolean" + }, + "EndpointPublicAccess": { + "type": "boolean" + }, + "PublicAccessCidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, "SecurityGroupIds": { "items": { "type": "string" @@ -50348,6 +52371,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "ResourcesCleanUp": { + "type": "boolean" + }, "SecurityServicePolicyData": { "type": "object" }, @@ -50475,12 +52501,18 @@ var CloudformationSchema = `{ "FileSystemType": { "type": "string" }, + "FileSystemTypeVersion": { + "type": "string" + }, "KmsKeyId": { "type": "string" }, "LustreConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.LustreConfiguration" }, + "OntapConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.OntapConfiguration" + }, "SecurityGroupIds": { "items": { "type": "string" @@ -50555,6 +52587,18 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::FSx::FileSystem.DiskIopsConfiguration": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "Mode": { + "type": "string" + } + }, + "type": "object" + }, "AWS::FSx::FileSystem.LustreConfiguration": { "additionalProperties": false, "properties": { @@ -50597,6 +52641,48 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::FSx::FileSystem.OntapConfiguration": { + "additionalProperties": false, + "properties": { + "AutomaticBackupRetentionDays": { + "type": "number" + }, + "DailyAutomaticBackupStartTime": { + "type": "string" + }, + "DeploymentType": { + "type": "string" + }, + "DiskIopsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" + }, + "EndpointIpAddressRange": { + "type": "string" + }, + "FsxAdminPassword": { + "type": "string" + }, + "PreferredSubnetId": { + "type": "string" + }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ThroughputCapacity": { + "type": "number" + }, + "WeeklyMaintenanceStartTime": { + "type": "string" + } + }, + "required": [ + "DeploymentType" + ], + "type": "object" + }, "AWS::FSx::FileSystem.SelfManagedActiveDirectoryConfiguration": { "additionalProperties": false, "properties": { @@ -50701,6 +52787,12 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "DataBundles": { + "items": { + "type": "string" + }, + "type": "array" + }, "Description": { "type": "string" }, @@ -50715,6 +52807,9 @@ var CloudformationSchema = `{ }, "Name": { "type": "string" + }, + "SuperuserParameters": { + "$ref": "#/definitions/AWS::FinSpace::Environment.SuperuserParameters" } }, "required": [ @@ -50767,6 +52862,21 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::FinSpace::Environment.SuperuserParameters": { + "additionalProperties": false, + "properties": { + "EmailAddress": { + "type": "string" + }, + "FirstName": { + "type": "string" + }, + "LastName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::FraudDetector::Detector": { "additionalProperties": false, "properties": { @@ -60357,6 +62467,9 @@ var CloudformationSchema = `{ "SnapshotId": { "type": "string" }, + "Throughput": { + "type": "number" + }, "VolumeSize": { "type": "number" }, @@ -60923,6 +63036,9 @@ var CloudformationSchema = `{ "SnapshotId": { "type": "string" }, + "Throughput": { + "type": "number" + }, "VolumeSize": { "type": "number" }, @@ -60994,6 +63110,9 @@ var CloudformationSchema = `{ "Description": { "type": "string" }, + "InstanceMetadataOptions": { + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions" + }, "InstanceProfileName": { "type": "string" }, @@ -61073,6 +63192,18 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions": { + "additionalProperties": false, + "properties": { + "HttpPutResponseHopLimit": { + "type": "number" + }, + "HttpTokens": { + "type": "string" + } + }, + "type": "object" + }, "AWS::ImageBuilder::InfrastructureConfiguration.Logging": { "additionalProperties": false, "properties": { @@ -62223,7 +64354,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::IoT::MitigationAction": { + "AWS::IoT::JobTemplate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -62255,31 +64386,49 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ActionName": { + "AbortConfig": { + "type": "object" + }, + "Description": { "type": "string" }, - "ActionParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams" + "Document": { + "type": "string" }, - "RoleArn": { + "DocumentSource": { + "type": "string" + }, + "JobArn": { + "type": "string" + }, + "JobExecutionsRolloutConfig": { + "type": "object" + }, + "JobTemplateId": { "type": "string" }, + "PresignedUrlConfig": { + "type": "object" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "TimeoutConfig": { + "type": "object" } }, "required": [ - "ActionParams", - "RoleArn" + "Description", + "JobTemplateId" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::MitigationAction" + "AWS::IoT::JobTemplate" ], "type": "string" }, @@ -62298,113 +64447,258 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::IoT::MitigationAction.ActionParams": { - "additionalProperties": false, - "properties": { - "AddThingsToThingGroupParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams" - }, - "EnableIoTLoggingParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams" - }, - "PublishFindingToSnsParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams" - }, - "ReplaceDefaultPolicyVersionParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams" - }, - "UpdateCACertificateParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams" - }, - "UpdateDeviceCertificateParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams" - } - }, - "type": "object" - }, - "AWS::IoT::MitigationAction.AddThingsToThingGroupParams": { - "additionalProperties": false, - "properties": { - "OverrideDynamicGroups": { - "type": "boolean" - }, - "ThingGroupNames": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "ThingGroupNames" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.EnableIoTLoggingParams": { - "additionalProperties": false, - "properties": { - "LogLevel": { - "type": "string" - }, - "RoleArnForLogging": { - "type": "string" - } - }, - "required": [ - "LogLevel", - "RoleArnForLogging" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.PublishFindingToSnsParams": { - "additionalProperties": false, - "properties": { - "TopicArn": { - "type": "string" - } - }, - "required": [ - "TopicArn" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams": { - "additionalProperties": false, - "properties": { - "TemplateName": { - "type": "string" - } - }, - "required": [ - "TemplateName" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.UpdateCACertificateParams": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "required": [ - "Action" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "required": [ - "Action" - ], - "type": "object" - }, - "AWS::IoT::Policy": { + "AWS::IoT::Logging": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "DefaultLogLevel": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "AccountId", + "DefaultLogLevel", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Logging" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ActionName": { + "type": "string" + }, + "ActionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ActionParams", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::MitigationAction" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ActionParams": { + "additionalProperties": false, + "properties": { + "AddThingsToThingGroupParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams" + }, + "EnableIoTLoggingParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams" + }, + "PublishFindingToSnsParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams" + }, + "ReplaceDefaultPolicyVersionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams" + }, + "UpdateCACertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams" + }, + "UpdateDeviceCertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams" + } + }, + "type": "object" + }, + "AWS::IoT::MitigationAction.AddThingsToThingGroupParams": { + "additionalProperties": false, + "properties": { + "OverrideDynamicGroups": { + "type": "boolean" + }, + "ThingGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ThingGroupNames" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.EnableIoTLoggingParams": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "type": "string" + }, + "RoleArnForLogging": { + "type": "string" + } + }, + "required": [ + "LogLevel", + "RoleArnForLogging" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.PublishFindingToSnsParams": { + "additionalProperties": false, + "properties": { + "TopicArn": { + "type": "string" + } + }, + "required": [ + "TopicArn" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams": { + "additionalProperties": false, + "properties": { + "TemplateName": { + "type": "string" + } + }, + "required": [ + "TemplateName" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateCACertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::IoT::Policy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -62631,6 +64925,76 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::IoT::ResourceSpecificLogging": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "type": "string" + }, + "TargetName": { + "type": "string" + }, + "TargetType": { + "type": "string" + } + }, + "required": [ + "LogLevel", + "TargetName", + "TargetType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ResourceSpecificLogging" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IoT::ScheduledAudit": { "additionalProperties": false, "properties": { @@ -67089,6 +69453,217 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::IoTWireless::FuotaTask": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssociateMulticastGroup": { + "type": "string" + }, + "AssociateWirelessDevice": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisassociateMulticastGroup": { + "type": "string" + }, + "DisassociateWirelessDevice": { + "type": "string" + }, + "FirmwareUpdateImage": { + "type": "string" + }, + "FirmwareUpdateRole": { + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::FuotaTask.LoRaWAN" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "FirmwareUpdateImage", + "FirmwareUpdateRole", + "LoRaWAN" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::FuotaTask" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::FuotaTask.LoRaWAN": { + "additionalProperties": false, + "properties": { + "RfRegion": { + "type": "string" + }, + "StartTime": { + "type": "string" + } + }, + "required": [ + "RfRegion" + ], + "type": "object" + }, + "AWS::IoTWireless::MulticastGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssociateWirelessDevice": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisassociateWirelessDevice": { + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::MulticastGroup.LoRaWAN" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "LoRaWAN" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::MulticastGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::MulticastGroup.LoRaWAN": { + "additionalProperties": false, + "properties": { + "DlClass": { + "type": "string" + }, + "NumberOfDevicesInGroup": { + "type": "number" + }, + "NumberOfDevicesRequested": { + "type": "number" + }, + "RfRegion": { + "type": "string" + } + }, + "required": [ + "DlClass", + "RfRegion" + ], + "type": "object" + }, "AWS::IoTWireless::PartnerAccount": { "additionalProperties": false, "properties": { @@ -73891,7 +76466,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Lightsail::Disk": { + "AWS::Lightsail::Database": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -73923,20 +76498,50 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AddOns": { - "items": { - "$ref": "#/definitions/AWS::Lightsail::Disk.AddOn" - }, - "type": "array" - }, "AvailabilityZone": { "type": "string" }, - "DiskName": { + "BackupRetention": { + "type": "boolean" + }, + "CaCertificateIdentifier": { "type": "string" }, - "SizeInGb": { - "type": "number" + "MasterDatabaseName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "RelationalDatabaseBlueprintId": { + "type": "string" + }, + "RelationalDatabaseBundleId": { + "type": "string" + }, + "RelationalDatabaseName": { + "type": "string" + }, + "RelationalDatabaseParameters": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Database.RelationalDatabaseParameter" + }, + "type": "array" + }, + "RotateMasterUserPassword": { + "type": "boolean" }, "Tags": { "items": { @@ -73946,14 +76551,17 @@ var CloudformationSchema = `{ } }, "required": [ - "DiskName", - "SizeInGb" + "MasterDatabaseName", + "MasterUsername", + "RelationalDatabaseBlueprintId", + "RelationalDatabaseBundleId", + "RelationalDatabaseName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Lightsail::Disk" + "AWS::Lightsail::Database" ], "type": "string" }, @@ -73972,34 +76580,145 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Lightsail::Disk.AddOn": { + "AWS::Lightsail::Database.RelationalDatabaseParameter": { "additionalProperties": false, "properties": { - "AddOnType": { + "AllowedValues": { "type": "string" }, - "AutoSnapshotAddOnRequest": { - "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn" + "ApplyMethod": { + "type": "string" }, - "Status": { + "ApplyType": { "type": "string" - } - }, - "required": [ - "AddOnType" - ], - "type": "object" - }, - "AWS::Lightsail::Disk.AutoSnapshotAddOn": { - "additionalProperties": false, - "properties": { - "SnapshotTimeOfDay": { + }, + "DataType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IsModifiable": { + "type": "boolean" + }, + "ParameterName": { + "type": "string" + }, + "ParameterValue": { "type": "string" } }, "type": "object" }, - "AWS::Lightsail::Instance": { + "AWS::Lightsail::Disk": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AddOns": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AddOn" + }, + "type": "array" + }, + "AvailabilityZone": { + "type": "string" + }, + "DiskName": { + "type": "string" + }, + "SizeInGb": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DiskName", + "SizeInGb" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Disk" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Disk.AddOn": { + "additionalProperties": false, + "properties": { + "AddOnType": { + "type": "string" + }, + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "AddOnType" + ], + "type": "object" + }, + "AWS::Lightsail::Disk.AutoSnapshotAddOn": { + "additionalProperties": false, + "properties": { + "SnapshotTimeOfDay": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -74052,20 +76771,20 @@ var CloudformationSchema = `{ "InstanceName": { "type": "string" }, - "Location": { - "$ref": "#/definitions/AWS::Lightsail::Instance.Location" + "KeyPairName": { + "type": "string" }, "Networking": { "$ref": "#/definitions/AWS::Lightsail::Instance.Networking" }, - "State": { - "$ref": "#/definitions/AWS::Lightsail::Instance.State" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "UserData": { + "type": "string" } }, "required": [ @@ -74197,7 +76916,7 @@ var CloudformationSchema = `{ "additionalProperties": false, "properties": { "MonthlyTransfer": { - "type": "object" + "$ref": "#/definitions/AWS::Lightsail::Instance.MonthlyTransfer" }, "Ports": { "items": { @@ -74268,6 +76987,71 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::Lightsail::StaticIp": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AttachedTo": { + "type": "string" + }, + "StaticIpName": { + "type": "string" + } + }, + "required": [ + "StaticIpName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::StaticIp" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Location::GeofenceCollection": { "additionalProperties": false, "properties": { @@ -74624,6 +77408,9 @@ var CloudformationSchema = `{ "KmsKeyId": { "type": "string" }, + "PositionFiltering": { + "type": "string" + }, "PricingPlan": { "type": "string" }, @@ -76388,7 +79175,7 @@ var CloudformationSchema = `{ "type": "string" }, "Tags": { - "$ref": "#/definitions/AWS::MWAA::Environment.TagMap" + "type": "object" }, "WebserverAccessMode": { "type": "string" @@ -76477,96 +79264,91 @@ var CloudformationSchema = `{ }, "type": "object" }, - "AWS::MWAA::Environment.TagMap": { + "AWS::Macie::CustomDataIdentifier": { "additionalProperties": false, - "properties": {}, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreWords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaximumMatchDistance": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Regex": { + "type": "string" + } + }, + "required": [ + "Name", + "Regex" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Macie::CustomDataIdentifier" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Macie::CustomDataIdentifier": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreWords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Keywords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaximumMatchDistance": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "Regex": { - "type": "string" - } - }, - "required": [ - "Name", - "Regex" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Macie::CustomDataIdentifier" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Macie::FindingsFilter": { + "AWS::Macie::FindingsFilter": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -82360,9 +85142,6 @@ var CloudformationSchema = `{ "AutoMinorVersionUpgrade": { "type": "boolean" }, - "ClusterEndpoint": { - "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint" - }, "ClusterName": { "type": "string" }, @@ -82437,7 +85216,9 @@ var CloudformationSchema = `{ } }, "required": [ - "ClusterName" + "ACLName", + "ClusterName", + "NodeType" ], "type": "object" }, @@ -82526,6 +85307,7 @@ var CloudformationSchema = `{ } }, "required": [ + "Family", "ParameterGroupName" ], "type": "object" @@ -82603,7 +85385,8 @@ var CloudformationSchema = `{ } }, "required": [ - "SubnetGroupName" + "SubnetGroupName", + "SubnetIds" ], "type": "object" }, @@ -83408,6 +86191,15 @@ var CloudformationSchema = `{ "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { "additionalProperties": false, "properties": { + "StatefulDefaultActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions" + }, "StatefulRuleGroupReferences": { "items": { "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference" @@ -83460,9 +86252,21 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "type": "string" + } + }, + "type": "object" + }, "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference": { "additionalProperties": false, "properties": { + "Priority": { + "type": "number" + }, "ResourceArn": { "type": "string" } @@ -83885,6 +86689,9 @@ var CloudformationSchema = `{ }, "RulesSource": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSource" + }, + "StatefulRuleOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions" } }, "required": [ @@ -84004,6 +86811,15 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "type": "string" + } + }, + "type": "object" + }, "AWS::NetworkFirewall::RuleGroup.StatelessRule": { "additionalProperties": false, "properties": { @@ -86759,7 +89575,7 @@ var CloudformationSchema = `{ }, "type": "object" }, - "AWS::Pinpoint::ADMChannel": { + "AWS::Panorama::ApplicationInstance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86791,29 +89607,49 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationId": { + "ApplicationInstanceIdToReplace": { "type": "string" }, - "ClientId": { + "DefaultRuntimeContextDevice": { "type": "string" }, - "ClientSecret": { + "Description": { "type": "string" }, - "Enabled": { - "type": "boolean" + "DeviceId": { + "type": "string" + }, + "ManifestOverridesPayload": { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestOverridesPayload" + }, + "ManifestPayload": { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestPayload" + }, + "Name": { + "type": "string" + }, + "RuntimeRoleArn": { + "type": "string" + }, + "StatusFilter": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "ApplicationId", - "ClientId", - "ClientSecret" + "DefaultRuntimeContextDevice", + "ManifestPayload" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::ADMChannel" + "AWS::Panorama::ApplicationInstance" ], "type": "string" }, @@ -86832,7 +89668,25 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Pinpoint::APNSChannel": { + "AWS::Panorama::ApplicationInstance.ManifestOverridesPayload": { + "additionalProperties": false, + "properties": { + "PayloadData": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Panorama::ApplicationInstance.ManifestPayload": { + "additionalProperties": false, + "properties": { + "PayloadData": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Panorama::Package": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86864,42 +89718,103 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationId": { + "PackageName": { "type": "string" }, - "BundleId": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "PackageName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Panorama::Package" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Panorama::PackageVersion": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "Certificate": { - "type": "string" + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "MarkLatest": { + "type": "boolean" }, - "DefaultAuthenticationMethod": { + "OwnerAccount": { "type": "string" }, - "Enabled": { - "type": "boolean" - }, - "PrivateKey": { + "PackageId": { "type": "string" }, - "TeamId": { + "PackageVersion": { "type": "string" }, - "TokenKey": { + "PatchVersion": { "type": "string" }, - "TokenKeyId": { + "UpdatedLatestPatchVersion": { "type": "string" } }, "required": [ - "ApplicationId" + "PackageId", + "PackageVersion", + "PatchVersion" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::APNSChannel" + "AWS::Panorama::PackageVersion" ], "type": "string" }, @@ -86918,7 +89833,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Pinpoint::APNSSandboxChannel": { + "AWS::Pinpoint::ADMChannel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86953,39 +89868,26 @@ var CloudformationSchema = `{ "ApplicationId": { "type": "string" }, - "BundleId": { - "type": "string" - }, - "Certificate": { + "ClientId": { "type": "string" }, - "DefaultAuthenticationMethod": { + "ClientSecret": { "type": "string" }, "Enabled": { "type": "boolean" - }, - "PrivateKey": { - "type": "string" - }, - "TeamId": { - "type": "string" - }, - "TokenKey": { - "type": "string" - }, - "TokenKeyId": { - "type": "string" } }, "required": [ - "ApplicationId" + "ApplicationId", + "ClientId", + "ClientSecret" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::APNSSandboxChannel" + "AWS::Pinpoint::ADMChannel" ], "type": "string" }, @@ -87004,7 +89906,179 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Pinpoint::APNSVoipChannel": { + "AWS::Pinpoint::APNSChannel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Certificate": { + "type": "string" + }, + "DefaultAuthenticationMethod": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PrivateKey": { + "type": "string" + }, + "TeamId": { + "type": "string" + }, + "TokenKey": { + "type": "string" + }, + "TokenKeyId": { + "type": "string" + } + }, + "required": [ + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::APNSChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::APNSSandboxChannel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Certificate": { + "type": "string" + }, + "DefaultAuthenticationMethod": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PrivateKey": { + "type": "string" + }, + "TeamId": { + "type": "string" + }, + "TokenKey": { + "type": "string" + }, + "TokenKeyId": { + "type": "string" + } + }, + "required": [ + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::APNSSandboxChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::APNSVoipChannel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -87499,6 +90573,9 @@ var CloudformationSchema = `{ "Name": { "type": "string" }, + "Priority": { + "type": "number" + }, "Schedule": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.Schedule" }, @@ -87608,6 +90685,24 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::Pinpoint::Campaign.CampaignInAppMessage": { + "additionalProperties": false, + "properties": { + "Content": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageContent" + }, + "type": "array" + }, + "CustomConfig": { + "type": "object" + }, + "Layout": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.CampaignSmsMessage": { "additionalProperties": false, "properties": { @@ -87632,6 +90727,30 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::Pinpoint::Campaign.DefaultButtonConfiguration": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" + }, + "BorderRadius": { + "type": "number" + }, + "ButtonAction": { + "type": "string" + }, + "Link": { + "type": "string" + }, + "Text": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.EventDimensions": { "additionalProperties": false, "properties": { @@ -87647,6 +90766,78 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::Pinpoint::Campaign.InAppMessageBodyConfig": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "Body": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageButton": { + "additionalProperties": false, + "properties": { + "Android": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + }, + "DefaultConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.DefaultButtonConfiguration" + }, + "IOS": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + }, + "Web": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageContent": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" + }, + "BodyConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageBodyConfig" + }, + "HeaderConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageHeaderConfig" + }, + "ImageUrl": { + "type": "string" + }, + "PrimaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton" + }, + "SecondaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageHeaderConfig": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "Header": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.Limits": { "additionalProperties": false, "properties": { @@ -87659,6 +90850,9 @@ var CloudformationSchema = `{ "MessagesPerSecond": { "type": "number" }, + "Session": { + "type": "number" + }, "Total": { "type": "number" } @@ -87728,6 +90922,9 @@ var CloudformationSchema = `{ "GCMMessage": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message" }, + "InAppMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignInAppMessage" + }, "SMSMessage": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignSmsMessage" } @@ -87746,6 +90943,18 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::Pinpoint::Campaign.OverrideButtonConfiguration": { + "additionalProperties": false, + "properties": { + "ButtonAction": { + "type": "string" + }, + "Link": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.QuietTime": { "additionalProperties": false, "properties": { @@ -87857,35 +91066,335 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationId": { - "type": "string" - }, - "ConfigurationSet": { - "type": "string" + "ApplicationId": { + "type": "string" + }, + "ConfigurationSet": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "FromAddress": { + "type": "string" + }, + "Identity": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ApplicationId", + "FromAddress", + "Identity" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::EmailChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::EmailTemplate": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DefaultSubstitutions": { + "type": "string" + }, + "HtmlPart": { + "type": "string" + }, + "Subject": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "TemplateDescription": { + "type": "string" + }, + "TemplateName": { + "type": "string" + }, + "TextPart": { + "type": "string" + } + }, + "required": [ + "Subject", + "TemplateName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::EmailTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::EventStream": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "DestinationStreamArn": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ApplicationId", + "DestinationStreamArn", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::EventStream" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::GCMChannel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApiKey": { + "type": "string" + }, + "ApplicationId": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "ApiKey", + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::GCMChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Content": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.InAppMessageContent" + }, + "type": "array" }, - "Enabled": { - "type": "boolean" + "CustomConfig": { + "type": "object" }, - "FromAddress": { + "Layout": { "type": "string" }, - "Identity": { + "Tags": { + "type": "object" + }, + "TemplateDescription": { "type": "string" }, - "RoleArn": { + "TemplateName": { "type": "string" } }, "required": [ - "ApplicationId", - "FromAddress", - "Identity" + "TemplateName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::EmailChannel" + "AWS::Pinpoint::InAppTemplate" ], "type": "string" }, @@ -87904,224 +91413,112 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Pinpoint::EmailTemplate": { + "AWS::Pinpoint::InAppTemplate.BodyConfig": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Alignment": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Body": { + "type": "string" }, - "Metadata": { - "type": "object" + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.ButtonConfig": { + "additionalProperties": false, + "properties": { + "Android": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" }, - "Properties": { - "additionalProperties": false, - "properties": { - "DefaultSubstitutions": { - "type": "string" - }, - "HtmlPart": { - "type": "string" - }, - "Subject": { - "type": "string" - }, - "Tags": { - "type": "object" - }, - "TemplateDescription": { - "type": "string" - }, - "TemplateName": { - "type": "string" - }, - "TextPart": { - "type": "string" - } - }, - "required": [ - "Subject", - "TemplateName" - ], - "type": "object" + "DefaultConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration" }, - "Type": { - "enum": [ - "AWS::Pinpoint::EmailTemplate" - ], - "type": "string" + "IOS": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" + "Web": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::Pinpoint::EventStream": { + "AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "BackgroundColor": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "BorderRadius": { + "type": "number" }, - "Metadata": { - "type": "object" + "ButtonAction": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ApplicationId": { - "type": "string" - }, - "DestinationStreamArn": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "ApplicationId", - "DestinationStreamArn", - "RoleArn" - ], - "type": "object" + "Link": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::Pinpoint::EventStream" - ], + "Text": { "type": "string" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "TextColor": { "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::Pinpoint::GCMChannel": { + "AWS::Pinpoint::InAppTemplate.HeaderConfig": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Alignment": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Header": { + "type": "string" }, - "Metadata": { - "type": "object" + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.InAppMessageContent": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ApiKey": { - "type": "string" - }, - "ApplicationId": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - } - }, - "required": [ - "ApiKey", - "ApplicationId" - ], - "type": "object" + "BodyConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.BodyConfig" }, - "Type": { - "enum": [ - "AWS::Pinpoint::GCMChannel" - ], + "HeaderConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.HeaderConfig" + }, + "ImageUrl": { "type": "string" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "PrimaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig" + }, + "SecondaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration": { + "additionalProperties": false, + "properties": { + "ButtonAction": { + "type": "string" + }, + "Link": { "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, "AWS::Pinpoint::PushTemplate": { @@ -89492,7 +92889,8 @@ var CloudformationSchema = `{ }, "required": [ "AnalysisId", - "AwsAccountId" + "AwsAccountId", + "SourceEntity" ], "type": "object" }, @@ -89781,7 +93179,8 @@ var CloudformationSchema = `{ }, "required": [ "AwsAccountId", - "DashboardId" + "DashboardId", + "SourceEntity" ], "type": "object" }, @@ -90749,6 +94148,18 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::QuickSight::DataSource.AmazonOpenSearchParameters": { + "additionalProperties": false, + "properties": { + "Domain": { + "type": "string" + } + }, + "required": [ + "Domain" + ], + "type": "object" + }, "AWS::QuickSight::DataSource.AthenaParameters": { "additionalProperties": false, "properties": { @@ -90850,6 +94261,9 @@ var CloudformationSchema = `{ "AmazonElasticsearchParameters": { "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonElasticsearchParameters" }, + "AmazonOpenSearchParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonOpenSearchParameters" + }, "AthenaParameters": { "$ref": "#/definitions/AWS::QuickSight::DataSource.AthenaParameters" }, @@ -91241,6 +94655,7 @@ var CloudformationSchema = `{ }, "required": [ "AwsAccountId", + "SourceEntity", "TemplateId" ], "type": "object" @@ -93313,9 +96728,6 @@ var CloudformationSchema = `{ "Encrypted": { "type": "boolean" }, - "Endpoint": { - "$ref": "#/definitions/AWS::Redshift::Cluster.Endpoint" - }, "EnhancedVpcRouting": { "type": "boolean" }, @@ -93587,7 +96999,410 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Description": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSecurityGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::ClusterSecurityGroupIngress": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CIDRIP": { + "type": "string" + }, + "ClusterSecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "type": "string" + } + }, + "required": [ + "ClusterSecurityGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSecurityGroupIngress" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::ClusterSubnetGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::EndpointAccess": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "type": "string" + }, + "EndpointName": { + "type": "string" + }, + "ResourceOwner": { + "type": "string" + }, + "SubnetGroupName": { + "type": "string" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "EndpointName", + "VpcSecurityGroupIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::EndpointAccess" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::EndpointAccess.VpcSecurityGroup": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + }, + "VpcSecurityGroupId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Redshift::EndpointAuthorization": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Account": { + "type": "string" + }, + "ClusterIdentifier": { + "type": "string" + }, + "Force": { + "type": "boolean" + }, + "VpcIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Account", + "ClusterIdentifier" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::EndpointAuthorization" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::EventSubscription": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Severity": { + "type": "string" + }, + "SnsTopicArn": { + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceType": { + "type": "string" + }, + "SubscriptionName": { "type": "string" }, "Tags": { @@ -93598,13 +97413,13 @@ var CloudformationSchema = `{ } }, "required": [ - "Description" + "SubscriptionName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSecurityGroup" + "AWS::Redshift::EventSubscription" ], "type": "string" }, @@ -93623,7 +97438,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Redshift::ClusterSecurityGroupIngress": { + "AWS::Redshift::ScheduledAction": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -93655,27 +97470,39 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CIDRIP": { + "Enable": { + "type": "boolean" + }, + "EndTime": { "type": "string" }, - "ClusterSecurityGroupName": { + "IamRole": { "type": "string" }, - "EC2SecurityGroupName": { + "Schedule": { "type": "string" }, - "EC2SecurityGroupOwnerId": { + "ScheduledActionDescription": { "type": "string" + }, + "ScheduledActionName": { + "type": "string" + }, + "StartTime": { + "type": "string" + }, + "TargetAction": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ScheduledActionType" } }, "required": [ - "ClusterSecurityGroupName" + "ScheduledActionName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSecurityGroupIngress" + "AWS::Redshift::ScheduledAction" ], "type": "string" }, @@ -93694,7 +97521,70 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Redshift::ClusterSubnetGroup": { + "AWS::Redshift::ScheduledAction.PauseClusterMessage": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "type": "string" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ResizeClusterMessage": { + "additionalProperties": false, + "properties": { + "Classic": { + "type": "boolean" + }, + "ClusterIdentifier": { + "type": "string" + }, + "ClusterType": { + "type": "string" + }, + "NodeType": { + "type": "string" + }, + "NumberOfNodes": { + "type": "number" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ResumeClusterMessage": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "type": "string" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ScheduledActionType": { + "additionalProperties": false, + "properties": { + "PauseCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.PauseClusterMessage" + }, + "ResizeCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResizeClusterMessage" + }, + "ResumeCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResumeClusterMessage" + } + }, + "type": "object" + }, + "AWS::Rekognition::Project": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -93726,31 +97616,18 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "ProjectName": { "type": "string" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, "required": [ - "Description", - "SubnetIds" + "ProjectName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSubnetGroup" + "AWS::Rekognition::Project" ], "type": "string" }, @@ -95013,171 +98890,177 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Comment": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "HostedZoneName": { - "type": "string" - }, - "RecordSets": { - "items": { - "$ref": "#/definitions/AWS::Route53::RecordSetGroup.RecordSet" - }, - "type": "array" - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Route53::RecordSetGroup" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::Route53::RecordSetGroup.AliasTarget": { - "additionalProperties": false, - "properties": { - "DNSName": { - "type": "string" - }, - "EvaluateTargetHealth": { - "type": "boolean" - }, - "HostedZoneId": { - "type": "string" - } - }, - "required": [ - "DNSName", - "HostedZoneId" - ], - "type": "object" - }, - "AWS::Route53::RecordSetGroup.GeoLocation": { - "additionalProperties": false, - "properties": { - "ContinentCode": { - "type": "string" - }, - "CountryCode": { - "type": "string" - }, - "SubdivisionCode": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Route53::RecordSetGroup.RecordSet": { - "additionalProperties": false, - "properties": { - "AliasTarget": { - "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" - }, - "Comment": { - "type": "string" - }, - "Failover": { - "type": "string" - }, - "GeoLocation": { - "$ref": "#/definitions/AWS::Route53::RecordSetGroup.GeoLocation" - }, - "HealthCheckId": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "HostedZoneName": { - "type": "string" - }, - "MultiValueAnswer": { - "type": "boolean" - }, - "Name": { - "type": "string" - }, - "Region": { - "type": "string" - }, - "ResourceRecords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SetIdentifier": { - "type": "string" - }, - "TTL": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Weight": { - "type": "number" - } - }, - "required": [ - "Name", - "Type" - ], - "type": "object" - }, - "AWS::Route53RecoveryControl::Cluster": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "Comment": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "HostedZoneName": { + "type": "string" + }, + "RecordSets": { + "items": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.RecordSet" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::RecordSetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53::RecordSetGroup.AliasTarget": { + "additionalProperties": false, + "properties": { + "DNSName": { + "type": "string" + }, + "EvaluateTargetHealth": { + "type": "boolean" + }, + "HostedZoneId": { + "type": "string" + } + }, + "required": [ + "DNSName", + "HostedZoneId" + ], + "type": "object" + }, + "AWS::Route53::RecordSetGroup.GeoLocation": { + "additionalProperties": false, + "properties": { + "ContinentCode": { + "type": "string" + }, + "CountryCode": { + "type": "string" + }, + "SubdivisionCode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53::RecordSetGroup.RecordSet": { + "additionalProperties": false, + "properties": { + "AliasTarget": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" + }, + "Comment": { + "type": "string" + }, + "Failover": { + "type": "string" + }, + "GeoLocation": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.GeoLocation" + }, + "HealthCheckId": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "HostedZoneName": { + "type": "string" + }, + "MultiValueAnswer": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Region": { + "type": "string" + }, + "ResourceRecords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SetIdentifier": { + "type": "string" + }, + "TTL": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::Route53RecoveryControl::Cluster": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Name": { "type": "string" }, - { + "Tags": { "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } }, "type": "object" }, @@ -95250,6 +99133,12 @@ var CloudformationSchema = `{ }, "Name": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -95392,6 +99281,12 @@ var CloudformationSchema = `{ }, "RuleConfig": { "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.RuleConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -96117,6 +100012,72 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Route53Resolver::ResolverConfig": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AutodefinedReverseFlag": { + "type": "string" + }, + "ResourceId": { + "type": "string" + } + }, + "required": [ + "AutodefinedReverseFlag", + "ResourceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::ResolverConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Route53Resolver::ResolverDNSSECConfig": { "additionalProperties": false, "properties": { @@ -98286,7 +102247,7 @@ var CloudformationSchema = `{ } }, "required": [ - "Name" + "ObjectLambdaConfiguration" ], "type": "object" }, @@ -98352,6 +102313,10 @@ var CloudformationSchema = `{ "type": "object" } }, + "required": [ + "Actions", + "ContentTransformation" + ], "type": "object" }, "AWS::S3ObjectLambda::AccessPointPolicy": { @@ -103056,6 +107021,9 @@ var CloudformationSchema = `{ "RetainAllVariantProperties": { "type": "boolean" }, + "RetainDeploymentConfig": { + "type": "boolean" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -103171,6 +107139,9 @@ var CloudformationSchema = `{ "CanarySize": { "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" }, + "LinearStepSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, "Type": { "type": "string" }, @@ -105448,6 +109419,9 @@ var CloudformationSchema = `{ "NotebookInstanceName": { "type": "string" }, + "PlatformIdentifier": { + "type": "string" + }, "RoleArn": { "type": "string" }, @@ -106192,6 +110166,12 @@ var CloudformationSchema = `{ "RotationType": { "type": "string" }, + "SuperuserSecretArn": { + "type": "string" + }, + "SuperuserSecretKmsKeyArn": { + "type": "string" + }, "VpcSecurityGroupIds": { "type": "string" }, @@ -109051,6 +113031,9 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "ArtifactConfig": { + "$ref": "#/definitions/AWS::Synthetics::Canary.ArtifactConfig" + }, "ArtifactS3Location": { "type": "string" }, @@ -109126,6 +113109,15 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Synthetics::Canary.ArtifactConfig": { + "additionalProperties": false, + "properties": { + "S3Encryption": { + "$ref": "#/definitions/AWS::Synthetics::Canary.S3Encryption" + } + }, + "type": "object" + }, "AWS::Synthetics::Canary.BaseScreenshot": { "additionalProperties": false, "properties": { @@ -109192,6 +113184,18 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::Synthetics::Canary.S3Encryption": { + "additionalProperties": false, + "properties": { + "EncryptionMode": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Synthetics::Canary.Schedule": { "additionalProperties": false, "properties": { @@ -113103,6 +117107,311 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Wisdom::Assistant": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ServerSideEncryptionConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Wisdom::Assistant" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::AssistantAssociation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssistantId": { + "type": "string" + }, + "Association": { + "$ref": "#/definitions/AWS::Wisdom::AssistantAssociation.AssociationData" + }, + "AssociationType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AssistantId", + "Association", + "AssociationType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Wisdom::AssistantAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::AssistantAssociation.AssociationData": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "KnowledgeBaseType": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RenderingConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.RenderingConfiguration" + }, + "ServerSideEncryptionConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration" + }, + "SourceConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.SourceConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "KnowledgeBaseType", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Wisdom::KnowledgeBase" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration": { + "additionalProperties": false, + "properties": { + "AppIntegrationArn": { + "type": "string" + }, + "ObjectFields": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AppIntegrationArn", + "ObjectFields" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.RenderingConfiguration": { + "additionalProperties": false, + "properties": { + "TemplateUri": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.SourceConfiguration": { + "additionalProperties": false, + "properties": { + "AppIntegrations": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration" + } + }, + "type": "object" + }, "AWS::WorkSpaces::ConnectionAlias": { "additionalProperties": false, "properties": { @@ -114157,6 +118466,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Batch::JobQueue" }, + { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy" + }, { "$ref": "#/definitions/AWS::Budgets::Budget" }, @@ -114256,6 +118568,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig" }, + { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy" + }, { "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution" }, @@ -114397,9 +118712,18 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Config::StoredQuery" }, + { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation" + }, { "$ref": "#/definitions/AWS::Connect::QuickConnect" }, + { + "$ref": "#/definitions/AWS::Connect::User" + }, + { + "$ref": "#/definitions/AWS::Connect::UserHierarchyGroup" + }, { "$ref": "#/definitions/AWS::CustomerProfiles::Domain" }, @@ -114466,6 +118790,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::DataSync::LocationFSxWindows" }, + { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS" + }, { "$ref": "#/definitions/AWS::DataSync::LocationNFS" }, @@ -114520,6 +118847,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::EC2::CapacityReservation" }, + { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet" + }, { "$ref": "#/definitions/AWS::EC2::CarrierGateway" }, @@ -115213,6 +119543,12 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IoT::FleetMetric" }, + { + "$ref": "#/definitions/AWS::IoT::JobTemplate" + }, + { + "$ref": "#/definitions/AWS::IoT::Logging" + }, { "$ref": "#/definitions/AWS::IoT::MitigationAction" }, @@ -115225,6 +119561,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate" }, + { + "$ref": "#/definitions/AWS::IoT::ResourceSpecificLogging" + }, { "$ref": "#/definitions/AWS::IoT::ScheduledAudit" }, @@ -115297,6 +119636,12 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IoTWireless::DeviceProfile" }, + { + "$ref": "#/definitions/AWS::IoTWireless::FuotaTask" + }, + { + "$ref": "#/definitions/AWS::IoTWireless::MulticastGroup" + }, { "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount" }, @@ -115402,12 +119747,18 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::LicenseManager::License" }, + { + "$ref": "#/definitions/AWS::Lightsail::Database" + }, { "$ref": "#/definitions/AWS::Lightsail::Disk" }, { "$ref": "#/definitions/AWS::Lightsail::Instance" }, + { + "$ref": "#/definitions/AWS::Lightsail::StaticIp" + }, { "$ref": "#/definitions/AWS::Location::GeofenceCollection" }, @@ -115633,6 +119984,15 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::OpsWorksCM::Server" }, + { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance" + }, + { + "$ref": "#/definitions/AWS::Panorama::Package" + }, + { + "$ref": "#/definitions/AWS::Panorama::PackageVersion" + }, { "$ref": "#/definitions/AWS::Pinpoint::ADMChannel" }, @@ -115672,6 +120032,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Pinpoint::GCMChannel" }, + { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate" + }, { "$ref": "#/definitions/AWS::Pinpoint::PushTemplate" }, @@ -115780,6 +120143,21 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Redshift::ClusterSubnetGroup" }, + { + "$ref": "#/definitions/AWS::Redshift::EndpointAccess" + }, + { + "$ref": "#/definitions/AWS::Redshift::EndpointAuthorization" + }, + { + "$ref": "#/definitions/AWS::Redshift::EventSubscription" + }, + { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction" + }, + { + "$ref": "#/definitions/AWS::Rekognition::Project" + }, { "$ref": "#/definitions/AWS::ResourceGroups::Group" }, @@ -115852,6 +120230,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroupAssociation" }, + { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverConfig" + }, { "$ref": "#/definitions/AWS::Route53Resolver::ResolverDNSSECConfig" }, @@ -116251,6 +120632,15 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::WAFv2::WebACLAssociation" }, + { + "$ref": "#/definitions/AWS::Wisdom::Assistant" + }, + { + "$ref": "#/definitions/AWS::Wisdom::AssistantAssociation" + }, + { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase" + }, { "$ref": "#/definitions/AWS::WorkSpaces::ConnectionAlias" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index 56a3442116..a4fa71bf11 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -2216,6 +2216,7 @@ } }, "required": [ + "Name", "RestApiId", "Type" ], @@ -4002,6 +4003,12 @@ "Name": { "type": "string" }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "TargetArns": { "items": { "type": "string" @@ -5580,6 +5587,9 @@ }, "type": "array" }, + "Type": { + "type": "string" + }, "Validators": { "items": { "$ref": "#/definitions/AWS::AppConfig::ConfigurationProfile.Validators" @@ -6167,6 +6177,9 @@ "Redshift": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials" }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials" + }, "Salesforce": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials" }, @@ -6212,6 +6225,9 @@ "Redshift": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileProperties" }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties" + }, "Salesforce": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileProperties" }, @@ -6380,6 +6396,24 @@ ], "type": "object" }, + "AWS::AppFlow::ConnectorProfile.OAuthProperties": { + "additionalProperties": false, + "properties": { + "AuthCodeUrl": { + "type": "string" + }, + "OAuthScopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TokenUrl": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials": { "additionalProperties": false, "properties": { @@ -6419,6 +6453,45 @@ ], "type": "object" }, + "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "BasicAuthCredentials": { + "type": "object" + }, + "OAuthCredentials": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "ApplicationHostUrl": { + "type": "string" + }, + "ApplicationServicePath": { + "type": "string" + }, + "ClientNumber": { + "type": "string" + }, + "LogonLanguage": { + "type": "string" + }, + "OAuthProperties": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuthProperties" + }, + "PortNumber": { + "type": "number" + }, + "PrivateLinkServiceName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials": { "additionalProperties": false, "properties": { @@ -6786,6 +6859,9 @@ "S3": { "type": "string" }, + "SAPOData": { + "type": "string" + }, "Salesforce": { "type": "string" }, @@ -7019,6 +7095,15 @@ ], "type": "object" }, + "AWS::AppFlow::Flow.S3InputFormatConfig": { + "additionalProperties": false, + "properties": { + "S3InputFileType": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppFlow::Flow.S3OutputFormatConfig": { "additionalProperties": false, "properties": { @@ -7042,6 +7127,9 @@ }, "BucketPrefix": { "type": "string" + }, + "S3InputFormatConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.S3InputFormatConfig" } }, "required": [ @@ -7050,6 +7138,18 @@ ], "type": "object" }, + "AWS::AppFlow::Flow.SAPODataSourceProperties": { + "additionalProperties": false, + "properties": { + "ObjectPath": { + "type": "string" + } + }, + "required": [ + "ObjectPath" + ], + "type": "object" + }, "AWS::AppFlow::Flow.SalesforceDestinationProperties": { "additionalProperties": false, "properties": { @@ -7201,6 +7301,9 @@ "S3": { "$ref": "#/definitions/AWS::AppFlow::Flow.S3SourceProperties" }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SAPODataSourceProperties" + }, "Salesforce": { "$ref": "#/definitions/AWS::AppFlow::Flow.SalesforceSourceProperties" }, @@ -7700,6 +7803,9 @@ }, "HttpRoute": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoute" + }, + "Priority": { + "type": "number" } }, "type": "object" @@ -13462,6 +13568,9 @@ "DesiredCapacity": { "type": "string" }, + "DesiredCapacityType": { + "type": "string" + }, "HealthCheckGracePeriod": { "type": "number" }, @@ -13577,6 +13686,132 @@ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.InstanceRequirements": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest" + } + }, + "type": "object" + }, "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution": { "additionalProperties": false, "properties": { @@ -13622,6 +13857,9 @@ "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides": { "additionalProperties": false, "properties": { + "InstanceRequirements": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstanceRequirements" + }, "InstanceType": { "type": "string" }, @@ -13683,6 +13921,30 @@ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": { "additionalProperties": false, "properties": { @@ -13716,6 +13978,18 @@ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": { "additionalProperties": false, "properties": { @@ -13754,6 +14028,30 @@ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AutoScaling::LaunchConfiguration": { "additionalProperties": false, "properties": { @@ -15017,6 +15315,9 @@ "AWS::Backup::BackupSelection.BackupSelectionResourceType": { "additionalProperties": false, "properties": { + "Conditions": { + "type": "object" + }, "IamRoleArn": { "type": "string" }, @@ -15026,6 +15327,12 @@ }, "type": "array" }, + "NotResources": { + "items": { + "type": "string" + }, + "type": "array" + }, "Resources": { "items": { "type": "string" @@ -15423,6 +15730,9 @@ }, "Type": { "type": "string" + }, + "UnmanagedvCpus": { + "type": "number" } }, "required": [ @@ -15611,6 +15921,9 @@ "RetryStrategy": { "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" }, + "SchedulingPriority": { + "type": "number" + }, "Tags": { "type": "object" }, @@ -16108,6 +16421,9 @@ "Priority": { "type": "number" }, + "SchedulingPolicyArn": { + "type": "string" + }, "State": { "type": "string" }, @@ -16158,6 +16474,106 @@ ], "type": "object" }, + "AWS::Batch::SchedulingPolicy": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "FairsharePolicy": { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.FairsharePolicy" + }, + "Name": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Batch::SchedulingPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Batch::SchedulingPolicy.FairsharePolicy": { + "additionalProperties": false, + "properties": { + "ComputeReservation": { + "type": "number" + }, + "ShareDecaySeconds": { + "type": "number" + }, + "ShareDistribution": { + "items": { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.ShareAttributes" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Batch::SchedulingPolicy.ShareAttributes": { + "additionalProperties": false, + "properties": { + "ShareIdentifier": { + "type": "string" + }, + "WeightFactor": { + "type": "number" + } + }, + "type": "object" + }, "AWS::Budgets::Budget": { "additionalProperties": false, "properties": { @@ -16451,7 +16867,8 @@ "BudgetName", "Definition", "ExecutionRoleArn", - "NotificationType" + "NotificationType", + "Subscribers" ], "type": "object" }, @@ -17060,6 +17477,9 @@ }, "type": "array" }, + "DefaultTimeToLive": { + "type": "number" + }, "EncryptionSpecification": { "$ref": "#/definitions/AWS::Cassandra::Table.EncryptionSpecification" }, @@ -19006,6 +19426,9 @@ "RealtimeLogConfigArn": { "type": "string" }, + "ResponseHeadersPolicyId": { + "type": "string" + }, "SmoothStreaming": { "type": "boolean" }, @@ -19158,6 +19581,9 @@ "RealtimeLogConfigArn": { "type": "string" }, + "ResponseHeadersPolicyId": { + "type": "string" + }, "SmoothStreaming": { "type": "boolean" }, @@ -19652,9 +20078,6 @@ "FunctionConfig": { "$ref": "#/definitions/AWS::CloudFront::Function.FunctionConfig" }, - "FunctionMetadata": { - "$ref": "#/definitions/AWS::CloudFront::Function.FunctionMetadata" - }, "Name": { "type": "string" } @@ -20134,6 +20557,349 @@ ], "type": "object" }, + "AWS::CloudFront::ResponseHeadersPolicy": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ResponseHeadersPolicyConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig" + } + }, + "required": [ + "ResponseHeadersPolicyConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::ResponseHeadersPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy": { + "additionalProperties": false, + "properties": { + "ContentSecurityPolicy": { + "type": "string" + }, + "Override": { + "type": "boolean" + } + }, + "required": [ + "ContentSecurityPolicy", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions": { + "additionalProperties": false, + "properties": { + "Override": { + "type": "boolean" + } + }, + "required": [ + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CorsConfig": { + "additionalProperties": false, + "properties": { + "AccessControlAllowCredentials": { + "type": "boolean" + }, + "AccessControlAllowHeaders": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders" + }, + "AccessControlAllowMethods": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods" + }, + "AccessControlAllowOrigins": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins" + }, + "AccessControlExposeHeaders": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders" + }, + "AccessControlMaxAgeSec": { + "type": "number" + }, + "OriginOverride": { + "type": "boolean" + } + }, + "required": [ + "AccessControlAllowCredentials", + "AccessControlAllowHeaders", + "AccessControlAllowMethods", + "AccessControlAllowOrigins", + "OriginOverride" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CustomHeader": { + "additionalProperties": false, + "properties": { + "Header": { + "type": "string" + }, + "Override": { + "type": "boolean" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Header", + "Override", + "Value" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeader" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.FrameOptions": { + "additionalProperties": false, + "properties": { + "FrameOption": { + "type": "string" + }, + "Override": { + "type": "boolean" + } + }, + "required": [ + "FrameOption", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy": { + "additionalProperties": false, + "properties": { + "Override": { + "type": "boolean" + }, + "ReferrerPolicy": { + "type": "string" + } + }, + "required": [ + "Override", + "ReferrerPolicy" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "CorsConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CorsConfig" + }, + "CustomHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig" + }, + "Name": { + "type": "string" + }, + "SecurityHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig": { + "additionalProperties": false, + "properties": { + "ContentSecurityPolicy": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy" + }, + "ContentTypeOptions": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions" + }, + "FrameOptions": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.FrameOptions" + }, + "ReferrerPolicy": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy" + }, + "StrictTransportSecurity": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity" + }, + "XSSProtection": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.XSSProtection" + } + }, + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity": { + "additionalProperties": false, + "properties": { + "AccessControlMaxAgeSec": { + "type": "number" + }, + "IncludeSubdomains": { + "type": "boolean" + }, + "Override": { + "type": "boolean" + }, + "Preload": { + "type": "boolean" + } + }, + "required": [ + "AccessControlMaxAgeSec", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.XSSProtection": { + "additionalProperties": false, + "properties": { + "ModeBlock": { + "type": "boolean" + }, + "Override": { + "type": "boolean" + }, + "Protection": { + "type": "boolean" + }, + "ReportUri": { + "type": "string" + } + }, + "required": [ + "Override", + "Protection" + ], + "type": "object" + }, "AWS::CloudFront::StreamingDistribution": { "additionalProperties": false, "properties": { @@ -20734,11 +21500,6 @@ "type": "string" } }, - "required": [ - "MetricName", - "Namespace", - "Stat" - ], "type": "object" }, "Type": { @@ -20757,8 +21518,7 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -20793,6 +21553,86 @@ ], "type": "object" }, + "AWS::CloudWatch::AnomalyDetector.Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricDataQueries": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricDataQuery": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Expression": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricStat" + }, + "Period": { + "type": "number" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Metric" + }, + "Period": { + "type": "number" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Metric", + "Period", + "Stat" + ], + "type": "object" + }, "AWS::CloudWatch::AnomalyDetector.Range": { "additionalProperties": false, "properties": { @@ -21631,6 +22471,9 @@ "AWS::CodeBuild::Project.ProjectBuildBatchConfig": { "additionalProperties": false, "properties": { + "BatchReportMode": { + "type": "string" + }, "CombineArtifacts": { "type": "boolean" }, @@ -23814,9 +24657,15 @@ "Properties": { "additionalProperties": false, "properties": { + "CreatedBy": { + "type": "string" + }, "DetailType": { "type": "string" }, + "EventTypeId": { + "type": "string" + }, "EventTypeIds": { "items": { "type": "string" @@ -23835,6 +24684,9 @@ "Tags": { "type": "object" }, + "TargetAddress": { + "type": "string" + }, "Targets": { "items": { "$ref": "#/definitions/AWS::CodeStarNotifications::NotificationRule.Target" @@ -26626,6 +27478,128 @@ ], "type": "object" }, + "AWS::Connect::HoursOfOperation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Config": { + "items": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationConfig" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeZone": { + "type": "string" + } + }, + "required": [ + "Config", + "InstanceArn", + "Name", + "TimeZone" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::HoursOfOperation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::HoursOfOperation.HoursOfOperationConfig": { + "additionalProperties": false, + "properties": { + "Day": { + "type": "string" + }, + "EndTime": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice" + }, + "StartTime": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice" + } + }, + "required": [ + "Day", + "EndTime", + "StartTime" + ], + "type": "object" + }, + "AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice": { + "additionalProperties": false, + "properties": { + "Hours": { + "type": "number" + }, + "Minutes": { + "type": "number" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, "AWS::Connect::QuickConnect": { "additionalProperties": false, "properties": { @@ -26770,6 +27744,210 @@ ], "type": "object" }, + "AWS::Connect::User": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DirectoryUserId": { + "type": "string" + }, + "HierarchyGroupArn": { + "type": "string" + }, + "IdentityInfo": { + "$ref": "#/definitions/AWS::Connect::User.UserIdentityInfo" + }, + "InstanceArn": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "PhoneConfig": { + "$ref": "#/definitions/AWS::Connect::User.UserPhoneConfig" + }, + "RoutingProfileArn": { + "type": "string" + }, + "SecurityProfileArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "InstanceArn", + "PhoneConfig", + "RoutingProfileArn", + "SecurityProfileArns", + "Username" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::User.UserIdentityInfo": { + "additionalProperties": false, + "properties": { + "Email": { + "type": "string" + }, + "FirstName": { + "type": "string" + }, + "LastName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Connect::User.UserPhoneConfig": { + "additionalProperties": false, + "properties": { + "AfterContactWorkTimeLimit": { + "type": "number" + }, + "AutoAccept": { + "type": "boolean" + }, + "DeskPhoneNumber": { + "type": "string" + }, + "PhoneType": { + "type": "string" + } + }, + "required": [ + "PhoneType" + ], + "type": "object" + }, + "AWS::Connect::UserHierarchyGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParentGroupArn": { + "type": "string" + } + }, + "required": [ + "InstanceArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::UserHierarchyGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::CustomerProfiles::Domain": { "additionalProperties": false, "properties": { @@ -28195,6 +29373,9 @@ "PostgreSqlSettings": { "$ref": "#/definitions/AWS::DMS::Endpoint.PostgreSqlSettings" }, + "RedisSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.RedisSettings" + }, "RedshiftSettings": { "$ref": "#/definitions/AWS::DMS::Endpoint.RedshiftSettings" }, @@ -28307,6 +29488,45 @@ "Broker": { "type": "string" }, + "IncludeControlDetails": { + "type": "boolean" + }, + "IncludeNullAndEmpty": { + "type": "boolean" + }, + "IncludeTableAlterOperations": { + "type": "boolean" + }, + "IncludeTransactionDetails": { + "type": "boolean" + }, + "NoHexPrefix": { + "type": "boolean" + }, + "PartitionIncludeSchemaTable": { + "type": "boolean" + }, + "SaslPassword": { + "type": "string" + }, + "SaslUserName": { + "type": "string" + }, + "SecurityProtocol": { + "type": "string" + }, + "SslCaCertificateArn": { + "type": "string" + }, + "SslClientCertificateArn": { + "type": "string" + }, + "SslClientKeyArn": { + "type": "string" + }, + "SslClientKeyPassword": { + "type": "string" + }, "Topic": { "type": "string" } @@ -28316,9 +29536,27 @@ "AWS::DMS::Endpoint.KinesisSettings": { "additionalProperties": false, "properties": { + "IncludeControlDetails": { + "type": "boolean" + }, + "IncludeNullAndEmpty": { + "type": "boolean" + }, + "IncludeTableAlterOperations": { + "type": "boolean" + }, + "IncludeTransactionDetails": { + "type": "boolean" + }, "MessageFormat": { "type": "string" }, + "NoHexPrefix": { + "type": "boolean" + }, + "PartitionIncludeSchemaTable": { + "type": "boolean" + }, "ServiceAccessRoleArn": { "type": "string" }, @@ -28454,6 +29692,33 @@ }, "type": "object" }, + "AWS::DMS::Endpoint.RedisSettings": { + "additionalProperties": false, + "properties": { + "AuthPassword": { + "type": "string" + }, + "AuthType": { + "type": "string" + }, + "AuthUserName": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "ServerName": { + "type": "string" + }, + "SslCaCertificateArn": { + "type": "string" + }, + "SslSecurityProtocol": { + "type": "string" + } + }, + "type": "object" + }, "AWS::DMS::Endpoint.RedshiftSettings": { "additionalProperties": false, "properties": { @@ -30761,7 +32026,7 @@ ], "type": "object" }, - "AWS::DataSync::LocationNFS": { + "AWS::DataSync::LocationHDFS": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -30793,13 +32058,43 @@ "Properties": { "additionalProperties": false, "properties": { - "MountOptions": { - "$ref": "#/definitions/AWS::DataSync::LocationNFS.MountOptions" + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "OnPremConfig": { - "$ref": "#/definitions/AWS::DataSync::LocationNFS.OnPremConfig" + "AuthenticationType": { + "type": "string" }, - "ServerHostname": { + "BlockSize": { + "type": "number" + }, + "KerberosKeytab": { + "type": "string" + }, + "KerberosKrb5Conf": { + "type": "string" + }, + "KerberosPrincipal": { + "type": "string" + }, + "KmsKeyProviderUri": { + "type": "string" + }, + "NameNodes": { + "items": { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS.NameNode" + }, + "type": "array" + }, + "QopConfiguration": { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS.QopConfiguration" + }, + "ReplicationFactor": { + "type": "number" + }, + "SimpleUser": { "type": "string" }, "Subdirectory": { @@ -30813,15 +32108,15 @@ } }, "required": [ - "OnPremConfig", - "ServerHostname", - "Subdirectory" + "AgentArns", + "AuthenticationType", + "NameNodes" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationNFS" + "AWS::DataSync::LocationHDFS" ], "type": "string" }, @@ -30840,31 +32135,35 @@ ], "type": "object" }, - "AWS::DataSync::LocationNFS.MountOptions": { + "AWS::DataSync::LocationHDFS.NameNode": { "additionalProperties": false, "properties": { - "Version": { + "Hostname": { "type": "string" + }, + "Port": { + "type": "number" } }, + "required": [ + "Hostname", + "Port" + ], "type": "object" }, - "AWS::DataSync::LocationNFS.OnPremConfig": { + "AWS::DataSync::LocationHDFS.QopConfiguration": { "additionalProperties": false, "properties": { - "AgentArns": { - "items": { - "type": "string" - }, - "type": "array" + "DataTransferProtection": { + "type": "string" + }, + "RpcProtection": { + "type": "string" } }, - "required": [ - "AgentArns" - ], "type": "object" }, - "AWS::DataSync::LocationObjectStorage": { + "AWS::DataSync::LocationNFS": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -30896,30 +32195,15 @@ "Properties": { "additionalProperties": false, "properties": { - "AccessKey": { - "type": "string" - }, - "AgentArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "BucketName": { - "type": "string" + "MountOptions": { + "$ref": "#/definitions/AWS::DataSync::LocationNFS.MountOptions" }, - "SecretKey": { - "type": "string" + "OnPremConfig": { + "$ref": "#/definitions/AWS::DataSync::LocationNFS.OnPremConfig" }, "ServerHostname": { "type": "string" }, - "ServerPort": { - "type": "number" - }, - "ServerProtocol": { - "type": "string" - }, "Subdirectory": { "type": "string" }, @@ -30931,15 +32215,15 @@ } }, "required": [ - "AgentArns", - "BucketName", - "ServerHostname" + "OnPremConfig", + "ServerHostname", + "Subdirectory" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationObjectStorage" + "AWS::DataSync::LocationNFS" ], "type": "string" }, @@ -30958,7 +32242,31 @@ ], "type": "object" }, - "AWS::DataSync::LocationS3": { + "AWS::DataSync::LocationNFS.MountOptions": { + "additionalProperties": false, + "properties": { + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::LocationNFS.OnPremConfig": { + "additionalProperties": false, + "properties": { + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AgentArns" + ], + "type": "object" + }, + "AWS::DataSync::LocationObjectStorage": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -30990,13 +32298,28 @@ "Properties": { "additionalProperties": false, "properties": { - "S3BucketArn": { + "AccessKey": { "type": "string" }, - "S3Config": { - "$ref": "#/definitions/AWS::DataSync::LocationS3.S3Config" + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "S3StorageClass": { + "BucketName": { + "type": "string" + }, + "SecretKey": { + "type": "string" + }, + "ServerHostname": { + "type": "string" + }, + "ServerPort": { + "type": "number" + }, + "ServerProtocol": { "type": "string" }, "Subdirectory": { @@ -31010,14 +32333,15 @@ } }, "required": [ - "S3BucketArn", - "S3Config" + "AgentArns", + "BucketName", + "ServerHostname" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationS3" + "AWS::DataSync::LocationObjectStorage" ], "type": "string" }, @@ -31036,19 +32360,7 @@ ], "type": "object" }, - "AWS::DataSync::LocationS3.S3Config": { - "additionalProperties": false, - "properties": { - "BucketAccessRoleArn": { - "type": "string" - } - }, - "required": [ - "BucketAccessRoleArn" - ], - "type": "object" - }, - "AWS::DataSync::LocationSMB": { + "AWS::DataSync::LocationS3": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -31080,22 +32392,13 @@ "Properties": { "additionalProperties": false, "properties": { - "AgentArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Domain": { + "S3BucketArn": { "type": "string" }, - "MountOptions": { - "$ref": "#/definitions/AWS::DataSync::LocationSMB.MountOptions" - }, - "Password": { - "type": "string" + "S3Config": { + "$ref": "#/definitions/AWS::DataSync::LocationS3.S3Config" }, - "ServerHostname": { + "S3StorageClass": { "type": "string" }, "Subdirectory": { @@ -31106,23 +32409,17 @@ "$ref": "#/definitions/Tag" }, "type": "array" - }, - "User": { - "type": "string" } }, "required": [ - "AgentArns", - "Password", - "ServerHostname", - "Subdirectory", - "User" + "S3BucketArn", + "S3Config" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationSMB" + "AWS::DataSync::LocationS3" ], "type": "string" }, @@ -31141,16 +32438,121 @@ ], "type": "object" }, - "AWS::DataSync::LocationSMB.MountOptions": { + "AWS::DataSync::LocationS3.S3Config": { "additionalProperties": false, "properties": { - "Version": { + "BucketAccessRoleArn": { "type": "string" } }, + "required": [ + "BucketAccessRoleArn" + ], "type": "object" }, - "AWS::DataSync::Task": { + "AWS::DataSync::LocationSMB": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Domain": { + "type": "string" + }, + "MountOptions": { + "$ref": "#/definitions/AWS::DataSync::LocationSMB.MountOptions" + }, + "Password": { + "type": "string" + }, + "ServerHostname": { + "type": "string" + }, + "Subdirectory": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "User": { + "type": "string" + } + }, + "required": [ + "AgentArns", + "Password", + "ServerHostname", + "Subdirectory", + "User" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::LocationSMB" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::LocationSMB.MountOptions": { + "additionalProperties": false, + "properties": { + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::Task": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -32959,6 +34361,12 @@ "InstanceType": { "type": "string" }, + "OutPostArn": { + "type": "string" + }, + "PlacementGroupArn": { + "type": "string" + }, "TagSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::CapacityReservation.TagSpecification" @@ -33013,6 +34421,136 @@ }, "type": "object" }, + "AWS::EC2::CapacityReservationFleet": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "type": "string" + }, + "InstanceTypeSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification" + }, + "type": "array" + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.TagSpecification" + }, + "type": "array" + }, + "Tenancy": { + "type": "string" + }, + "TotalTargetCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::CapacityReservationFleet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::CapacityReservationFleet.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::EC2::CarrierGateway": { "additionalProperties": false, "properties": { @@ -33786,6 +35324,54 @@ ], "type": "object" }, + "AWS::EC2::EC2Fleet.AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.CapacityRebalance": { + "additionalProperties": false, + "properties": { + "ReplacementStrategy": { + "type": "string" + }, + "TerminationDelay": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::EC2Fleet.CapacityReservationOptionsRequest": { "additionalProperties": false, "properties": { @@ -33816,6 +35402,9 @@ "AvailabilityZone": { "type": "string" }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.InstanceRequirementsRequest" + }, "InstanceType": { "type": "string" }, @@ -33852,6 +35441,141 @@ }, "type": "object" }, + "AWS::EC2::EC2Fleet.InstanceRequirementsRequest": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryMiBRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.VCpuCountRangeRequest" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MaintenanceStrategies": { + "additionalProperties": false, + "properties": { + "CapacityRebalance": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.CapacityRebalance" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::EC2Fleet.OnDemandOptionsRequest": { "additionalProperties": false, "properties": { @@ -33918,6 +35642,9 @@ "InstancePoolsToUseCount": { "type": "number" }, + "MaintenanceStrategies": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MaintenanceStrategies" + }, "MaxTotalPrice": { "type": "string" }, @@ -33960,6 +35687,9 @@ "SpotTargetCapacity": { "type": "number" }, + "TargetCapacityUnitType": { + "type": "string" + }, "TotalTargetCapacity": { "type": "number" } @@ -33969,6 +35699,30 @@ ], "type": "object" }, + "AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.VCpuCountRangeRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::EIP": { "additionalProperties": false, "properties": { @@ -37585,6 +39339,42 @@ ], "type": "object" }, + "AWS::EC2::SpotFleet.AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::SpotFleet.BlockDeviceMapping": { "additionalProperties": false, "properties": { @@ -37756,6 +39546,96 @@ }, "type": "object" }, + "AWS::EC2::SpotFleet.InstanceRequirementsRequest": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryMiBRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.VCpuCountRangeRequest" + } + }, + "type": "object" + }, "AWS::EC2::SpotFleet.LaunchTemplateConfig": { "additionalProperties": false, "properties": { @@ -37777,6 +39657,9 @@ "AvailabilityZone": { "type": "string" }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest" + }, "InstanceType": { "type": "string" }, @@ -37804,6 +39687,42 @@ }, "type": "object" }, + "AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": { "additionalProperties": false, "properties": { @@ -37824,6 +39743,9 @@ "properties": { "ReplacementStrategy": { "type": "string" + }, + "TerminationDelay": { + "type": "number" } }, "type": "object" @@ -37846,6 +39768,9 @@ "ImageId": { "type": "string" }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest" + }, "InstanceType": { "type": "string" }, @@ -37896,8 +39821,7 @@ } }, "required": [ - "ImageId", - "InstanceType" + "ImageId" ], "type": "object" }, @@ -37970,6 +39894,9 @@ "TargetCapacity": { "type": "number" }, + "TargetCapacityUnitType": { + "type": "string" + }, "TerminateInstancesWithExpiration": { "type": "boolean" }, @@ -38055,6 +39982,30 @@ ], "type": "object" }, + "AWS::EC2::SpotFleet.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.VCpuCountRangeRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::Subnet": { "additionalProperties": false, "properties": { @@ -39249,6 +41200,9 @@ "Properties": { "additionalProperties": false, "properties": { + "Options": { + "$ref": "#/definitions/AWS::EC2::TransitGatewayPeeringAttachment.TransitGatewayPeeringAttachmentOptions" + }, "PeerAccountId": { "type": "string" }, @@ -39297,6 +41251,15 @@ ], "type": "object" }, + "AWS::EC2::TransitGatewayPeeringAttachment.TransitGatewayPeeringAttachmentOptions": { + "additionalProperties": false, + "properties": { + "DynamicRouting": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::TransitGatewayRoute": { "additionalProperties": false, "properties": { @@ -40087,6 +42050,9 @@ "type": "string" }, "type": "array" + }, + "PayerResponsibility": { + "type": "string" } }, "type": "object" @@ -41979,6 +43945,9 @@ }, "type": "array" }, + "RuntimePlatform": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.RuntimePlatform" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42558,6 +44527,18 @@ ], "type": "object" }, + "AWS::ECS::TaskDefinition.RuntimePlatform": { + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "type": "string" + }, + "OperatingSystemFamily": { + "type": "string" + } + }, + "type": "object" + }, "AWS::ECS::TaskDefinition.Secret": { "additionalProperties": false, "properties": { @@ -43325,6 +45306,9 @@ "KubernetesNetworkConfig": { "$ref": "#/definitions/AWS::EKS::Cluster.KubernetesNetworkConfig" }, + "Logging": { + "$ref": "#/definitions/AWS::EKS::Cluster.Logging" + }, "Name": { "type": "string" }, @@ -43334,6 +45318,12 @@ "RoleArn": { "type": "string" }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "Version": { "type": "string" } @@ -43365,11 +45355,23 @@ ], "type": "object" }, + "AWS::EKS::Cluster.ClusterLogging": { + "additionalProperties": false, + "properties": { + "EnabledTypes": { + "items": { + "$ref": "#/definitions/AWS::EKS::Cluster.LoggingTypeConfig" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::EKS::Cluster.EncryptionConfig": { "additionalProperties": false, "properties": { "Provider": { - "$ref": "#/definitions/AWS::EKS::Cluster.Provider" + "type": "object" }, "Resources": { "items": { @@ -43389,10 +45391,19 @@ }, "type": "object" }, - "AWS::EKS::Cluster.Provider": { + "AWS::EKS::Cluster.Logging": { "additionalProperties": false, "properties": { - "KeyArn": { + "ClusterLogging": { + "$ref": "#/definitions/AWS::EKS::Cluster.ClusterLogging" + } + }, + "type": "object" + }, + "AWS::EKS::Cluster.LoggingTypeConfig": { + "additionalProperties": false, + "properties": { + "Type": { "type": "string" } }, @@ -43401,6 +45412,18 @@ "AWS::EKS::Cluster.ResourcesVpcConfig": { "additionalProperties": false, "properties": { + "EndpointPrivateAccess": { + "type": "boolean" + }, + "EndpointPublicAccess": { + "type": "boolean" + }, + "PublicAccessCidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, "SecurityGroupIds": { "items": { "type": "string" @@ -50345,6 +52368,9 @@ }, "type": "array" }, + "ResourcesCleanUp": { + "type": "boolean" + }, "SecurityServicePolicyData": { "type": "object" }, @@ -50472,12 +52498,18 @@ "FileSystemType": { "type": "string" }, + "FileSystemTypeVersion": { + "type": "string" + }, "KmsKeyId": { "type": "string" }, "LustreConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.LustreConfiguration" }, + "OntapConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.OntapConfiguration" + }, "SecurityGroupIds": { "items": { "type": "string" @@ -50552,6 +52584,18 @@ ], "type": "object" }, + "AWS::FSx::FileSystem.DiskIopsConfiguration": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "Mode": { + "type": "string" + } + }, + "type": "object" + }, "AWS::FSx::FileSystem.LustreConfiguration": { "additionalProperties": false, "properties": { @@ -50594,6 +52638,48 @@ }, "type": "object" }, + "AWS::FSx::FileSystem.OntapConfiguration": { + "additionalProperties": false, + "properties": { + "AutomaticBackupRetentionDays": { + "type": "number" + }, + "DailyAutomaticBackupStartTime": { + "type": "string" + }, + "DeploymentType": { + "type": "string" + }, + "DiskIopsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" + }, + "EndpointIpAddressRange": { + "type": "string" + }, + "FsxAdminPassword": { + "type": "string" + }, + "PreferredSubnetId": { + "type": "string" + }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ThroughputCapacity": { + "type": "number" + }, + "WeeklyMaintenanceStartTime": { + "type": "string" + } + }, + "required": [ + "DeploymentType" + ], + "type": "object" + }, "AWS::FSx::FileSystem.SelfManagedActiveDirectoryConfiguration": { "additionalProperties": false, "properties": { @@ -50698,6 +52784,12 @@ "Properties": { "additionalProperties": false, "properties": { + "DataBundles": { + "items": { + "type": "string" + }, + "type": "array" + }, "Description": { "type": "string" }, @@ -50712,6 +52804,9 @@ }, "Name": { "type": "string" + }, + "SuperuserParameters": { + "$ref": "#/definitions/AWS::FinSpace::Environment.SuperuserParameters" } }, "required": [ @@ -50764,6 +52859,21 @@ }, "type": "object" }, + "AWS::FinSpace::Environment.SuperuserParameters": { + "additionalProperties": false, + "properties": { + "EmailAddress": { + "type": "string" + }, + "FirstName": { + "type": "string" + }, + "LastName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::FraudDetector::Detector": { "additionalProperties": false, "properties": { @@ -60354,6 +62464,9 @@ "SnapshotId": { "type": "string" }, + "Throughput": { + "type": "number" + }, "VolumeSize": { "type": "number" }, @@ -60920,6 +63033,9 @@ "SnapshotId": { "type": "string" }, + "Throughput": { + "type": "number" + }, "VolumeSize": { "type": "number" }, @@ -60991,6 +63107,9 @@ "Description": { "type": "string" }, + "InstanceMetadataOptions": { + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions" + }, "InstanceProfileName": { "type": "string" }, @@ -61070,6 +63189,18 @@ ], "type": "object" }, + "AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions": { + "additionalProperties": false, + "properties": { + "HttpPutResponseHopLimit": { + "type": "number" + }, + "HttpTokens": { + "type": "string" + } + }, + "type": "object" + }, "AWS::ImageBuilder::InfrastructureConfiguration.Logging": { "additionalProperties": false, "properties": { @@ -62220,7 +64351,7 @@ ], "type": "object" }, - "AWS::IoT::MitigationAction": { + "AWS::IoT::JobTemplate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -62252,31 +64383,49 @@ "Properties": { "additionalProperties": false, "properties": { - "ActionName": { + "AbortConfig": { + "type": "object" + }, + "Description": { "type": "string" }, - "ActionParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams" + "Document": { + "type": "string" }, - "RoleArn": { + "DocumentSource": { + "type": "string" + }, + "JobArn": { + "type": "string" + }, + "JobExecutionsRolloutConfig": { + "type": "object" + }, + "JobTemplateId": { "type": "string" }, + "PresignedUrlConfig": { + "type": "object" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "TimeoutConfig": { + "type": "object" } }, "required": [ - "ActionParams", - "RoleArn" + "Description", + "JobTemplateId" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::MitigationAction" + "AWS::IoT::JobTemplate" ], "type": "string" }, @@ -62295,113 +64444,258 @@ ], "type": "object" }, - "AWS::IoT::MitigationAction.ActionParams": { - "additionalProperties": false, - "properties": { - "AddThingsToThingGroupParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams" - }, - "EnableIoTLoggingParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams" - }, - "PublishFindingToSnsParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams" - }, - "ReplaceDefaultPolicyVersionParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams" - }, - "UpdateCACertificateParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams" - }, - "UpdateDeviceCertificateParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams" - } - }, - "type": "object" - }, - "AWS::IoT::MitigationAction.AddThingsToThingGroupParams": { - "additionalProperties": false, - "properties": { - "OverrideDynamicGroups": { - "type": "boolean" - }, - "ThingGroupNames": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "ThingGroupNames" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.EnableIoTLoggingParams": { - "additionalProperties": false, - "properties": { - "LogLevel": { - "type": "string" - }, - "RoleArnForLogging": { - "type": "string" - } - }, - "required": [ - "LogLevel", - "RoleArnForLogging" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.PublishFindingToSnsParams": { - "additionalProperties": false, - "properties": { - "TopicArn": { - "type": "string" - } - }, - "required": [ - "TopicArn" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams": { - "additionalProperties": false, - "properties": { - "TemplateName": { - "type": "string" - } - }, - "required": [ - "TemplateName" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.UpdateCACertificateParams": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "required": [ - "Action" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "required": [ - "Action" - ], - "type": "object" - }, - "AWS::IoT::Policy": { + "AWS::IoT::Logging": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "DefaultLogLevel": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "AccountId", + "DefaultLogLevel", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Logging" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ActionName": { + "type": "string" + }, + "ActionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ActionParams", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::MitigationAction" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ActionParams": { + "additionalProperties": false, + "properties": { + "AddThingsToThingGroupParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams" + }, + "EnableIoTLoggingParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams" + }, + "PublishFindingToSnsParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams" + }, + "ReplaceDefaultPolicyVersionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams" + }, + "UpdateCACertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams" + }, + "UpdateDeviceCertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams" + } + }, + "type": "object" + }, + "AWS::IoT::MitigationAction.AddThingsToThingGroupParams": { + "additionalProperties": false, + "properties": { + "OverrideDynamicGroups": { + "type": "boolean" + }, + "ThingGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ThingGroupNames" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.EnableIoTLoggingParams": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "type": "string" + }, + "RoleArnForLogging": { + "type": "string" + } + }, + "required": [ + "LogLevel", + "RoleArnForLogging" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.PublishFindingToSnsParams": { + "additionalProperties": false, + "properties": { + "TopicArn": { + "type": "string" + } + }, + "required": [ + "TopicArn" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams": { + "additionalProperties": false, + "properties": { + "TemplateName": { + "type": "string" + } + }, + "required": [ + "TemplateName" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateCACertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::IoT::Policy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -62628,6 +64922,76 @@ }, "type": "object" }, + "AWS::IoT::ResourceSpecificLogging": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "type": "string" + }, + "TargetName": { + "type": "string" + }, + "TargetType": { + "type": "string" + } + }, + "required": [ + "LogLevel", + "TargetName", + "TargetType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ResourceSpecificLogging" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IoT::ScheduledAudit": { "additionalProperties": false, "properties": { @@ -67086,6 +69450,217 @@ }, "type": "object" }, + "AWS::IoTWireless::FuotaTask": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssociateMulticastGroup": { + "type": "string" + }, + "AssociateWirelessDevice": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisassociateMulticastGroup": { + "type": "string" + }, + "DisassociateWirelessDevice": { + "type": "string" + }, + "FirmwareUpdateImage": { + "type": "string" + }, + "FirmwareUpdateRole": { + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::FuotaTask.LoRaWAN" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "FirmwareUpdateImage", + "FirmwareUpdateRole", + "LoRaWAN" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::FuotaTask" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::FuotaTask.LoRaWAN": { + "additionalProperties": false, + "properties": { + "RfRegion": { + "type": "string" + }, + "StartTime": { + "type": "string" + } + }, + "required": [ + "RfRegion" + ], + "type": "object" + }, + "AWS::IoTWireless::MulticastGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssociateWirelessDevice": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisassociateWirelessDevice": { + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::MulticastGroup.LoRaWAN" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "LoRaWAN" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::MulticastGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::MulticastGroup.LoRaWAN": { + "additionalProperties": false, + "properties": { + "DlClass": { + "type": "string" + }, + "NumberOfDevicesInGroup": { + "type": "number" + }, + "NumberOfDevicesRequested": { + "type": "number" + }, + "RfRegion": { + "type": "string" + } + }, + "required": [ + "DlClass", + "RfRegion" + ], + "type": "object" + }, "AWS::IoTWireless::PartnerAccount": { "additionalProperties": false, "properties": { @@ -73888,7 +76463,7 @@ ], "type": "object" }, - "AWS::Lightsail::Disk": { + "AWS::Lightsail::Database": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -73920,20 +76495,50 @@ "Properties": { "additionalProperties": false, "properties": { - "AddOns": { - "items": { - "$ref": "#/definitions/AWS::Lightsail::Disk.AddOn" - }, - "type": "array" - }, "AvailabilityZone": { "type": "string" }, - "DiskName": { + "BackupRetention": { + "type": "boolean" + }, + "CaCertificateIdentifier": { "type": "string" }, - "SizeInGb": { - "type": "number" + "MasterDatabaseName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "RelationalDatabaseBlueprintId": { + "type": "string" + }, + "RelationalDatabaseBundleId": { + "type": "string" + }, + "RelationalDatabaseName": { + "type": "string" + }, + "RelationalDatabaseParameters": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Database.RelationalDatabaseParameter" + }, + "type": "array" + }, + "RotateMasterUserPassword": { + "type": "boolean" }, "Tags": { "items": { @@ -73943,14 +76548,17 @@ } }, "required": [ - "DiskName", - "SizeInGb" + "MasterDatabaseName", + "MasterUsername", + "RelationalDatabaseBlueprintId", + "RelationalDatabaseBundleId", + "RelationalDatabaseName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Lightsail::Disk" + "AWS::Lightsail::Database" ], "type": "string" }, @@ -73969,34 +76577,145 @@ ], "type": "object" }, - "AWS::Lightsail::Disk.AddOn": { + "AWS::Lightsail::Database.RelationalDatabaseParameter": { "additionalProperties": false, "properties": { - "AddOnType": { + "AllowedValues": { "type": "string" }, - "AutoSnapshotAddOnRequest": { - "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn" + "ApplyMethod": { + "type": "string" }, - "Status": { + "ApplyType": { "type": "string" - } - }, - "required": [ - "AddOnType" - ], - "type": "object" - }, - "AWS::Lightsail::Disk.AutoSnapshotAddOn": { - "additionalProperties": false, - "properties": { - "SnapshotTimeOfDay": { + }, + "DataType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IsModifiable": { + "type": "boolean" + }, + "ParameterName": { + "type": "string" + }, + "ParameterValue": { "type": "string" } }, "type": "object" }, - "AWS::Lightsail::Instance": { + "AWS::Lightsail::Disk": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AddOns": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AddOn" + }, + "type": "array" + }, + "AvailabilityZone": { + "type": "string" + }, + "DiskName": { + "type": "string" + }, + "SizeInGb": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DiskName", + "SizeInGb" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Disk" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Disk.AddOn": { + "additionalProperties": false, + "properties": { + "AddOnType": { + "type": "string" + }, + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "AddOnType" + ], + "type": "object" + }, + "AWS::Lightsail::Disk.AutoSnapshotAddOn": { + "additionalProperties": false, + "properties": { + "SnapshotTimeOfDay": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -74049,20 +76768,20 @@ "InstanceName": { "type": "string" }, - "Location": { - "$ref": "#/definitions/AWS::Lightsail::Instance.Location" + "KeyPairName": { + "type": "string" }, "Networking": { "$ref": "#/definitions/AWS::Lightsail::Instance.Networking" }, - "State": { - "$ref": "#/definitions/AWS::Lightsail::Instance.State" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "UserData": { + "type": "string" } }, "required": [ @@ -74194,7 +76913,7 @@ "additionalProperties": false, "properties": { "MonthlyTransfer": { - "type": "object" + "$ref": "#/definitions/AWS::Lightsail::Instance.MonthlyTransfer" }, "Ports": { "items": { @@ -74265,6 +76984,71 @@ }, "type": "object" }, + "AWS::Lightsail::StaticIp": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AttachedTo": { + "type": "string" + }, + "StaticIpName": { + "type": "string" + } + }, + "required": [ + "StaticIpName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::StaticIp" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Location::GeofenceCollection": { "additionalProperties": false, "properties": { @@ -74621,6 +77405,9 @@ "KmsKeyId": { "type": "string" }, + "PositionFiltering": { + "type": "string" + }, "PricingPlan": { "type": "string" }, @@ -76385,7 +79172,7 @@ "type": "string" }, "Tags": { - "$ref": "#/definitions/AWS::MWAA::Environment.TagMap" + "type": "object" }, "WebserverAccessMode": { "type": "string" @@ -76474,96 +79261,91 @@ }, "type": "object" }, - "AWS::MWAA::Environment.TagMap": { + "AWS::Macie::CustomDataIdentifier": { "additionalProperties": false, - "properties": {}, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreWords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaximumMatchDistance": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Regex": { + "type": "string" + } + }, + "required": [ + "Name", + "Regex" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Macie::CustomDataIdentifier" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Macie::CustomDataIdentifier": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreWords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Keywords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaximumMatchDistance": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "Regex": { - "type": "string" - } - }, - "required": [ - "Name", - "Regex" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Macie::CustomDataIdentifier" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Macie::FindingsFilter": { + "AWS::Macie::FindingsFilter": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -82357,9 +85139,6 @@ "AutoMinorVersionUpgrade": { "type": "boolean" }, - "ClusterEndpoint": { - "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint" - }, "ClusterName": { "type": "string" }, @@ -82434,7 +85213,9 @@ } }, "required": [ - "ClusterName" + "ACLName", + "ClusterName", + "NodeType" ], "type": "object" }, @@ -82523,6 +85304,7 @@ } }, "required": [ + "Family", "ParameterGroupName" ], "type": "object" @@ -82600,7 +85382,8 @@ } }, "required": [ - "SubnetGroupName" + "SubnetGroupName", + "SubnetIds" ], "type": "object" }, @@ -83405,6 +86188,15 @@ "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { "additionalProperties": false, "properties": { + "StatefulDefaultActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions" + }, "StatefulRuleGroupReferences": { "items": { "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference" @@ -83457,9 +86249,21 @@ ], "type": "object" }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "type": "string" + } + }, + "type": "object" + }, "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference": { "additionalProperties": false, "properties": { + "Priority": { + "type": "number" + }, "ResourceArn": { "type": "string" } @@ -83882,6 +86686,9 @@ }, "RulesSource": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSource" + }, + "StatefulRuleOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions" } }, "required": [ @@ -84001,6 +86808,15 @@ ], "type": "object" }, + "AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "type": "string" + } + }, + "type": "object" + }, "AWS::NetworkFirewall::RuleGroup.StatelessRule": { "additionalProperties": false, "properties": { @@ -86756,7 +89572,7 @@ }, "type": "object" }, - "AWS::Pinpoint::ADMChannel": { + "AWS::Panorama::ApplicationInstance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86788,29 +89604,49 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationId": { + "ApplicationInstanceIdToReplace": { "type": "string" }, - "ClientId": { + "DefaultRuntimeContextDevice": { "type": "string" }, - "ClientSecret": { + "Description": { "type": "string" }, - "Enabled": { - "type": "boolean" + "DeviceId": { + "type": "string" + }, + "ManifestOverridesPayload": { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestOverridesPayload" + }, + "ManifestPayload": { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestPayload" + }, + "Name": { + "type": "string" + }, + "RuntimeRoleArn": { + "type": "string" + }, + "StatusFilter": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "ApplicationId", - "ClientId", - "ClientSecret" + "DefaultRuntimeContextDevice", + "ManifestPayload" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::ADMChannel" + "AWS::Panorama::ApplicationInstance" ], "type": "string" }, @@ -86829,7 +89665,25 @@ ], "type": "object" }, - "AWS::Pinpoint::APNSChannel": { + "AWS::Panorama::ApplicationInstance.ManifestOverridesPayload": { + "additionalProperties": false, + "properties": { + "PayloadData": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Panorama::ApplicationInstance.ManifestPayload": { + "additionalProperties": false, + "properties": { + "PayloadData": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Panorama::Package": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86861,42 +89715,103 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationId": { + "PackageName": { "type": "string" }, - "BundleId": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "PackageName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Panorama::Package" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Panorama::PackageVersion": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "Certificate": { - "type": "string" + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "MarkLatest": { + "type": "boolean" }, - "DefaultAuthenticationMethod": { + "OwnerAccount": { "type": "string" }, - "Enabled": { - "type": "boolean" - }, - "PrivateKey": { + "PackageId": { "type": "string" }, - "TeamId": { + "PackageVersion": { "type": "string" }, - "TokenKey": { + "PatchVersion": { "type": "string" }, - "TokenKeyId": { + "UpdatedLatestPatchVersion": { "type": "string" } }, "required": [ - "ApplicationId" + "PackageId", + "PackageVersion", + "PatchVersion" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::APNSChannel" + "AWS::Panorama::PackageVersion" ], "type": "string" }, @@ -86915,7 +89830,7 @@ ], "type": "object" }, - "AWS::Pinpoint::APNSSandboxChannel": { + "AWS::Pinpoint::ADMChannel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86950,39 +89865,26 @@ "ApplicationId": { "type": "string" }, - "BundleId": { - "type": "string" - }, - "Certificate": { + "ClientId": { "type": "string" }, - "DefaultAuthenticationMethod": { + "ClientSecret": { "type": "string" }, "Enabled": { "type": "boolean" - }, - "PrivateKey": { - "type": "string" - }, - "TeamId": { - "type": "string" - }, - "TokenKey": { - "type": "string" - }, - "TokenKeyId": { - "type": "string" } }, "required": [ - "ApplicationId" + "ApplicationId", + "ClientId", + "ClientSecret" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::APNSSandboxChannel" + "AWS::Pinpoint::ADMChannel" ], "type": "string" }, @@ -87001,7 +89903,179 @@ ], "type": "object" }, - "AWS::Pinpoint::APNSVoipChannel": { + "AWS::Pinpoint::APNSChannel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Certificate": { + "type": "string" + }, + "DefaultAuthenticationMethod": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PrivateKey": { + "type": "string" + }, + "TeamId": { + "type": "string" + }, + "TokenKey": { + "type": "string" + }, + "TokenKeyId": { + "type": "string" + } + }, + "required": [ + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::APNSChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::APNSSandboxChannel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Certificate": { + "type": "string" + }, + "DefaultAuthenticationMethod": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PrivateKey": { + "type": "string" + }, + "TeamId": { + "type": "string" + }, + "TokenKey": { + "type": "string" + }, + "TokenKeyId": { + "type": "string" + } + }, + "required": [ + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::APNSSandboxChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::APNSVoipChannel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -87496,6 +90570,9 @@ "Name": { "type": "string" }, + "Priority": { + "type": "number" + }, "Schedule": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.Schedule" }, @@ -87605,6 +90682,24 @@ }, "type": "object" }, + "AWS::Pinpoint::Campaign.CampaignInAppMessage": { + "additionalProperties": false, + "properties": { + "Content": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageContent" + }, + "type": "array" + }, + "CustomConfig": { + "type": "object" + }, + "Layout": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.CampaignSmsMessage": { "additionalProperties": false, "properties": { @@ -87629,6 +90724,30 @@ }, "type": "object" }, + "AWS::Pinpoint::Campaign.DefaultButtonConfiguration": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" + }, + "BorderRadius": { + "type": "number" + }, + "ButtonAction": { + "type": "string" + }, + "Link": { + "type": "string" + }, + "Text": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.EventDimensions": { "additionalProperties": false, "properties": { @@ -87644,6 +90763,78 @@ }, "type": "object" }, + "AWS::Pinpoint::Campaign.InAppMessageBodyConfig": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "Body": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageButton": { + "additionalProperties": false, + "properties": { + "Android": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + }, + "DefaultConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.DefaultButtonConfiguration" + }, + "IOS": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + }, + "Web": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageContent": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" + }, + "BodyConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageBodyConfig" + }, + "HeaderConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageHeaderConfig" + }, + "ImageUrl": { + "type": "string" + }, + "PrimaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton" + }, + "SecondaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageHeaderConfig": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "Header": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.Limits": { "additionalProperties": false, "properties": { @@ -87656,6 +90847,9 @@ "MessagesPerSecond": { "type": "number" }, + "Session": { + "type": "number" + }, "Total": { "type": "number" } @@ -87725,6 +90919,9 @@ "GCMMessage": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message" }, + "InAppMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignInAppMessage" + }, "SMSMessage": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignSmsMessage" } @@ -87743,6 +90940,18 @@ }, "type": "object" }, + "AWS::Pinpoint::Campaign.OverrideButtonConfiguration": { + "additionalProperties": false, + "properties": { + "ButtonAction": { + "type": "string" + }, + "Link": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.QuietTime": { "additionalProperties": false, "properties": { @@ -87854,35 +91063,335 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationId": { - "type": "string" - }, - "ConfigurationSet": { - "type": "string" + "ApplicationId": { + "type": "string" + }, + "ConfigurationSet": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "FromAddress": { + "type": "string" + }, + "Identity": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ApplicationId", + "FromAddress", + "Identity" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::EmailChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::EmailTemplate": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DefaultSubstitutions": { + "type": "string" + }, + "HtmlPart": { + "type": "string" + }, + "Subject": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "TemplateDescription": { + "type": "string" + }, + "TemplateName": { + "type": "string" + }, + "TextPart": { + "type": "string" + } + }, + "required": [ + "Subject", + "TemplateName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::EmailTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::EventStream": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "DestinationStreamArn": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ApplicationId", + "DestinationStreamArn", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::EventStream" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::GCMChannel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApiKey": { + "type": "string" + }, + "ApplicationId": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "ApiKey", + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::GCMChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Content": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.InAppMessageContent" + }, + "type": "array" }, - "Enabled": { - "type": "boolean" + "CustomConfig": { + "type": "object" }, - "FromAddress": { + "Layout": { "type": "string" }, - "Identity": { + "Tags": { + "type": "object" + }, + "TemplateDescription": { "type": "string" }, - "RoleArn": { + "TemplateName": { "type": "string" } }, "required": [ - "ApplicationId", - "FromAddress", - "Identity" + "TemplateName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::EmailChannel" + "AWS::Pinpoint::InAppTemplate" ], "type": "string" }, @@ -87901,224 +91410,112 @@ ], "type": "object" }, - "AWS::Pinpoint::EmailTemplate": { + "AWS::Pinpoint::InAppTemplate.BodyConfig": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Alignment": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Body": { + "type": "string" }, - "Metadata": { - "type": "object" + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.ButtonConfig": { + "additionalProperties": false, + "properties": { + "Android": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" }, - "Properties": { - "additionalProperties": false, - "properties": { - "DefaultSubstitutions": { - "type": "string" - }, - "HtmlPart": { - "type": "string" - }, - "Subject": { - "type": "string" - }, - "Tags": { - "type": "object" - }, - "TemplateDescription": { - "type": "string" - }, - "TemplateName": { - "type": "string" - }, - "TextPart": { - "type": "string" - } - }, - "required": [ - "Subject", - "TemplateName" - ], - "type": "object" + "DefaultConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration" }, - "Type": { - "enum": [ - "AWS::Pinpoint::EmailTemplate" - ], - "type": "string" + "IOS": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" + "Web": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::Pinpoint::EventStream": { + "AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "BackgroundColor": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "BorderRadius": { + "type": "number" }, - "Metadata": { - "type": "object" + "ButtonAction": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ApplicationId": { - "type": "string" - }, - "DestinationStreamArn": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "ApplicationId", - "DestinationStreamArn", - "RoleArn" - ], - "type": "object" + "Link": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::Pinpoint::EventStream" - ], + "Text": { "type": "string" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "TextColor": { "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::Pinpoint::GCMChannel": { + "AWS::Pinpoint::InAppTemplate.HeaderConfig": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Alignment": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Header": { + "type": "string" }, - "Metadata": { - "type": "object" + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.InAppMessageContent": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ApiKey": { - "type": "string" - }, - "ApplicationId": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - } - }, - "required": [ - "ApiKey", - "ApplicationId" - ], - "type": "object" + "BodyConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.BodyConfig" }, - "Type": { - "enum": [ - "AWS::Pinpoint::GCMChannel" - ], + "HeaderConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.HeaderConfig" + }, + "ImageUrl": { "type": "string" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "PrimaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig" + }, + "SecondaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration": { + "additionalProperties": false, + "properties": { + "ButtonAction": { + "type": "string" + }, + "Link": { "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, "AWS::Pinpoint::PushTemplate": { @@ -89489,7 +92886,8 @@ }, "required": [ "AnalysisId", - "AwsAccountId" + "AwsAccountId", + "SourceEntity" ], "type": "object" }, @@ -89778,7 +93176,8 @@ }, "required": [ "AwsAccountId", - "DashboardId" + "DashboardId", + "SourceEntity" ], "type": "object" }, @@ -90746,6 +94145,18 @@ ], "type": "object" }, + "AWS::QuickSight::DataSource.AmazonOpenSearchParameters": { + "additionalProperties": false, + "properties": { + "Domain": { + "type": "string" + } + }, + "required": [ + "Domain" + ], + "type": "object" + }, "AWS::QuickSight::DataSource.AthenaParameters": { "additionalProperties": false, "properties": { @@ -90847,6 +94258,9 @@ "AmazonElasticsearchParameters": { "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonElasticsearchParameters" }, + "AmazonOpenSearchParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonOpenSearchParameters" + }, "AthenaParameters": { "$ref": "#/definitions/AWS::QuickSight::DataSource.AthenaParameters" }, @@ -91238,6 +94652,7 @@ }, "required": [ "AwsAccountId", + "SourceEntity", "TemplateId" ], "type": "object" @@ -93310,9 +96725,6 @@ "Encrypted": { "type": "boolean" }, - "Endpoint": { - "$ref": "#/definitions/AWS::Redshift::Cluster.Endpoint" - }, "EnhancedVpcRouting": { "type": "boolean" }, @@ -93584,7 +96996,410 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Description": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSecurityGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::ClusterSecurityGroupIngress": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CIDRIP": { + "type": "string" + }, + "ClusterSecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "type": "string" + } + }, + "required": [ + "ClusterSecurityGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSecurityGroupIngress" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::ClusterSubnetGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::EndpointAccess": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "type": "string" + }, + "EndpointName": { + "type": "string" + }, + "ResourceOwner": { + "type": "string" + }, + "SubnetGroupName": { + "type": "string" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "EndpointName", + "VpcSecurityGroupIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::EndpointAccess" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::EndpointAccess.VpcSecurityGroup": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + }, + "VpcSecurityGroupId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Redshift::EndpointAuthorization": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Account": { + "type": "string" + }, + "ClusterIdentifier": { + "type": "string" + }, + "Force": { + "type": "boolean" + }, + "VpcIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Account", + "ClusterIdentifier" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::EndpointAuthorization" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::EventSubscription": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Severity": { + "type": "string" + }, + "SnsTopicArn": { + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceType": { + "type": "string" + }, + "SubscriptionName": { "type": "string" }, "Tags": { @@ -93595,13 +97410,13 @@ } }, "required": [ - "Description" + "SubscriptionName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSecurityGroup" + "AWS::Redshift::EventSubscription" ], "type": "string" }, @@ -93620,7 +97435,7 @@ ], "type": "object" }, - "AWS::Redshift::ClusterSecurityGroupIngress": { + "AWS::Redshift::ScheduledAction": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -93652,27 +97467,39 @@ "Properties": { "additionalProperties": false, "properties": { - "CIDRIP": { + "Enable": { + "type": "boolean" + }, + "EndTime": { "type": "string" }, - "ClusterSecurityGroupName": { + "IamRole": { "type": "string" }, - "EC2SecurityGroupName": { + "Schedule": { "type": "string" }, - "EC2SecurityGroupOwnerId": { + "ScheduledActionDescription": { "type": "string" + }, + "ScheduledActionName": { + "type": "string" + }, + "StartTime": { + "type": "string" + }, + "TargetAction": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ScheduledActionType" } }, "required": [ - "ClusterSecurityGroupName" + "ScheduledActionName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSecurityGroupIngress" + "AWS::Redshift::ScheduledAction" ], "type": "string" }, @@ -93691,7 +97518,70 @@ ], "type": "object" }, - "AWS::Redshift::ClusterSubnetGroup": { + "AWS::Redshift::ScheduledAction.PauseClusterMessage": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "type": "string" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ResizeClusterMessage": { + "additionalProperties": false, + "properties": { + "Classic": { + "type": "boolean" + }, + "ClusterIdentifier": { + "type": "string" + }, + "ClusterType": { + "type": "string" + }, + "NodeType": { + "type": "string" + }, + "NumberOfNodes": { + "type": "number" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ResumeClusterMessage": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "type": "string" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ScheduledActionType": { + "additionalProperties": false, + "properties": { + "PauseCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.PauseClusterMessage" + }, + "ResizeCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResizeClusterMessage" + }, + "ResumeCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResumeClusterMessage" + } + }, + "type": "object" + }, + "AWS::Rekognition::Project": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -93723,31 +97613,18 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "ProjectName": { "type": "string" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, "required": [ - "Description", - "SubnetIds" + "ProjectName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSubnetGroup" + "AWS::Rekognition::Project" ], "type": "string" }, @@ -95010,171 +98887,177 @@ "Properties": { "additionalProperties": false, "properties": { - "Comment": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "HostedZoneName": { - "type": "string" - }, - "RecordSets": { - "items": { - "$ref": "#/definitions/AWS::Route53::RecordSetGroup.RecordSet" - }, - "type": "array" - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Route53::RecordSetGroup" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::Route53::RecordSetGroup.AliasTarget": { - "additionalProperties": false, - "properties": { - "DNSName": { - "type": "string" - }, - "EvaluateTargetHealth": { - "type": "boolean" - }, - "HostedZoneId": { - "type": "string" - } - }, - "required": [ - "DNSName", - "HostedZoneId" - ], - "type": "object" - }, - "AWS::Route53::RecordSetGroup.GeoLocation": { - "additionalProperties": false, - "properties": { - "ContinentCode": { - "type": "string" - }, - "CountryCode": { - "type": "string" - }, - "SubdivisionCode": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Route53::RecordSetGroup.RecordSet": { - "additionalProperties": false, - "properties": { - "AliasTarget": { - "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" - }, - "Comment": { - "type": "string" - }, - "Failover": { - "type": "string" - }, - "GeoLocation": { - "$ref": "#/definitions/AWS::Route53::RecordSetGroup.GeoLocation" - }, - "HealthCheckId": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "HostedZoneName": { - "type": "string" - }, - "MultiValueAnswer": { - "type": "boolean" - }, - "Name": { - "type": "string" - }, - "Region": { - "type": "string" - }, - "ResourceRecords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SetIdentifier": { - "type": "string" - }, - "TTL": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Weight": { - "type": "number" - } - }, - "required": [ - "Name", - "Type" - ], - "type": "object" - }, - "AWS::Route53RecoveryControl::Cluster": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "Comment": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "HostedZoneName": { + "type": "string" + }, + "RecordSets": { + "items": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.RecordSet" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::RecordSetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53::RecordSetGroup.AliasTarget": { + "additionalProperties": false, + "properties": { + "DNSName": { + "type": "string" + }, + "EvaluateTargetHealth": { + "type": "boolean" + }, + "HostedZoneId": { + "type": "string" + } + }, + "required": [ + "DNSName", + "HostedZoneId" + ], + "type": "object" + }, + "AWS::Route53::RecordSetGroup.GeoLocation": { + "additionalProperties": false, + "properties": { + "ContinentCode": { + "type": "string" + }, + "CountryCode": { + "type": "string" + }, + "SubdivisionCode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53::RecordSetGroup.RecordSet": { + "additionalProperties": false, + "properties": { + "AliasTarget": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" + }, + "Comment": { + "type": "string" + }, + "Failover": { + "type": "string" + }, + "GeoLocation": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.GeoLocation" + }, + "HealthCheckId": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "HostedZoneName": { + "type": "string" + }, + "MultiValueAnswer": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Region": { + "type": "string" + }, + "ResourceRecords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SetIdentifier": { + "type": "string" + }, + "TTL": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::Route53RecoveryControl::Cluster": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Name": { "type": "string" }, - { + "Tags": { "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } }, "type": "object" }, @@ -95247,6 +99130,12 @@ }, "Name": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -95389,6 +99278,12 @@ }, "RuleConfig": { "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.RuleConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -96114,6 +100009,72 @@ ], "type": "object" }, + "AWS::Route53Resolver::ResolverConfig": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AutodefinedReverseFlag": { + "type": "string" + }, + "ResourceId": { + "type": "string" + } + }, + "required": [ + "AutodefinedReverseFlag", + "ResourceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::ResolverConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Route53Resolver::ResolverDNSSECConfig": { "additionalProperties": false, "properties": { @@ -98283,7 +102244,7 @@ } }, "required": [ - "Name" + "ObjectLambdaConfiguration" ], "type": "object" }, @@ -98349,6 +102310,10 @@ "type": "object" } }, + "required": [ + "Actions", + "ContentTransformation" + ], "type": "object" }, "AWS::S3ObjectLambda::AccessPointPolicy": { @@ -103053,6 +107018,9 @@ "RetainAllVariantProperties": { "type": "boolean" }, + "RetainDeploymentConfig": { + "type": "boolean" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -103168,6 +107136,9 @@ "CanarySize": { "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" }, + "LinearStepSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, "Type": { "type": "string" }, @@ -105445,6 +109416,9 @@ "NotebookInstanceName": { "type": "string" }, + "PlatformIdentifier": { + "type": "string" + }, "RoleArn": { "type": "string" }, @@ -106189,6 +110163,12 @@ "RotationType": { "type": "string" }, + "SuperuserSecretArn": { + "type": "string" + }, + "SuperuserSecretKmsKeyArn": { + "type": "string" + }, "VpcSecurityGroupIds": { "type": "string" }, @@ -109048,6 +113028,9 @@ "Properties": { "additionalProperties": false, "properties": { + "ArtifactConfig": { + "$ref": "#/definitions/AWS::Synthetics::Canary.ArtifactConfig" + }, "ArtifactS3Location": { "type": "string" }, @@ -109123,6 +113106,15 @@ ], "type": "object" }, + "AWS::Synthetics::Canary.ArtifactConfig": { + "additionalProperties": false, + "properties": { + "S3Encryption": { + "$ref": "#/definitions/AWS::Synthetics::Canary.S3Encryption" + } + }, + "type": "object" + }, "AWS::Synthetics::Canary.BaseScreenshot": { "additionalProperties": false, "properties": { @@ -109189,6 +113181,18 @@ }, "type": "object" }, + "AWS::Synthetics::Canary.S3Encryption": { + "additionalProperties": false, + "properties": { + "EncryptionMode": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Synthetics::Canary.Schedule": { "additionalProperties": false, "properties": { @@ -113100,6 +117104,311 @@ ], "type": "object" }, + "AWS::Wisdom::Assistant": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ServerSideEncryptionConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Wisdom::Assistant" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::AssistantAssociation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssistantId": { + "type": "string" + }, + "Association": { + "$ref": "#/definitions/AWS::Wisdom::AssistantAssociation.AssociationData" + }, + "AssociationType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AssistantId", + "Association", + "AssociationType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Wisdom::AssistantAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::AssistantAssociation.AssociationData": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "KnowledgeBaseType": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RenderingConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.RenderingConfiguration" + }, + "ServerSideEncryptionConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration" + }, + "SourceConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.SourceConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "KnowledgeBaseType", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Wisdom::KnowledgeBase" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration": { + "additionalProperties": false, + "properties": { + "AppIntegrationArn": { + "type": "string" + }, + "ObjectFields": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AppIntegrationArn", + "ObjectFields" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.RenderingConfiguration": { + "additionalProperties": false, + "properties": { + "TemplateUri": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.SourceConfiguration": { + "additionalProperties": false, + "properties": { + "AppIntegrations": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration" + } + }, + "type": "object" + }, "AWS::WorkSpaces::ConnectionAlias": { "additionalProperties": false, "properties": { @@ -114154,6 +118463,9 @@ { "$ref": "#/definitions/AWS::Batch::JobQueue" }, + { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy" + }, { "$ref": "#/definitions/AWS::Budgets::Budget" }, @@ -114253,6 +118565,9 @@ { "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig" }, + { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy" + }, { "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution" }, @@ -114394,9 +118709,18 @@ { "$ref": "#/definitions/AWS::Config::StoredQuery" }, + { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation" + }, { "$ref": "#/definitions/AWS::Connect::QuickConnect" }, + { + "$ref": "#/definitions/AWS::Connect::User" + }, + { + "$ref": "#/definitions/AWS::Connect::UserHierarchyGroup" + }, { "$ref": "#/definitions/AWS::CustomerProfiles::Domain" }, @@ -114463,6 +118787,9 @@ { "$ref": "#/definitions/AWS::DataSync::LocationFSxWindows" }, + { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS" + }, { "$ref": "#/definitions/AWS::DataSync::LocationNFS" }, @@ -114517,6 +118844,9 @@ { "$ref": "#/definitions/AWS::EC2::CapacityReservation" }, + { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet" + }, { "$ref": "#/definitions/AWS::EC2::CarrierGateway" }, @@ -115210,6 +119540,12 @@ { "$ref": "#/definitions/AWS::IoT::FleetMetric" }, + { + "$ref": "#/definitions/AWS::IoT::JobTemplate" + }, + { + "$ref": "#/definitions/AWS::IoT::Logging" + }, { "$ref": "#/definitions/AWS::IoT::MitigationAction" }, @@ -115222,6 +119558,9 @@ { "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate" }, + { + "$ref": "#/definitions/AWS::IoT::ResourceSpecificLogging" + }, { "$ref": "#/definitions/AWS::IoT::ScheduledAudit" }, @@ -115294,6 +119633,12 @@ { "$ref": "#/definitions/AWS::IoTWireless::DeviceProfile" }, + { + "$ref": "#/definitions/AWS::IoTWireless::FuotaTask" + }, + { + "$ref": "#/definitions/AWS::IoTWireless::MulticastGroup" + }, { "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount" }, @@ -115399,12 +119744,18 @@ { "$ref": "#/definitions/AWS::LicenseManager::License" }, + { + "$ref": "#/definitions/AWS::Lightsail::Database" + }, { "$ref": "#/definitions/AWS::Lightsail::Disk" }, { "$ref": "#/definitions/AWS::Lightsail::Instance" }, + { + "$ref": "#/definitions/AWS::Lightsail::StaticIp" + }, { "$ref": "#/definitions/AWS::Location::GeofenceCollection" }, @@ -115630,6 +119981,15 @@ { "$ref": "#/definitions/AWS::OpsWorksCM::Server" }, + { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance" + }, + { + "$ref": "#/definitions/AWS::Panorama::Package" + }, + { + "$ref": "#/definitions/AWS::Panorama::PackageVersion" + }, { "$ref": "#/definitions/AWS::Pinpoint::ADMChannel" }, @@ -115669,6 +120029,9 @@ { "$ref": "#/definitions/AWS::Pinpoint::GCMChannel" }, + { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate" + }, { "$ref": "#/definitions/AWS::Pinpoint::PushTemplate" }, @@ -115777,6 +120140,21 @@ { "$ref": "#/definitions/AWS::Redshift::ClusterSubnetGroup" }, + { + "$ref": "#/definitions/AWS::Redshift::EndpointAccess" + }, + { + "$ref": "#/definitions/AWS::Redshift::EndpointAuthorization" + }, + { + "$ref": "#/definitions/AWS::Redshift::EventSubscription" + }, + { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction" + }, + { + "$ref": "#/definitions/AWS::Rekognition::Project" + }, { "$ref": "#/definitions/AWS::ResourceGroups::Group" }, @@ -115849,6 +120227,9 @@ { "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroupAssociation" }, + { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverConfig" + }, { "$ref": "#/definitions/AWS::Route53Resolver::ResolverDNSSECConfig" }, @@ -116248,6 +120629,15 @@ { "$ref": "#/definitions/AWS::WAFv2::WebACLAssociation" }, + { + "$ref": "#/definitions/AWS::Wisdom::Assistant" + }, + { + "$ref": "#/definitions/AWS::Wisdom::AssistantAssociation" + }, + { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase" + }, { "$ref": "#/definitions/AWS::WorkSpaces::ConnectionAlias" }, diff --git a/schema/sam.go b/schema/sam.go index 506704f3ef..13ef59292a 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -2219,6 +2219,7 @@ var SamSchema = `{ } }, "required": [ + "Name", "RestApiId", "Type" ], @@ -4005,6 +4006,12 @@ var SamSchema = `{ "Name": { "type": "string" }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "TargetArns": { "items": { "type": "string" @@ -5583,6 +5590,9 @@ var SamSchema = `{ }, "type": "array" }, + "Type": { + "type": "string" + }, "Validators": { "items": { "$ref": "#/definitions/AWS::AppConfig::ConfigurationProfile.Validators" @@ -6170,6 +6180,9 @@ var SamSchema = `{ "Redshift": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials" }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials" + }, "Salesforce": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials" }, @@ -6215,6 +6228,9 @@ var SamSchema = `{ "Redshift": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileProperties" }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties" + }, "Salesforce": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileProperties" }, @@ -6383,6 +6399,24 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AppFlow::ConnectorProfile.OAuthProperties": { + "additionalProperties": false, + "properties": { + "AuthCodeUrl": { + "type": "string" + }, + "OAuthScopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TokenUrl": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials": { "additionalProperties": false, "properties": { @@ -6422,6 +6456,45 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "BasicAuthCredentials": { + "type": "object" + }, + "OAuthCredentials": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "ApplicationHostUrl": { + "type": "string" + }, + "ApplicationServicePath": { + "type": "string" + }, + "ClientNumber": { + "type": "string" + }, + "LogonLanguage": { + "type": "string" + }, + "OAuthProperties": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuthProperties" + }, + "PortNumber": { + "type": "number" + }, + "PrivateLinkServiceName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials": { "additionalProperties": false, "properties": { @@ -6789,6 +6862,9 @@ var SamSchema = `{ "S3": { "type": "string" }, + "SAPOData": { + "type": "string" + }, "Salesforce": { "type": "string" }, @@ -7022,6 +7098,15 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AppFlow::Flow.S3InputFormatConfig": { + "additionalProperties": false, + "properties": { + "S3InputFileType": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppFlow::Flow.S3OutputFormatConfig": { "additionalProperties": false, "properties": { @@ -7045,6 +7130,9 @@ var SamSchema = `{ }, "BucketPrefix": { "type": "string" + }, + "S3InputFormatConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.S3InputFormatConfig" } }, "required": [ @@ -7053,6 +7141,18 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AppFlow::Flow.SAPODataSourceProperties": { + "additionalProperties": false, + "properties": { + "ObjectPath": { + "type": "string" + } + }, + "required": [ + "ObjectPath" + ], + "type": "object" + }, "AWS::AppFlow::Flow.SalesforceDestinationProperties": { "additionalProperties": false, "properties": { @@ -7204,6 +7304,9 @@ var SamSchema = `{ "S3": { "$ref": "#/definitions/AWS::AppFlow::Flow.S3SourceProperties" }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SAPODataSourceProperties" + }, "Salesforce": { "$ref": "#/definitions/AWS::AppFlow::Flow.SalesforceSourceProperties" }, @@ -7703,6 +7806,9 @@ var SamSchema = `{ }, "HttpRoute": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoute" + }, + "Priority": { + "type": "number" } }, "type": "object" @@ -13465,6 +13571,9 @@ var SamSchema = `{ "DesiredCapacity": { "type": "string" }, + "DesiredCapacityType": { + "type": "string" + }, "HealthCheckGracePeriod": { "type": "number" }, @@ -13580,6 +13689,132 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.InstanceRequirements": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest" + } + }, + "type": "object" + }, "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution": { "additionalProperties": false, "properties": { @@ -13625,6 +13860,9 @@ var SamSchema = `{ "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides": { "additionalProperties": false, "properties": { + "InstanceRequirements": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstanceRequirements" + }, "InstanceType": { "type": "string" }, @@ -13686,6 +13924,30 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": { "additionalProperties": false, "properties": { @@ -13719,6 +13981,18 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": { "additionalProperties": false, "properties": { @@ -13757,6 +14031,30 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AutoScaling::LaunchConfiguration": { "additionalProperties": false, "properties": { @@ -15020,6 +15318,9 @@ var SamSchema = `{ "AWS::Backup::BackupSelection.BackupSelectionResourceType": { "additionalProperties": false, "properties": { + "Conditions": { + "type": "object" + }, "IamRoleArn": { "type": "string" }, @@ -15029,6 +15330,12 @@ var SamSchema = `{ }, "type": "array" }, + "NotResources": { + "items": { + "type": "string" + }, + "type": "array" + }, "Resources": { "items": { "type": "string" @@ -15426,6 +15733,9 @@ var SamSchema = `{ }, "Type": { "type": "string" + }, + "UnmanagedvCpus": { + "type": "number" } }, "required": [ @@ -15614,6 +15924,9 @@ var SamSchema = `{ "RetryStrategy": { "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" }, + "SchedulingPriority": { + "type": "number" + }, "Tags": { "type": "object" }, @@ -16111,6 +16424,9 @@ var SamSchema = `{ "Priority": { "type": "number" }, + "SchedulingPolicyArn": { + "type": "string" + }, "State": { "type": "string" }, @@ -16161,6 +16477,106 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Batch::SchedulingPolicy": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "FairsharePolicy": { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.FairsharePolicy" + }, + "Name": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Batch::SchedulingPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Batch::SchedulingPolicy.FairsharePolicy": { + "additionalProperties": false, + "properties": { + "ComputeReservation": { + "type": "number" + }, + "ShareDecaySeconds": { + "type": "number" + }, + "ShareDistribution": { + "items": { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.ShareAttributes" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Batch::SchedulingPolicy.ShareAttributes": { + "additionalProperties": false, + "properties": { + "ShareIdentifier": { + "type": "string" + }, + "WeightFactor": { + "type": "number" + } + }, + "type": "object" + }, "AWS::Budgets::Budget": { "additionalProperties": false, "properties": { @@ -16454,7 +16870,8 @@ var SamSchema = `{ "BudgetName", "Definition", "ExecutionRoleArn", - "NotificationType" + "NotificationType", + "Subscribers" ], "type": "object" }, @@ -17063,6 +17480,9 @@ var SamSchema = `{ }, "type": "array" }, + "DefaultTimeToLive": { + "type": "number" + }, "EncryptionSpecification": { "$ref": "#/definitions/AWS::Cassandra::Table.EncryptionSpecification" }, @@ -19009,6 +19429,9 @@ var SamSchema = `{ "RealtimeLogConfigArn": { "type": "string" }, + "ResponseHeadersPolicyId": { + "type": "string" + }, "SmoothStreaming": { "type": "boolean" }, @@ -19161,6 +19584,9 @@ var SamSchema = `{ "RealtimeLogConfigArn": { "type": "string" }, + "ResponseHeadersPolicyId": { + "type": "string" + }, "SmoothStreaming": { "type": "boolean" }, @@ -19655,9 +20081,6 @@ var SamSchema = `{ "FunctionConfig": { "$ref": "#/definitions/AWS::CloudFront::Function.FunctionConfig" }, - "FunctionMetadata": { - "$ref": "#/definitions/AWS::CloudFront::Function.FunctionMetadata" - }, "Name": { "type": "string" } @@ -20137,6 +20560,349 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::CloudFront::ResponseHeadersPolicy": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ResponseHeadersPolicyConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig" + } + }, + "required": [ + "ResponseHeadersPolicyConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::ResponseHeadersPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy": { + "additionalProperties": false, + "properties": { + "ContentSecurityPolicy": { + "type": "string" + }, + "Override": { + "type": "boolean" + } + }, + "required": [ + "ContentSecurityPolicy", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions": { + "additionalProperties": false, + "properties": { + "Override": { + "type": "boolean" + } + }, + "required": [ + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CorsConfig": { + "additionalProperties": false, + "properties": { + "AccessControlAllowCredentials": { + "type": "boolean" + }, + "AccessControlAllowHeaders": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders" + }, + "AccessControlAllowMethods": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods" + }, + "AccessControlAllowOrigins": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins" + }, + "AccessControlExposeHeaders": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders" + }, + "AccessControlMaxAgeSec": { + "type": "number" + }, + "OriginOverride": { + "type": "boolean" + } + }, + "required": [ + "AccessControlAllowCredentials", + "AccessControlAllowHeaders", + "AccessControlAllowMethods", + "AccessControlAllowOrigins", + "OriginOverride" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CustomHeader": { + "additionalProperties": false, + "properties": { + "Header": { + "type": "string" + }, + "Override": { + "type": "boolean" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Header", + "Override", + "Value" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeader" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.FrameOptions": { + "additionalProperties": false, + "properties": { + "FrameOption": { + "type": "string" + }, + "Override": { + "type": "boolean" + } + }, + "required": [ + "FrameOption", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy": { + "additionalProperties": false, + "properties": { + "Override": { + "type": "boolean" + }, + "ReferrerPolicy": { + "type": "string" + } + }, + "required": [ + "Override", + "ReferrerPolicy" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "CorsConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CorsConfig" + }, + "CustomHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig" + }, + "Name": { + "type": "string" + }, + "SecurityHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig": { + "additionalProperties": false, + "properties": { + "ContentSecurityPolicy": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy" + }, + "ContentTypeOptions": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions" + }, + "FrameOptions": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.FrameOptions" + }, + "ReferrerPolicy": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy" + }, + "StrictTransportSecurity": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity" + }, + "XSSProtection": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.XSSProtection" + } + }, + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity": { + "additionalProperties": false, + "properties": { + "AccessControlMaxAgeSec": { + "type": "number" + }, + "IncludeSubdomains": { + "type": "boolean" + }, + "Override": { + "type": "boolean" + }, + "Preload": { + "type": "boolean" + } + }, + "required": [ + "AccessControlMaxAgeSec", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.XSSProtection": { + "additionalProperties": false, + "properties": { + "ModeBlock": { + "type": "boolean" + }, + "Override": { + "type": "boolean" + }, + "Protection": { + "type": "boolean" + }, + "ReportUri": { + "type": "string" + } + }, + "required": [ + "Override", + "Protection" + ], + "type": "object" + }, "AWS::CloudFront::StreamingDistribution": { "additionalProperties": false, "properties": { @@ -20737,11 +21503,6 @@ var SamSchema = `{ "type": "string" } }, - "required": [ - "MetricName", - "Namespace", - "Stat" - ], "type": "object" }, "Type": { @@ -20760,8 +21521,7 @@ var SamSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -20796,6 +21556,86 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::CloudWatch::AnomalyDetector.Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricDataQueries": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricDataQuery": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Expression": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricStat" + }, + "Period": { + "type": "number" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Metric" + }, + "Period": { + "type": "number" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Metric", + "Period", + "Stat" + ], + "type": "object" + }, "AWS::CloudWatch::AnomalyDetector.Range": { "additionalProperties": false, "properties": { @@ -21634,6 +22474,9 @@ var SamSchema = `{ "AWS::CodeBuild::Project.ProjectBuildBatchConfig": { "additionalProperties": false, "properties": { + "BatchReportMode": { + "type": "string" + }, "CombineArtifacts": { "type": "boolean" }, @@ -23817,9 +24660,15 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "CreatedBy": { + "type": "string" + }, "DetailType": { "type": "string" }, + "EventTypeId": { + "type": "string" + }, "EventTypeIds": { "items": { "type": "string" @@ -23838,6 +24687,9 @@ var SamSchema = `{ "Tags": { "type": "object" }, + "TargetAddress": { + "type": "string" + }, "Targets": { "items": { "$ref": "#/definitions/AWS::CodeStarNotifications::NotificationRule.Target" @@ -26629,6 +27481,128 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Connect::HoursOfOperation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Config": { + "items": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationConfig" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeZone": { + "type": "string" + } + }, + "required": [ + "Config", + "InstanceArn", + "Name", + "TimeZone" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::HoursOfOperation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::HoursOfOperation.HoursOfOperationConfig": { + "additionalProperties": false, + "properties": { + "Day": { + "type": "string" + }, + "EndTime": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice" + }, + "StartTime": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice" + } + }, + "required": [ + "Day", + "EndTime", + "StartTime" + ], + "type": "object" + }, + "AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice": { + "additionalProperties": false, + "properties": { + "Hours": { + "type": "number" + }, + "Minutes": { + "type": "number" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, "AWS::Connect::QuickConnect": { "additionalProperties": false, "properties": { @@ -26773,6 +27747,210 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Connect::User": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DirectoryUserId": { + "type": "string" + }, + "HierarchyGroupArn": { + "type": "string" + }, + "IdentityInfo": { + "$ref": "#/definitions/AWS::Connect::User.UserIdentityInfo" + }, + "InstanceArn": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "PhoneConfig": { + "$ref": "#/definitions/AWS::Connect::User.UserPhoneConfig" + }, + "RoutingProfileArn": { + "type": "string" + }, + "SecurityProfileArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "InstanceArn", + "PhoneConfig", + "RoutingProfileArn", + "SecurityProfileArns", + "Username" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::User.UserIdentityInfo": { + "additionalProperties": false, + "properties": { + "Email": { + "type": "string" + }, + "FirstName": { + "type": "string" + }, + "LastName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Connect::User.UserPhoneConfig": { + "additionalProperties": false, + "properties": { + "AfterContactWorkTimeLimit": { + "type": "number" + }, + "AutoAccept": { + "type": "boolean" + }, + "DeskPhoneNumber": { + "type": "string" + }, + "PhoneType": { + "type": "string" + } + }, + "required": [ + "PhoneType" + ], + "type": "object" + }, + "AWS::Connect::UserHierarchyGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParentGroupArn": { + "type": "string" + } + }, + "required": [ + "InstanceArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::UserHierarchyGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::CustomerProfiles::Domain": { "additionalProperties": false, "properties": { @@ -28198,6 +29376,9 @@ var SamSchema = `{ "PostgreSqlSettings": { "$ref": "#/definitions/AWS::DMS::Endpoint.PostgreSqlSettings" }, + "RedisSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.RedisSettings" + }, "RedshiftSettings": { "$ref": "#/definitions/AWS::DMS::Endpoint.RedshiftSettings" }, @@ -28310,6 +29491,45 @@ var SamSchema = `{ "Broker": { "type": "string" }, + "IncludeControlDetails": { + "type": "boolean" + }, + "IncludeNullAndEmpty": { + "type": "boolean" + }, + "IncludeTableAlterOperations": { + "type": "boolean" + }, + "IncludeTransactionDetails": { + "type": "boolean" + }, + "NoHexPrefix": { + "type": "boolean" + }, + "PartitionIncludeSchemaTable": { + "type": "boolean" + }, + "SaslPassword": { + "type": "string" + }, + "SaslUserName": { + "type": "string" + }, + "SecurityProtocol": { + "type": "string" + }, + "SslCaCertificateArn": { + "type": "string" + }, + "SslClientCertificateArn": { + "type": "string" + }, + "SslClientKeyArn": { + "type": "string" + }, + "SslClientKeyPassword": { + "type": "string" + }, "Topic": { "type": "string" } @@ -28319,9 +29539,27 @@ var SamSchema = `{ "AWS::DMS::Endpoint.KinesisSettings": { "additionalProperties": false, "properties": { + "IncludeControlDetails": { + "type": "boolean" + }, + "IncludeNullAndEmpty": { + "type": "boolean" + }, + "IncludeTableAlterOperations": { + "type": "boolean" + }, + "IncludeTransactionDetails": { + "type": "boolean" + }, "MessageFormat": { "type": "string" }, + "NoHexPrefix": { + "type": "boolean" + }, + "PartitionIncludeSchemaTable": { + "type": "boolean" + }, "ServiceAccessRoleArn": { "type": "string" }, @@ -28457,6 +29695,33 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::DMS::Endpoint.RedisSettings": { + "additionalProperties": false, + "properties": { + "AuthPassword": { + "type": "string" + }, + "AuthType": { + "type": "string" + }, + "AuthUserName": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "ServerName": { + "type": "string" + }, + "SslCaCertificateArn": { + "type": "string" + }, + "SslSecurityProtocol": { + "type": "string" + } + }, + "type": "object" + }, "AWS::DMS::Endpoint.RedshiftSettings": { "additionalProperties": false, "properties": { @@ -30764,7 +32029,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DataSync::LocationNFS": { + "AWS::DataSync::LocationHDFS": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -30796,13 +32061,43 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "MountOptions": { - "$ref": "#/definitions/AWS::DataSync::LocationNFS.MountOptions" + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "OnPremConfig": { - "$ref": "#/definitions/AWS::DataSync::LocationNFS.OnPremConfig" + "AuthenticationType": { + "type": "string" }, - "ServerHostname": { + "BlockSize": { + "type": "number" + }, + "KerberosKeytab": { + "type": "string" + }, + "KerberosKrb5Conf": { + "type": "string" + }, + "KerberosPrincipal": { + "type": "string" + }, + "KmsKeyProviderUri": { + "type": "string" + }, + "NameNodes": { + "items": { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS.NameNode" + }, + "type": "array" + }, + "QopConfiguration": { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS.QopConfiguration" + }, + "ReplicationFactor": { + "type": "number" + }, + "SimpleUser": { "type": "string" }, "Subdirectory": { @@ -30816,15 +32111,15 @@ var SamSchema = `{ } }, "required": [ - "OnPremConfig", - "ServerHostname", - "Subdirectory" + "AgentArns", + "AuthenticationType", + "NameNodes" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationNFS" + "AWS::DataSync::LocationHDFS" ], "type": "string" }, @@ -30843,31 +32138,35 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DataSync::LocationNFS.MountOptions": { + "AWS::DataSync::LocationHDFS.NameNode": { "additionalProperties": false, "properties": { - "Version": { + "Hostname": { "type": "string" + }, + "Port": { + "type": "number" } }, + "required": [ + "Hostname", + "Port" + ], "type": "object" }, - "AWS::DataSync::LocationNFS.OnPremConfig": { + "AWS::DataSync::LocationHDFS.QopConfiguration": { "additionalProperties": false, "properties": { - "AgentArns": { - "items": { - "type": "string" - }, - "type": "array" + "DataTransferProtection": { + "type": "string" + }, + "RpcProtection": { + "type": "string" } }, - "required": [ - "AgentArns" - ], "type": "object" }, - "AWS::DataSync::LocationObjectStorage": { + "AWS::DataSync::LocationNFS": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -30899,30 +32198,15 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AccessKey": { - "type": "string" - }, - "AgentArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "BucketName": { - "type": "string" + "MountOptions": { + "$ref": "#/definitions/AWS::DataSync::LocationNFS.MountOptions" }, - "SecretKey": { - "type": "string" + "OnPremConfig": { + "$ref": "#/definitions/AWS::DataSync::LocationNFS.OnPremConfig" }, "ServerHostname": { "type": "string" }, - "ServerPort": { - "type": "number" - }, - "ServerProtocol": { - "type": "string" - }, "Subdirectory": { "type": "string" }, @@ -30934,15 +32218,15 @@ var SamSchema = `{ } }, "required": [ - "AgentArns", - "BucketName", - "ServerHostname" + "OnPremConfig", + "ServerHostname", + "Subdirectory" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationObjectStorage" + "AWS::DataSync::LocationNFS" ], "type": "string" }, @@ -30961,7 +32245,31 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DataSync::LocationS3": { + "AWS::DataSync::LocationNFS.MountOptions": { + "additionalProperties": false, + "properties": { + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::LocationNFS.OnPremConfig": { + "additionalProperties": false, + "properties": { + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AgentArns" + ], + "type": "object" + }, + "AWS::DataSync::LocationObjectStorage": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -30993,13 +32301,28 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "S3BucketArn": { + "AccessKey": { "type": "string" }, - "S3Config": { - "$ref": "#/definitions/AWS::DataSync::LocationS3.S3Config" + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "S3StorageClass": { + "BucketName": { + "type": "string" + }, + "SecretKey": { + "type": "string" + }, + "ServerHostname": { + "type": "string" + }, + "ServerPort": { + "type": "number" + }, + "ServerProtocol": { "type": "string" }, "Subdirectory": { @@ -31013,14 +32336,15 @@ var SamSchema = `{ } }, "required": [ - "S3BucketArn", - "S3Config" + "AgentArns", + "BucketName", + "ServerHostname" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationS3" + "AWS::DataSync::LocationObjectStorage" ], "type": "string" }, @@ -31039,19 +32363,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DataSync::LocationS3.S3Config": { - "additionalProperties": false, - "properties": { - "BucketAccessRoleArn": { - "type": "string" - } - }, - "required": [ - "BucketAccessRoleArn" - ], - "type": "object" - }, - "AWS::DataSync::LocationSMB": { + "AWS::DataSync::LocationS3": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -31083,22 +32395,13 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AgentArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Domain": { + "S3BucketArn": { "type": "string" }, - "MountOptions": { - "$ref": "#/definitions/AWS::DataSync::LocationSMB.MountOptions" - }, - "Password": { - "type": "string" + "S3Config": { + "$ref": "#/definitions/AWS::DataSync::LocationS3.S3Config" }, - "ServerHostname": { + "S3StorageClass": { "type": "string" }, "Subdirectory": { @@ -31109,23 +32412,17 @@ var SamSchema = `{ "$ref": "#/definitions/Tag" }, "type": "array" - }, - "User": { - "type": "string" } }, "required": [ - "AgentArns", - "Password", - "ServerHostname", - "Subdirectory", - "User" + "S3BucketArn", + "S3Config" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationSMB" + "AWS::DataSync::LocationS3" ], "type": "string" }, @@ -31144,16 +32441,121 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::DataSync::LocationSMB.MountOptions": { + "AWS::DataSync::LocationS3.S3Config": { "additionalProperties": false, "properties": { - "Version": { + "BucketAccessRoleArn": { "type": "string" } }, + "required": [ + "BucketAccessRoleArn" + ], "type": "object" }, - "AWS::DataSync::Task": { + "AWS::DataSync::LocationSMB": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Domain": { + "type": "string" + }, + "MountOptions": { + "$ref": "#/definitions/AWS::DataSync::LocationSMB.MountOptions" + }, + "Password": { + "type": "string" + }, + "ServerHostname": { + "type": "string" + }, + "Subdirectory": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "User": { + "type": "string" + } + }, + "required": [ + "AgentArns", + "Password", + "ServerHostname", + "Subdirectory", + "User" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::LocationSMB" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::LocationSMB.MountOptions": { + "additionalProperties": false, + "properties": { + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::Task": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -32962,6 +34364,12 @@ var SamSchema = `{ "InstanceType": { "type": "string" }, + "OutPostArn": { + "type": "string" + }, + "PlacementGroupArn": { + "type": "string" + }, "TagSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::CapacityReservation.TagSpecification" @@ -33016,6 +34424,136 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::EC2::CapacityReservationFleet": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "type": "string" + }, + "InstanceTypeSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification" + }, + "type": "array" + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.TagSpecification" + }, + "type": "array" + }, + "Tenancy": { + "type": "string" + }, + "TotalTargetCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::CapacityReservationFleet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::CapacityReservationFleet.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::EC2::CarrierGateway": { "additionalProperties": false, "properties": { @@ -33789,6 +35327,54 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EC2::EC2Fleet.AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.CapacityRebalance": { + "additionalProperties": false, + "properties": { + "ReplacementStrategy": { + "type": "string" + }, + "TerminationDelay": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::EC2Fleet.CapacityReservationOptionsRequest": { "additionalProperties": false, "properties": { @@ -33819,6 +35405,9 @@ var SamSchema = `{ "AvailabilityZone": { "type": "string" }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.InstanceRequirementsRequest" + }, "InstanceType": { "type": "string" }, @@ -33855,6 +35444,141 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::EC2::EC2Fleet.InstanceRequirementsRequest": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryMiBRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.VCpuCountRangeRequest" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MaintenanceStrategies": { + "additionalProperties": false, + "properties": { + "CapacityRebalance": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.CapacityRebalance" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::EC2Fleet.OnDemandOptionsRequest": { "additionalProperties": false, "properties": { @@ -33921,6 +35645,9 @@ var SamSchema = `{ "InstancePoolsToUseCount": { "type": "number" }, + "MaintenanceStrategies": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MaintenanceStrategies" + }, "MaxTotalPrice": { "type": "string" }, @@ -33963,6 +35690,9 @@ var SamSchema = `{ "SpotTargetCapacity": { "type": "number" }, + "TargetCapacityUnitType": { + "type": "string" + }, "TotalTargetCapacity": { "type": "number" } @@ -33972,6 +35702,30 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.VCpuCountRangeRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::EIP": { "additionalProperties": false, "properties": { @@ -37588,6 +39342,42 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EC2::SpotFleet.AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::SpotFleet.BlockDeviceMapping": { "additionalProperties": false, "properties": { @@ -37759,6 +39549,96 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::EC2::SpotFleet.InstanceRequirementsRequest": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryMiBRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.VCpuCountRangeRequest" + } + }, + "type": "object" + }, "AWS::EC2::SpotFleet.LaunchTemplateConfig": { "additionalProperties": false, "properties": { @@ -37780,6 +39660,9 @@ var SamSchema = `{ "AvailabilityZone": { "type": "string" }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest" + }, "InstanceType": { "type": "string" }, @@ -37807,6 +39690,42 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": { "additionalProperties": false, "properties": { @@ -37827,6 +39746,9 @@ var SamSchema = `{ "properties": { "ReplacementStrategy": { "type": "string" + }, + "TerminationDelay": { + "type": "number" } }, "type": "object" @@ -37849,6 +39771,9 @@ var SamSchema = `{ "ImageId": { "type": "string" }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest" + }, "InstanceType": { "type": "string" }, @@ -37899,8 +39824,7 @@ var SamSchema = `{ } }, "required": [ - "ImageId", - "InstanceType" + "ImageId" ], "type": "object" }, @@ -37973,6 +39897,9 @@ var SamSchema = `{ "TargetCapacity": { "type": "number" }, + "TargetCapacityUnitType": { + "type": "string" + }, "TerminateInstancesWithExpiration": { "type": "boolean" }, @@ -38058,6 +39985,30 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EC2::SpotFleet.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.VCpuCountRangeRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::Subnet": { "additionalProperties": false, "properties": { @@ -39252,6 +41203,9 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "Options": { + "$ref": "#/definitions/AWS::EC2::TransitGatewayPeeringAttachment.TransitGatewayPeeringAttachmentOptions" + }, "PeerAccountId": { "type": "string" }, @@ -39300,6 +41254,15 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EC2::TransitGatewayPeeringAttachment.TransitGatewayPeeringAttachmentOptions": { + "additionalProperties": false, + "properties": { + "DynamicRouting": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::TransitGatewayRoute": { "additionalProperties": false, "properties": { @@ -40090,6 +42053,9 @@ var SamSchema = `{ "type": "string" }, "type": "array" + }, + "PayerResponsibility": { + "type": "string" } }, "type": "object" @@ -41982,6 +43948,9 @@ var SamSchema = `{ }, "type": "array" }, + "RuntimePlatform": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.RuntimePlatform" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42561,6 +44530,18 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::ECS::TaskDefinition.RuntimePlatform": { + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "type": "string" + }, + "OperatingSystemFamily": { + "type": "string" + } + }, + "type": "object" + }, "AWS::ECS::TaskDefinition.Secret": { "additionalProperties": false, "properties": { @@ -43328,6 +45309,9 @@ var SamSchema = `{ "KubernetesNetworkConfig": { "$ref": "#/definitions/AWS::EKS::Cluster.KubernetesNetworkConfig" }, + "Logging": { + "$ref": "#/definitions/AWS::EKS::Cluster.Logging" + }, "Name": { "type": "string" }, @@ -43337,6 +45321,12 @@ var SamSchema = `{ "RoleArn": { "type": "string" }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "Version": { "type": "string" } @@ -43368,11 +45358,23 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EKS::Cluster.ClusterLogging": { + "additionalProperties": false, + "properties": { + "EnabledTypes": { + "items": { + "$ref": "#/definitions/AWS::EKS::Cluster.LoggingTypeConfig" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::EKS::Cluster.EncryptionConfig": { "additionalProperties": false, "properties": { "Provider": { - "$ref": "#/definitions/AWS::EKS::Cluster.Provider" + "type": "object" }, "Resources": { "items": { @@ -43392,10 +45394,19 @@ var SamSchema = `{ }, "type": "object" }, - "AWS::EKS::Cluster.Provider": { + "AWS::EKS::Cluster.Logging": { "additionalProperties": false, "properties": { - "KeyArn": { + "ClusterLogging": { + "$ref": "#/definitions/AWS::EKS::Cluster.ClusterLogging" + } + }, + "type": "object" + }, + "AWS::EKS::Cluster.LoggingTypeConfig": { + "additionalProperties": false, + "properties": { + "Type": { "type": "string" } }, @@ -43404,6 +45415,18 @@ var SamSchema = `{ "AWS::EKS::Cluster.ResourcesVpcConfig": { "additionalProperties": false, "properties": { + "EndpointPrivateAccess": { + "type": "boolean" + }, + "EndpointPublicAccess": { + "type": "boolean" + }, + "PublicAccessCidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, "SecurityGroupIds": { "items": { "type": "string" @@ -50348,6 +52371,9 @@ var SamSchema = `{ }, "type": "array" }, + "ResourcesCleanUp": { + "type": "boolean" + }, "SecurityServicePolicyData": { "type": "object" }, @@ -50475,12 +52501,18 @@ var SamSchema = `{ "FileSystemType": { "type": "string" }, + "FileSystemTypeVersion": { + "type": "string" + }, "KmsKeyId": { "type": "string" }, "LustreConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.LustreConfiguration" }, + "OntapConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.OntapConfiguration" + }, "SecurityGroupIds": { "items": { "type": "string" @@ -50555,6 +52587,18 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::FSx::FileSystem.DiskIopsConfiguration": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "Mode": { + "type": "string" + } + }, + "type": "object" + }, "AWS::FSx::FileSystem.LustreConfiguration": { "additionalProperties": false, "properties": { @@ -50597,6 +52641,48 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::FSx::FileSystem.OntapConfiguration": { + "additionalProperties": false, + "properties": { + "AutomaticBackupRetentionDays": { + "type": "number" + }, + "DailyAutomaticBackupStartTime": { + "type": "string" + }, + "DeploymentType": { + "type": "string" + }, + "DiskIopsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" + }, + "EndpointIpAddressRange": { + "type": "string" + }, + "FsxAdminPassword": { + "type": "string" + }, + "PreferredSubnetId": { + "type": "string" + }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ThroughputCapacity": { + "type": "number" + }, + "WeeklyMaintenanceStartTime": { + "type": "string" + } + }, + "required": [ + "DeploymentType" + ], + "type": "object" + }, "AWS::FSx::FileSystem.SelfManagedActiveDirectoryConfiguration": { "additionalProperties": false, "properties": { @@ -50701,6 +52787,12 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "DataBundles": { + "items": { + "type": "string" + }, + "type": "array" + }, "Description": { "type": "string" }, @@ -50715,6 +52807,9 @@ var SamSchema = `{ }, "Name": { "type": "string" + }, + "SuperuserParameters": { + "$ref": "#/definitions/AWS::FinSpace::Environment.SuperuserParameters" } }, "required": [ @@ -50767,6 +52862,21 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::FinSpace::Environment.SuperuserParameters": { + "additionalProperties": false, + "properties": { + "EmailAddress": { + "type": "string" + }, + "FirstName": { + "type": "string" + }, + "LastName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::FraudDetector::Detector": { "additionalProperties": false, "properties": { @@ -60357,6 +62467,9 @@ var SamSchema = `{ "SnapshotId": { "type": "string" }, + "Throughput": { + "type": "number" + }, "VolumeSize": { "type": "number" }, @@ -60923,6 +63036,9 @@ var SamSchema = `{ "SnapshotId": { "type": "string" }, + "Throughput": { + "type": "number" + }, "VolumeSize": { "type": "number" }, @@ -60994,6 +63110,9 @@ var SamSchema = `{ "Description": { "type": "string" }, + "InstanceMetadataOptions": { + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions" + }, "InstanceProfileName": { "type": "string" }, @@ -61073,6 +63192,18 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions": { + "additionalProperties": false, + "properties": { + "HttpPutResponseHopLimit": { + "type": "number" + }, + "HttpTokens": { + "type": "string" + } + }, + "type": "object" + }, "AWS::ImageBuilder::InfrastructureConfiguration.Logging": { "additionalProperties": false, "properties": { @@ -62223,7 +64354,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::IoT::MitigationAction": { + "AWS::IoT::JobTemplate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -62255,31 +64386,49 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ActionName": { + "AbortConfig": { + "type": "object" + }, + "Description": { "type": "string" }, - "ActionParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams" + "Document": { + "type": "string" }, - "RoleArn": { + "DocumentSource": { + "type": "string" + }, + "JobArn": { + "type": "string" + }, + "JobExecutionsRolloutConfig": { + "type": "object" + }, + "JobTemplateId": { "type": "string" }, + "PresignedUrlConfig": { + "type": "object" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "TimeoutConfig": { + "type": "object" } }, "required": [ - "ActionParams", - "RoleArn" + "Description", + "JobTemplateId" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::MitigationAction" + "AWS::IoT::JobTemplate" ], "type": "string" }, @@ -62298,113 +64447,258 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::IoT::MitigationAction.ActionParams": { - "additionalProperties": false, - "properties": { - "AddThingsToThingGroupParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams" - }, - "EnableIoTLoggingParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams" - }, - "PublishFindingToSnsParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams" - }, - "ReplaceDefaultPolicyVersionParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams" - }, - "UpdateCACertificateParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams" - }, - "UpdateDeviceCertificateParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams" - } - }, - "type": "object" - }, - "AWS::IoT::MitigationAction.AddThingsToThingGroupParams": { - "additionalProperties": false, - "properties": { - "OverrideDynamicGroups": { - "type": "boolean" - }, - "ThingGroupNames": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "ThingGroupNames" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.EnableIoTLoggingParams": { - "additionalProperties": false, - "properties": { - "LogLevel": { - "type": "string" - }, - "RoleArnForLogging": { - "type": "string" - } - }, - "required": [ - "LogLevel", - "RoleArnForLogging" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.PublishFindingToSnsParams": { - "additionalProperties": false, - "properties": { - "TopicArn": { - "type": "string" - } - }, - "required": [ - "TopicArn" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams": { - "additionalProperties": false, - "properties": { - "TemplateName": { - "type": "string" - } - }, - "required": [ - "TemplateName" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.UpdateCACertificateParams": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "required": [ - "Action" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "required": [ - "Action" - ], - "type": "object" - }, - "AWS::IoT::Policy": { + "AWS::IoT::Logging": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "DefaultLogLevel": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "AccountId", + "DefaultLogLevel", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Logging" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ActionName": { + "type": "string" + }, + "ActionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ActionParams", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::MitigationAction" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ActionParams": { + "additionalProperties": false, + "properties": { + "AddThingsToThingGroupParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams" + }, + "EnableIoTLoggingParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams" + }, + "PublishFindingToSnsParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams" + }, + "ReplaceDefaultPolicyVersionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams" + }, + "UpdateCACertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams" + }, + "UpdateDeviceCertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams" + } + }, + "type": "object" + }, + "AWS::IoT::MitigationAction.AddThingsToThingGroupParams": { + "additionalProperties": false, + "properties": { + "OverrideDynamicGroups": { + "type": "boolean" + }, + "ThingGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ThingGroupNames" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.EnableIoTLoggingParams": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "type": "string" + }, + "RoleArnForLogging": { + "type": "string" + } + }, + "required": [ + "LogLevel", + "RoleArnForLogging" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.PublishFindingToSnsParams": { + "additionalProperties": false, + "properties": { + "TopicArn": { + "type": "string" + } + }, + "required": [ + "TopicArn" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams": { + "additionalProperties": false, + "properties": { + "TemplateName": { + "type": "string" + } + }, + "required": [ + "TemplateName" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateCACertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::IoT::Policy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -62631,6 +64925,76 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::IoT::ResourceSpecificLogging": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "type": "string" + }, + "TargetName": { + "type": "string" + }, + "TargetType": { + "type": "string" + } + }, + "required": [ + "LogLevel", + "TargetName", + "TargetType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ResourceSpecificLogging" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IoT::ScheduledAudit": { "additionalProperties": false, "properties": { @@ -67089,6 +69453,217 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::IoTWireless::FuotaTask": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssociateMulticastGroup": { + "type": "string" + }, + "AssociateWirelessDevice": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisassociateMulticastGroup": { + "type": "string" + }, + "DisassociateWirelessDevice": { + "type": "string" + }, + "FirmwareUpdateImage": { + "type": "string" + }, + "FirmwareUpdateRole": { + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::FuotaTask.LoRaWAN" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "FirmwareUpdateImage", + "FirmwareUpdateRole", + "LoRaWAN" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::FuotaTask" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::FuotaTask.LoRaWAN": { + "additionalProperties": false, + "properties": { + "RfRegion": { + "type": "string" + }, + "StartTime": { + "type": "string" + } + }, + "required": [ + "RfRegion" + ], + "type": "object" + }, + "AWS::IoTWireless::MulticastGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssociateWirelessDevice": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisassociateWirelessDevice": { + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::MulticastGroup.LoRaWAN" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "LoRaWAN" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::MulticastGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::MulticastGroup.LoRaWAN": { + "additionalProperties": false, + "properties": { + "DlClass": { + "type": "string" + }, + "NumberOfDevicesInGroup": { + "type": "number" + }, + "NumberOfDevicesRequested": { + "type": "number" + }, + "RfRegion": { + "type": "string" + } + }, + "required": [ + "DlClass", + "RfRegion" + ], + "type": "object" + }, "AWS::IoTWireless::PartnerAccount": { "additionalProperties": false, "properties": { @@ -73891,7 +76466,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Lightsail::Disk": { + "AWS::Lightsail::Database": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -73923,20 +76498,50 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AddOns": { - "items": { - "$ref": "#/definitions/AWS::Lightsail::Disk.AddOn" - }, - "type": "array" - }, "AvailabilityZone": { "type": "string" }, - "DiskName": { + "BackupRetention": { + "type": "boolean" + }, + "CaCertificateIdentifier": { "type": "string" }, - "SizeInGb": { - "type": "number" + "MasterDatabaseName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "RelationalDatabaseBlueprintId": { + "type": "string" + }, + "RelationalDatabaseBundleId": { + "type": "string" + }, + "RelationalDatabaseName": { + "type": "string" + }, + "RelationalDatabaseParameters": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Database.RelationalDatabaseParameter" + }, + "type": "array" + }, + "RotateMasterUserPassword": { + "type": "boolean" }, "Tags": { "items": { @@ -73946,14 +76551,17 @@ var SamSchema = `{ } }, "required": [ - "DiskName", - "SizeInGb" + "MasterDatabaseName", + "MasterUsername", + "RelationalDatabaseBlueprintId", + "RelationalDatabaseBundleId", + "RelationalDatabaseName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Lightsail::Disk" + "AWS::Lightsail::Database" ], "type": "string" }, @@ -73972,34 +76580,145 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Lightsail::Disk.AddOn": { + "AWS::Lightsail::Database.RelationalDatabaseParameter": { "additionalProperties": false, "properties": { - "AddOnType": { + "AllowedValues": { "type": "string" }, - "AutoSnapshotAddOnRequest": { - "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn" + "ApplyMethod": { + "type": "string" }, - "Status": { + "ApplyType": { "type": "string" - } - }, - "required": [ - "AddOnType" - ], - "type": "object" - }, - "AWS::Lightsail::Disk.AutoSnapshotAddOn": { - "additionalProperties": false, - "properties": { - "SnapshotTimeOfDay": { + }, + "DataType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IsModifiable": { + "type": "boolean" + }, + "ParameterName": { + "type": "string" + }, + "ParameterValue": { "type": "string" } }, "type": "object" }, - "AWS::Lightsail::Instance": { + "AWS::Lightsail::Disk": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AddOns": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AddOn" + }, + "type": "array" + }, + "AvailabilityZone": { + "type": "string" + }, + "DiskName": { + "type": "string" + }, + "SizeInGb": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DiskName", + "SizeInGb" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Disk" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Disk.AddOn": { + "additionalProperties": false, + "properties": { + "AddOnType": { + "type": "string" + }, + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "AddOnType" + ], + "type": "object" + }, + "AWS::Lightsail::Disk.AutoSnapshotAddOn": { + "additionalProperties": false, + "properties": { + "SnapshotTimeOfDay": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -74052,20 +76771,20 @@ var SamSchema = `{ "InstanceName": { "type": "string" }, - "Location": { - "$ref": "#/definitions/AWS::Lightsail::Instance.Location" + "KeyPairName": { + "type": "string" }, "Networking": { "$ref": "#/definitions/AWS::Lightsail::Instance.Networking" }, - "State": { - "$ref": "#/definitions/AWS::Lightsail::Instance.State" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "UserData": { + "type": "string" } }, "required": [ @@ -74197,7 +76916,7 @@ var SamSchema = `{ "additionalProperties": false, "properties": { "MonthlyTransfer": { - "type": "object" + "$ref": "#/definitions/AWS::Lightsail::Instance.MonthlyTransfer" }, "Ports": { "items": { @@ -74268,6 +76987,71 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::Lightsail::StaticIp": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AttachedTo": { + "type": "string" + }, + "StaticIpName": { + "type": "string" + } + }, + "required": [ + "StaticIpName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::StaticIp" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Location::GeofenceCollection": { "additionalProperties": false, "properties": { @@ -74624,6 +77408,9 @@ var SamSchema = `{ "KmsKeyId": { "type": "string" }, + "PositionFiltering": { + "type": "string" + }, "PricingPlan": { "type": "string" }, @@ -76388,7 +79175,7 @@ var SamSchema = `{ "type": "string" }, "Tags": { - "$ref": "#/definitions/AWS::MWAA::Environment.TagMap" + "type": "object" }, "WebserverAccessMode": { "type": "string" @@ -76477,96 +79264,91 @@ var SamSchema = `{ }, "type": "object" }, - "AWS::MWAA::Environment.TagMap": { + "AWS::Macie::CustomDataIdentifier": { "additionalProperties": false, - "properties": {}, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreWords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaximumMatchDistance": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Regex": { + "type": "string" + } + }, + "required": [ + "Name", + "Regex" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Macie::CustomDataIdentifier" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Macie::CustomDataIdentifier": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreWords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Keywords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaximumMatchDistance": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "Regex": { - "type": "string" - } - }, - "required": [ - "Name", - "Regex" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Macie::CustomDataIdentifier" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Macie::FindingsFilter": { + "AWS::Macie::FindingsFilter": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -82360,9 +85142,6 @@ var SamSchema = `{ "AutoMinorVersionUpgrade": { "type": "boolean" }, - "ClusterEndpoint": { - "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint" - }, "ClusterName": { "type": "string" }, @@ -82437,7 +85216,9 @@ var SamSchema = `{ } }, "required": [ - "ClusterName" + "ACLName", + "ClusterName", + "NodeType" ], "type": "object" }, @@ -82526,6 +85307,7 @@ var SamSchema = `{ } }, "required": [ + "Family", "ParameterGroupName" ], "type": "object" @@ -82603,7 +85385,8 @@ var SamSchema = `{ } }, "required": [ - "SubnetGroupName" + "SubnetGroupName", + "SubnetIds" ], "type": "object" }, @@ -83408,6 +86191,15 @@ var SamSchema = `{ "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { "additionalProperties": false, "properties": { + "StatefulDefaultActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions" + }, "StatefulRuleGroupReferences": { "items": { "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference" @@ -83460,9 +86252,21 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "type": "string" + } + }, + "type": "object" + }, "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference": { "additionalProperties": false, "properties": { + "Priority": { + "type": "number" + }, "ResourceArn": { "type": "string" } @@ -83885,6 +86689,9 @@ var SamSchema = `{ }, "RulesSource": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSource" + }, + "StatefulRuleOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions" } }, "required": [ @@ -84004,6 +86811,15 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "type": "string" + } + }, + "type": "object" + }, "AWS::NetworkFirewall::RuleGroup.StatelessRule": { "additionalProperties": false, "properties": { @@ -86759,7 +89575,7 @@ var SamSchema = `{ }, "type": "object" }, - "AWS::Pinpoint::ADMChannel": { + "AWS::Panorama::ApplicationInstance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86791,29 +89607,49 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationId": { + "ApplicationInstanceIdToReplace": { "type": "string" }, - "ClientId": { + "DefaultRuntimeContextDevice": { "type": "string" }, - "ClientSecret": { + "Description": { "type": "string" }, - "Enabled": { - "type": "boolean" + "DeviceId": { + "type": "string" + }, + "ManifestOverridesPayload": { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestOverridesPayload" + }, + "ManifestPayload": { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestPayload" + }, + "Name": { + "type": "string" + }, + "RuntimeRoleArn": { + "type": "string" + }, + "StatusFilter": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "ApplicationId", - "ClientId", - "ClientSecret" + "DefaultRuntimeContextDevice", + "ManifestPayload" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::ADMChannel" + "AWS::Panorama::ApplicationInstance" ], "type": "string" }, @@ -86832,7 +89668,25 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Pinpoint::APNSChannel": { + "AWS::Panorama::ApplicationInstance.ManifestOverridesPayload": { + "additionalProperties": false, + "properties": { + "PayloadData": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Panorama::ApplicationInstance.ManifestPayload": { + "additionalProperties": false, + "properties": { + "PayloadData": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Panorama::Package": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86864,42 +89718,103 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationId": { + "PackageName": { "type": "string" }, - "BundleId": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "PackageName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Panorama::Package" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Panorama::PackageVersion": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "Certificate": { - "type": "string" + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "MarkLatest": { + "type": "boolean" }, - "DefaultAuthenticationMethod": { + "OwnerAccount": { "type": "string" }, - "Enabled": { - "type": "boolean" - }, - "PrivateKey": { + "PackageId": { "type": "string" }, - "TeamId": { + "PackageVersion": { "type": "string" }, - "TokenKey": { + "PatchVersion": { "type": "string" }, - "TokenKeyId": { + "UpdatedLatestPatchVersion": { "type": "string" } }, "required": [ - "ApplicationId" + "PackageId", + "PackageVersion", + "PatchVersion" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::APNSChannel" + "AWS::Panorama::PackageVersion" ], "type": "string" }, @@ -86918,7 +89833,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Pinpoint::APNSSandboxChannel": { + "AWS::Pinpoint::ADMChannel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86953,39 +89868,26 @@ var SamSchema = `{ "ApplicationId": { "type": "string" }, - "BundleId": { - "type": "string" - }, - "Certificate": { + "ClientId": { "type": "string" }, - "DefaultAuthenticationMethod": { + "ClientSecret": { "type": "string" }, "Enabled": { "type": "boolean" - }, - "PrivateKey": { - "type": "string" - }, - "TeamId": { - "type": "string" - }, - "TokenKey": { - "type": "string" - }, - "TokenKeyId": { - "type": "string" } }, "required": [ - "ApplicationId" + "ApplicationId", + "ClientId", + "ClientSecret" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::APNSSandboxChannel" + "AWS::Pinpoint::ADMChannel" ], "type": "string" }, @@ -87004,7 +89906,179 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Pinpoint::APNSVoipChannel": { + "AWS::Pinpoint::APNSChannel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Certificate": { + "type": "string" + }, + "DefaultAuthenticationMethod": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PrivateKey": { + "type": "string" + }, + "TeamId": { + "type": "string" + }, + "TokenKey": { + "type": "string" + }, + "TokenKeyId": { + "type": "string" + } + }, + "required": [ + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::APNSChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::APNSSandboxChannel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Certificate": { + "type": "string" + }, + "DefaultAuthenticationMethod": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PrivateKey": { + "type": "string" + }, + "TeamId": { + "type": "string" + }, + "TokenKey": { + "type": "string" + }, + "TokenKeyId": { + "type": "string" + } + }, + "required": [ + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::APNSSandboxChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::APNSVoipChannel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -87499,6 +90573,9 @@ var SamSchema = `{ "Name": { "type": "string" }, + "Priority": { + "type": "number" + }, "Schedule": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.Schedule" }, @@ -87608,6 +90685,24 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::Pinpoint::Campaign.CampaignInAppMessage": { + "additionalProperties": false, + "properties": { + "Content": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageContent" + }, + "type": "array" + }, + "CustomConfig": { + "type": "object" + }, + "Layout": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.CampaignSmsMessage": { "additionalProperties": false, "properties": { @@ -87632,6 +90727,30 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::Pinpoint::Campaign.DefaultButtonConfiguration": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" + }, + "BorderRadius": { + "type": "number" + }, + "ButtonAction": { + "type": "string" + }, + "Link": { + "type": "string" + }, + "Text": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.EventDimensions": { "additionalProperties": false, "properties": { @@ -87647,6 +90766,78 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::Pinpoint::Campaign.InAppMessageBodyConfig": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "Body": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageButton": { + "additionalProperties": false, + "properties": { + "Android": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + }, + "DefaultConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.DefaultButtonConfiguration" + }, + "IOS": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + }, + "Web": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageContent": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" + }, + "BodyConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageBodyConfig" + }, + "HeaderConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageHeaderConfig" + }, + "ImageUrl": { + "type": "string" + }, + "PrimaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton" + }, + "SecondaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageHeaderConfig": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "Header": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.Limits": { "additionalProperties": false, "properties": { @@ -87659,6 +90850,9 @@ var SamSchema = `{ "MessagesPerSecond": { "type": "number" }, + "Session": { + "type": "number" + }, "Total": { "type": "number" } @@ -87728,6 +90922,9 @@ var SamSchema = `{ "GCMMessage": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message" }, + "InAppMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignInAppMessage" + }, "SMSMessage": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignSmsMessage" } @@ -87746,6 +90943,18 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::Pinpoint::Campaign.OverrideButtonConfiguration": { + "additionalProperties": false, + "properties": { + "ButtonAction": { + "type": "string" + }, + "Link": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.QuietTime": { "additionalProperties": false, "properties": { @@ -87857,35 +91066,335 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ApplicationId": { - "type": "string" - }, - "ConfigurationSet": { - "type": "string" + "ApplicationId": { + "type": "string" + }, + "ConfigurationSet": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "FromAddress": { + "type": "string" + }, + "Identity": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ApplicationId", + "FromAddress", + "Identity" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::EmailChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::EmailTemplate": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DefaultSubstitutions": { + "type": "string" + }, + "HtmlPart": { + "type": "string" + }, + "Subject": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "TemplateDescription": { + "type": "string" + }, + "TemplateName": { + "type": "string" + }, + "TextPart": { + "type": "string" + } + }, + "required": [ + "Subject", + "TemplateName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::EmailTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::EventStream": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "DestinationStreamArn": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ApplicationId", + "DestinationStreamArn", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::EventStream" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::GCMChannel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApiKey": { + "type": "string" + }, + "ApplicationId": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "ApiKey", + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::GCMChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Content": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.InAppMessageContent" + }, + "type": "array" }, - "Enabled": { - "type": "boolean" + "CustomConfig": { + "type": "object" }, - "FromAddress": { + "Layout": { "type": "string" }, - "Identity": { + "Tags": { + "type": "object" + }, + "TemplateDescription": { "type": "string" }, - "RoleArn": { + "TemplateName": { "type": "string" } }, "required": [ - "ApplicationId", - "FromAddress", - "Identity" + "TemplateName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::EmailChannel" + "AWS::Pinpoint::InAppTemplate" ], "type": "string" }, @@ -87904,224 +91413,112 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Pinpoint::EmailTemplate": { + "AWS::Pinpoint::InAppTemplate.BodyConfig": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Alignment": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Body": { + "type": "string" }, - "Metadata": { - "type": "object" + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.ButtonConfig": { + "additionalProperties": false, + "properties": { + "Android": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" }, - "Properties": { - "additionalProperties": false, - "properties": { - "DefaultSubstitutions": { - "type": "string" - }, - "HtmlPart": { - "type": "string" - }, - "Subject": { - "type": "string" - }, - "Tags": { - "type": "object" - }, - "TemplateDescription": { - "type": "string" - }, - "TemplateName": { - "type": "string" - }, - "TextPart": { - "type": "string" - } - }, - "required": [ - "Subject", - "TemplateName" - ], - "type": "object" + "DefaultConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration" }, - "Type": { - "enum": [ - "AWS::Pinpoint::EmailTemplate" - ], - "type": "string" + "IOS": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" + "Web": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::Pinpoint::EventStream": { + "AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "BackgroundColor": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "BorderRadius": { + "type": "number" }, - "Metadata": { - "type": "object" + "ButtonAction": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ApplicationId": { - "type": "string" - }, - "DestinationStreamArn": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "ApplicationId", - "DestinationStreamArn", - "RoleArn" - ], - "type": "object" + "Link": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::Pinpoint::EventStream" - ], + "Text": { "type": "string" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "TextColor": { "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::Pinpoint::GCMChannel": { + "AWS::Pinpoint::InAppTemplate.HeaderConfig": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Alignment": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Header": { + "type": "string" }, - "Metadata": { - "type": "object" + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.InAppMessageContent": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ApiKey": { - "type": "string" - }, - "ApplicationId": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - } - }, - "required": [ - "ApiKey", - "ApplicationId" - ], - "type": "object" + "BodyConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.BodyConfig" }, - "Type": { - "enum": [ - "AWS::Pinpoint::GCMChannel" - ], + "HeaderConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.HeaderConfig" + }, + "ImageUrl": { "type": "string" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "PrimaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig" + }, + "SecondaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration": { + "additionalProperties": false, + "properties": { + "ButtonAction": { + "type": "string" + }, + "Link": { "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, "AWS::Pinpoint::PushTemplate": { @@ -89492,7 +92889,8 @@ var SamSchema = `{ }, "required": [ "AnalysisId", - "AwsAccountId" + "AwsAccountId", + "SourceEntity" ], "type": "object" }, @@ -89781,7 +93179,8 @@ var SamSchema = `{ }, "required": [ "AwsAccountId", - "DashboardId" + "DashboardId", + "SourceEntity" ], "type": "object" }, @@ -90749,6 +94148,18 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::QuickSight::DataSource.AmazonOpenSearchParameters": { + "additionalProperties": false, + "properties": { + "Domain": { + "type": "string" + } + }, + "required": [ + "Domain" + ], + "type": "object" + }, "AWS::QuickSight::DataSource.AthenaParameters": { "additionalProperties": false, "properties": { @@ -90850,6 +94261,9 @@ var SamSchema = `{ "AmazonElasticsearchParameters": { "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonElasticsearchParameters" }, + "AmazonOpenSearchParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonOpenSearchParameters" + }, "AthenaParameters": { "$ref": "#/definitions/AWS::QuickSight::DataSource.AthenaParameters" }, @@ -91241,6 +94655,7 @@ var SamSchema = `{ }, "required": [ "AwsAccountId", + "SourceEntity", "TemplateId" ], "type": "object" @@ -93313,9 +96728,6 @@ var SamSchema = `{ "Encrypted": { "type": "boolean" }, - "Endpoint": { - "$ref": "#/definitions/AWS::Redshift::Cluster.Endpoint" - }, "EnhancedVpcRouting": { "type": "boolean" }, @@ -93587,7 +96999,410 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Description": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSecurityGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::ClusterSecurityGroupIngress": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CIDRIP": { + "type": "string" + }, + "ClusterSecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "type": "string" + } + }, + "required": [ + "ClusterSecurityGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSecurityGroupIngress" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::ClusterSubnetGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::EndpointAccess": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "type": "string" + }, + "EndpointName": { + "type": "string" + }, + "ResourceOwner": { + "type": "string" + }, + "SubnetGroupName": { + "type": "string" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "EndpointName", + "VpcSecurityGroupIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::EndpointAccess" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::EndpointAccess.VpcSecurityGroup": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + }, + "VpcSecurityGroupId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Redshift::EndpointAuthorization": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Account": { + "type": "string" + }, + "ClusterIdentifier": { + "type": "string" + }, + "Force": { + "type": "boolean" + }, + "VpcIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Account", + "ClusterIdentifier" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::EndpointAuthorization" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::EventSubscription": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Severity": { + "type": "string" + }, + "SnsTopicArn": { + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceType": { + "type": "string" + }, + "SubscriptionName": { "type": "string" }, "Tags": { @@ -93598,13 +97413,13 @@ var SamSchema = `{ } }, "required": [ - "Description" + "SubscriptionName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSecurityGroup" + "AWS::Redshift::EventSubscription" ], "type": "string" }, @@ -93623,7 +97438,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Redshift::ClusterSecurityGroupIngress": { + "AWS::Redshift::ScheduledAction": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -93655,27 +97470,39 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CIDRIP": { + "Enable": { + "type": "boolean" + }, + "EndTime": { "type": "string" }, - "ClusterSecurityGroupName": { + "IamRole": { "type": "string" }, - "EC2SecurityGroupName": { + "Schedule": { "type": "string" }, - "EC2SecurityGroupOwnerId": { + "ScheduledActionDescription": { "type": "string" + }, + "ScheduledActionName": { + "type": "string" + }, + "StartTime": { + "type": "string" + }, + "TargetAction": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ScheduledActionType" } }, "required": [ - "ClusterSecurityGroupName" + "ScheduledActionName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSecurityGroupIngress" + "AWS::Redshift::ScheduledAction" ], "type": "string" }, @@ -93694,7 +97521,70 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Redshift::ClusterSubnetGroup": { + "AWS::Redshift::ScheduledAction.PauseClusterMessage": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "type": "string" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ResizeClusterMessage": { + "additionalProperties": false, + "properties": { + "Classic": { + "type": "boolean" + }, + "ClusterIdentifier": { + "type": "string" + }, + "ClusterType": { + "type": "string" + }, + "NodeType": { + "type": "string" + }, + "NumberOfNodes": { + "type": "number" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ResumeClusterMessage": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "type": "string" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ScheduledActionType": { + "additionalProperties": false, + "properties": { + "PauseCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.PauseClusterMessage" + }, + "ResizeCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResizeClusterMessage" + }, + "ResumeCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResumeClusterMessage" + } + }, + "type": "object" + }, + "AWS::Rekognition::Project": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -93726,31 +97616,18 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "ProjectName": { "type": "string" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, "required": [ - "Description", - "SubnetIds" + "ProjectName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSubnetGroup" + "AWS::Rekognition::Project" ], "type": "string" }, @@ -95013,171 +98890,177 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Comment": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "HostedZoneName": { - "type": "string" - }, - "RecordSets": { - "items": { - "$ref": "#/definitions/AWS::Route53::RecordSetGroup.RecordSet" - }, - "type": "array" - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Route53::RecordSetGroup" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::Route53::RecordSetGroup.AliasTarget": { - "additionalProperties": false, - "properties": { - "DNSName": { - "type": "string" - }, - "EvaluateTargetHealth": { - "type": "boolean" - }, - "HostedZoneId": { - "type": "string" - } - }, - "required": [ - "DNSName", - "HostedZoneId" - ], - "type": "object" - }, - "AWS::Route53::RecordSetGroup.GeoLocation": { - "additionalProperties": false, - "properties": { - "ContinentCode": { - "type": "string" - }, - "CountryCode": { - "type": "string" - }, - "SubdivisionCode": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Route53::RecordSetGroup.RecordSet": { - "additionalProperties": false, - "properties": { - "AliasTarget": { - "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" - }, - "Comment": { - "type": "string" - }, - "Failover": { - "type": "string" - }, - "GeoLocation": { - "$ref": "#/definitions/AWS::Route53::RecordSetGroup.GeoLocation" - }, - "HealthCheckId": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "HostedZoneName": { - "type": "string" - }, - "MultiValueAnswer": { - "type": "boolean" - }, - "Name": { - "type": "string" - }, - "Region": { - "type": "string" - }, - "ResourceRecords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SetIdentifier": { - "type": "string" - }, - "TTL": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Weight": { - "type": "number" - } - }, - "required": [ - "Name", - "Type" - ], - "type": "object" - }, - "AWS::Route53RecoveryControl::Cluster": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "Comment": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "HostedZoneName": { + "type": "string" + }, + "RecordSets": { + "items": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.RecordSet" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::RecordSetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53::RecordSetGroup.AliasTarget": { + "additionalProperties": false, + "properties": { + "DNSName": { + "type": "string" + }, + "EvaluateTargetHealth": { + "type": "boolean" + }, + "HostedZoneId": { + "type": "string" + } + }, + "required": [ + "DNSName", + "HostedZoneId" + ], + "type": "object" + }, + "AWS::Route53::RecordSetGroup.GeoLocation": { + "additionalProperties": false, + "properties": { + "ContinentCode": { + "type": "string" + }, + "CountryCode": { + "type": "string" + }, + "SubdivisionCode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53::RecordSetGroup.RecordSet": { + "additionalProperties": false, + "properties": { + "AliasTarget": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" + }, + "Comment": { + "type": "string" + }, + "Failover": { + "type": "string" + }, + "GeoLocation": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.GeoLocation" + }, + "HealthCheckId": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "HostedZoneName": { + "type": "string" + }, + "MultiValueAnswer": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Region": { + "type": "string" + }, + "ResourceRecords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SetIdentifier": { + "type": "string" + }, + "TTL": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::Route53RecoveryControl::Cluster": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Name": { "type": "string" }, - { + "Tags": { "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } }, "type": "object" }, @@ -95250,6 +99133,12 @@ var SamSchema = `{ }, "Name": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -95392,6 +99281,12 @@ var SamSchema = `{ }, "RuleConfig": { "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.RuleConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -96117,6 +100012,72 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Route53Resolver::ResolverConfig": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AutodefinedReverseFlag": { + "type": "string" + }, + "ResourceId": { + "type": "string" + } + }, + "required": [ + "AutodefinedReverseFlag", + "ResourceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::ResolverConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Route53Resolver::ResolverDNSSECConfig": { "additionalProperties": false, "properties": { @@ -98286,7 +102247,7 @@ var SamSchema = `{ } }, "required": [ - "Name" + "ObjectLambdaConfiguration" ], "type": "object" }, @@ -98352,6 +102313,10 @@ var SamSchema = `{ "type": "object" } }, + "required": [ + "Actions", + "ContentTransformation" + ], "type": "object" }, "AWS::S3ObjectLambda::AccessPointPolicy": { @@ -103056,6 +107021,9 @@ var SamSchema = `{ "RetainAllVariantProperties": { "type": "boolean" }, + "RetainDeploymentConfig": { + "type": "boolean" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -103171,6 +107139,9 @@ var SamSchema = `{ "CanarySize": { "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" }, + "LinearStepSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, "Type": { "type": "string" }, @@ -105448,6 +109419,9 @@ var SamSchema = `{ "NotebookInstanceName": { "type": "string" }, + "PlatformIdentifier": { + "type": "string" + }, "RoleArn": { "type": "string" }, @@ -106192,6 +110166,12 @@ var SamSchema = `{ "RotationType": { "type": "string" }, + "SuperuserSecretArn": { + "type": "string" + }, + "SuperuserSecretKmsKeyArn": { + "type": "string" + }, "VpcSecurityGroupIds": { "type": "string" }, @@ -111437,6 +115417,9 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "ArtifactConfig": { + "$ref": "#/definitions/AWS::Synthetics::Canary.ArtifactConfig" + }, "ArtifactS3Location": { "type": "string" }, @@ -111512,6 +115495,15 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Synthetics::Canary.ArtifactConfig": { + "additionalProperties": false, + "properties": { + "S3Encryption": { + "$ref": "#/definitions/AWS::Synthetics::Canary.S3Encryption" + } + }, + "type": "object" + }, "AWS::Synthetics::Canary.BaseScreenshot": { "additionalProperties": false, "properties": { @@ -111578,6 +115570,18 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::Synthetics::Canary.S3Encryption": { + "additionalProperties": false, + "properties": { + "EncryptionMode": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Synthetics::Canary.Schedule": { "additionalProperties": false, "properties": { @@ -115489,6 +119493,311 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Wisdom::Assistant": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ServerSideEncryptionConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Wisdom::Assistant" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::AssistantAssociation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssistantId": { + "type": "string" + }, + "Association": { + "$ref": "#/definitions/AWS::Wisdom::AssistantAssociation.AssociationData" + }, + "AssociationType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AssistantId", + "Association", + "AssociationType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Wisdom::AssistantAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::AssistantAssociation.AssociationData": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "KnowledgeBaseType": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RenderingConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.RenderingConfiguration" + }, + "ServerSideEncryptionConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration" + }, + "SourceConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.SourceConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "KnowledgeBaseType", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Wisdom::KnowledgeBase" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration": { + "additionalProperties": false, + "properties": { + "AppIntegrationArn": { + "type": "string" + }, + "ObjectFields": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AppIntegrationArn", + "ObjectFields" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.RenderingConfiguration": { + "additionalProperties": false, + "properties": { + "TemplateUri": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.SourceConfiguration": { + "additionalProperties": false, + "properties": { + "AppIntegrations": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration" + } + }, + "type": "object" + }, "AWS::WorkSpaces::ConnectionAlias": { "additionalProperties": false, "properties": { @@ -116823,6 +121132,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Batch::JobQueue" }, + { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy" + }, { "$ref": "#/definitions/AWS::Budgets::Budget" }, @@ -116922,6 +121234,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig" }, + { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy" + }, { "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution" }, @@ -117063,9 +121378,18 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Config::StoredQuery" }, + { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation" + }, { "$ref": "#/definitions/AWS::Connect::QuickConnect" }, + { + "$ref": "#/definitions/AWS::Connect::User" + }, + { + "$ref": "#/definitions/AWS::Connect::UserHierarchyGroup" + }, { "$ref": "#/definitions/AWS::CustomerProfiles::Domain" }, @@ -117132,6 +121456,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::DataSync::LocationFSxWindows" }, + { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS" + }, { "$ref": "#/definitions/AWS::DataSync::LocationNFS" }, @@ -117186,6 +121513,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::EC2::CapacityReservation" }, + { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet" + }, { "$ref": "#/definitions/AWS::EC2::CarrierGateway" }, @@ -117879,6 +122209,12 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IoT::FleetMetric" }, + { + "$ref": "#/definitions/AWS::IoT::JobTemplate" + }, + { + "$ref": "#/definitions/AWS::IoT::Logging" + }, { "$ref": "#/definitions/AWS::IoT::MitigationAction" }, @@ -117891,6 +122227,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate" }, + { + "$ref": "#/definitions/AWS::IoT::ResourceSpecificLogging" + }, { "$ref": "#/definitions/AWS::IoT::ScheduledAudit" }, @@ -117963,6 +122302,12 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IoTWireless::DeviceProfile" }, + { + "$ref": "#/definitions/AWS::IoTWireless::FuotaTask" + }, + { + "$ref": "#/definitions/AWS::IoTWireless::MulticastGroup" + }, { "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount" }, @@ -118068,12 +122413,18 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::LicenseManager::License" }, + { + "$ref": "#/definitions/AWS::Lightsail::Database" + }, { "$ref": "#/definitions/AWS::Lightsail::Disk" }, { "$ref": "#/definitions/AWS::Lightsail::Instance" }, + { + "$ref": "#/definitions/AWS::Lightsail::StaticIp" + }, { "$ref": "#/definitions/AWS::Location::GeofenceCollection" }, @@ -118299,6 +122650,15 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::OpsWorksCM::Server" }, + { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance" + }, + { + "$ref": "#/definitions/AWS::Panorama::Package" + }, + { + "$ref": "#/definitions/AWS::Panorama::PackageVersion" + }, { "$ref": "#/definitions/AWS::Pinpoint::ADMChannel" }, @@ -118338,6 +122698,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Pinpoint::GCMChannel" }, + { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate" + }, { "$ref": "#/definitions/AWS::Pinpoint::PushTemplate" }, @@ -118446,6 +122809,21 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Redshift::ClusterSubnetGroup" }, + { + "$ref": "#/definitions/AWS::Redshift::EndpointAccess" + }, + { + "$ref": "#/definitions/AWS::Redshift::EndpointAuthorization" + }, + { + "$ref": "#/definitions/AWS::Redshift::EventSubscription" + }, + { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction" + }, + { + "$ref": "#/definitions/AWS::Rekognition::Project" + }, { "$ref": "#/definitions/AWS::ResourceGroups::Group" }, @@ -118518,6 +122896,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroupAssociation" }, + { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverConfig" + }, { "$ref": "#/definitions/AWS::Route53Resolver::ResolverDNSSECConfig" }, @@ -118938,6 +123319,15 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::WAFv2::WebACLAssociation" }, + { + "$ref": "#/definitions/AWS::Wisdom::Assistant" + }, + { + "$ref": "#/definitions/AWS::Wisdom::AssistantAssociation" + }, + { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase" + }, { "$ref": "#/definitions/AWS::WorkSpaces::ConnectionAlias" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 5ea80f2764..5041b48c4b 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -2216,6 +2216,7 @@ } }, "required": [ + "Name", "RestApiId", "Type" ], @@ -4002,6 +4003,12 @@ "Name": { "type": "string" }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "TargetArns": { "items": { "type": "string" @@ -5580,6 +5587,9 @@ }, "type": "array" }, + "Type": { + "type": "string" + }, "Validators": { "items": { "$ref": "#/definitions/AWS::AppConfig::ConfigurationProfile.Validators" @@ -6167,6 +6177,9 @@ "Redshift": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials" }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials" + }, "Salesforce": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials" }, @@ -6212,6 +6225,9 @@ "Redshift": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileProperties" }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties" + }, "Salesforce": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileProperties" }, @@ -6380,6 +6396,24 @@ ], "type": "object" }, + "AWS::AppFlow::ConnectorProfile.OAuthProperties": { + "additionalProperties": false, + "properties": { + "AuthCodeUrl": { + "type": "string" + }, + "OAuthScopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TokenUrl": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials": { "additionalProperties": false, "properties": { @@ -6419,6 +6453,45 @@ ], "type": "object" }, + "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "BasicAuthCredentials": { + "type": "object" + }, + "OAuthCredentials": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "ApplicationHostUrl": { + "type": "string" + }, + "ApplicationServicePath": { + "type": "string" + }, + "ClientNumber": { + "type": "string" + }, + "LogonLanguage": { + "type": "string" + }, + "OAuthProperties": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuthProperties" + }, + "PortNumber": { + "type": "number" + }, + "PrivateLinkServiceName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials": { "additionalProperties": false, "properties": { @@ -6786,6 +6859,9 @@ "S3": { "type": "string" }, + "SAPOData": { + "type": "string" + }, "Salesforce": { "type": "string" }, @@ -7019,6 +7095,15 @@ ], "type": "object" }, + "AWS::AppFlow::Flow.S3InputFormatConfig": { + "additionalProperties": false, + "properties": { + "S3InputFileType": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppFlow::Flow.S3OutputFormatConfig": { "additionalProperties": false, "properties": { @@ -7042,6 +7127,9 @@ }, "BucketPrefix": { "type": "string" + }, + "S3InputFormatConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.S3InputFormatConfig" } }, "required": [ @@ -7050,6 +7138,18 @@ ], "type": "object" }, + "AWS::AppFlow::Flow.SAPODataSourceProperties": { + "additionalProperties": false, + "properties": { + "ObjectPath": { + "type": "string" + } + }, + "required": [ + "ObjectPath" + ], + "type": "object" + }, "AWS::AppFlow::Flow.SalesforceDestinationProperties": { "additionalProperties": false, "properties": { @@ -7201,6 +7301,9 @@ "S3": { "$ref": "#/definitions/AWS::AppFlow::Flow.S3SourceProperties" }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SAPODataSourceProperties" + }, "Salesforce": { "$ref": "#/definitions/AWS::AppFlow::Flow.SalesforceSourceProperties" }, @@ -7700,6 +7803,9 @@ }, "HttpRoute": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoute" + }, + "Priority": { + "type": "number" } }, "type": "object" @@ -13462,6 +13568,9 @@ "DesiredCapacity": { "type": "string" }, + "DesiredCapacityType": { + "type": "string" + }, "HealthCheckGracePeriod": { "type": "number" }, @@ -13577,6 +13686,132 @@ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.InstanceRequirements": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest" + } + }, + "type": "object" + }, "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution": { "additionalProperties": false, "properties": { @@ -13622,6 +13857,9 @@ "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides": { "additionalProperties": false, "properties": { + "InstanceRequirements": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstanceRequirements" + }, "InstanceType": { "type": "string" }, @@ -13683,6 +13921,30 @@ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": { "additionalProperties": false, "properties": { @@ -13716,6 +13978,18 @@ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": { "additionalProperties": false, "properties": { @@ -13754,6 +14028,30 @@ ], "type": "object" }, + "AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AutoScaling::LaunchConfiguration": { "additionalProperties": false, "properties": { @@ -15017,6 +15315,9 @@ "AWS::Backup::BackupSelection.BackupSelectionResourceType": { "additionalProperties": false, "properties": { + "Conditions": { + "type": "object" + }, "IamRoleArn": { "type": "string" }, @@ -15026,6 +15327,12 @@ }, "type": "array" }, + "NotResources": { + "items": { + "type": "string" + }, + "type": "array" + }, "Resources": { "items": { "type": "string" @@ -15423,6 +15730,9 @@ }, "Type": { "type": "string" + }, + "UnmanagedvCpus": { + "type": "number" } }, "required": [ @@ -15611,6 +15921,9 @@ "RetryStrategy": { "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" }, + "SchedulingPriority": { + "type": "number" + }, "Tags": { "type": "object" }, @@ -16108,6 +16421,9 @@ "Priority": { "type": "number" }, + "SchedulingPolicyArn": { + "type": "string" + }, "State": { "type": "string" }, @@ -16158,6 +16474,106 @@ ], "type": "object" }, + "AWS::Batch::SchedulingPolicy": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "FairsharePolicy": { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.FairsharePolicy" + }, + "Name": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Batch::SchedulingPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Batch::SchedulingPolicy.FairsharePolicy": { + "additionalProperties": false, + "properties": { + "ComputeReservation": { + "type": "number" + }, + "ShareDecaySeconds": { + "type": "number" + }, + "ShareDistribution": { + "items": { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.ShareAttributes" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Batch::SchedulingPolicy.ShareAttributes": { + "additionalProperties": false, + "properties": { + "ShareIdentifier": { + "type": "string" + }, + "WeightFactor": { + "type": "number" + } + }, + "type": "object" + }, "AWS::Budgets::Budget": { "additionalProperties": false, "properties": { @@ -16451,7 +16867,8 @@ "BudgetName", "Definition", "ExecutionRoleArn", - "NotificationType" + "NotificationType", + "Subscribers" ], "type": "object" }, @@ -17060,6 +17477,9 @@ }, "type": "array" }, + "DefaultTimeToLive": { + "type": "number" + }, "EncryptionSpecification": { "$ref": "#/definitions/AWS::Cassandra::Table.EncryptionSpecification" }, @@ -19006,6 +19426,9 @@ "RealtimeLogConfigArn": { "type": "string" }, + "ResponseHeadersPolicyId": { + "type": "string" + }, "SmoothStreaming": { "type": "boolean" }, @@ -19158,6 +19581,9 @@ "RealtimeLogConfigArn": { "type": "string" }, + "ResponseHeadersPolicyId": { + "type": "string" + }, "SmoothStreaming": { "type": "boolean" }, @@ -19652,9 +20078,6 @@ "FunctionConfig": { "$ref": "#/definitions/AWS::CloudFront::Function.FunctionConfig" }, - "FunctionMetadata": { - "$ref": "#/definitions/AWS::CloudFront::Function.FunctionMetadata" - }, "Name": { "type": "string" } @@ -20134,6 +20557,349 @@ ], "type": "object" }, + "AWS::CloudFront::ResponseHeadersPolicy": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ResponseHeadersPolicyConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig" + } + }, + "required": [ + "ResponseHeadersPolicyConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::ResponseHeadersPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy": { + "additionalProperties": false, + "properties": { + "ContentSecurityPolicy": { + "type": "string" + }, + "Override": { + "type": "boolean" + } + }, + "required": [ + "ContentSecurityPolicy", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions": { + "additionalProperties": false, + "properties": { + "Override": { + "type": "boolean" + } + }, + "required": [ + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CorsConfig": { + "additionalProperties": false, + "properties": { + "AccessControlAllowCredentials": { + "type": "boolean" + }, + "AccessControlAllowHeaders": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders" + }, + "AccessControlAllowMethods": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods" + }, + "AccessControlAllowOrigins": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins" + }, + "AccessControlExposeHeaders": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders" + }, + "AccessControlMaxAgeSec": { + "type": "number" + }, + "OriginOverride": { + "type": "boolean" + } + }, + "required": [ + "AccessControlAllowCredentials", + "AccessControlAllowHeaders", + "AccessControlAllowMethods", + "AccessControlAllowOrigins", + "OriginOverride" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CustomHeader": { + "additionalProperties": false, + "properties": { + "Header": { + "type": "string" + }, + "Override": { + "type": "boolean" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Header", + "Override", + "Value" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeader" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.FrameOptions": { + "additionalProperties": false, + "properties": { + "FrameOption": { + "type": "string" + }, + "Override": { + "type": "boolean" + } + }, + "required": [ + "FrameOption", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy": { + "additionalProperties": false, + "properties": { + "Override": { + "type": "boolean" + }, + "ReferrerPolicy": { + "type": "string" + } + }, + "required": [ + "Override", + "ReferrerPolicy" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "CorsConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CorsConfig" + }, + "CustomHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig" + }, + "Name": { + "type": "string" + }, + "SecurityHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig": { + "additionalProperties": false, + "properties": { + "ContentSecurityPolicy": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy" + }, + "ContentTypeOptions": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions" + }, + "FrameOptions": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.FrameOptions" + }, + "ReferrerPolicy": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy" + }, + "StrictTransportSecurity": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity" + }, + "XSSProtection": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.XSSProtection" + } + }, + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity": { + "additionalProperties": false, + "properties": { + "AccessControlMaxAgeSec": { + "type": "number" + }, + "IncludeSubdomains": { + "type": "boolean" + }, + "Override": { + "type": "boolean" + }, + "Preload": { + "type": "boolean" + } + }, + "required": [ + "AccessControlMaxAgeSec", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.XSSProtection": { + "additionalProperties": false, + "properties": { + "ModeBlock": { + "type": "boolean" + }, + "Override": { + "type": "boolean" + }, + "Protection": { + "type": "boolean" + }, + "ReportUri": { + "type": "string" + } + }, + "required": [ + "Override", + "Protection" + ], + "type": "object" + }, "AWS::CloudFront::StreamingDistribution": { "additionalProperties": false, "properties": { @@ -20734,11 +21500,6 @@ "type": "string" } }, - "required": [ - "MetricName", - "Namespace", - "Stat" - ], "type": "object" }, "Type": { @@ -20757,8 +21518,7 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -20793,6 +21553,86 @@ ], "type": "object" }, + "AWS::CloudWatch::AnomalyDetector.Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricDataQueries": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricDataQuery": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Expression": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricStat" + }, + "Period": { + "type": "number" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Metric" + }, + "Period": { + "type": "number" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Metric", + "Period", + "Stat" + ], + "type": "object" + }, "AWS::CloudWatch::AnomalyDetector.Range": { "additionalProperties": false, "properties": { @@ -21631,6 +22471,9 @@ "AWS::CodeBuild::Project.ProjectBuildBatchConfig": { "additionalProperties": false, "properties": { + "BatchReportMode": { + "type": "string" + }, "CombineArtifacts": { "type": "boolean" }, @@ -23814,9 +24657,15 @@ "Properties": { "additionalProperties": false, "properties": { + "CreatedBy": { + "type": "string" + }, "DetailType": { "type": "string" }, + "EventTypeId": { + "type": "string" + }, "EventTypeIds": { "items": { "type": "string" @@ -23835,6 +24684,9 @@ "Tags": { "type": "object" }, + "TargetAddress": { + "type": "string" + }, "Targets": { "items": { "$ref": "#/definitions/AWS::CodeStarNotifications::NotificationRule.Target" @@ -26626,6 +27478,128 @@ ], "type": "object" }, + "AWS::Connect::HoursOfOperation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Config": { + "items": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationConfig" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeZone": { + "type": "string" + } + }, + "required": [ + "Config", + "InstanceArn", + "Name", + "TimeZone" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::HoursOfOperation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::HoursOfOperation.HoursOfOperationConfig": { + "additionalProperties": false, + "properties": { + "Day": { + "type": "string" + }, + "EndTime": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice" + }, + "StartTime": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice" + } + }, + "required": [ + "Day", + "EndTime", + "StartTime" + ], + "type": "object" + }, + "AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice": { + "additionalProperties": false, + "properties": { + "Hours": { + "type": "number" + }, + "Minutes": { + "type": "number" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, "AWS::Connect::QuickConnect": { "additionalProperties": false, "properties": { @@ -26770,6 +27744,210 @@ ], "type": "object" }, + "AWS::Connect::User": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DirectoryUserId": { + "type": "string" + }, + "HierarchyGroupArn": { + "type": "string" + }, + "IdentityInfo": { + "$ref": "#/definitions/AWS::Connect::User.UserIdentityInfo" + }, + "InstanceArn": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "PhoneConfig": { + "$ref": "#/definitions/AWS::Connect::User.UserPhoneConfig" + }, + "RoutingProfileArn": { + "type": "string" + }, + "SecurityProfileArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "InstanceArn", + "PhoneConfig", + "RoutingProfileArn", + "SecurityProfileArns", + "Username" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::User.UserIdentityInfo": { + "additionalProperties": false, + "properties": { + "Email": { + "type": "string" + }, + "FirstName": { + "type": "string" + }, + "LastName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Connect::User.UserPhoneConfig": { + "additionalProperties": false, + "properties": { + "AfterContactWorkTimeLimit": { + "type": "number" + }, + "AutoAccept": { + "type": "boolean" + }, + "DeskPhoneNumber": { + "type": "string" + }, + "PhoneType": { + "type": "string" + } + }, + "required": [ + "PhoneType" + ], + "type": "object" + }, + "AWS::Connect::UserHierarchyGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParentGroupArn": { + "type": "string" + } + }, + "required": [ + "InstanceArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::UserHierarchyGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::CustomerProfiles::Domain": { "additionalProperties": false, "properties": { @@ -28195,6 +29373,9 @@ "PostgreSqlSettings": { "$ref": "#/definitions/AWS::DMS::Endpoint.PostgreSqlSettings" }, + "RedisSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.RedisSettings" + }, "RedshiftSettings": { "$ref": "#/definitions/AWS::DMS::Endpoint.RedshiftSettings" }, @@ -28307,6 +29488,45 @@ "Broker": { "type": "string" }, + "IncludeControlDetails": { + "type": "boolean" + }, + "IncludeNullAndEmpty": { + "type": "boolean" + }, + "IncludeTableAlterOperations": { + "type": "boolean" + }, + "IncludeTransactionDetails": { + "type": "boolean" + }, + "NoHexPrefix": { + "type": "boolean" + }, + "PartitionIncludeSchemaTable": { + "type": "boolean" + }, + "SaslPassword": { + "type": "string" + }, + "SaslUserName": { + "type": "string" + }, + "SecurityProtocol": { + "type": "string" + }, + "SslCaCertificateArn": { + "type": "string" + }, + "SslClientCertificateArn": { + "type": "string" + }, + "SslClientKeyArn": { + "type": "string" + }, + "SslClientKeyPassword": { + "type": "string" + }, "Topic": { "type": "string" } @@ -28316,9 +29536,27 @@ "AWS::DMS::Endpoint.KinesisSettings": { "additionalProperties": false, "properties": { + "IncludeControlDetails": { + "type": "boolean" + }, + "IncludeNullAndEmpty": { + "type": "boolean" + }, + "IncludeTableAlterOperations": { + "type": "boolean" + }, + "IncludeTransactionDetails": { + "type": "boolean" + }, "MessageFormat": { "type": "string" }, + "NoHexPrefix": { + "type": "boolean" + }, + "PartitionIncludeSchemaTable": { + "type": "boolean" + }, "ServiceAccessRoleArn": { "type": "string" }, @@ -28454,6 +29692,33 @@ }, "type": "object" }, + "AWS::DMS::Endpoint.RedisSettings": { + "additionalProperties": false, + "properties": { + "AuthPassword": { + "type": "string" + }, + "AuthType": { + "type": "string" + }, + "AuthUserName": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "ServerName": { + "type": "string" + }, + "SslCaCertificateArn": { + "type": "string" + }, + "SslSecurityProtocol": { + "type": "string" + } + }, + "type": "object" + }, "AWS::DMS::Endpoint.RedshiftSettings": { "additionalProperties": false, "properties": { @@ -30761,7 +32026,7 @@ ], "type": "object" }, - "AWS::DataSync::LocationNFS": { + "AWS::DataSync::LocationHDFS": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -30793,13 +32058,43 @@ "Properties": { "additionalProperties": false, "properties": { - "MountOptions": { - "$ref": "#/definitions/AWS::DataSync::LocationNFS.MountOptions" + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "OnPremConfig": { - "$ref": "#/definitions/AWS::DataSync::LocationNFS.OnPremConfig" + "AuthenticationType": { + "type": "string" }, - "ServerHostname": { + "BlockSize": { + "type": "number" + }, + "KerberosKeytab": { + "type": "string" + }, + "KerberosKrb5Conf": { + "type": "string" + }, + "KerberosPrincipal": { + "type": "string" + }, + "KmsKeyProviderUri": { + "type": "string" + }, + "NameNodes": { + "items": { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS.NameNode" + }, + "type": "array" + }, + "QopConfiguration": { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS.QopConfiguration" + }, + "ReplicationFactor": { + "type": "number" + }, + "SimpleUser": { "type": "string" }, "Subdirectory": { @@ -30813,15 +32108,15 @@ } }, "required": [ - "OnPremConfig", - "ServerHostname", - "Subdirectory" + "AgentArns", + "AuthenticationType", + "NameNodes" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationNFS" + "AWS::DataSync::LocationHDFS" ], "type": "string" }, @@ -30840,31 +32135,35 @@ ], "type": "object" }, - "AWS::DataSync::LocationNFS.MountOptions": { + "AWS::DataSync::LocationHDFS.NameNode": { "additionalProperties": false, "properties": { - "Version": { + "Hostname": { "type": "string" + }, + "Port": { + "type": "number" } }, + "required": [ + "Hostname", + "Port" + ], "type": "object" }, - "AWS::DataSync::LocationNFS.OnPremConfig": { + "AWS::DataSync::LocationHDFS.QopConfiguration": { "additionalProperties": false, "properties": { - "AgentArns": { - "items": { - "type": "string" - }, - "type": "array" + "DataTransferProtection": { + "type": "string" + }, + "RpcProtection": { + "type": "string" } }, - "required": [ - "AgentArns" - ], "type": "object" }, - "AWS::DataSync::LocationObjectStorage": { + "AWS::DataSync::LocationNFS": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -30896,30 +32195,15 @@ "Properties": { "additionalProperties": false, "properties": { - "AccessKey": { - "type": "string" - }, - "AgentArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "BucketName": { - "type": "string" + "MountOptions": { + "$ref": "#/definitions/AWS::DataSync::LocationNFS.MountOptions" }, - "SecretKey": { - "type": "string" + "OnPremConfig": { + "$ref": "#/definitions/AWS::DataSync::LocationNFS.OnPremConfig" }, "ServerHostname": { "type": "string" }, - "ServerPort": { - "type": "number" - }, - "ServerProtocol": { - "type": "string" - }, "Subdirectory": { "type": "string" }, @@ -30931,15 +32215,15 @@ } }, "required": [ - "AgentArns", - "BucketName", - "ServerHostname" + "OnPremConfig", + "ServerHostname", + "Subdirectory" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationObjectStorage" + "AWS::DataSync::LocationNFS" ], "type": "string" }, @@ -30958,7 +32242,31 @@ ], "type": "object" }, - "AWS::DataSync::LocationS3": { + "AWS::DataSync::LocationNFS.MountOptions": { + "additionalProperties": false, + "properties": { + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::LocationNFS.OnPremConfig": { + "additionalProperties": false, + "properties": { + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AgentArns" + ], + "type": "object" + }, + "AWS::DataSync::LocationObjectStorage": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -30990,13 +32298,28 @@ "Properties": { "additionalProperties": false, "properties": { - "S3BucketArn": { + "AccessKey": { "type": "string" }, - "S3Config": { - "$ref": "#/definitions/AWS::DataSync::LocationS3.S3Config" + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "S3StorageClass": { + "BucketName": { + "type": "string" + }, + "SecretKey": { + "type": "string" + }, + "ServerHostname": { + "type": "string" + }, + "ServerPort": { + "type": "number" + }, + "ServerProtocol": { "type": "string" }, "Subdirectory": { @@ -31010,14 +32333,15 @@ } }, "required": [ - "S3BucketArn", - "S3Config" + "AgentArns", + "BucketName", + "ServerHostname" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationS3" + "AWS::DataSync::LocationObjectStorage" ], "type": "string" }, @@ -31036,19 +32360,7 @@ ], "type": "object" }, - "AWS::DataSync::LocationS3.S3Config": { - "additionalProperties": false, - "properties": { - "BucketAccessRoleArn": { - "type": "string" - } - }, - "required": [ - "BucketAccessRoleArn" - ], - "type": "object" - }, - "AWS::DataSync::LocationSMB": { + "AWS::DataSync::LocationS3": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -31080,22 +32392,13 @@ "Properties": { "additionalProperties": false, "properties": { - "AgentArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Domain": { + "S3BucketArn": { "type": "string" }, - "MountOptions": { - "$ref": "#/definitions/AWS::DataSync::LocationSMB.MountOptions" - }, - "Password": { - "type": "string" + "S3Config": { + "$ref": "#/definitions/AWS::DataSync::LocationS3.S3Config" }, - "ServerHostname": { + "S3StorageClass": { "type": "string" }, "Subdirectory": { @@ -31106,23 +32409,17 @@ "$ref": "#/definitions/Tag" }, "type": "array" - }, - "User": { - "type": "string" } }, "required": [ - "AgentArns", - "Password", - "ServerHostname", - "Subdirectory", - "User" + "S3BucketArn", + "S3Config" ], "type": "object" }, "Type": { "enum": [ - "AWS::DataSync::LocationSMB" + "AWS::DataSync::LocationS3" ], "type": "string" }, @@ -31141,16 +32438,121 @@ ], "type": "object" }, - "AWS::DataSync::LocationSMB.MountOptions": { + "AWS::DataSync::LocationS3.S3Config": { "additionalProperties": false, "properties": { - "Version": { + "BucketAccessRoleArn": { "type": "string" } }, + "required": [ + "BucketAccessRoleArn" + ], "type": "object" }, - "AWS::DataSync::Task": { + "AWS::DataSync::LocationSMB": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Domain": { + "type": "string" + }, + "MountOptions": { + "$ref": "#/definitions/AWS::DataSync::LocationSMB.MountOptions" + }, + "Password": { + "type": "string" + }, + "ServerHostname": { + "type": "string" + }, + "Subdirectory": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "User": { + "type": "string" + } + }, + "required": [ + "AgentArns", + "Password", + "ServerHostname", + "Subdirectory", + "User" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::LocationSMB" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::LocationSMB.MountOptions": { + "additionalProperties": false, + "properties": { + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::Task": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -32959,6 +34361,12 @@ "InstanceType": { "type": "string" }, + "OutPostArn": { + "type": "string" + }, + "PlacementGroupArn": { + "type": "string" + }, "TagSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::CapacityReservation.TagSpecification" @@ -33013,6 +34421,136 @@ }, "type": "object" }, + "AWS::EC2::CapacityReservationFleet": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "type": "string" + }, + "InstanceTypeSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification" + }, + "type": "array" + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.TagSpecification" + }, + "type": "array" + }, + "Tenancy": { + "type": "string" + }, + "TotalTargetCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::CapacityReservationFleet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::CapacityReservationFleet.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::EC2::CarrierGateway": { "additionalProperties": false, "properties": { @@ -33786,6 +35324,54 @@ ], "type": "object" }, + "AWS::EC2::EC2Fleet.AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.CapacityRebalance": { + "additionalProperties": false, + "properties": { + "ReplacementStrategy": { + "type": "string" + }, + "TerminationDelay": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::EC2Fleet.CapacityReservationOptionsRequest": { "additionalProperties": false, "properties": { @@ -33816,6 +35402,9 @@ "AvailabilityZone": { "type": "string" }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.InstanceRequirementsRequest" + }, "InstanceType": { "type": "string" }, @@ -33852,6 +35441,141 @@ }, "type": "object" }, + "AWS::EC2::EC2Fleet.InstanceRequirementsRequest": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryMiBRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.VCpuCountRangeRequest" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MaintenanceStrategies": { + "additionalProperties": false, + "properties": { + "CapacityRebalance": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.CapacityRebalance" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::EC2Fleet.OnDemandOptionsRequest": { "additionalProperties": false, "properties": { @@ -33918,6 +35642,9 @@ "InstancePoolsToUseCount": { "type": "number" }, + "MaintenanceStrategies": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MaintenanceStrategies" + }, "MaxTotalPrice": { "type": "string" }, @@ -33960,6 +35687,9 @@ "SpotTargetCapacity": { "type": "number" }, + "TargetCapacityUnitType": { + "type": "string" + }, "TotalTargetCapacity": { "type": "number" } @@ -33969,6 +35699,30 @@ ], "type": "object" }, + "AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.VCpuCountRangeRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::EIP": { "additionalProperties": false, "properties": { @@ -37585,6 +39339,42 @@ ], "type": "object" }, + "AWS::EC2::SpotFleet.AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::SpotFleet.BlockDeviceMapping": { "additionalProperties": false, "properties": { @@ -37756,6 +39546,96 @@ }, "type": "object" }, + "AWS::EC2::SpotFleet.InstanceRequirementsRequest": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryMiBRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.VCpuCountRangeRequest" + } + }, + "type": "object" + }, "AWS::EC2::SpotFleet.LaunchTemplateConfig": { "additionalProperties": false, "properties": { @@ -37777,6 +39657,9 @@ "AvailabilityZone": { "type": "string" }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest" + }, "InstanceType": { "type": "string" }, @@ -37804,6 +39687,42 @@ }, "type": "object" }, + "AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": { "additionalProperties": false, "properties": { @@ -37824,6 +39743,9 @@ "properties": { "ReplacementStrategy": { "type": "string" + }, + "TerminationDelay": { + "type": "number" } }, "type": "object" @@ -37846,6 +39768,9 @@ "ImageId": { "type": "string" }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest" + }, "InstanceType": { "type": "string" }, @@ -37896,8 +39821,7 @@ } }, "required": [ - "ImageId", - "InstanceType" + "ImageId" ], "type": "object" }, @@ -37970,6 +39894,9 @@ "TargetCapacity": { "type": "number" }, + "TargetCapacityUnitType": { + "type": "string" + }, "TerminateInstancesWithExpiration": { "type": "boolean" }, @@ -38055,6 +39982,30 @@ ], "type": "object" }, + "AWS::EC2::SpotFleet.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.VCpuCountRangeRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, "AWS::EC2::Subnet": { "additionalProperties": false, "properties": { @@ -39249,6 +41200,9 @@ "Properties": { "additionalProperties": false, "properties": { + "Options": { + "$ref": "#/definitions/AWS::EC2::TransitGatewayPeeringAttachment.TransitGatewayPeeringAttachmentOptions" + }, "PeerAccountId": { "type": "string" }, @@ -39297,6 +41251,15 @@ ], "type": "object" }, + "AWS::EC2::TransitGatewayPeeringAttachment.TransitGatewayPeeringAttachmentOptions": { + "additionalProperties": false, + "properties": { + "DynamicRouting": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EC2::TransitGatewayRoute": { "additionalProperties": false, "properties": { @@ -40087,6 +42050,9 @@ "type": "string" }, "type": "array" + }, + "PayerResponsibility": { + "type": "string" } }, "type": "object" @@ -41979,6 +43945,9 @@ }, "type": "array" }, + "RuntimePlatform": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.RuntimePlatform" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -42558,6 +44527,18 @@ ], "type": "object" }, + "AWS::ECS::TaskDefinition.RuntimePlatform": { + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "type": "string" + }, + "OperatingSystemFamily": { + "type": "string" + } + }, + "type": "object" + }, "AWS::ECS::TaskDefinition.Secret": { "additionalProperties": false, "properties": { @@ -43325,6 +45306,9 @@ "KubernetesNetworkConfig": { "$ref": "#/definitions/AWS::EKS::Cluster.KubernetesNetworkConfig" }, + "Logging": { + "$ref": "#/definitions/AWS::EKS::Cluster.Logging" + }, "Name": { "type": "string" }, @@ -43334,6 +45318,12 @@ "RoleArn": { "type": "string" }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "Version": { "type": "string" } @@ -43365,11 +45355,23 @@ ], "type": "object" }, + "AWS::EKS::Cluster.ClusterLogging": { + "additionalProperties": false, + "properties": { + "EnabledTypes": { + "items": { + "$ref": "#/definitions/AWS::EKS::Cluster.LoggingTypeConfig" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::EKS::Cluster.EncryptionConfig": { "additionalProperties": false, "properties": { "Provider": { - "$ref": "#/definitions/AWS::EKS::Cluster.Provider" + "type": "object" }, "Resources": { "items": { @@ -43389,10 +45391,19 @@ }, "type": "object" }, - "AWS::EKS::Cluster.Provider": { + "AWS::EKS::Cluster.Logging": { "additionalProperties": false, "properties": { - "KeyArn": { + "ClusterLogging": { + "$ref": "#/definitions/AWS::EKS::Cluster.ClusterLogging" + } + }, + "type": "object" + }, + "AWS::EKS::Cluster.LoggingTypeConfig": { + "additionalProperties": false, + "properties": { + "Type": { "type": "string" } }, @@ -43401,6 +45412,18 @@ "AWS::EKS::Cluster.ResourcesVpcConfig": { "additionalProperties": false, "properties": { + "EndpointPrivateAccess": { + "type": "boolean" + }, + "EndpointPublicAccess": { + "type": "boolean" + }, + "PublicAccessCidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, "SecurityGroupIds": { "items": { "type": "string" @@ -50345,6 +52368,9 @@ }, "type": "array" }, + "ResourcesCleanUp": { + "type": "boolean" + }, "SecurityServicePolicyData": { "type": "object" }, @@ -50472,12 +52498,18 @@ "FileSystemType": { "type": "string" }, + "FileSystemTypeVersion": { + "type": "string" + }, "KmsKeyId": { "type": "string" }, "LustreConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.LustreConfiguration" }, + "OntapConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.OntapConfiguration" + }, "SecurityGroupIds": { "items": { "type": "string" @@ -50552,6 +52584,18 @@ ], "type": "object" }, + "AWS::FSx::FileSystem.DiskIopsConfiguration": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "Mode": { + "type": "string" + } + }, + "type": "object" + }, "AWS::FSx::FileSystem.LustreConfiguration": { "additionalProperties": false, "properties": { @@ -50594,6 +52638,48 @@ }, "type": "object" }, + "AWS::FSx::FileSystem.OntapConfiguration": { + "additionalProperties": false, + "properties": { + "AutomaticBackupRetentionDays": { + "type": "number" + }, + "DailyAutomaticBackupStartTime": { + "type": "string" + }, + "DeploymentType": { + "type": "string" + }, + "DiskIopsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" + }, + "EndpointIpAddressRange": { + "type": "string" + }, + "FsxAdminPassword": { + "type": "string" + }, + "PreferredSubnetId": { + "type": "string" + }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ThroughputCapacity": { + "type": "number" + }, + "WeeklyMaintenanceStartTime": { + "type": "string" + } + }, + "required": [ + "DeploymentType" + ], + "type": "object" + }, "AWS::FSx::FileSystem.SelfManagedActiveDirectoryConfiguration": { "additionalProperties": false, "properties": { @@ -50698,6 +52784,12 @@ "Properties": { "additionalProperties": false, "properties": { + "DataBundles": { + "items": { + "type": "string" + }, + "type": "array" + }, "Description": { "type": "string" }, @@ -50712,6 +52804,9 @@ }, "Name": { "type": "string" + }, + "SuperuserParameters": { + "$ref": "#/definitions/AWS::FinSpace::Environment.SuperuserParameters" } }, "required": [ @@ -50764,6 +52859,21 @@ }, "type": "object" }, + "AWS::FinSpace::Environment.SuperuserParameters": { + "additionalProperties": false, + "properties": { + "EmailAddress": { + "type": "string" + }, + "FirstName": { + "type": "string" + }, + "LastName": { + "type": "string" + } + }, + "type": "object" + }, "AWS::FraudDetector::Detector": { "additionalProperties": false, "properties": { @@ -60354,6 +62464,9 @@ "SnapshotId": { "type": "string" }, + "Throughput": { + "type": "number" + }, "VolumeSize": { "type": "number" }, @@ -60920,6 +63033,9 @@ "SnapshotId": { "type": "string" }, + "Throughput": { + "type": "number" + }, "VolumeSize": { "type": "number" }, @@ -60991,6 +63107,9 @@ "Description": { "type": "string" }, + "InstanceMetadataOptions": { + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions" + }, "InstanceProfileName": { "type": "string" }, @@ -61070,6 +63189,18 @@ ], "type": "object" }, + "AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions": { + "additionalProperties": false, + "properties": { + "HttpPutResponseHopLimit": { + "type": "number" + }, + "HttpTokens": { + "type": "string" + } + }, + "type": "object" + }, "AWS::ImageBuilder::InfrastructureConfiguration.Logging": { "additionalProperties": false, "properties": { @@ -62220,7 +64351,7 @@ ], "type": "object" }, - "AWS::IoT::MitigationAction": { + "AWS::IoT::JobTemplate": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -62252,31 +64383,49 @@ "Properties": { "additionalProperties": false, "properties": { - "ActionName": { + "AbortConfig": { + "type": "object" + }, + "Description": { "type": "string" }, - "ActionParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams" + "Document": { + "type": "string" }, - "RoleArn": { + "DocumentSource": { + "type": "string" + }, + "JobArn": { + "type": "string" + }, + "JobExecutionsRolloutConfig": { + "type": "object" + }, + "JobTemplateId": { "type": "string" }, + "PresignedUrlConfig": { + "type": "object" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "TimeoutConfig": { + "type": "object" } }, "required": [ - "ActionParams", - "RoleArn" + "Description", + "JobTemplateId" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoT::MitigationAction" + "AWS::IoT::JobTemplate" ], "type": "string" }, @@ -62295,113 +64444,258 @@ ], "type": "object" }, - "AWS::IoT::MitigationAction.ActionParams": { - "additionalProperties": false, - "properties": { - "AddThingsToThingGroupParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams" - }, - "EnableIoTLoggingParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams" - }, - "PublishFindingToSnsParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams" - }, - "ReplaceDefaultPolicyVersionParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams" - }, - "UpdateCACertificateParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams" - }, - "UpdateDeviceCertificateParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams" - } - }, - "type": "object" - }, - "AWS::IoT::MitigationAction.AddThingsToThingGroupParams": { - "additionalProperties": false, - "properties": { - "OverrideDynamicGroups": { - "type": "boolean" - }, - "ThingGroupNames": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "ThingGroupNames" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.EnableIoTLoggingParams": { - "additionalProperties": false, - "properties": { - "LogLevel": { - "type": "string" - }, - "RoleArnForLogging": { - "type": "string" - } - }, - "required": [ - "LogLevel", - "RoleArnForLogging" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.PublishFindingToSnsParams": { - "additionalProperties": false, - "properties": { - "TopicArn": { - "type": "string" - } - }, - "required": [ - "TopicArn" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams": { - "additionalProperties": false, - "properties": { - "TemplateName": { - "type": "string" - } - }, - "required": [ - "TemplateName" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.UpdateCACertificateParams": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "required": [ - "Action" - ], - "type": "object" - }, - "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "required": [ - "Action" - ], - "type": "object" - }, - "AWS::IoT::Policy": { + "AWS::IoT::Logging": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "DefaultLogLevel": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "AccountId", + "DefaultLogLevel", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Logging" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ActionName": { + "type": "string" + }, + "ActionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ActionParams", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::MitigationAction" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ActionParams": { + "additionalProperties": false, + "properties": { + "AddThingsToThingGroupParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams" + }, + "EnableIoTLoggingParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams" + }, + "PublishFindingToSnsParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams" + }, + "ReplaceDefaultPolicyVersionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams" + }, + "UpdateCACertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams" + }, + "UpdateDeviceCertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams" + } + }, + "type": "object" + }, + "AWS::IoT::MitigationAction.AddThingsToThingGroupParams": { + "additionalProperties": false, + "properties": { + "OverrideDynamicGroups": { + "type": "boolean" + }, + "ThingGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ThingGroupNames" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.EnableIoTLoggingParams": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "type": "string" + }, + "RoleArnForLogging": { + "type": "string" + } + }, + "required": [ + "LogLevel", + "RoleArnForLogging" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.PublishFindingToSnsParams": { + "additionalProperties": false, + "properties": { + "TopicArn": { + "type": "string" + } + }, + "required": [ + "TopicArn" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams": { + "additionalProperties": false, + "properties": { + "TemplateName": { + "type": "string" + } + }, + "required": [ + "TemplateName" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateCACertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::IoT::Policy": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -62628,6 +64922,76 @@ }, "type": "object" }, + "AWS::IoT::ResourceSpecificLogging": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "type": "string" + }, + "TargetName": { + "type": "string" + }, + "TargetType": { + "type": "string" + } + }, + "required": [ + "LogLevel", + "TargetName", + "TargetType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ResourceSpecificLogging" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IoT::ScheduledAudit": { "additionalProperties": false, "properties": { @@ -67086,6 +69450,217 @@ }, "type": "object" }, + "AWS::IoTWireless::FuotaTask": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssociateMulticastGroup": { + "type": "string" + }, + "AssociateWirelessDevice": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisassociateMulticastGroup": { + "type": "string" + }, + "DisassociateWirelessDevice": { + "type": "string" + }, + "FirmwareUpdateImage": { + "type": "string" + }, + "FirmwareUpdateRole": { + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::FuotaTask.LoRaWAN" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "FirmwareUpdateImage", + "FirmwareUpdateRole", + "LoRaWAN" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::FuotaTask" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::FuotaTask.LoRaWAN": { + "additionalProperties": false, + "properties": { + "RfRegion": { + "type": "string" + }, + "StartTime": { + "type": "string" + } + }, + "required": [ + "RfRegion" + ], + "type": "object" + }, + "AWS::IoTWireless::MulticastGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssociateWirelessDevice": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisassociateWirelessDevice": { + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::MulticastGroup.LoRaWAN" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "LoRaWAN" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::MulticastGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::MulticastGroup.LoRaWAN": { + "additionalProperties": false, + "properties": { + "DlClass": { + "type": "string" + }, + "NumberOfDevicesInGroup": { + "type": "number" + }, + "NumberOfDevicesRequested": { + "type": "number" + }, + "RfRegion": { + "type": "string" + } + }, + "required": [ + "DlClass", + "RfRegion" + ], + "type": "object" + }, "AWS::IoTWireless::PartnerAccount": { "additionalProperties": false, "properties": { @@ -73888,7 +76463,7 @@ ], "type": "object" }, - "AWS::Lightsail::Disk": { + "AWS::Lightsail::Database": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -73920,20 +76495,50 @@ "Properties": { "additionalProperties": false, "properties": { - "AddOns": { - "items": { - "$ref": "#/definitions/AWS::Lightsail::Disk.AddOn" - }, - "type": "array" - }, "AvailabilityZone": { "type": "string" }, - "DiskName": { + "BackupRetention": { + "type": "boolean" + }, + "CaCertificateIdentifier": { "type": "string" }, - "SizeInGb": { - "type": "number" + "MasterDatabaseName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "RelationalDatabaseBlueprintId": { + "type": "string" + }, + "RelationalDatabaseBundleId": { + "type": "string" + }, + "RelationalDatabaseName": { + "type": "string" + }, + "RelationalDatabaseParameters": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Database.RelationalDatabaseParameter" + }, + "type": "array" + }, + "RotateMasterUserPassword": { + "type": "boolean" }, "Tags": { "items": { @@ -73943,14 +76548,17 @@ } }, "required": [ - "DiskName", - "SizeInGb" + "MasterDatabaseName", + "MasterUsername", + "RelationalDatabaseBlueprintId", + "RelationalDatabaseBundleId", + "RelationalDatabaseName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Lightsail::Disk" + "AWS::Lightsail::Database" ], "type": "string" }, @@ -73969,34 +76577,145 @@ ], "type": "object" }, - "AWS::Lightsail::Disk.AddOn": { + "AWS::Lightsail::Database.RelationalDatabaseParameter": { "additionalProperties": false, "properties": { - "AddOnType": { + "AllowedValues": { "type": "string" }, - "AutoSnapshotAddOnRequest": { - "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn" + "ApplyMethod": { + "type": "string" }, - "Status": { + "ApplyType": { "type": "string" - } - }, - "required": [ - "AddOnType" - ], - "type": "object" - }, - "AWS::Lightsail::Disk.AutoSnapshotAddOn": { - "additionalProperties": false, - "properties": { - "SnapshotTimeOfDay": { + }, + "DataType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IsModifiable": { + "type": "boolean" + }, + "ParameterName": { + "type": "string" + }, + "ParameterValue": { "type": "string" } }, "type": "object" }, - "AWS::Lightsail::Instance": { + "AWS::Lightsail::Disk": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AddOns": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AddOn" + }, + "type": "array" + }, + "AvailabilityZone": { + "type": "string" + }, + "DiskName": { + "type": "string" + }, + "SizeInGb": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DiskName", + "SizeInGb" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Disk" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Disk.AddOn": { + "additionalProperties": false, + "properties": { + "AddOnType": { + "type": "string" + }, + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "AddOnType" + ], + "type": "object" + }, + "AWS::Lightsail::Disk.AutoSnapshotAddOn": { + "additionalProperties": false, + "properties": { + "SnapshotTimeOfDay": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -74049,20 +76768,20 @@ "InstanceName": { "type": "string" }, - "Location": { - "$ref": "#/definitions/AWS::Lightsail::Instance.Location" + "KeyPairName": { + "type": "string" }, "Networking": { "$ref": "#/definitions/AWS::Lightsail::Instance.Networking" }, - "State": { - "$ref": "#/definitions/AWS::Lightsail::Instance.State" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" + }, + "UserData": { + "type": "string" } }, "required": [ @@ -74194,7 +76913,7 @@ "additionalProperties": false, "properties": { "MonthlyTransfer": { - "type": "object" + "$ref": "#/definitions/AWS::Lightsail::Instance.MonthlyTransfer" }, "Ports": { "items": { @@ -74265,6 +76984,71 @@ }, "type": "object" }, + "AWS::Lightsail::StaticIp": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AttachedTo": { + "type": "string" + }, + "StaticIpName": { + "type": "string" + } + }, + "required": [ + "StaticIpName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::StaticIp" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Location::GeofenceCollection": { "additionalProperties": false, "properties": { @@ -74621,6 +77405,9 @@ "KmsKeyId": { "type": "string" }, + "PositionFiltering": { + "type": "string" + }, "PricingPlan": { "type": "string" }, @@ -76385,7 +79172,7 @@ "type": "string" }, "Tags": { - "$ref": "#/definitions/AWS::MWAA::Environment.TagMap" + "type": "object" }, "WebserverAccessMode": { "type": "string" @@ -76474,96 +79261,91 @@ }, "type": "object" }, - "AWS::MWAA::Environment.TagMap": { + "AWS::Macie::CustomDataIdentifier": { "additionalProperties": false, - "properties": {}, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreWords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaximumMatchDistance": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Regex": { + "type": "string" + } + }, + "required": [ + "Name", + "Regex" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Macie::CustomDataIdentifier" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::Macie::CustomDataIdentifier": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreWords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Keywords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaximumMatchDistance": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "Regex": { - "type": "string" - } - }, - "required": [ - "Name", - "Regex" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Macie::CustomDataIdentifier" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Macie::FindingsFilter": { + "AWS::Macie::FindingsFilter": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -82357,9 +85139,6 @@ "AutoMinorVersionUpgrade": { "type": "boolean" }, - "ClusterEndpoint": { - "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint" - }, "ClusterName": { "type": "string" }, @@ -82434,7 +85213,9 @@ } }, "required": [ - "ClusterName" + "ACLName", + "ClusterName", + "NodeType" ], "type": "object" }, @@ -82523,6 +85304,7 @@ } }, "required": [ + "Family", "ParameterGroupName" ], "type": "object" @@ -82600,7 +85382,8 @@ } }, "required": [ - "SubnetGroupName" + "SubnetGroupName", + "SubnetIds" ], "type": "object" }, @@ -83405,6 +86188,15 @@ "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { "additionalProperties": false, "properties": { + "StatefulDefaultActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions" + }, "StatefulRuleGroupReferences": { "items": { "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference" @@ -83457,9 +86249,21 @@ ], "type": "object" }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "type": "string" + } + }, + "type": "object" + }, "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference": { "additionalProperties": false, "properties": { + "Priority": { + "type": "number" + }, "ResourceArn": { "type": "string" } @@ -83882,6 +86686,9 @@ }, "RulesSource": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSource" + }, + "StatefulRuleOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions" } }, "required": [ @@ -84001,6 +86808,15 @@ ], "type": "object" }, + "AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "type": "string" + } + }, + "type": "object" + }, "AWS::NetworkFirewall::RuleGroup.StatelessRule": { "additionalProperties": false, "properties": { @@ -86756,7 +89572,7 @@ }, "type": "object" }, - "AWS::Pinpoint::ADMChannel": { + "AWS::Panorama::ApplicationInstance": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86788,29 +89604,49 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationId": { + "ApplicationInstanceIdToReplace": { "type": "string" }, - "ClientId": { + "DefaultRuntimeContextDevice": { "type": "string" }, - "ClientSecret": { + "Description": { "type": "string" }, - "Enabled": { - "type": "boolean" + "DeviceId": { + "type": "string" + }, + "ManifestOverridesPayload": { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestOverridesPayload" + }, + "ManifestPayload": { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestPayload" + }, + "Name": { + "type": "string" + }, + "RuntimeRoleArn": { + "type": "string" + }, + "StatusFilter": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "ApplicationId", - "ClientId", - "ClientSecret" + "DefaultRuntimeContextDevice", + "ManifestPayload" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::ADMChannel" + "AWS::Panorama::ApplicationInstance" ], "type": "string" }, @@ -86829,7 +89665,25 @@ ], "type": "object" }, - "AWS::Pinpoint::APNSChannel": { + "AWS::Panorama::ApplicationInstance.ManifestOverridesPayload": { + "additionalProperties": false, + "properties": { + "PayloadData": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Panorama::ApplicationInstance.ManifestPayload": { + "additionalProperties": false, + "properties": { + "PayloadData": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Panorama::Package": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86861,42 +89715,103 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationId": { + "PackageName": { "type": "string" }, - "BundleId": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "PackageName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Panorama::Package" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Panorama::PackageVersion": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - "Certificate": { - "type": "string" + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "MarkLatest": { + "type": "boolean" }, - "DefaultAuthenticationMethod": { + "OwnerAccount": { "type": "string" }, - "Enabled": { - "type": "boolean" - }, - "PrivateKey": { + "PackageId": { "type": "string" }, - "TeamId": { + "PackageVersion": { "type": "string" }, - "TokenKey": { + "PatchVersion": { "type": "string" }, - "TokenKeyId": { + "UpdatedLatestPatchVersion": { "type": "string" } }, "required": [ - "ApplicationId" + "PackageId", + "PackageVersion", + "PatchVersion" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::APNSChannel" + "AWS::Panorama::PackageVersion" ], "type": "string" }, @@ -86915,7 +89830,7 @@ ], "type": "object" }, - "AWS::Pinpoint::APNSSandboxChannel": { + "AWS::Pinpoint::ADMChannel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -86950,39 +89865,26 @@ "ApplicationId": { "type": "string" }, - "BundleId": { - "type": "string" - }, - "Certificate": { + "ClientId": { "type": "string" }, - "DefaultAuthenticationMethod": { + "ClientSecret": { "type": "string" }, "Enabled": { "type": "boolean" - }, - "PrivateKey": { - "type": "string" - }, - "TeamId": { - "type": "string" - }, - "TokenKey": { - "type": "string" - }, - "TokenKeyId": { - "type": "string" } }, "required": [ - "ApplicationId" + "ApplicationId", + "ClientId", + "ClientSecret" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::APNSSandboxChannel" + "AWS::Pinpoint::ADMChannel" ], "type": "string" }, @@ -87001,7 +89903,179 @@ ], "type": "object" }, - "AWS::Pinpoint::APNSVoipChannel": { + "AWS::Pinpoint::APNSChannel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Certificate": { + "type": "string" + }, + "DefaultAuthenticationMethod": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PrivateKey": { + "type": "string" + }, + "TeamId": { + "type": "string" + }, + "TokenKey": { + "type": "string" + }, + "TokenKeyId": { + "type": "string" + } + }, + "required": [ + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::APNSChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::APNSSandboxChannel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Certificate": { + "type": "string" + }, + "DefaultAuthenticationMethod": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PrivateKey": { + "type": "string" + }, + "TeamId": { + "type": "string" + }, + "TokenKey": { + "type": "string" + }, + "TokenKeyId": { + "type": "string" + } + }, + "required": [ + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::APNSSandboxChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::APNSVoipChannel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -87496,6 +90570,9 @@ "Name": { "type": "string" }, + "Priority": { + "type": "number" + }, "Schedule": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.Schedule" }, @@ -87605,6 +90682,24 @@ }, "type": "object" }, + "AWS::Pinpoint::Campaign.CampaignInAppMessage": { + "additionalProperties": false, + "properties": { + "Content": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageContent" + }, + "type": "array" + }, + "CustomConfig": { + "type": "object" + }, + "Layout": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.CampaignSmsMessage": { "additionalProperties": false, "properties": { @@ -87629,6 +90724,30 @@ }, "type": "object" }, + "AWS::Pinpoint::Campaign.DefaultButtonConfiguration": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" + }, + "BorderRadius": { + "type": "number" + }, + "ButtonAction": { + "type": "string" + }, + "Link": { + "type": "string" + }, + "Text": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.EventDimensions": { "additionalProperties": false, "properties": { @@ -87644,6 +90763,78 @@ }, "type": "object" }, + "AWS::Pinpoint::Campaign.InAppMessageBodyConfig": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "Body": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageButton": { + "additionalProperties": false, + "properties": { + "Android": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + }, + "DefaultConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.DefaultButtonConfiguration" + }, + "IOS": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + }, + "Web": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageContent": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" + }, + "BodyConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageBodyConfig" + }, + "HeaderConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageHeaderConfig" + }, + "ImageUrl": { + "type": "string" + }, + "PrimaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton" + }, + "SecondaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageHeaderConfig": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "Header": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.Limits": { "additionalProperties": false, "properties": { @@ -87656,6 +90847,9 @@ "MessagesPerSecond": { "type": "number" }, + "Session": { + "type": "number" + }, "Total": { "type": "number" } @@ -87725,6 +90919,9 @@ "GCMMessage": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message" }, + "InAppMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignInAppMessage" + }, "SMSMessage": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignSmsMessage" } @@ -87743,6 +90940,18 @@ }, "type": "object" }, + "AWS::Pinpoint::Campaign.OverrideButtonConfiguration": { + "additionalProperties": false, + "properties": { + "ButtonAction": { + "type": "string" + }, + "Link": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Pinpoint::Campaign.QuietTime": { "additionalProperties": false, "properties": { @@ -87854,35 +91063,335 @@ "Properties": { "additionalProperties": false, "properties": { - "ApplicationId": { - "type": "string" - }, - "ConfigurationSet": { - "type": "string" + "ApplicationId": { + "type": "string" + }, + "ConfigurationSet": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "FromAddress": { + "type": "string" + }, + "Identity": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ApplicationId", + "FromAddress", + "Identity" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::EmailChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::EmailTemplate": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DefaultSubstitutions": { + "type": "string" + }, + "HtmlPart": { + "type": "string" + }, + "Subject": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "TemplateDescription": { + "type": "string" + }, + "TemplateName": { + "type": "string" + }, + "TextPart": { + "type": "string" + } + }, + "required": [ + "Subject", + "TemplateName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::EmailTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::EventStream": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "DestinationStreamArn": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ApplicationId", + "DestinationStreamArn", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::EventStream" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::GCMChannel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApiKey": { + "type": "string" + }, + "ApplicationId": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "ApiKey", + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::GCMChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Content": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.InAppMessageContent" + }, + "type": "array" }, - "Enabled": { - "type": "boolean" + "CustomConfig": { + "type": "object" }, - "FromAddress": { + "Layout": { "type": "string" }, - "Identity": { + "Tags": { + "type": "object" + }, + "TemplateDescription": { "type": "string" }, - "RoleArn": { + "TemplateName": { "type": "string" } }, "required": [ - "ApplicationId", - "FromAddress", - "Identity" + "TemplateName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Pinpoint::EmailChannel" + "AWS::Pinpoint::InAppTemplate" ], "type": "string" }, @@ -87901,224 +91410,112 @@ ], "type": "object" }, - "AWS::Pinpoint::EmailTemplate": { + "AWS::Pinpoint::InAppTemplate.BodyConfig": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Alignment": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Body": { + "type": "string" }, - "Metadata": { - "type": "object" + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.ButtonConfig": { + "additionalProperties": false, + "properties": { + "Android": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" }, - "Properties": { - "additionalProperties": false, - "properties": { - "DefaultSubstitutions": { - "type": "string" - }, - "HtmlPart": { - "type": "string" - }, - "Subject": { - "type": "string" - }, - "Tags": { - "type": "object" - }, - "TemplateDescription": { - "type": "string" - }, - "TemplateName": { - "type": "string" - }, - "TextPart": { - "type": "string" - } - }, - "required": [ - "Subject", - "TemplateName" - ], - "type": "object" + "DefaultConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration" }, - "Type": { - "enum": [ - "AWS::Pinpoint::EmailTemplate" - ], - "type": "string" + "IOS": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" + "Web": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::Pinpoint::EventStream": { + "AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "BackgroundColor": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "BorderRadius": { + "type": "number" }, - "Metadata": { - "type": "object" + "ButtonAction": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ApplicationId": { - "type": "string" - }, - "DestinationStreamArn": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "ApplicationId", - "DestinationStreamArn", - "RoleArn" - ], - "type": "object" + "Link": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::Pinpoint::EventStream" - ], + "Text": { "type": "string" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "TextColor": { "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, - "AWS::Pinpoint::GCMChannel": { + "AWS::Pinpoint::InAppTemplate.HeaderConfig": { "additionalProperties": false, "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "Alignment": { "type": "string" }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] + "Header": { + "type": "string" }, - "Metadata": { - "type": "object" + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.InAppMessageContent": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" }, - "Properties": { - "additionalProperties": false, - "properties": { - "ApiKey": { - "type": "string" - }, - "ApplicationId": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - } - }, - "required": [ - "ApiKey", - "ApplicationId" - ], - "type": "object" + "BodyConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.BodyConfig" }, - "Type": { - "enum": [ - "AWS::Pinpoint::GCMChannel" - ], + "HeaderConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.HeaderConfig" + }, + "ImageUrl": { "type": "string" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "PrimaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig" + }, + "SecondaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration": { + "additionalProperties": false, + "properties": { + "ButtonAction": { + "type": "string" + }, + "Link": { "type": "string" } }, - "required": [ - "Type", - "Properties" - ], "type": "object" }, "AWS::Pinpoint::PushTemplate": { @@ -89489,7 +92886,8 @@ }, "required": [ "AnalysisId", - "AwsAccountId" + "AwsAccountId", + "SourceEntity" ], "type": "object" }, @@ -89778,7 +93176,8 @@ }, "required": [ "AwsAccountId", - "DashboardId" + "DashboardId", + "SourceEntity" ], "type": "object" }, @@ -90746,6 +94145,18 @@ ], "type": "object" }, + "AWS::QuickSight::DataSource.AmazonOpenSearchParameters": { + "additionalProperties": false, + "properties": { + "Domain": { + "type": "string" + } + }, + "required": [ + "Domain" + ], + "type": "object" + }, "AWS::QuickSight::DataSource.AthenaParameters": { "additionalProperties": false, "properties": { @@ -90847,6 +94258,9 @@ "AmazonElasticsearchParameters": { "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonElasticsearchParameters" }, + "AmazonOpenSearchParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonOpenSearchParameters" + }, "AthenaParameters": { "$ref": "#/definitions/AWS::QuickSight::DataSource.AthenaParameters" }, @@ -91238,6 +94652,7 @@ }, "required": [ "AwsAccountId", + "SourceEntity", "TemplateId" ], "type": "object" @@ -93310,9 +96725,6 @@ "Encrypted": { "type": "boolean" }, - "Endpoint": { - "$ref": "#/definitions/AWS::Redshift::Cluster.Endpoint" - }, "EnhancedVpcRouting": { "type": "boolean" }, @@ -93584,7 +96996,410 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Description": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSecurityGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::ClusterSecurityGroupIngress": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CIDRIP": { + "type": "string" + }, + "ClusterSecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "type": "string" + } + }, + "required": [ + "ClusterSecurityGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSecurityGroupIngress" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::ClusterSubnetGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::EndpointAccess": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "type": "string" + }, + "EndpointName": { + "type": "string" + }, + "ResourceOwner": { + "type": "string" + }, + "SubnetGroupName": { + "type": "string" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "EndpointName", + "VpcSecurityGroupIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::EndpointAccess" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::EndpointAccess.VpcSecurityGroup": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + }, + "VpcSecurityGroupId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Redshift::EndpointAuthorization": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Account": { + "type": "string" + }, + "ClusterIdentifier": { + "type": "string" + }, + "Force": { + "type": "boolean" + }, + "VpcIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Account", + "ClusterIdentifier" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::EndpointAuthorization" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::EventSubscription": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Severity": { + "type": "string" + }, + "SnsTopicArn": { + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceType": { + "type": "string" + }, + "SubscriptionName": { "type": "string" }, "Tags": { @@ -93595,13 +97410,13 @@ } }, "required": [ - "Description" + "SubscriptionName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSecurityGroup" + "AWS::Redshift::EventSubscription" ], "type": "string" }, @@ -93620,7 +97435,7 @@ ], "type": "object" }, - "AWS::Redshift::ClusterSecurityGroupIngress": { + "AWS::Redshift::ScheduledAction": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -93652,27 +97467,39 @@ "Properties": { "additionalProperties": false, "properties": { - "CIDRIP": { + "Enable": { + "type": "boolean" + }, + "EndTime": { "type": "string" }, - "ClusterSecurityGroupName": { + "IamRole": { "type": "string" }, - "EC2SecurityGroupName": { + "Schedule": { "type": "string" }, - "EC2SecurityGroupOwnerId": { + "ScheduledActionDescription": { "type": "string" + }, + "ScheduledActionName": { + "type": "string" + }, + "StartTime": { + "type": "string" + }, + "TargetAction": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ScheduledActionType" } }, "required": [ - "ClusterSecurityGroupName" + "ScheduledActionName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSecurityGroupIngress" + "AWS::Redshift::ScheduledAction" ], "type": "string" }, @@ -93691,7 +97518,70 @@ ], "type": "object" }, - "AWS::Redshift::ClusterSubnetGroup": { + "AWS::Redshift::ScheduledAction.PauseClusterMessage": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "type": "string" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ResizeClusterMessage": { + "additionalProperties": false, + "properties": { + "Classic": { + "type": "boolean" + }, + "ClusterIdentifier": { + "type": "string" + }, + "ClusterType": { + "type": "string" + }, + "NodeType": { + "type": "string" + }, + "NumberOfNodes": { + "type": "number" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ResumeClusterMessage": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "type": "string" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ScheduledActionType": { + "additionalProperties": false, + "properties": { + "PauseCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.PauseClusterMessage" + }, + "ResizeCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResizeClusterMessage" + }, + "ResumeCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResumeClusterMessage" + } + }, + "type": "object" + }, + "AWS::Rekognition::Project": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -93723,31 +97613,18 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "ProjectName": { "type": "string" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" } }, "required": [ - "Description", - "SubnetIds" + "ProjectName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Redshift::ClusterSubnetGroup" + "AWS::Rekognition::Project" ], "type": "string" }, @@ -95010,171 +98887,177 @@ "Properties": { "additionalProperties": false, "properties": { - "Comment": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "HostedZoneName": { - "type": "string" - }, - "RecordSets": { - "items": { - "$ref": "#/definitions/AWS::Route53::RecordSetGroup.RecordSet" - }, - "type": "array" - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Route53::RecordSetGroup" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::Route53::RecordSetGroup.AliasTarget": { - "additionalProperties": false, - "properties": { - "DNSName": { - "type": "string" - }, - "EvaluateTargetHealth": { - "type": "boolean" - }, - "HostedZoneId": { - "type": "string" - } - }, - "required": [ - "DNSName", - "HostedZoneId" - ], - "type": "object" - }, - "AWS::Route53::RecordSetGroup.GeoLocation": { - "additionalProperties": false, - "properties": { - "ContinentCode": { - "type": "string" - }, - "CountryCode": { - "type": "string" - }, - "SubdivisionCode": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Route53::RecordSetGroup.RecordSet": { - "additionalProperties": false, - "properties": { - "AliasTarget": { - "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" - }, - "Comment": { - "type": "string" - }, - "Failover": { - "type": "string" - }, - "GeoLocation": { - "$ref": "#/definitions/AWS::Route53::RecordSetGroup.GeoLocation" - }, - "HealthCheckId": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "HostedZoneName": { - "type": "string" - }, - "MultiValueAnswer": { - "type": "boolean" - }, - "Name": { - "type": "string" - }, - "Region": { - "type": "string" - }, - "ResourceRecords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "SetIdentifier": { - "type": "string" - }, - "TTL": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Weight": { - "type": "number" - } - }, - "required": [ - "Name", - "Type" - ], - "type": "object" - }, - "AWS::Route53RecoveryControl::Cluster": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "Comment": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "HostedZoneName": { + "type": "string" + }, + "RecordSets": { + "items": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.RecordSet" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::RecordSetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53::RecordSetGroup.AliasTarget": { + "additionalProperties": false, + "properties": { + "DNSName": { + "type": "string" + }, + "EvaluateTargetHealth": { + "type": "boolean" + }, + "HostedZoneId": { + "type": "string" + } + }, + "required": [ + "DNSName", + "HostedZoneId" + ], + "type": "object" + }, + "AWS::Route53::RecordSetGroup.GeoLocation": { + "additionalProperties": false, + "properties": { + "ContinentCode": { + "type": "string" + }, + "CountryCode": { + "type": "string" + }, + "SubdivisionCode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53::RecordSetGroup.RecordSet": { + "additionalProperties": false, + "properties": { + "AliasTarget": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" + }, + "Comment": { + "type": "string" + }, + "Failover": { + "type": "string" + }, + "GeoLocation": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.GeoLocation" + }, + "HealthCheckId": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "HostedZoneName": { + "type": "string" + }, + "MultiValueAnswer": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Region": { + "type": "string" + }, + "ResourceRecords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SetIdentifier": { + "type": "string" + }, + "TTL": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::Route53RecoveryControl::Cluster": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Name": { "type": "string" }, - { + "Tags": { "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } }, "type": "object" }, @@ -95247,6 +99130,12 @@ }, "Name": { "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -95389,6 +99278,12 @@ }, "RuleConfig": { "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.RuleConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ @@ -96114,6 +100009,72 @@ ], "type": "object" }, + "AWS::Route53Resolver::ResolverConfig": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AutodefinedReverseFlag": { + "type": "string" + }, + "ResourceId": { + "type": "string" + } + }, + "required": [ + "AutodefinedReverseFlag", + "ResourceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::ResolverConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Route53Resolver::ResolverDNSSECConfig": { "additionalProperties": false, "properties": { @@ -98283,7 +102244,7 @@ } }, "required": [ - "Name" + "ObjectLambdaConfiguration" ], "type": "object" }, @@ -98349,6 +102310,10 @@ "type": "object" } }, + "required": [ + "Actions", + "ContentTransformation" + ], "type": "object" }, "AWS::S3ObjectLambda::AccessPointPolicy": { @@ -103053,6 +107018,9 @@ "RetainAllVariantProperties": { "type": "boolean" }, + "RetainDeploymentConfig": { + "type": "boolean" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -103168,6 +107136,9 @@ "CanarySize": { "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" }, + "LinearStepSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, "Type": { "type": "string" }, @@ -105445,6 +109416,9 @@ "NotebookInstanceName": { "type": "string" }, + "PlatformIdentifier": { + "type": "string" + }, "RoleArn": { "type": "string" }, @@ -106189,6 +110163,12 @@ "RotationType": { "type": "string" }, + "SuperuserSecretArn": { + "type": "string" + }, + "SuperuserSecretKmsKeyArn": { + "type": "string" + }, "VpcSecurityGroupIds": { "type": "string" }, @@ -111434,6 +115414,9 @@ "Properties": { "additionalProperties": false, "properties": { + "ArtifactConfig": { + "$ref": "#/definitions/AWS::Synthetics::Canary.ArtifactConfig" + }, "ArtifactS3Location": { "type": "string" }, @@ -111509,6 +115492,15 @@ ], "type": "object" }, + "AWS::Synthetics::Canary.ArtifactConfig": { + "additionalProperties": false, + "properties": { + "S3Encryption": { + "$ref": "#/definitions/AWS::Synthetics::Canary.S3Encryption" + } + }, + "type": "object" + }, "AWS::Synthetics::Canary.BaseScreenshot": { "additionalProperties": false, "properties": { @@ -111575,6 +115567,18 @@ }, "type": "object" }, + "AWS::Synthetics::Canary.S3Encryption": { + "additionalProperties": false, + "properties": { + "EncryptionMode": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Synthetics::Canary.Schedule": { "additionalProperties": false, "properties": { @@ -115486,6 +119490,311 @@ ], "type": "object" }, + "AWS::Wisdom::Assistant": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ServerSideEncryptionConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Wisdom::Assistant" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::AssistantAssociation": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssistantId": { + "type": "string" + }, + "Association": { + "$ref": "#/definitions/AWS::Wisdom::AssistantAssociation.AssociationData" + }, + "AssociationType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AssistantId", + "Association", + "AssociationType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Wisdom::AssistantAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::AssistantAssociation.AssociationData": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "KnowledgeBaseType": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RenderingConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.RenderingConfiguration" + }, + "ServerSideEncryptionConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration" + }, + "SourceConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.SourceConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "KnowledgeBaseType", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Wisdom::KnowledgeBase" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration": { + "additionalProperties": false, + "properties": { + "AppIntegrationArn": { + "type": "string" + }, + "ObjectFields": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AppIntegrationArn", + "ObjectFields" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.RenderingConfiguration": { + "additionalProperties": false, + "properties": { + "TemplateUri": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.SourceConfiguration": { + "additionalProperties": false, + "properties": { + "AppIntegrations": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration" + } + }, + "type": "object" + }, "AWS::WorkSpaces::ConnectionAlias": { "additionalProperties": false, "properties": { @@ -116820,6 +121129,9 @@ { "$ref": "#/definitions/AWS::Batch::JobQueue" }, + { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy" + }, { "$ref": "#/definitions/AWS::Budgets::Budget" }, @@ -116919,6 +121231,9 @@ { "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig" }, + { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy" + }, { "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution" }, @@ -117060,9 +121375,18 @@ { "$ref": "#/definitions/AWS::Config::StoredQuery" }, + { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation" + }, { "$ref": "#/definitions/AWS::Connect::QuickConnect" }, + { + "$ref": "#/definitions/AWS::Connect::User" + }, + { + "$ref": "#/definitions/AWS::Connect::UserHierarchyGroup" + }, { "$ref": "#/definitions/AWS::CustomerProfiles::Domain" }, @@ -117129,6 +121453,9 @@ { "$ref": "#/definitions/AWS::DataSync::LocationFSxWindows" }, + { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS" + }, { "$ref": "#/definitions/AWS::DataSync::LocationNFS" }, @@ -117183,6 +121510,9 @@ { "$ref": "#/definitions/AWS::EC2::CapacityReservation" }, + { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet" + }, { "$ref": "#/definitions/AWS::EC2::CarrierGateway" }, @@ -117876,6 +122206,12 @@ { "$ref": "#/definitions/AWS::IoT::FleetMetric" }, + { + "$ref": "#/definitions/AWS::IoT::JobTemplate" + }, + { + "$ref": "#/definitions/AWS::IoT::Logging" + }, { "$ref": "#/definitions/AWS::IoT::MitigationAction" }, @@ -117888,6 +122224,9 @@ { "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate" }, + { + "$ref": "#/definitions/AWS::IoT::ResourceSpecificLogging" + }, { "$ref": "#/definitions/AWS::IoT::ScheduledAudit" }, @@ -117960,6 +122299,12 @@ { "$ref": "#/definitions/AWS::IoTWireless::DeviceProfile" }, + { + "$ref": "#/definitions/AWS::IoTWireless::FuotaTask" + }, + { + "$ref": "#/definitions/AWS::IoTWireless::MulticastGroup" + }, { "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount" }, @@ -118065,12 +122410,18 @@ { "$ref": "#/definitions/AWS::LicenseManager::License" }, + { + "$ref": "#/definitions/AWS::Lightsail::Database" + }, { "$ref": "#/definitions/AWS::Lightsail::Disk" }, { "$ref": "#/definitions/AWS::Lightsail::Instance" }, + { + "$ref": "#/definitions/AWS::Lightsail::StaticIp" + }, { "$ref": "#/definitions/AWS::Location::GeofenceCollection" }, @@ -118296,6 +122647,15 @@ { "$ref": "#/definitions/AWS::OpsWorksCM::Server" }, + { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance" + }, + { + "$ref": "#/definitions/AWS::Panorama::Package" + }, + { + "$ref": "#/definitions/AWS::Panorama::PackageVersion" + }, { "$ref": "#/definitions/AWS::Pinpoint::ADMChannel" }, @@ -118335,6 +122695,9 @@ { "$ref": "#/definitions/AWS::Pinpoint::GCMChannel" }, + { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate" + }, { "$ref": "#/definitions/AWS::Pinpoint::PushTemplate" }, @@ -118443,6 +122806,21 @@ { "$ref": "#/definitions/AWS::Redshift::ClusterSubnetGroup" }, + { + "$ref": "#/definitions/AWS::Redshift::EndpointAccess" + }, + { + "$ref": "#/definitions/AWS::Redshift::EndpointAuthorization" + }, + { + "$ref": "#/definitions/AWS::Redshift::EventSubscription" + }, + { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction" + }, + { + "$ref": "#/definitions/AWS::Rekognition::Project" + }, { "$ref": "#/definitions/AWS::ResourceGroups::Group" }, @@ -118515,6 +122893,9 @@ { "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroupAssociation" }, + { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverConfig" + }, { "$ref": "#/definitions/AWS::Route53Resolver::ResolverDNSSECConfig" }, @@ -118935,6 +123316,15 @@ { "$ref": "#/definitions/AWS::WAFv2::WebACLAssociation" }, + { + "$ref": "#/definitions/AWS::Wisdom::Assistant" + }, + { + "$ref": "#/definitions/AWS::Wisdom::AssistantAssociation" + }, + { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase" + }, { "$ref": "#/definitions/AWS::WorkSpaces::ConnectionAlias" },