aws-sdk-cloudformation 1.97.0 → 1.99.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1118,6 +1118,94 @@ module Aws::CloudFormation
1118
1118
  req.send_request(options)
1119
1119
  end
1120
1120
 
1121
+ # Creates a template from existing resources that are not already
1122
+ # managed with CloudFormation. You can check the status of the template
1123
+ # generation using the `DescribeGeneratedTemplate` API action.
1124
+ #
1125
+ # @option params [Array<Types::ResourceDefinition>] :resources
1126
+ # An optional list of resources to be included in the generated
1127
+ # template.
1128
+ #
1129
+ # If no resources are specified,the template will be created without any
1130
+ # resources. Resources can be added to the template using the
1131
+ # `UpdateGeneratedTemplate` API action.
1132
+ #
1133
+ # @option params [required, String] :generated_template_name
1134
+ # The name assigned to the generated template.
1135
+ #
1136
+ # @option params [String] :stack_name
1137
+ # An optional name or ARN of a stack to use as the base stack for the
1138
+ # generated template.
1139
+ #
1140
+ # @option params [Types::TemplateConfiguration] :template_configuration
1141
+ # The configuration details of the generated template, including the
1142
+ # `DeletionPolicy` and `UpdateReplacePolicy`.
1143
+ #
1144
+ # @return [Types::CreateGeneratedTemplateOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1145
+ #
1146
+ # * {Types::CreateGeneratedTemplateOutput#generated_template_id #generated_template_id} => String
1147
+ #
1148
+ #
1149
+ # @example Example: To create a generated template
1150
+ #
1151
+ # # This example creates a generated template with a resources file.
1152
+ #
1153
+ # resp = client.create_generated_template({
1154
+ # generated_template_name: "JazzyTemplate",
1155
+ # resources: [
1156
+ # {
1157
+ # resource_identifier: {
1158
+ # "BucketName" => "jazz-bucket",
1159
+ # },
1160
+ # resource_type: "AWS::S3::Bucket",
1161
+ # },
1162
+ # {
1163
+ # resource_identifier: {
1164
+ # "DhcpOptionsId" => "random-id123",
1165
+ # },
1166
+ # resource_type: "AWS::EC2::DHCPOptions",
1167
+ # },
1168
+ # ],
1169
+ # })
1170
+ #
1171
+ # resp.to_h outputs the following:
1172
+ # {
1173
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/88f09db1-d211-4cb7-964b-434e2b8469ca",
1174
+ # }
1175
+ #
1176
+ # @example Request syntax with placeholder values
1177
+ #
1178
+ # resp = client.create_generated_template({
1179
+ # resources: [
1180
+ # {
1181
+ # resource_type: "ResourceType", # required
1182
+ # logical_resource_id: "LogicalResourceId",
1183
+ # resource_identifier: { # required
1184
+ # "ResourceIdentifierPropertyKey" => "ResourceIdentifierPropertyValue",
1185
+ # },
1186
+ # },
1187
+ # ],
1188
+ # generated_template_name: "GeneratedTemplateName", # required
1189
+ # stack_name: "StackName",
1190
+ # template_configuration: {
1191
+ # deletion_policy: "DELETE", # accepts DELETE, RETAIN
1192
+ # update_replace_policy: "DELETE", # accepts DELETE, RETAIN
1193
+ # },
1194
+ # })
1195
+ #
1196
+ # @example Response structure
1197
+ #
1198
+ # resp.generated_template_id #=> String
1199
+ #
1200
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateGeneratedTemplate AWS API Documentation
1201
+ #
1202
+ # @overload create_generated_template(params = {})
1203
+ # @param [Hash] params ({})
1204
+ def create_generated_template(params = {}, options = {})
1205
+ req = build_request(:create_generated_template, params)
1206
+ req.send_request(options)
1207
+ end
1208
+
1121
1209
  # Creates a stack as specified in the template. After the call completes
1122
1210
  # successfully, the stack creation starts. You can check the status of
1123
1211
  # the stack through the DescribeStacks operation.
@@ -1179,7 +1267,7 @@ module Aws::CloudFormation
1179
1267
  #
1180
1268
  # @option params [Integer] :timeout_in_minutes
1181
1269
  # The amount of time that can pass before the stack status becomes
1182
- # CREATE\_FAILED; if `DisableRollback` is not set or is set to `false`,
1270
+ # `CREATE_FAILED`; if `DisableRollback` is not set or is set to `false`,
1183
1271
  # the stack will be rolled back.
1184
1272
  #
1185
1273
  # @option params [Array<String>] :notification_arns
@@ -1989,6 +2077,37 @@ module Aws::CloudFormation
1989
2077
  req.send_request(options)
1990
2078
  end
1991
2079
 
2080
+ # Deleted a generated template.
2081
+ #
2082
+ # @option params [required, String] :generated_template_name
2083
+ # The name or Amazon Resource Name (ARN) of a generated template.
2084
+ #
2085
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2086
+ #
2087
+ #
2088
+ # @example Example: To delete a generated template
2089
+ #
2090
+ # # This example deletes a generated template
2091
+ #
2092
+ # resp = client.delete_generated_template({
2093
+ # generated_template_name: "JazzyTemplate",
2094
+ # })
2095
+ #
2096
+ # @example Request syntax with placeholder values
2097
+ #
2098
+ # resp = client.delete_generated_template({
2099
+ # generated_template_name: "GeneratedTemplateName", # required
2100
+ # })
2101
+ #
2102
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteGeneratedTemplate AWS API Documentation
2103
+ #
2104
+ # @overload delete_generated_template(params = {})
2105
+ # @param [Hash] params ({})
2106
+ def delete_generated_template(params = {}, options = {})
2107
+ req = build_request(:delete_generated_template, params)
2108
+ req.send_request(options)
2109
+ end
2110
+
1992
2111
  # Deletes a specified stack. Once the call completes successfully, stack
1993
2112
  # deletion starts. Deleted stacks don't show up in the DescribeStacks
1994
2113
  # operation if the deletion has been completed successfully.
@@ -2518,6 +2637,103 @@ module Aws::CloudFormation
2518
2637
  req.send_request(options)
2519
2638
  end
2520
2639
 
2640
+ # Describes a generated template. The output includes details about the
2641
+ # progress of the creation of a generated template started by a
2642
+ # `CreateGeneratedTemplate` API action or the update of a generated
2643
+ # template started with an `UpdateGeneratedTemplate` API action.
2644
+ #
2645
+ # @option params [required, String] :generated_template_name
2646
+ # The name or Amazon Resource Name (ARN) of a generated template.
2647
+ #
2648
+ # @return [Types::DescribeGeneratedTemplateOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2649
+ #
2650
+ # * {Types::DescribeGeneratedTemplateOutput#generated_template_id #generated_template_id} => String
2651
+ # * {Types::DescribeGeneratedTemplateOutput#generated_template_name #generated_template_name} => String
2652
+ # * {Types::DescribeGeneratedTemplateOutput#resources #resources} => Array&lt;Types::ResourceDetail&gt;
2653
+ # * {Types::DescribeGeneratedTemplateOutput#status #status} => String
2654
+ # * {Types::DescribeGeneratedTemplateOutput#status_reason #status_reason} => String
2655
+ # * {Types::DescribeGeneratedTemplateOutput#creation_time #creation_time} => Time
2656
+ # * {Types::DescribeGeneratedTemplateOutput#last_updated_time #last_updated_time} => Time
2657
+ # * {Types::DescribeGeneratedTemplateOutput#progress #progress} => Types::TemplateProgress
2658
+ # * {Types::DescribeGeneratedTemplateOutput#stack_id #stack_id} => String
2659
+ # * {Types::DescribeGeneratedTemplateOutput#template_configuration #template_configuration} => Types::TemplateConfiguration
2660
+ # * {Types::DescribeGeneratedTemplateOutput#total_warnings #total_warnings} => Integer
2661
+ #
2662
+ #
2663
+ # @example Example: To describe a generated template
2664
+ #
2665
+ # # This example describes a generated template
2666
+ #
2667
+ # resp = client.describe_generated_template({
2668
+ # generated_template_name: "JazzyTemplate",
2669
+ # })
2670
+ #
2671
+ # resp.to_h outputs the following:
2672
+ # {
2673
+ # creation_time: Time.parse("2023-12-28T17:55:20.086000+00:00"),
2674
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:*:generatedtemplate/*",
2675
+ # generated_template_name: "DeletedResourceTest",
2676
+ # last_updated_time: Time.parse("2023-12-28T17:57:16.610000+00:00"),
2677
+ # progress: {
2678
+ # resources_failed: 0,
2679
+ # resources_pending: 0,
2680
+ # resources_processing: 0,
2681
+ # resources_succeeded: 0,
2682
+ # },
2683
+ # status: "COMPLETE",
2684
+ # status_reason: "All resources complete",
2685
+ # template_configuration: {
2686
+ # deletion_policy: "RETAIN",
2687
+ # update_replace_policy: "RETAIN",
2688
+ # },
2689
+ # total_warnings: 0,
2690
+ # }
2691
+ #
2692
+ # @example Request syntax with placeholder values
2693
+ #
2694
+ # resp = client.describe_generated_template({
2695
+ # generated_template_name: "GeneratedTemplateName", # required
2696
+ # })
2697
+ #
2698
+ # @example Response structure
2699
+ #
2700
+ # resp.generated_template_id #=> String
2701
+ # resp.generated_template_name #=> String
2702
+ # resp.resources #=> Array
2703
+ # resp.resources[0].resource_type #=> String
2704
+ # resp.resources[0].logical_resource_id #=> String
2705
+ # resp.resources[0].resource_identifier #=> Hash
2706
+ # resp.resources[0].resource_identifier["ResourceIdentifierPropertyKey"] #=> String
2707
+ # resp.resources[0].resource_status #=> String, one of "PENDING", "IN_PROGRESS", "FAILED", "COMPLETE"
2708
+ # resp.resources[0].resource_status_reason #=> String
2709
+ # resp.resources[0].warnings #=> Array
2710
+ # resp.resources[0].warnings[0].type #=> String, one of "MUTUALLY_EXCLUSIVE_PROPERTIES", "UNSUPPORTED_PROPERTIES", "MUTUALLY_EXCLUSIVE_TYPES"
2711
+ # resp.resources[0].warnings[0].properties #=> Array
2712
+ # resp.resources[0].warnings[0].properties[0].property_path #=> String
2713
+ # resp.resources[0].warnings[0].properties[0].required #=> Boolean
2714
+ # resp.resources[0].warnings[0].properties[0].description #=> String
2715
+ # resp.status #=> String, one of "CREATE_PENDING", "UPDATE_PENDING", "DELETE_PENDING", "CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS", "DELETE_IN_PROGRESS", "FAILED", "COMPLETE"
2716
+ # resp.status_reason #=> String
2717
+ # resp.creation_time #=> Time
2718
+ # resp.last_updated_time #=> Time
2719
+ # resp.progress.resources_succeeded #=> Integer
2720
+ # resp.progress.resources_failed #=> Integer
2721
+ # resp.progress.resources_processing #=> Integer
2722
+ # resp.progress.resources_pending #=> Integer
2723
+ # resp.stack_id #=> String
2724
+ # resp.template_configuration.deletion_policy #=> String, one of "DELETE", "RETAIN"
2725
+ # resp.template_configuration.update_replace_policy #=> String, one of "DELETE", "RETAIN"
2726
+ # resp.total_warnings #=> Integer
2727
+ #
2728
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeGeneratedTemplate AWS API Documentation
2729
+ #
2730
+ # @overload describe_generated_template(params = {})
2731
+ # @param [Hash] params ({})
2732
+ def describe_generated_template(params = {}, options = {})
2733
+ req = build_request(:describe_generated_template, params)
2734
+ req.send_request(options)
2735
+ end
2736
+
2521
2737
  # Retrieves information about the account's `OrganizationAccess`
2522
2738
  # status. This API can be called either by the management account or the
2523
2739
  # delegated administrator by using the `CallAs` parameter. This API can
@@ -2622,6 +2838,146 @@ module Aws::CloudFormation
2622
2838
  req.send_request(options)
2623
2839
  end
2624
2840
 
2841
+ # Describes details of a resource scan.
2842
+ #
2843
+ # @option params [required, String] :resource_scan_id
2844
+ # The Amazon Resource Name (ARN) of the resource scan.
2845
+ #
2846
+ # @return [Types::DescribeResourceScanOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2847
+ #
2848
+ # * {Types::DescribeResourceScanOutput#resource_scan_id #resource_scan_id} => String
2849
+ # * {Types::DescribeResourceScanOutput#status #status} => String
2850
+ # * {Types::DescribeResourceScanOutput#status_reason #status_reason} => String
2851
+ # * {Types::DescribeResourceScanOutput#start_time #start_time} => Time
2852
+ # * {Types::DescribeResourceScanOutput#end_time #end_time} => Time
2853
+ # * {Types::DescribeResourceScanOutput#percentage_completed #percentage_completed} => Float
2854
+ # * {Types::DescribeResourceScanOutput#resource_types #resource_types} => Array&lt;String&gt;
2855
+ # * {Types::DescribeResourceScanOutput#resources_scanned #resources_scanned} => Integer
2856
+ # * {Types::DescribeResourceScanOutput#resources_read #resources_read} => Integer
2857
+ #
2858
+ #
2859
+ # @example Example: To describe a selected resource scan
2860
+ #
2861
+ # # This example describes a selected resource scan
2862
+ #
2863
+ # resp = client.describe_resource_scan({
2864
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/c19304f6-c4f1-4ff8-8e1f-35162e41d7e1",
2865
+ # })
2866
+ #
2867
+ # resp.to_h outputs the following:
2868
+ # {
2869
+ # end_time: Time.parse("2024-01-02T23:25:48.075000+00:00"),
2870
+ # percentage_completed: 100.0,
2871
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/c19304f6-c4f1-4ff8-8e1f-35162e41d7e1",
2872
+ # resource_types: [
2873
+ # "AWS::Amplify::App",
2874
+ # "AWS::ApiGateway::Deployment",
2875
+ # "AWS::ApiGateway::DocumentationPart",
2876
+ # "AWS::ApiGateway::Model",
2877
+ # "AWS::ApiGateway::Resource",
2878
+ # "AWS::ApiGateway::RestApi",
2879
+ # "AWS::ApiGateway::Stage",
2880
+ # "AWS::AppConfig::Extension",
2881
+ # "AWS::ApplicationAutoScaling::ScalableTarget",
2882
+ # "AWS::Athena::WorkGroup",
2883
+ # "AWS::Cassandra::Keyspace",
2884
+ # "AWS::CloudFront::CachePolicy",
2885
+ # "AWS::CloudFront::Function",
2886
+ # "AWS::CloudFront::OriginRequestPolicy",
2887
+ # "AWS::CloudTrail::Trail",
2888
+ # "AWS::CloudWatch::Alarm",
2889
+ # "AWS::CodeDeploy::Application",
2890
+ # "AWS::CodeDeploy::DeploymentConfig",
2891
+ # "AWS::Cognito::UserPool",
2892
+ # "AWS::Cognito::UserPoolGroup",
2893
+ # "AWS::Cognito::UserPoolUser",
2894
+ # "AWS::DynamoDB::Table",
2895
+ # "AWS::EC2::DHCPOptions",
2896
+ # "AWS::EC2::EIP",
2897
+ # "AWS::EC2::InternetGateway",
2898
+ # "AWS::EC2::LaunchTemplate",
2899
+ # "AWS::EC2::NetworkAcl",
2900
+ # "AWS::EC2::Route",
2901
+ # "AWS::EC2::RouteTable",
2902
+ # "AWS::EC2::SubnetNetworkAclAssociation",
2903
+ # "AWS::EC2::SubnetRouteTableAssociation",
2904
+ # "AWS::EC2::VPC",
2905
+ # "AWS::EC2::VPCDHCPOptionsAssociation",
2906
+ # "AWS::EC2::VPCGatewayAttachment",
2907
+ # "AWS::ECR::Repository",
2908
+ # "AWS::ECS::Cluster",
2909
+ # "AWS::ECS::ClusterCapacityProviderAssociations",
2910
+ # "AWS::ECS::Service",
2911
+ # "AWS::ECS::TaskDefinition",
2912
+ # "AWS::ElastiCache::SubnetGroup",
2913
+ # "AWS::ElastiCache::User",
2914
+ # "AWS::Events::EventBus",
2915
+ # "AWS::Events::Rule",
2916
+ # "AWS::GameLift::Location",
2917
+ # "AWS::GuardDuty::Detector",
2918
+ # "AWS::IAM::InstanceProfile",
2919
+ # "AWS::IAM::ManagedPolicy",
2920
+ # "AWS::IAM::Role",
2921
+ # "AWS::IAM::User",
2922
+ # "AWS::IoT::DomainConfiguration",
2923
+ # "AWS::KMS::Alias",
2924
+ # "AWS::KMS::Key",
2925
+ # "AWS::Lambda::EventSourceMapping",
2926
+ # "AWS::Lambda::Function",
2927
+ # "AWS::Lambda::Permission",
2928
+ # "AWS::Lambda::Version",
2929
+ # "AWS::Logs::LogGroup",
2930
+ # "AWS::Logs::LogStream",
2931
+ # "AWS::MemoryDB::ACL",
2932
+ # "AWS::MemoryDB::ParameterGroup",
2933
+ # "AWS::MemoryDB::User",
2934
+ # "AWS::RAM::Permission",
2935
+ # "AWS::RDS::CustomDBEngineVersion",
2936
+ # "AWS::Route53Resolver::ResolverRuleAssociation",
2937
+ # "AWS::S3::AccessPoint",
2938
+ # "AWS::S3::BucketPolicy",
2939
+ # "AWS::S3::StorageLens",
2940
+ # "AWS::SNS::Topic",
2941
+ # "AWS::SQS::Queue",
2942
+ # "AWS::SSM::Association",
2943
+ # "AWS::SSM::Document",
2944
+ # "AWS::StepFunctions::StateMachine",
2945
+ # "AWS::XRay::Group",
2946
+ # "AWS::XRay::SamplingRule",
2947
+ # ],
2948
+ # resources_read: 25107,
2949
+ # start_time: Time.parse("2024-01-02T22:15:18.382000+00:00"),
2950
+ # status: "COMPLETE",
2951
+ # }
2952
+ #
2953
+ # @example Request syntax with placeholder values
2954
+ #
2955
+ # resp = client.describe_resource_scan({
2956
+ # resource_scan_id: "ResourceScanId", # required
2957
+ # })
2958
+ #
2959
+ # @example Response structure
2960
+ #
2961
+ # resp.resource_scan_id #=> String
2962
+ # resp.status #=> String, one of "IN_PROGRESS", "FAILED", "COMPLETE", "EXPIRED"
2963
+ # resp.status_reason #=> String
2964
+ # resp.start_time #=> Time
2965
+ # resp.end_time #=> Time
2966
+ # resp.percentage_completed #=> Float
2967
+ # resp.resource_types #=> Array
2968
+ # resp.resource_types[0] #=> String
2969
+ # resp.resources_scanned #=> Integer
2970
+ # resp.resources_read #=> Integer
2971
+ #
2972
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeResourceScan AWS API Documentation
2973
+ #
2974
+ # @overload describe_resource_scan(params = {})
2975
+ # @param [Hash] params ({})
2976
+ def describe_resource_scan(params = {}, options = {})
2977
+ req = build_request(:describe_resource_scan, params)
2978
+ req.send_request(options)
2979
+ end
2980
+
2625
2981
  # Returns information about a stack drift detection operation. A stack
2626
2982
  # drift detection operation detects whether a stack's actual
2627
2983
  # configuration differs, or has *drifted*, from its expected
@@ -3956,6 +4312,84 @@ module Aws::CloudFormation
3956
4312
  req.send_request(options)
3957
4313
  end
3958
4314
 
4315
+ # Retrieves a generated template. If the template is in an `InProgress`
4316
+ # or `Pending` status then the template returned will be the template
4317
+ # when the template was last in a `Complete` status. If the template has
4318
+ # not yet been in a `Complete` status then an empty template will be
4319
+ # returned.
4320
+ #
4321
+ # @option params [String] :format
4322
+ # The language to use to retrieve for the generated template. Supported
4323
+ # values are:
4324
+ #
4325
+ # * `JSON`
4326
+ #
4327
+ # * `YAML`
4328
+ #
4329
+ # @option params [required, String] :generated_template_name
4330
+ # The name or Amazon Resource Name (ARN) of the generated template. The
4331
+ # format is
4332
+ # `arn:$\{Partition\}:cloudformation:$\{Region\}:$\{Account\}:generatedtemplate/$\{Id\}`.
4333
+ # For example,
4334
+ # `arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/2e8465c1-9a80-43ea-a3a3-4f2d692fe6dc
4335
+ # `.
4336
+ #
4337
+ # @return [Types::GetGeneratedTemplateOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4338
+ #
4339
+ # * {Types::GetGeneratedTemplateOutput#status #status} => String
4340
+ # * {Types::GetGeneratedTemplateOutput#template_body #template_body} => String
4341
+ #
4342
+ #
4343
+ # @example Example: To get a generated template in JSON format
4344
+ #
4345
+ # # This example gets a generated template ins JSON format.
4346
+ #
4347
+ # resp = client.get_generated_template({
4348
+ # generated_template_name: "JazzyTemplate",
4349
+ # })
4350
+ #
4351
+ # resp.to_h outputs the following:
4352
+ # {
4353
+ # status: "COMPLETE",
4354
+ # template_body: "{\"Metadata\":{\"TemplateId\":\"arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/*\"},\"Parameters\":{\"Stage\":{\"Default\":\"beta\",\"Type\":\"String\"}},\"Resources\":{\"TestRole\":{\"Properties\":{\"AssumeRolePolicyDocument\":{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":{\"Fn::Sub\":[\"arn:${AWS::Partition}:iam::${AccountId}:root\",{\"AccountId\":{\"Fn::AccountIdFromAlias\":\"test-account-alias\"}}]}},\"Action\":\"sts:AssumeRole\"}]}},\"Type\":\"AWS::IAM::Role\",\"DeletionPolicy\":\"Delete\"},\"DocumentationPartl7ob4vsd76vs\":{\"UpdateReplacePolicy\":\"Retain\",\"Type\":\"AWS::ApiGateway::DocumentationPart\",\"DeletionPolicy\":\"Retain\",\"Properties\":{\"RestApiId\":\"l7ob4vsd76\",\"Properties\":\"{\\n \\\"description\\\" : \\\"ListGeneratedTemplates 200 response\\\"\\n}\",\"Location\":{\"Path\":\"/ListGeneratedTemplates\",\"Type\":\"RESPONSE\",\"Method\":\"POST\",\"StatusCode\":\"200\"}}}}}",
4355
+ # }
4356
+ #
4357
+ # @example Example: To get a generated template in YAML format
4358
+ #
4359
+ # # This example gets a generated template in YAML format.
4360
+ #
4361
+ # resp = client.get_generated_template({
4362
+ # format: "YAML",
4363
+ # generated_template_name: "JazzyTemplate",
4364
+ # })
4365
+ #
4366
+ # resp.to_h outputs the following:
4367
+ # {
4368
+ # status: "COMPLETE",
4369
+ # template_body: "---\nMetadata:\n TemplateId: \"arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/*\"\nParameters:\n Stage:\n Default: \"beta\"\n Type: \"String\"\nResources:\n TestRole:\n Properties:\n AssumeRolePolicyDocument:\n Version: \"2012-10-17\"\n Statement:\n - Effect: \"Allow\"\n Principal:\n AWS:\n Fn::Sub:\n - \"arn:${AWS::Partition}:iam::${AccountId}:root\"\n - AccountId:\n Fn::AccountIdFromAlias: \"test-account-alias\"\n Action: \"sts:AssumeRole\"\n Type: \"AWS::IAM::Role\"\n DeletionPolicy: \"Delete\"\n DocumentationPartl7ob4vsd76vsnAlFMLXKVm:\n UpdateReplacePolicy: \"Retain\"\n Type: \"AWS::ApiGateway::DocumentationPart\"\n DeletionPolicy: \"Retain\"\n Properties:\n RestApiId: \"l7ob4vsd76\"\n Properties: \"{\\n \\\"description\\\" : \\\"ListGeneratedTemplates 200 response\\\"\\n\\\n }\"\n Location:\n Path: \"/ListGeneratedTemplates\"\n Type: \"RESPONSE\"\n Method: \"POST\"\n StatusCode: \"200\"\n",
4370
+ # }
4371
+ #
4372
+ # @example Request syntax with placeholder values
4373
+ #
4374
+ # resp = client.get_generated_template({
4375
+ # format: "JSON", # accepts JSON, YAML
4376
+ # generated_template_name: "GeneratedTemplateName", # required
4377
+ # })
4378
+ #
4379
+ # @example Response structure
4380
+ #
4381
+ # resp.status #=> String, one of "CREATE_PENDING", "UPDATE_PENDING", "DELETE_PENDING", "CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS", "DELETE_IN_PROGRESS", "FAILED", "COMPLETE"
4382
+ # resp.template_body #=> String
4383
+ #
4384
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetGeneratedTemplate AWS API Documentation
4385
+ #
4386
+ # @overload get_generated_template(params = {})
4387
+ # @param [Hash] params ({})
4388
+ def get_generated_template(params = {}, options = {})
4389
+ req = build_request(:get_generated_template, params)
4390
+ req.send_request(options)
4391
+ end
4392
+
3959
4393
  # Returns the stack policy for a specified stack. If a stack doesn't
3960
4394
  # have a policy, a null value is returned.
3961
4395
  #
@@ -4382,6 +4816,94 @@ module Aws::CloudFormation
4382
4816
  req.send_request(options)
4383
4817
  end
4384
4818
 
4819
+ # Lists your generated templates in this Region.
4820
+ #
4821
+ # @option params [String] :next_token
4822
+ # A string that identifies the next page of resource scan results.
4823
+ #
4824
+ # @option params [Integer] :max_results
4825
+ # If the number of available results exceeds this maximum, the response
4826
+ # includes a `NextToken` value that you can use for the `NextToken`
4827
+ # parameter to get the next set of results. By default the
4828
+ # `ListGeneratedTemplates` API action will return at most 50 results in
4829
+ # each response. The maximum value is 100.
4830
+ #
4831
+ # @return [Types::ListGeneratedTemplatesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4832
+ #
4833
+ # * {Types::ListGeneratedTemplatesOutput#summaries #summaries} => Array&lt;Types::TemplateSummary&gt;
4834
+ # * {Types::ListGeneratedTemplatesOutput#next_token #next_token} => String
4835
+ #
4836
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
4837
+ #
4838
+ #
4839
+ # @example Example: To list generated templates
4840
+ #
4841
+ # # This example lists the generated templates.
4842
+ #
4843
+ # resp = client.list_generated_templates({
4844
+ # })
4845
+ #
4846
+ # resp.to_h outputs the following:
4847
+ # {
4848
+ # summaries: [
4849
+ # {
4850
+ # creation_time: Time.parse("2023-12-28T17:55:20.086000+00:00"),
4851
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/abcdefghi-1234-abcd-abcd-abcdefgh1234567",
4852
+ # generated_template_name: "Template3",
4853
+ # last_updated_time: Time.parse("2023-12-28T17:57:16.610000+00:00"),
4854
+ # number_of_resources: 85,
4855
+ # status: "COMPLETE",
4856
+ # status_reason: "All resources complete",
4857
+ # },
4858
+ # {
4859
+ # creation_time: Time.parse("2023-12-21T01:51:07.764000+00:00"),
4860
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/bbcdefghi-1234-abcd-abcd-abcdefgh1234567",
4861
+ # generated_template_name: "Template2",
4862
+ # last_updated_time: Time.parse("2023-12-21T01:51:22.664000+00:00"),
4863
+ # number_of_resources: 12,
4864
+ # status: "COMPLETE",
4865
+ # status_reason: "All resources complete",
4866
+ # },
4867
+ # {
4868
+ # creation_time: Time.parse("2023-11-20T23:53:28.722000+00:00"),
4869
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/cbcdefghi-1234-abcd-abcd-abcdefgh1234567",
4870
+ # generated_template_name: "Template1",
4871
+ # last_updated_time: Time.parse("2023-11-21T04:25:30.527000+00:00"),
4872
+ # number_of_resources: 19,
4873
+ # status: "COMPLETE",
4874
+ # status_reason: "All resources complete",
4875
+ # },
4876
+ # ],
4877
+ # }
4878
+ #
4879
+ # @example Request syntax with placeholder values
4880
+ #
4881
+ # resp = client.list_generated_templates({
4882
+ # next_token: "NextToken",
4883
+ # max_results: 1,
4884
+ # })
4885
+ #
4886
+ # @example Response structure
4887
+ #
4888
+ # resp.summaries #=> Array
4889
+ # resp.summaries[0].generated_template_id #=> String
4890
+ # resp.summaries[0].generated_template_name #=> String
4891
+ # resp.summaries[0].status #=> String, one of "CREATE_PENDING", "UPDATE_PENDING", "DELETE_PENDING", "CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS", "DELETE_IN_PROGRESS", "FAILED", "COMPLETE"
4892
+ # resp.summaries[0].status_reason #=> String
4893
+ # resp.summaries[0].creation_time #=> Time
4894
+ # resp.summaries[0].last_updated_time #=> Time
4895
+ # resp.summaries[0].number_of_resources #=> Integer
4896
+ # resp.next_token #=> String
4897
+ #
4898
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListGeneratedTemplates AWS API Documentation
4899
+ #
4900
+ # @overload list_generated_templates(params = {})
4901
+ # @param [Hash] params ({})
4902
+ def list_generated_templates(params = {}, options = {})
4903
+ req = build_request(:list_generated_templates, params)
4904
+ req.send_request(options)
4905
+ end
4906
+
4385
4907
  # Lists all stacks that are importing an exported output value. To
4386
4908
  # modify or remove an exported output value, first use this action to
4387
4909
  # see which stacks are using it. To see the exported output values in
@@ -4432,6 +4954,332 @@ module Aws::CloudFormation
4432
4954
  req.send_request(options)
4433
4955
  end
4434
4956
 
4957
+ # Lists the related resources for a list of resources from a resource
4958
+ # scan. The response indicates whether each returned resource is already
4959
+ # managed by CloudFormation.
4960
+ #
4961
+ # @option params [required, String] :resource_scan_id
4962
+ # The Amazon Resource Name (ARN) of the resource scan.
4963
+ #
4964
+ # @option params [required, Array<Types::ScannedResourceIdentifier>] :resources
4965
+ # The list of resources for which you want to get the related resources.
4966
+ # Up to 100 resources can be provided.
4967
+ #
4968
+ # @option params [String] :next_token
4969
+ # A string that identifies the next page of resource scan results.
4970
+ #
4971
+ # @option params [Integer] :max_results
4972
+ # If the number of available results exceeds this maximum, the response
4973
+ # includes a `NextToken` value that you can use for the `NextToken`
4974
+ # parameter to get the next set of results. By default the
4975
+ # `ListResourceScanRelatedResources` API action will return up to 100
4976
+ # results in each response. The maximum value is 100.
4977
+ #
4978
+ # @return [Types::ListResourceScanRelatedResourcesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4979
+ #
4980
+ # * {Types::ListResourceScanRelatedResourcesOutput#related_resources #related_resources} => Array&lt;Types::ScannedResource&gt;
4981
+ # * {Types::ListResourceScanRelatedResourcesOutput#next_token #next_token} => String
4982
+ #
4983
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
4984
+ #
4985
+ #
4986
+ # @example Example: To list resource scan related resources
4987
+ #
4988
+ # # This example lists the resources related to the passed in resources
4989
+ #
4990
+ # resp = client.list_resource_scan_related_resources({
4991
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/c19304f6-c4f1-4ff8-8e1f-35162e41d7e1",
4992
+ # resources: [
4993
+ # {
4994
+ # resource_identifier: {
4995
+ # "BucketName" => "jazz-bucket",
4996
+ # },
4997
+ # resource_type: "AWS::S3::Bucket",
4998
+ # },
4999
+ # {
5000
+ # resource_identifier: {
5001
+ # "DhcpOptionsId" => "random-id123",
5002
+ # },
5003
+ # resource_type: "AWS::EC2::DHCPOptions",
5004
+ # },
5005
+ # ],
5006
+ # })
5007
+ #
5008
+ # resp.to_h outputs the following:
5009
+ # {
5010
+ # related_resources: [
5011
+ # {
5012
+ # managed_by_stack: false,
5013
+ # resource_identifier: {
5014
+ # "DhcpOptionsId" => "dopt-98765edcba",
5015
+ # "VpcId" => "vpc-0123456abcdefg",
5016
+ # },
5017
+ # resource_type: "AWS::EC2::VPCDHCPOptionsAssociation",
5018
+ # },
5019
+ # {
5020
+ # managed_by_stack: false,
5021
+ # resource_identifier: {
5022
+ # "VpcId" => "vpc-0123456abcdefgabc",
5023
+ # },
5024
+ # resource_type: "AWS::EC2::VPC",
5025
+ # },
5026
+ # {
5027
+ # managed_by_stack: false,
5028
+ # resource_identifier: {
5029
+ # "DhcpOptionsId" => "dopt-98765edcba",
5030
+ # "VpcId" => "vpc-123456abcdef",
5031
+ # },
5032
+ # resource_type: "AWS::EC2::VPCDHCPOptionsAssociation",
5033
+ # },
5034
+ # {
5035
+ # managed_by_stack: false,
5036
+ # resource_identifier: {
5037
+ # "VpcId" => "vpc-12345678abcd",
5038
+ # },
5039
+ # resource_type: "AWS::EC2::VPC",
5040
+ # },
5041
+ # ],
5042
+ # }
5043
+ #
5044
+ # @example Request syntax with placeholder values
5045
+ #
5046
+ # resp = client.list_resource_scan_related_resources({
5047
+ # resource_scan_id: "ResourceScanId", # required
5048
+ # resources: [ # required
5049
+ # {
5050
+ # resource_type: "ResourceType", # required
5051
+ # resource_identifier: { # required
5052
+ # "JazzResourceIdentifierPropertyKey" => "JazzResourceIdentifierPropertyValue",
5053
+ # },
5054
+ # },
5055
+ # ],
5056
+ # next_token: "NextToken",
5057
+ # max_results: 1,
5058
+ # })
5059
+ #
5060
+ # @example Response structure
5061
+ #
5062
+ # resp.related_resources #=> Array
5063
+ # resp.related_resources[0].resource_type #=> String
5064
+ # resp.related_resources[0].resource_identifier #=> Hash
5065
+ # resp.related_resources[0].resource_identifier["JazzResourceIdentifierPropertyKey"] #=> String
5066
+ # resp.related_resources[0].managed_by_stack #=> Boolean
5067
+ # resp.next_token #=> String
5068
+ #
5069
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListResourceScanRelatedResources AWS API Documentation
5070
+ #
5071
+ # @overload list_resource_scan_related_resources(params = {})
5072
+ # @param [Hash] params ({})
5073
+ def list_resource_scan_related_resources(params = {}, options = {})
5074
+ req = build_request(:list_resource_scan_related_resources, params)
5075
+ req.send_request(options)
5076
+ end
5077
+
5078
+ # Lists the resources from a resource scan. The results can be filtered
5079
+ # by resource identifier, resource type prefix, tag key, and tag value.
5080
+ # Only resources that match all specified filters are returned. The
5081
+ # response indicates whether each returned resource is already managed
5082
+ # by CloudFormation.
5083
+ #
5084
+ # @option params [required, String] :resource_scan_id
5085
+ # The Amazon Resource Name (ARN) of the resource scan.
5086
+ #
5087
+ # @option params [String] :resource_identifier
5088
+ # If specified, the returned resources will have the specified resource
5089
+ # identifier (or one of them in the case where the resource has multiple
5090
+ # identifiers).
5091
+ #
5092
+ # @option params [String] :resource_type_prefix
5093
+ # If specified, the returned resources will be of any of the resource
5094
+ # types with the specified prefix.
5095
+ #
5096
+ # @option params [String] :tag_key
5097
+ # If specified, the returned resources will have a matching tag key.
5098
+ #
5099
+ # @option params [String] :tag_value
5100
+ # If specified, the returned resources will have a matching tag value.
5101
+ #
5102
+ # @option params [String] :next_token
5103
+ # A string that identifies the next page of resource scan results.
5104
+ #
5105
+ # @option params [Integer] :max_results
5106
+ # If the number of available results exceeds this maximum, the response
5107
+ # includes a `NextToken` value that you can use for the `NextToken`
5108
+ # parameter to get the next set of results. By default the
5109
+ # `ListResourceScanResources` API action will return at most 100 results
5110
+ # in each response. The maximum value is 100.
5111
+ #
5112
+ # @return [Types::ListResourceScanResourcesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5113
+ #
5114
+ # * {Types::ListResourceScanResourcesOutput#resources #resources} => Array&lt;Types::ScannedResource&gt;
5115
+ # * {Types::ListResourceScanResourcesOutput#next_token #next_token} => String
5116
+ #
5117
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
5118
+ #
5119
+ #
5120
+ # @example Example: To list the resources in your resource scan
5121
+ #
5122
+ # # This example lists the resources in your resource scan
5123
+ #
5124
+ # resp = client.list_resource_scan_resources({
5125
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/c19304f6-c4f1-4ff8-8e1f-35162e41d7e1",
5126
+ # })
5127
+ #
5128
+ # resp.to_h outputs the following:
5129
+ # {
5130
+ # next_token: "AQICAHjOiFofVZCZ0aEN1VnF1m9jq/xxpTY7MyPexz72BHuAkgETVS8c+PVCFpE6uGVJDxCFAAACbjCCAmoGCSqGSIb3DQEHBqCCAlswggJXAgEAMIICUAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAwJ9QJAYeDzUoBeimECARCAggIh8brcL6H6uMvcZafRTB79hUkdJlOoFavrhYA2U7qdlPUwyvaVqN2DvFMxsl2XC1SaWmr5esMKxg1fLjbOEF32lVQn0Jp8QuoFUvREnqEsR32ZQmiI/Oc9HmwIr/BS3rzljki2Kr8Y0nriS7aFDLUCYsdsRdQ9iL5/iCc6oW7IisCzq1VKcHijlXvuiEipZAinsxEbmYBjmWgT7UYZdrrb6Hq3COEgPzS490ucndtwPjyvuCIMiAfTLMuBgjkzEfp4U97aLwPWaiKw94dMXj/3K67uuH9BjWZO+j6d3nnyZ14FOgI7SQvvVBnxARbTmINttHWjXPrIuE9YuuSWgn6GmuzEEDqkuglOS/OeTHYSPvLPRrFieUiawblljLVoVY9/HDjL/EErSTWiCnytGXIRoMI9Ozp2Yjfm3MBwSDXvMIrscw6QAa3bUA6uJSV2skCBnDoqV8EXd8umh788OgEtDxQ7d/NlUYEhN6AJ0K9TVz/2rZgOlzLCmtvmbIy7loAZCmf/uPNkyu6WuoLWTzQz78SnA8jWPKnxrzhNyPuaIgUH23U3mExhfMRDczitpOo5JM81oHVPECslGoqktLhP55BQqMbJy4w16SZJfr993TXhF5jOZenRN1zDsK3J5cLdJgPK1Ds1Z9DnRKMfXOqoAyme2l94/h0kLIxgAtxOeJFP/g/9hUtt1qGkZeV3Xqw1nkFQnafGIg4fJoWg74Sr7yo=",
5131
+ # resources: [
5132
+ # {
5133
+ # managed_by_stack: false,
5134
+ # resource_identifier: {
5135
+ # "Arn" => "arn:aws:amplify:us-east-1:123456789012:apps/12345678",
5136
+ # },
5137
+ # resource_type: "AWS::Amplify::App",
5138
+ # },
5139
+ # {
5140
+ # managed_by_stack: true,
5141
+ # resource_identifier: {
5142
+ # "DeploymentId" => "1234567",
5143
+ # "RestApiId" => "abcdefgh",
5144
+ # },
5145
+ # resource_type: "AWS::ApiGateway::Deployment",
5146
+ # },
5147
+ # ],
5148
+ # }
5149
+ #
5150
+ # @example Example: To list the resources in your resource scan for specific resource type
5151
+ #
5152
+ # # This example lists the resources in your resource scan filtering only the resources that start with the passed in prefix
5153
+ #
5154
+ # resp = client.list_resource_scan_resources({
5155
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/c19304f6-c4f1-4ff8-8e1f-35162e41d7e1",
5156
+ # resource_type_prefix: "AWS::S3",
5157
+ # })
5158
+ #
5159
+ # resp.to_h outputs the following:
5160
+ # {
5161
+ # next_token: "AQICAHjOiFofVZCZ0aEN1VnF1m9jq/xxpTY7MyPexz72BHuAkgETVS8c+PVCFpE6uGVJDxCFAAACbjCCAmoGCSqGSIb3DQEHBqCCAlswggJXAgEAMIICUAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAwJ9QJAYeDzUoBeimECARCAggIh8brcL6H6uMvcZafRTB79hUkdJlOoFavrhYA2U7qdlPUwyvaVqN2DvFMxsl2XC1SaWmr5esMKxg1fLjbOEF32lVQn0Jp8QuoFUvREnqEsR32ZQmiI/Oc9HmwIr/BS3rzljki2Kr8Y0nriS7aFDLUCYsdsRdQ9iL5/iCc6oW7IisCzq1VKcHijlXvuiEipZAinsxEbmYBjmWgT7UYZdrrb6Hq3COEgPzS490ucndtwPjyvuCIMiAfTLMuBgjkzEfp4U97aLwPWaiKw94dMXj/3K67uuH9BjWZO+j6d3nnyZ14FOgI7SQvvVBnxARbTmINttHWjXPrIuE9YuuSWgn6GmuzEEDqkuglOS/OeTHYSPvLPRrFieUiawblljLVoVY9/HDjL/EErSTWiCnytGXIRoMI9Ozp2Yjfm3MBwSDXvMIrscw6QAa3bUA6uJSV2skCBnDoqV8EXd8umh788OgEtDxQ7d/NlUYEhN6AJ0K9TVz/2rZgOlzLCmtvmbIy7loAZCmf/uPNkyu6WuoLWTzQz78SnA8jWPKnxrzhNyPuaIgUH23U3mExhfMRDczitpOo5JM81oHVPECslGoqktLhP55BQqMbJy4w16SZJfr993TXhF5jOZenRN1zDsK3J5cLdJgPK1Ds1Z9DnRKMfXOqoAyme2l94/h0kLIxgAtxOeJFP/g/9hUtt1qGkZeV3Xqw1nkFQnafGIg4fJoWg74Sr7yo=",
5162
+ # resources: [
5163
+ # {
5164
+ # managed_by_stack: true,
5165
+ # resource_identifier: {
5166
+ # "Name" => "test-access-point",
5167
+ # },
5168
+ # resource_type: "AWS::S3::AccessPoint",
5169
+ # },
5170
+ # {
5171
+ # managed_by_stack: false,
5172
+ # resource_identifier: {
5173
+ # "Bucket" => "a-random-bucket",
5174
+ # },
5175
+ # resource_type: "AWS::S3::BucketPolicy",
5176
+ # },
5177
+ # ],
5178
+ # }
5179
+ #
5180
+ # @example Request syntax with placeholder values
5181
+ #
5182
+ # resp = client.list_resource_scan_resources({
5183
+ # resource_scan_id: "ResourceScanId", # required
5184
+ # resource_identifier: "ResourceIdentifier",
5185
+ # resource_type_prefix: "ResourceTypePrefix",
5186
+ # tag_key: "TagKey",
5187
+ # tag_value: "TagValue",
5188
+ # next_token: "NextToken",
5189
+ # max_results: 1,
5190
+ # })
5191
+ #
5192
+ # @example Response structure
5193
+ #
5194
+ # resp.resources #=> Array
5195
+ # resp.resources[0].resource_type #=> String
5196
+ # resp.resources[0].resource_identifier #=> Hash
5197
+ # resp.resources[0].resource_identifier["JazzResourceIdentifierPropertyKey"] #=> String
5198
+ # resp.resources[0].managed_by_stack #=> Boolean
5199
+ # resp.next_token #=> String
5200
+ #
5201
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListResourceScanResources AWS API Documentation
5202
+ #
5203
+ # @overload list_resource_scan_resources(params = {})
5204
+ # @param [Hash] params ({})
5205
+ def list_resource_scan_resources(params = {}, options = {})
5206
+ req = build_request(:list_resource_scan_resources, params)
5207
+ req.send_request(options)
5208
+ end
5209
+
5210
+ # List the resource scans from newest to oldest. By default it will
5211
+ # return up to 10 resource scans.
5212
+ #
5213
+ # @option params [String] :next_token
5214
+ # A string that identifies the next page of resource scan results.
5215
+ #
5216
+ # @option params [Integer] :max_results
5217
+ # If the number of available results exceeds this maximum, the response
5218
+ # includes a `NextToken` value that you can use for the `NextToken`
5219
+ # parameter to get the next set of results. The default value is 10. The
5220
+ # maximum value is 100.
5221
+ #
5222
+ # @return [Types::ListResourceScansOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5223
+ #
5224
+ # * {Types::ListResourceScansOutput#resource_scan_summaries #resource_scan_summaries} => Array&lt;Types::ResourceScanSummary&gt;
5225
+ # * {Types::ListResourceScansOutput#next_token #next_token} => String
5226
+ #
5227
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
5228
+ #
5229
+ #
5230
+ # @example Example: Listing Resource Scans
5231
+ #
5232
+ # # This example shows how to list resource scans
5233
+ #
5234
+ # resp = client.list_resource_scans({
5235
+ # })
5236
+ #
5237
+ # resp.to_h outputs the following:
5238
+ # {
5239
+ # resource_scan_summaries: [
5240
+ # {
5241
+ # percentage_completed: 37.4,
5242
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/51448627-817f-40f0-b37c-f6e0f974340c",
5243
+ # start_time: Time.parse("2024-01-24T00:33:29.673000+00:00"),
5244
+ # status: "IN_PROGRESS",
5245
+ # },
5246
+ # {
5247
+ # end_time: Time.parse("2024-01-02T23:25:48.075000+00:00"),
5248
+ # percentage_completed: 100.0,
5249
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/c19304f6-c4f1-4ff8-8e1f-35162e41d7e1",
5250
+ # start_time: Time.parse("2024-01-02T22:15:18.382000+00:00"),
5251
+ # status: "COMPLETE",
5252
+ # },
5253
+ # ],
5254
+ # }
5255
+ #
5256
+ # @example Request syntax with placeholder values
5257
+ #
5258
+ # resp = client.list_resource_scans({
5259
+ # next_token: "NextToken",
5260
+ # max_results: 1,
5261
+ # })
5262
+ #
5263
+ # @example Response structure
5264
+ #
5265
+ # resp.resource_scan_summaries #=> Array
5266
+ # resp.resource_scan_summaries[0].resource_scan_id #=> String
5267
+ # resp.resource_scan_summaries[0].status #=> String, one of "IN_PROGRESS", "FAILED", "COMPLETE", "EXPIRED"
5268
+ # resp.resource_scan_summaries[0].status_reason #=> String
5269
+ # resp.resource_scan_summaries[0].start_time #=> Time
5270
+ # resp.resource_scan_summaries[0].end_time #=> Time
5271
+ # resp.resource_scan_summaries[0].percentage_completed #=> Float
5272
+ # resp.next_token #=> String
5273
+ #
5274
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListResourceScans AWS API Documentation
5275
+ #
5276
+ # @overload list_resource_scans(params = {})
5277
+ # @param [Hash] params ({})
5278
+ def list_resource_scans(params = {}, options = {})
5279
+ req = build_request(:list_resource_scans, params)
5280
+ req.send_request(options)
5281
+ end
5282
+
4435
5283
  # Returns drift information for resources in a stack instance.
4436
5284
  #
4437
5285
  # <note markdown="1"> `ListStackInstanceResourceDrifts` returns drift information for the
@@ -6010,6 +6858,50 @@ module Aws::CloudFormation
6010
6858
  req.send_request(options)
6011
6859
  end
6012
6860
 
6861
+ # Starts a scan of the resources in this account in this Region. You can
6862
+ # the status of a scan using the `ListResourceScans` API action.
6863
+ #
6864
+ # @option params [String] :client_request_token
6865
+ # A unique identifier for this `StartResourceScan` request. Specify this
6866
+ # token if you plan to retry requests so that CloudFormation knows that
6867
+ # you're not attempting to start a new resource scan.
6868
+ #
6869
+ # @return [Types::StartResourceScanOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6870
+ #
6871
+ # * {Types::StartResourceScanOutput#resource_scan_id #resource_scan_id} => String
6872
+ #
6873
+ #
6874
+ # @example Example: To start a resource scan
6875
+ #
6876
+ # # This example shows how to start a new resource scan
6877
+ #
6878
+ # resp = client.start_resource_scan({
6879
+ # })
6880
+ #
6881
+ # resp.to_h outputs the following:
6882
+ # {
6883
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/88f09db1-d211-4cb7-964b-434e2b8469ca",
6884
+ # }
6885
+ #
6886
+ # @example Request syntax with placeholder values
6887
+ #
6888
+ # resp = client.start_resource_scan({
6889
+ # client_request_token: "ClientRequestToken",
6890
+ # })
6891
+ #
6892
+ # @example Response structure
6893
+ #
6894
+ # resp.resource_scan_id #=> String
6895
+ #
6896
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StartResourceScan AWS API Documentation
6897
+ #
6898
+ # @overload start_resource_scan(params = {})
6899
+ # @param [Hash] params ({})
6900
+ def start_resource_scan(params = {}, options = {})
6901
+ req = build_request(:start_resource_scan, params)
6902
+ req.send_request(options)
6903
+ end
6904
+
6013
6905
  # Stops an in-progress operation on a stack set and its associated stack
6014
6906
  # instances. StackSets will cancel all the unstarted stack instance
6015
6907
  # deployments and wait for those are in-progress to complete.
@@ -6173,6 +7065,134 @@ module Aws::CloudFormation
6173
7065
  req.send_request(options)
6174
7066
  end
6175
7067
 
7068
+ # Updates a generated template. This can be used to change the name, add
7069
+ # and remove resources, refresh resources, and change the
7070
+ # `DeletionPolicy` and `UpdateReplacePolicy` settings. You can check the
7071
+ # status of the update to the generated template using the
7072
+ # `DescribeGeneratedTemplate` API action.
7073
+ #
7074
+ # @option params [required, String] :generated_template_name
7075
+ # The name or Amazon Resource Name (ARN) of a generated template.
7076
+ #
7077
+ # @option params [String] :new_generated_template_name
7078
+ # An optional new name to assign to the generated template.
7079
+ #
7080
+ # @option params [Array<Types::ResourceDefinition>] :add_resources
7081
+ # An optional list of resources to be added to the generated template.
7082
+ #
7083
+ # @option params [Array<String>] :remove_resources
7084
+ # A list of logical ids for resources to remove from the generated
7085
+ # template.
7086
+ #
7087
+ # @option params [Boolean] :refresh_all_resources
7088
+ # If `true`, update the resource properties in the generated template
7089
+ # with their current live state. This feature is useful when the
7090
+ # resource properties in your generated a template does not reflect the
7091
+ # live state of the resource properties. This happens when a user update
7092
+ # the resource properties after generating a template.
7093
+ #
7094
+ # @option params [Types::TemplateConfiguration] :template_configuration
7095
+ # The configuration details of the generated template, including the
7096
+ # `DeletionPolicy` and `UpdateReplacePolicy`.
7097
+ #
7098
+ # @return [Types::UpdateGeneratedTemplateOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7099
+ #
7100
+ # * {Types::UpdateGeneratedTemplateOutput#generated_template_id #generated_template_id} => String
7101
+ #
7102
+ #
7103
+ # @example Example: To update a generated template's name
7104
+ #
7105
+ # # This example updates a generated template with a new name.
7106
+ #
7107
+ # resp = client.update_generated_template({
7108
+ # generated_template_name: "JazzyTemplate",
7109
+ # new_generated_template_name: "JazzierTemplate",
7110
+ # })
7111
+ #
7112
+ # resp.to_h outputs the following:
7113
+ # {
7114
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/88f09db1-d211-4cb7-964b-434e2b8469ca",
7115
+ # }
7116
+ #
7117
+ # @example Example: To remove resources from a generated template
7118
+ #
7119
+ # # This example removes resources from a generated template
7120
+ #
7121
+ # resp = client.update_generated_template({
7122
+ # generated_template_name: "JazzyTemplate",
7123
+ # remove_resources: [
7124
+ # "LogicalResourceId1",
7125
+ # "LogicalResourceId2",
7126
+ # ],
7127
+ # })
7128
+ #
7129
+ # resp.to_h outputs the following:
7130
+ # {
7131
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/88f09db1-d211-4cb7-964b-434e2b8469ca",
7132
+ # }
7133
+ #
7134
+ # @example Example: To add resources to a generated template
7135
+ #
7136
+ # # This example adds resources to a generated template
7137
+ #
7138
+ # resp = client.update_generated_template({
7139
+ # add_resources: [
7140
+ # {
7141
+ # resource_identifier: {
7142
+ # "BucketName" => "jazz-bucket",
7143
+ # },
7144
+ # resource_type: "AWS::S3::Bucket",
7145
+ # },
7146
+ # {
7147
+ # resource_identifier: {
7148
+ # "DhcpOptionsId" => "random-id123",
7149
+ # },
7150
+ # resource_type: "AWS::EC2::DHCPOptions",
7151
+ # },
7152
+ # ],
7153
+ # generated_template_name: "JazzyTemplate",
7154
+ # })
7155
+ #
7156
+ # resp.to_h outputs the following:
7157
+ # {
7158
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/88f09db1-d211-4cb7-964b-434e2b8469ca",
7159
+ # }
7160
+ #
7161
+ # @example Request syntax with placeholder values
7162
+ #
7163
+ # resp = client.update_generated_template({
7164
+ # generated_template_name: "GeneratedTemplateName", # required
7165
+ # new_generated_template_name: "GeneratedTemplateName",
7166
+ # add_resources: [
7167
+ # {
7168
+ # resource_type: "ResourceType", # required
7169
+ # logical_resource_id: "LogicalResourceId",
7170
+ # resource_identifier: { # required
7171
+ # "ResourceIdentifierPropertyKey" => "ResourceIdentifierPropertyValue",
7172
+ # },
7173
+ # },
7174
+ # ],
7175
+ # remove_resources: ["LogicalResourceId"],
7176
+ # refresh_all_resources: false,
7177
+ # template_configuration: {
7178
+ # deletion_policy: "DELETE", # accepts DELETE, RETAIN
7179
+ # update_replace_policy: "DELETE", # accepts DELETE, RETAIN
7180
+ # },
7181
+ # })
7182
+ #
7183
+ # @example Response structure
7184
+ #
7185
+ # resp.generated_template_id #=> String
7186
+ #
7187
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateGeneratedTemplate AWS API Documentation
7188
+ #
7189
+ # @overload update_generated_template(params = {})
7190
+ # @param [Hash] params ({})
7191
+ def update_generated_template(params = {}, options = {})
7192
+ req = build_request(:update_generated_template, params)
7193
+ req.send_request(options)
7194
+ end
7195
+
6176
7196
  # Updates a stack as specified in the template. After the call completes
6177
7197
  # successfully, the stack update starts. You can check the status of the
6178
7198
  # stack through the DescribeStacks action.
@@ -7221,7 +8241,7 @@ module Aws::CloudFormation
7221
8241
  params: params,
7222
8242
  config: config)
7223
8243
  context[:gem_name] = 'aws-sdk-cloudformation'
7224
- context[:gem_version] = '1.97.0'
8244
+ context[:gem_version] = '1.99.0'
7225
8245
  Seahorse::Client::Request.new(handlers, context)
7226
8246
  end
7227
8247