aws-sdk-controlcatalog 1.6.0 → 1.8.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ab4b275b423c6209c106dd5ea547b57eb2e794499858ce82888d62770971c2a4
4
- data.tar.gz: acf9ffbced73dd0d1ea07a00f751e95a2a2a637cb17ccf1093ff804fa0b4e470
3
+ metadata.gz: bd2116bc53c63cd3a82b5f646cc3d5065c756861f6c6b0de877dab4ac2f55a7f
4
+ data.tar.gz: 5d05382f47e8ce6a970bc99c8fbe6bac3842e2cc554ecb51a83e166b7903d52f
5
5
  SHA512:
6
- metadata.gz: 7aa4ba00fc41a3c4009daba78af85ddf91b1f51a0fb1512b3675e5dd36089e84e087f3b0f094dbefb7e68bd38ec4f804f74c02cf6180edb756439f1f5546aaaa
7
- data.tar.gz: 5ddf730729b817ea13c48f59ba74a8aeead95186187ea2c1ee6d30deee75cb0fe1727d5b4ae5968224592af970fa0fbc526501e67893fa8894000f4c529a16fb
6
+ metadata.gz: 736b4baf83902f82a4702fb2efbb30e42de3894c5f5ae0dcad582f93dcfca45527977ebcac3acea69e2bfb36e59fa3e3a7c70b1b1ecf4250b46f9ebc75219b3f
7
+ data.tar.gz: 44126880a6808bce57912ae6bd33ceb03498bfeb03bf5ed8e3bf10ca1afc447bdd38894014f4f31f8b4b5b9ef0464053b37852dc88e29a74948b1dd692af8c41
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.8.0 (2024-09-03)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ 1.7.0 (2024-08-01)
10
+ ------------------
11
+
12
+ * Feature - AWS Control Tower provides two new public APIs controlcatalog:ListControls and controlcatalog:GetControl under controlcatalog service namespace, which enable customers to programmatically retrieve control metadata of available controls.
13
+
4
14
  1.6.0 (2024-07-02)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.6.0
1
+ 1.8.0
@@ -32,6 +32,7 @@ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
32
32
  require 'aws-sdk-core/plugins/request_compression.rb'
33
33
  require 'aws-sdk-core/plugins/defaults_mode.rb'
34
34
  require 'aws-sdk-core/plugins/recursion_detection.rb'
35
+ require 'aws-sdk-core/plugins/telemetry.rb'
35
36
  require 'aws-sdk-core/plugins/sign.rb'
36
37
  require 'aws-sdk-core/plugins/protocols/rest_json.rb'
37
38
 
@@ -83,6 +84,7 @@ module Aws::ControlCatalog
83
84
  add_plugin(Aws::Plugins::RequestCompression)
84
85
  add_plugin(Aws::Plugins::DefaultsMode)
85
86
  add_plugin(Aws::Plugins::RecursionDetection)
87
+ add_plugin(Aws::Plugins::Telemetry)
86
88
  add_plugin(Aws::Plugins::Sign)
87
89
  add_plugin(Aws::Plugins::Protocols::RestJson)
88
90
  add_plugin(Aws::ControlCatalog::Plugins::Endpoints)
@@ -330,6 +332,16 @@ module Aws::ControlCatalog
330
332
  # ** Please note ** When response stubbing is enabled, no HTTP
331
333
  # requests are made, and retries are disabled.
332
334
  #
335
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
336
+ # Allows you to provide a telemetry provider, which is used to
337
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
338
+ # will not record or emit any telemetry data. The SDK supports the
339
+ # following telemetry providers:
340
+ #
341
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
342
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
343
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
344
+ #
333
345
  # @option options [Aws::TokenProvider] :token_provider
334
346
  # A Bearer Token Provider. This can be an instance of any one of the
335
347
  # following classes:
@@ -425,6 +437,68 @@ module Aws::ControlCatalog
425
437
 
426
438
  # @!group API Operations
427
439
 
440
+ # Returns details about a specific control, most notably a list of
441
+ # Amazon Web Services Regions where this control is supported. Input a
442
+ # value for the *ControlArn* parameter, in ARN form. `GetControl`
443
+ # accepts *controltower* or *controlcatalog* control ARNs as input.
444
+ # Returns a *controlcatalog* ARN format.
445
+ #
446
+ # In the API response, controls that have the value `GLOBAL` in the
447
+ # `Scope` field do not show the `DeployableRegions` field, because it
448
+ # does not apply. Controls that have the value `REGIONAL` in the `Scope`
449
+ # field return a value for the `DeployableRegions` field, as shown in
450
+ # the example.
451
+ #
452
+ # @option params [required, String] :control_arn
453
+ # The Amazon Resource Name (ARN) of the control. It has one of the
454
+ # following formats:
455
+ #
456
+ # *Global format*
457
+ #
458
+ # `arn:\{PARTITION\}:controlcatalog:::control/\{CONTROL_CATALOG_OPAQUE_ID\}`
459
+ #
460
+ # *Or Regional format*
461
+ #
462
+ # `arn:\{PARTITION\}:controltower:\{REGION\}::control/\{CONTROL_TOWER_OPAQUE_ID\}`
463
+ #
464
+ # Here is a more general pattern that covers Amazon Web Services Control
465
+ # Tower and Control Catalog ARNs:
466
+ #
467
+ # `^arn:(aws(?:[-a-z]*)?):(controlcatalog|controltower):[a-zA-Z0-9-]*::control/[0-9a-zA-Z_\\-]+$`
468
+ #
469
+ # @return [Types::GetControlResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
470
+ #
471
+ # * {Types::GetControlResponse#arn #arn} => String
472
+ # * {Types::GetControlResponse#name #name} => String
473
+ # * {Types::GetControlResponse#description #description} => String
474
+ # * {Types::GetControlResponse#behavior #behavior} => String
475
+ # * {Types::GetControlResponse#region_configuration #region_configuration} => Types::RegionConfiguration
476
+ #
477
+ # @example Request syntax with placeholder values
478
+ #
479
+ # resp = client.get_control({
480
+ # control_arn: "ControlArn", # required
481
+ # })
482
+ #
483
+ # @example Response structure
484
+ #
485
+ # resp.arn #=> String
486
+ # resp.name #=> String
487
+ # resp.description #=> String
488
+ # resp.behavior #=> String, one of "PREVENTIVE", "PROACTIVE", "DETECTIVE"
489
+ # resp.region_configuration.scope #=> String, one of "GLOBAL", "REGIONAL"
490
+ # resp.region_configuration.deployable_regions #=> Array
491
+ # resp.region_configuration.deployable_regions[0] #=> String
492
+ #
493
+ # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/GetControl AWS API Documentation
494
+ #
495
+ # @overload get_control(params = {})
496
+ # @param [Hash] params ({})
497
+ def get_control(params = {}, options = {})
498
+ req = build_request(:get_control, params)
499
+ req.send_request(options)
500
+ end
501
+
428
502
  # Returns a paginated list of common controls from the Amazon Web
429
503
  # Services Control Catalog.
430
504
  #
@@ -432,18 +506,18 @@ module Aws::ControlCatalog
432
506
  # specific objective. If you don’t provide a filter, the operation
433
507
  # returns all common controls.
434
508
  #
435
- # @option params [Types::CommonControlFilter] :common_control_filter
436
- # An optional filter that narrows the results to a specific objective.
437
- #
438
- # This filter allows you to specify one objective ARN at a time. Passing
439
- # multiple ARNs in the `CommonControlFilter` isn’t currently supported.
440
- #
441
509
  # @option params [Integer] :max_results
442
510
  # The maximum number of results on a page or for an API request call.
443
511
  #
444
512
  # @option params [String] :next_token
445
513
  # The pagination token that's used to fetch the next set of results.
446
514
  #
515
+ # @option params [Types::CommonControlFilter] :common_control_filter
516
+ # An optional filter that narrows the results to a specific objective.
517
+ #
518
+ # This filter allows you to specify one objective ARN at a time. Passing
519
+ # multiple ARNs in the `CommonControlFilter` isn’t currently supported.
520
+ #
447
521
  # @return [Types::ListCommonControlsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
448
522
  #
449
523
  # * {Types::ListCommonControlsResponse#common_controls #common_controls} => Array<Types::CommonControlSummary>
@@ -454,6 +528,8 @@ module Aws::ControlCatalog
454
528
  # @example Request syntax with placeholder values
455
529
  #
456
530
  # resp = client.list_common_controls({
531
+ # max_results: 1,
532
+ # next_token: "PaginationToken",
457
533
  # common_control_filter: {
458
534
  # objectives: [
459
535
  # {
@@ -461,22 +537,20 @@ module Aws::ControlCatalog
461
537
  # },
462
538
  # ],
463
539
  # },
464
- # max_results: 1,
465
- # next_token: "PaginationToken",
466
540
  # })
467
541
  #
468
542
  # @example Response structure
469
543
  #
470
544
  # resp.common_controls #=> Array
471
545
  # resp.common_controls[0].arn #=> String
472
- # resp.common_controls[0].create_time #=> Time
546
+ # resp.common_controls[0].name #=> String
473
547
  # resp.common_controls[0].description #=> String
474
548
  # resp.common_controls[0].domain.arn #=> String
475
549
  # resp.common_controls[0].domain.name #=> String
476
- # resp.common_controls[0].last_update_time #=> Time
477
- # resp.common_controls[0].name #=> String
478
550
  # resp.common_controls[0].objective.arn #=> String
479
551
  # resp.common_controls[0].objective.name #=> String
552
+ # resp.common_controls[0].create_time #=> Time
553
+ # resp.common_controls[0].last_update_time #=> Time
480
554
  # resp.next_token #=> String
481
555
  #
482
556
  # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListCommonControls AWS API Documentation
@@ -488,6 +562,49 @@ module Aws::ControlCatalog
488
562
  req.send_request(options)
489
563
  end
490
564
 
565
+ # Returns a paginated list of all available controls in the Amazon Web
566
+ # Services Control Catalog library. Allows you to discover available
567
+ # controls. The list of controls is given as structures of type
568
+ # *controlSummary*. The ARN is returned in the global *controlcatalog*
569
+ # format, as shown in the examples.
570
+ #
571
+ # @option params [String] :next_token
572
+ # The pagination token that's used to fetch the next set of results.
573
+ #
574
+ # @option params [Integer] :max_results
575
+ # The maximum number of results on a page or for an API request call.
576
+ #
577
+ # @return [Types::ListControlsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
578
+ #
579
+ # * {Types::ListControlsResponse#controls #controls} => Array<Types::ControlSummary>
580
+ # * {Types::ListControlsResponse#next_token #next_token} => String
581
+ #
582
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
583
+ #
584
+ # @example Request syntax with placeholder values
585
+ #
586
+ # resp = client.list_controls({
587
+ # next_token: "PaginationToken",
588
+ # max_results: 1,
589
+ # })
590
+ #
591
+ # @example Response structure
592
+ #
593
+ # resp.controls #=> Array
594
+ # resp.controls[0].arn #=> String
595
+ # resp.controls[0].name #=> String
596
+ # resp.controls[0].description #=> String
597
+ # resp.next_token #=> String
598
+ #
599
+ # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListControls AWS API Documentation
600
+ #
601
+ # @overload list_controls(params = {})
602
+ # @param [Hash] params ({})
603
+ def list_controls(params = {}, options = {})
604
+ req = build_request(:list_controls, params)
605
+ req.send_request(options)
606
+ end
607
+
491
608
  # Returns a paginated list of domains from the Amazon Web Services
492
609
  # Control Catalog.
493
610
  #
@@ -515,10 +632,10 @@ module Aws::ControlCatalog
515
632
  #
516
633
  # resp.domains #=> Array
517
634
  # resp.domains[0].arn #=> String
518
- # resp.domains[0].create_time #=> Time
635
+ # resp.domains[0].name #=> String
519
636
  # resp.domains[0].description #=> String
637
+ # resp.domains[0].create_time #=> Time
520
638
  # resp.domains[0].last_update_time #=> Time
521
- # resp.domains[0].name #=> String
522
639
  # resp.next_token #=> String
523
640
  #
524
641
  # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListDomains AWS API Documentation
@@ -551,8 +668,8 @@ module Aws::ControlCatalog
551
668
  #
552
669
  # @return [Types::ListObjectivesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
553
670
  #
554
- # * {Types::ListObjectivesResponse#next_token #next_token} => String
555
671
  # * {Types::ListObjectivesResponse#objectives #objectives} => Array<Types::ObjectiveSummary>
672
+ # * {Types::ListObjectivesResponse#next_token #next_token} => String
556
673
  #
557
674
  # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
558
675
  #
@@ -572,15 +689,15 @@ module Aws::ControlCatalog
572
689
  #
573
690
  # @example Response structure
574
691
  #
575
- # resp.next_token #=> String
576
692
  # resp.objectives #=> Array
577
693
  # resp.objectives[0].arn #=> String
578
- # resp.objectives[0].create_time #=> Time
694
+ # resp.objectives[0].name #=> String
579
695
  # resp.objectives[0].description #=> String
580
696
  # resp.objectives[0].domain.arn #=> String
581
697
  # resp.objectives[0].domain.name #=> String
698
+ # resp.objectives[0].create_time #=> Time
582
699
  # resp.objectives[0].last_update_time #=> Time
583
- # resp.objectives[0].name #=> String
700
+ # resp.next_token #=> String
584
701
  #
585
702
  # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListObjectives AWS API Documentation
586
703
  #
@@ -597,14 +714,19 @@ module Aws::ControlCatalog
597
714
  # @api private
598
715
  def build_request(operation_name, params = {})
599
716
  handlers = @handlers.for(operation_name)
717
+ tracer = config.telemetry_provider.tracer_provider.tracer(
718
+ Aws::Telemetry.module_to_tracer_name('Aws::ControlCatalog')
719
+ )
600
720
  context = Seahorse::Client::RequestContext.new(
601
721
  operation_name: operation_name,
602
722
  operation: config.api.operation(operation_name),
603
723
  client: self,
604
724
  params: params,
605
- config: config)
725
+ config: config,
726
+ tracer: tracer
727
+ )
606
728
  context[:gem_name] = 'aws-sdk-controlcatalog'
607
- context[:gem_version] = '1.6.0'
729
+ context[:gem_version] = '1.8.0'
608
730
  Seahorse::Client::Request.new(handlers, context)
609
731
  end
610
732
 
@@ -20,19 +20,30 @@ module Aws::ControlCatalog
20
20
  CommonControlFilter = Shapes::StructureShape.new(name: 'CommonControlFilter')
21
21
  CommonControlSummary = Shapes::StructureShape.new(name: 'CommonControlSummary')
22
22
  CommonControlSummaryList = Shapes::ListShape.new(name: 'CommonControlSummaryList')
23
+ ControlArn = Shapes::StringShape.new(name: 'ControlArn')
24
+ ControlBehavior = Shapes::StringShape.new(name: 'ControlBehavior')
25
+ ControlScope = Shapes::StringShape.new(name: 'ControlScope')
26
+ ControlSummary = Shapes::StructureShape.new(name: 'ControlSummary')
27
+ Controls = Shapes::ListShape.new(name: 'Controls')
28
+ DeployableRegions = Shapes::ListShape.new(name: 'DeployableRegions')
23
29
  DomainArn = Shapes::StringShape.new(name: 'DomainArn')
24
30
  DomainResourceFilter = Shapes::StructureShape.new(name: 'DomainResourceFilter')
25
31
  DomainResourceFilterList = Shapes::ListShape.new(name: 'DomainResourceFilterList')
26
32
  DomainSummary = Shapes::StructureShape.new(name: 'DomainSummary')
27
33
  DomainSummaryList = Shapes::ListShape.new(name: 'DomainSummaryList')
34
+ GetControlRequest = Shapes::StructureShape.new(name: 'GetControlRequest')
35
+ GetControlResponse = Shapes::StructureShape.new(name: 'GetControlResponse')
28
36
  InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException')
29
37
  ListCommonControlsRequest = Shapes::StructureShape.new(name: 'ListCommonControlsRequest')
30
38
  ListCommonControlsResponse = Shapes::StructureShape.new(name: 'ListCommonControlsResponse')
39
+ ListControlsRequest = Shapes::StructureShape.new(name: 'ListControlsRequest')
40
+ ListControlsResponse = Shapes::StructureShape.new(name: 'ListControlsResponse')
31
41
  ListDomainsRequest = Shapes::StructureShape.new(name: 'ListDomainsRequest')
32
42
  ListDomainsResponse = Shapes::StructureShape.new(name: 'ListDomainsResponse')
33
43
  ListObjectivesRequest = Shapes::StructureShape.new(name: 'ListObjectivesRequest')
34
44
  ListObjectivesResponse = Shapes::StructureShape.new(name: 'ListObjectivesResponse')
35
45
  MaxListCommonControlsResults = Shapes::IntegerShape.new(name: 'MaxListCommonControlsResults')
46
+ MaxListControlsResults = Shapes::IntegerShape.new(name: 'MaxListControlsResults')
36
47
  MaxListDomainsResults = Shapes::IntegerShape.new(name: 'MaxListDomainsResults')
37
48
  MaxListObjectivesResults = Shapes::IntegerShape.new(name: 'MaxListObjectivesResults')
38
49
  ObjectiveArn = Shapes::StringShape.new(name: 'ObjectiveArn')
@@ -42,6 +53,9 @@ module Aws::ControlCatalog
42
53
  ObjectiveSummary = Shapes::StructureShape.new(name: 'ObjectiveSummary')
43
54
  ObjectiveSummaryList = Shapes::ListShape.new(name: 'ObjectiveSummaryList')
44
55
  PaginationToken = Shapes::StringShape.new(name: 'PaginationToken')
56
+ RegionCode = Shapes::StringShape.new(name: 'RegionCode')
57
+ RegionConfiguration = Shapes::StructureShape.new(name: 'RegionConfiguration')
58
+ ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
45
59
  String = Shapes::StringShape.new(name: 'String')
46
60
  ThrottlingException = Shapes::StructureShape.new(name: 'ThrottlingException')
47
61
  Timestamp = Shapes::TimestampShape.new(name: 'Timestamp')
@@ -62,42 +76,69 @@ module Aws::ControlCatalog
62
76
  CommonControlFilter.struct_class = Types::CommonControlFilter
63
77
 
64
78
  CommonControlSummary.add_member(:arn, Shapes::ShapeRef.new(shape: CommonControlArn, required: true, location_name: "Arn"))
65
- CommonControlSummary.add_member(:create_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "CreateTime"))
79
+ CommonControlSummary.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Name"))
66
80
  CommonControlSummary.add_member(:description, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Description"))
67
81
  CommonControlSummary.add_member(:domain, Shapes::ShapeRef.new(shape: AssociatedDomainSummary, required: true, location_name: "Domain"))
68
- CommonControlSummary.add_member(:last_update_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "LastUpdateTime"))
69
- CommonControlSummary.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Name"))
70
82
  CommonControlSummary.add_member(:objective, Shapes::ShapeRef.new(shape: AssociatedObjectiveSummary, required: true, location_name: "Objective"))
83
+ CommonControlSummary.add_member(:create_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "CreateTime"))
84
+ CommonControlSummary.add_member(:last_update_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "LastUpdateTime"))
71
85
  CommonControlSummary.struct_class = Types::CommonControlSummary
72
86
 
73
87
  CommonControlSummaryList.member = Shapes::ShapeRef.new(shape: CommonControlSummary)
74
88
 
89
+ ControlSummary.add_member(:arn, Shapes::ShapeRef.new(shape: ControlArn, required: true, location_name: "Arn"))
90
+ ControlSummary.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Name"))
91
+ ControlSummary.add_member(:description, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Description"))
92
+ ControlSummary.struct_class = Types::ControlSummary
93
+
94
+ Controls.member = Shapes::ShapeRef.new(shape: ControlSummary)
95
+
96
+ DeployableRegions.member = Shapes::ShapeRef.new(shape: RegionCode)
97
+
75
98
  DomainResourceFilter.add_member(:arn, Shapes::ShapeRef.new(shape: DomainArn, location_name: "Arn"))
76
99
  DomainResourceFilter.struct_class = Types::DomainResourceFilter
77
100
 
78
101
  DomainResourceFilterList.member = Shapes::ShapeRef.new(shape: DomainResourceFilter)
79
102
 
80
103
  DomainSummary.add_member(:arn, Shapes::ShapeRef.new(shape: DomainArn, required: true, location_name: "Arn"))
81
- DomainSummary.add_member(:create_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "CreateTime"))
104
+ DomainSummary.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Name"))
82
105
  DomainSummary.add_member(:description, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Description"))
106
+ DomainSummary.add_member(:create_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "CreateTime"))
83
107
  DomainSummary.add_member(:last_update_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "LastUpdateTime"))
84
- DomainSummary.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Name"))
85
108
  DomainSummary.struct_class = Types::DomainSummary
86
109
 
87
110
  DomainSummaryList.member = Shapes::ShapeRef.new(shape: DomainSummary)
88
111
 
112
+ GetControlRequest.add_member(:control_arn, Shapes::ShapeRef.new(shape: ControlArn, required: true, location_name: "ControlArn"))
113
+ GetControlRequest.struct_class = Types::GetControlRequest
114
+
115
+ GetControlResponse.add_member(:arn, Shapes::ShapeRef.new(shape: ControlArn, required: true, location_name: "Arn"))
116
+ GetControlResponse.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Name"))
117
+ GetControlResponse.add_member(:description, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Description"))
118
+ GetControlResponse.add_member(:behavior, Shapes::ShapeRef.new(shape: ControlBehavior, required: true, location_name: "Behavior"))
119
+ GetControlResponse.add_member(:region_configuration, Shapes::ShapeRef.new(shape: RegionConfiguration, required: true, location_name: "RegionConfiguration"))
120
+ GetControlResponse.struct_class = Types::GetControlResponse
121
+
89
122
  InternalServerException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "Message"))
90
123
  InternalServerException.struct_class = Types::InternalServerException
91
124
 
92
- ListCommonControlsRequest.add_member(:common_control_filter, Shapes::ShapeRef.new(shape: CommonControlFilter, location_name: "CommonControlFilter"))
93
125
  ListCommonControlsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxListCommonControlsResults, location: "querystring", location_name: "maxResults"))
94
126
  ListCommonControlsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location: "querystring", location_name: "nextToken"))
127
+ ListCommonControlsRequest.add_member(:common_control_filter, Shapes::ShapeRef.new(shape: CommonControlFilter, location_name: "CommonControlFilter"))
95
128
  ListCommonControlsRequest.struct_class = Types::ListCommonControlsRequest
96
129
 
97
130
  ListCommonControlsResponse.add_member(:common_controls, Shapes::ShapeRef.new(shape: CommonControlSummaryList, required: true, location_name: "CommonControls"))
98
131
  ListCommonControlsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
99
132
  ListCommonControlsResponse.struct_class = Types::ListCommonControlsResponse
100
133
 
134
+ ListControlsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location: "querystring", location_name: "nextToken"))
135
+ ListControlsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxListControlsResults, location: "querystring", location_name: "maxResults"))
136
+ ListControlsRequest.struct_class = Types::ListControlsRequest
137
+
138
+ ListControlsResponse.add_member(:controls, Shapes::ShapeRef.new(shape: Controls, required: true, location_name: "Controls"))
139
+ ListControlsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
140
+ ListControlsResponse.struct_class = Types::ListControlsResponse
141
+
101
142
  ListDomainsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxListDomainsResults, location: "querystring", location_name: "maxResults"))
102
143
  ListDomainsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location: "querystring", location_name: "nextToken"))
103
144
  ListDomainsRequest.struct_class = Types::ListDomainsRequest
@@ -111,8 +152,8 @@ module Aws::ControlCatalog
111
152
  ListObjectivesRequest.add_member(:objective_filter, Shapes::ShapeRef.new(shape: ObjectiveFilter, location_name: "ObjectiveFilter"))
112
153
  ListObjectivesRequest.struct_class = Types::ListObjectivesRequest
113
154
 
114
- ListObjectivesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
115
155
  ListObjectivesResponse.add_member(:objectives, Shapes::ShapeRef.new(shape: ObjectiveSummaryList, required: true, location_name: "Objectives"))
156
+ ListObjectivesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken"))
116
157
  ListObjectivesResponse.struct_class = Types::ListObjectivesResponse
117
158
 
118
159
  ObjectiveFilter.add_member(:domains, Shapes::ShapeRef.new(shape: DomainResourceFilterList, location_name: "Domains"))
@@ -124,15 +165,22 @@ module Aws::ControlCatalog
124
165
  ObjectiveResourceFilterList.member = Shapes::ShapeRef.new(shape: ObjectiveResourceFilter)
125
166
 
126
167
  ObjectiveSummary.add_member(:arn, Shapes::ShapeRef.new(shape: ObjectiveArn, required: true, location_name: "Arn"))
127
- ObjectiveSummary.add_member(:create_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "CreateTime"))
168
+ ObjectiveSummary.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Name"))
128
169
  ObjectiveSummary.add_member(:description, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Description"))
129
170
  ObjectiveSummary.add_member(:domain, Shapes::ShapeRef.new(shape: AssociatedDomainSummary, required: true, location_name: "Domain"))
171
+ ObjectiveSummary.add_member(:create_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "CreateTime"))
130
172
  ObjectiveSummary.add_member(:last_update_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "LastUpdateTime"))
131
- ObjectiveSummary.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Name"))
132
173
  ObjectiveSummary.struct_class = Types::ObjectiveSummary
133
174
 
134
175
  ObjectiveSummaryList.member = Shapes::ShapeRef.new(shape: ObjectiveSummary)
135
176
 
177
+ RegionConfiguration.add_member(:scope, Shapes::ShapeRef.new(shape: ControlScope, required: true, location_name: "Scope"))
178
+ RegionConfiguration.add_member(:deployable_regions, Shapes::ShapeRef.new(shape: DeployableRegions, location_name: "DeployableRegions"))
179
+ RegionConfiguration.struct_class = Types::RegionConfiguration
180
+
181
+ ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "Message"))
182
+ ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
183
+
136
184
  ThrottlingException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "Message"))
137
185
  ThrottlingException.struct_class = Types::ThrottlingException
138
186
 
@@ -147,9 +195,10 @@ module Aws::ControlCatalog
147
195
 
148
196
  api.metadata = {
149
197
  "apiVersion" => "2018-05-10",
198
+ "auth" => ["aws.auth#sigv4"],
150
199
  "endpointPrefix" => "controlcatalog",
151
- "jsonVersion" => "1.1",
152
200
  "protocol" => "rest-json",
201
+ "protocols" => ["rest-json"],
153
202
  "serviceFullName" => "AWS Control Catalog",
154
203
  "serviceId" => "ControlCatalog",
155
204
  "signatureVersion" => "v4",
@@ -157,6 +206,19 @@ module Aws::ControlCatalog
157
206
  "uid" => "controlcatalog-2018-05-10",
158
207
  }
159
208
 
209
+ api.add_operation(:get_control, Seahorse::Model::Operation.new.tap do |o|
210
+ o.name = "GetControl"
211
+ o.http_method = "POST"
212
+ o.http_request_uri = "/get-control"
213
+ o.input = Shapes::ShapeRef.new(shape: GetControlRequest)
214
+ o.output = Shapes::ShapeRef.new(shape: GetControlResponse)
215
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
216
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
217
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
218
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
219
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
220
+ end)
221
+
160
222
  api.add_operation(:list_common_controls, Seahorse::Model::Operation.new.tap do |o|
161
223
  o.name = "ListCommonControls"
162
224
  o.http_method = "POST"
@@ -175,6 +237,24 @@ module Aws::ControlCatalog
175
237
  )
176
238
  end)
177
239
 
240
+ api.add_operation(:list_controls, Seahorse::Model::Operation.new.tap do |o|
241
+ o.name = "ListControls"
242
+ o.http_method = "POST"
243
+ o.http_request_uri = "/list-controls"
244
+ o.input = Shapes::ShapeRef.new(shape: ListControlsRequest)
245
+ o.output = Shapes::ShapeRef.new(shape: ListControlsResponse)
246
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
247
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
248
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
249
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
250
+ o[:pager] = Aws::Pager.new(
251
+ limit_key: "max_results",
252
+ tokens: {
253
+ "next_token" => "next_token"
254
+ }
255
+ )
256
+ end)
257
+
178
258
  api.add_operation(:list_domains, Seahorse::Model::Operation.new.tap do |o|
179
259
  o.name = "ListDomains"
180
260
  o.http_method = "POST"
@@ -12,6 +12,20 @@ module Aws::ControlCatalog
12
12
  # @api private
13
13
  module Endpoints
14
14
 
15
+ class GetControl
16
+ def self.build(context)
17
+ unless context.config.regional_endpoint
18
+ endpoint = context.config.endpoint.to_s
19
+ end
20
+ Aws::ControlCatalog::EndpointParameters.new(
21
+ region: context.config.region,
22
+ use_dual_stack: context.config.use_dualstack_endpoint,
23
+ use_fips: context.config.use_fips_endpoint,
24
+ endpoint: endpoint,
25
+ )
26
+ end
27
+ end
28
+
15
29
  class ListCommonControls
16
30
  def self.build(context)
17
31
  unless context.config.regional_endpoint
@@ -26,6 +40,20 @@ module Aws::ControlCatalog
26
40
  end
27
41
  end
28
42
 
43
+ class ListControls
44
+ def self.build(context)
45
+ unless context.config.regional_endpoint
46
+ endpoint = context.config.endpoint.to_s
47
+ end
48
+ Aws::ControlCatalog::EndpointParameters.new(
49
+ region: context.config.region,
50
+ use_dual_stack: context.config.use_dualstack_endpoint,
51
+ use_fips: context.config.use_fips_endpoint,
52
+ endpoint: endpoint,
53
+ )
54
+ end
55
+ end
56
+
29
57
  class ListDomains
30
58
  def self.build(context)
31
59
  unless context.config.regional_endpoint
@@ -29,6 +29,7 @@ module Aws::ControlCatalog
29
29
  # ## Error Classes
30
30
  # * {AccessDeniedException}
31
31
  # * {InternalServerException}
32
+ # * {ResourceNotFoundException}
32
33
  # * {ThrottlingException}
33
34
  # * {ValidationException}
34
35
  #
@@ -72,6 +73,21 @@ module Aws::ControlCatalog
72
73
  end
73
74
  end
74
75
 
76
+ class ResourceNotFoundException < ServiceError
77
+
78
+ # @param [Seahorse::Client::RequestContext] context
79
+ # @param [String] message
80
+ # @param [Aws::ControlCatalog::Types::ResourceNotFoundException] data
81
+ def initialize(context, message, data = Aws::EmptyStructure.new)
82
+ super(context, message, data)
83
+ end
84
+
85
+ # @return [String]
86
+ def message
87
+ @message || @data[:message]
88
+ end
89
+ end
90
+
75
91
  class ThrottlingException < ServiceError
76
92
 
77
93
  # @param [Seahorse::Client::RequestContext] context
@@ -58,8 +58,12 @@ module Aws::ControlCatalog
58
58
 
59
59
  def parameters_for_operation(context)
60
60
  case context.operation_name
61
+ when :get_control
62
+ Aws::ControlCatalog::Endpoints::GetControl.build(context)
61
63
  when :list_common_controls
62
64
  Aws::ControlCatalog::Endpoints::ListCommonControls.build(context)
65
+ when :list_controls
66
+ Aws::ControlCatalog::Endpoints::ListControls.build(context)
63
67
  when :list_domains
64
68
  Aws::ControlCatalog::Endpoints::ListDomains.build(context)
65
69
  when :list_objectives
@@ -86,9 +86,9 @@ module Aws::ControlCatalog
86
86
  # The Amazon Resource Name (ARN) that identifies the common control.
87
87
  # @return [String]
88
88
  #
89
- # @!attribute [rw] create_time
90
- # The time when the common control was created.
91
- # @return [Time]
89
+ # @!attribute [rw] name
90
+ # The name of the common control.
91
+ # @return [String]
92
92
  #
93
93
  # @!attribute [rw] description
94
94
  # The description of the common control.
@@ -98,28 +98,53 @@ module Aws::ControlCatalog
98
98
  # The domain that the common control belongs to.
99
99
  # @return [Types::AssociatedDomainSummary]
100
100
  #
101
- # @!attribute [rw] last_update_time
102
- # The time when the common control was most recently updated.
103
- # @return [Time]
104
- #
105
- # @!attribute [rw] name
106
- # The name of the common control.
107
- # @return [String]
108
- #
109
101
  # @!attribute [rw] objective
110
102
  # The objective that the common control belongs to.
111
103
  # @return [Types::AssociatedObjectiveSummary]
112
104
  #
105
+ # @!attribute [rw] create_time
106
+ # The time when the common control was created.
107
+ # @return [Time]
108
+ #
109
+ # @!attribute [rw] last_update_time
110
+ # The time when the common control was most recently updated.
111
+ # @return [Time]
112
+ #
113
113
  # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/CommonControlSummary AWS API Documentation
114
114
  #
115
115
  class CommonControlSummary < Struct.new(
116
116
  :arn,
117
- :create_time,
117
+ :name,
118
118
  :description,
119
119
  :domain,
120
- :last_update_time,
120
+ :objective,
121
+ :create_time,
122
+ :last_update_time)
123
+ SENSITIVE = []
124
+ include Aws::Structure
125
+ end
126
+
127
+ # Overview of information about a control.
128
+ #
129
+ # @!attribute [rw] arn
130
+ # The Amazon Resource Name (ARN) of the control.
131
+ # @return [String]
132
+ #
133
+ # @!attribute [rw] name
134
+ # The display name of the control.
135
+ # @return [String]
136
+ #
137
+ # @!attribute [rw] description
138
+ # A description of the control, as it may appear in the console.
139
+ # Describes the functionality of the control.
140
+ # @return [String]
141
+ #
142
+ # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ControlSummary AWS API Documentation
143
+ #
144
+ class ControlSummary < Struct.new(
145
+ :arn,
121
146
  :name,
122
- :objective)
147
+ :description)
123
148
  SENSITIVE = []
124
149
  include Aws::Structure
125
150
  end
@@ -144,30 +169,102 @@ module Aws::ControlCatalog
144
169
  # The Amazon Resource Name (ARN) that identifies the domain.
145
170
  # @return [String]
146
171
  #
147
- # @!attribute [rw] create_time
148
- # The time when the domain was created.
149
- # @return [Time]
172
+ # @!attribute [rw] name
173
+ # The name of the domain.
174
+ # @return [String]
150
175
  #
151
176
  # @!attribute [rw] description
152
177
  # The description of the domain.
153
178
  # @return [String]
154
179
  #
180
+ # @!attribute [rw] create_time
181
+ # The time when the domain was created.
182
+ # @return [Time]
183
+ #
155
184
  # @!attribute [rw] last_update_time
156
185
  # The time when the domain was most recently updated.
157
186
  # @return [Time]
158
187
  #
159
- # @!attribute [rw] name
160
- # The name of the domain.
161
- # @return [String]
162
- #
163
188
  # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/DomainSummary AWS API Documentation
164
189
  #
165
190
  class DomainSummary < Struct.new(
166
191
  :arn,
192
+ :name,
193
+ :description,
167
194
  :create_time,
195
+ :last_update_time)
196
+ SENSITIVE = []
197
+ include Aws::Structure
198
+ end
199
+
200
+ # @!attribute [rw] control_arn
201
+ # The Amazon Resource Name (ARN) of the control. It has one of the
202
+ # following formats:
203
+ #
204
+ # *Global format*
205
+ #
206
+ # `arn:\{PARTITION\}:controlcatalog:::control/\{CONTROL_CATALOG_OPAQUE_ID\}`
207
+ #
208
+ # *Or Regional format*
209
+ #
210
+ # `arn:\{PARTITION\}:controltower:\{REGION\}::control/\{CONTROL_TOWER_OPAQUE_ID\}`
211
+ #
212
+ # Here is a more general pattern that covers Amazon Web Services
213
+ # Control Tower and Control Catalog ARNs:
214
+ #
215
+ # `^arn:(aws(?:[-a-z]*)?):(controlcatalog|controltower):[a-zA-Z0-9-]*::control/[0-9a-zA-Z_\\-]+$`
216
+ # @return [String]
217
+ #
218
+ # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/GetControlRequest AWS API Documentation
219
+ #
220
+ class GetControlRequest < Struct.new(
221
+ :control_arn)
222
+ SENSITIVE = []
223
+ include Aws::Structure
224
+ end
225
+
226
+ # @!attribute [rw] arn
227
+ # The Amazon Resource Name (ARN) of the control.
228
+ # @return [String]
229
+ #
230
+ # @!attribute [rw] name
231
+ # The display name of the control.
232
+ # @return [String]
233
+ #
234
+ # @!attribute [rw] description
235
+ # A description of what the control does.
236
+ # @return [String]
237
+ #
238
+ # @!attribute [rw] behavior
239
+ # A term that identifies the control's functional behavior. One of
240
+ # `Preventive`, `Deteictive`, `Proactive`
241
+ # @return [String]
242
+ #
243
+ # @!attribute [rw] region_configuration
244
+ # Returns information about the control, including the scope of the
245
+ # control, if enabled, and the Regions in which the control currently
246
+ # is available for deployment.
247
+ #
248
+ # If you are applying controls through an Amazon Web Services Control
249
+ # Tower landing zone environment, remember that the values returned in
250
+ # the `RegionConfiguration` API operation are not related to the
251
+ # governed Regions in your landing zone. For example, if you are
252
+ # governing Regions `A`,`B`,and `C` while the control is available in
253
+ # Regions `A`, `B`, C`,` and `D`, you'd see a response with
254
+ # `DeployableRegions` of `A`, `B`, `C`, and `D` for a control with
255
+ # `REGIONAL` scope, even though you may not intend to deploy the
256
+ # control in Region `D`, because you do not govern it through your
257
+ # landing zone.
258
+ # @return [Types::RegionConfiguration]
259
+ #
260
+ # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/GetControlResponse AWS API Documentation
261
+ #
262
+ class GetControlResponse < Struct.new(
263
+ :arn,
264
+ :name,
168
265
  :description,
169
- :last_update_time,
170
- :name)
266
+ :behavior,
267
+ :region_configuration)
171
268
  SENSITIVE = []
172
269
  include Aws::Structure
173
270
  end
@@ -186,14 +283,6 @@ module Aws::ControlCatalog
186
283
  include Aws::Structure
187
284
  end
188
285
 
189
- # @!attribute [rw] common_control_filter
190
- # An optional filter that narrows the results to a specific objective.
191
- #
192
- # This filter allows you to specify one objective ARN at a time.
193
- # Passing multiple ARNs in the `CommonControlFilter` isn’t currently
194
- # supported.
195
- # @return [Types::CommonControlFilter]
196
- #
197
286
  # @!attribute [rw] max_results
198
287
  # The maximum number of results on a page or for an API request call.
199
288
  # @return [Integer]
@@ -202,12 +291,20 @@ module Aws::ControlCatalog
202
291
  # The pagination token that's used to fetch the next set of results.
203
292
  # @return [String]
204
293
  #
294
+ # @!attribute [rw] common_control_filter
295
+ # An optional filter that narrows the results to a specific objective.
296
+ #
297
+ # This filter allows you to specify one objective ARN at a time.
298
+ # Passing multiple ARNs in the `CommonControlFilter` isn’t currently
299
+ # supported.
300
+ # @return [Types::CommonControlFilter]
301
+ #
205
302
  # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListCommonControlsRequest AWS API Documentation
206
303
  #
207
304
  class ListCommonControlsRequest < Struct.new(
208
- :common_control_filter,
209
305
  :max_results,
210
- :next_token)
306
+ :next_token,
307
+ :common_control_filter)
211
308
  SENSITIVE = []
212
309
  include Aws::Structure
213
310
  end
@@ -230,6 +327,41 @@ module Aws::ControlCatalog
230
327
  include Aws::Structure
231
328
  end
232
329
 
330
+ # @!attribute [rw] next_token
331
+ # The pagination token that's used to fetch the next set of results.
332
+ # @return [String]
333
+ #
334
+ # @!attribute [rw] max_results
335
+ # The maximum number of results on a page or for an API request call.
336
+ # @return [Integer]
337
+ #
338
+ # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListControlsRequest AWS API Documentation
339
+ #
340
+ class ListControlsRequest < Struct.new(
341
+ :next_token,
342
+ :max_results)
343
+ SENSITIVE = []
344
+ include Aws::Structure
345
+ end
346
+
347
+ # @!attribute [rw] controls
348
+ # Returns a list of controls, given as structures of type
349
+ # *controlSummary*.
350
+ # @return [Array<Types::ControlSummary>]
351
+ #
352
+ # @!attribute [rw] next_token
353
+ # The pagination token that's used to fetch the next set of results.
354
+ # @return [String]
355
+ #
356
+ # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListControlsResponse AWS API Documentation
357
+ #
358
+ class ListControlsResponse < Struct.new(
359
+ :controls,
360
+ :next_token)
361
+ SENSITIVE = []
362
+ include Aws::Structure
363
+ end
364
+
233
365
  # @!attribute [rw] max_results
234
366
  # The maximum number of results on a page or for an API request call.
235
367
  # @return [Integer]
@@ -289,19 +421,19 @@ module Aws::ControlCatalog
289
421
  include Aws::Structure
290
422
  end
291
423
 
292
- # @!attribute [rw] next_token
293
- # The pagination token that's used to fetch the next set of results.
294
- # @return [String]
295
- #
296
424
  # @!attribute [rw] objectives
297
425
  # The list of objectives that the `ListObjectives` API returns.
298
426
  # @return [Array<Types::ObjectiveSummary>]
299
427
  #
428
+ # @!attribute [rw] next_token
429
+ # The pagination token that's used to fetch the next set of results.
430
+ # @return [String]
431
+ #
300
432
  # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListObjectivesResponse AWS API Documentation
301
433
  #
302
434
  class ListObjectivesResponse < Struct.new(
303
- :next_token,
304
- :objectives)
435
+ :objectives,
436
+ :next_token)
305
437
  SENSITIVE = []
306
438
  include Aws::Structure
307
439
  end
@@ -345,9 +477,9 @@ module Aws::ControlCatalog
345
477
  # The Amazon Resource Name (ARN) that identifies the objective.
346
478
  # @return [String]
347
479
  #
348
- # @!attribute [rw] create_time
349
- # The time when the objective was created.
350
- # @return [Time]
480
+ # @!attribute [rw] name
481
+ # The name of the objective.
482
+ # @return [String]
351
483
  #
352
484
  # @!attribute [rw] description
353
485
  # The description of the objective.
@@ -357,23 +489,76 @@ module Aws::ControlCatalog
357
489
  # The domain that the objective belongs to.
358
490
  # @return [Types::AssociatedDomainSummary]
359
491
  #
492
+ # @!attribute [rw] create_time
493
+ # The time when the objective was created.
494
+ # @return [Time]
495
+ #
360
496
  # @!attribute [rw] last_update_time
361
497
  # The time when the objective was most recently updated.
362
498
  # @return [Time]
363
499
  #
364
- # @!attribute [rw] name
365
- # The name of the objective.
366
- # @return [String]
367
- #
368
500
  # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ObjectiveSummary AWS API Documentation
369
501
  #
370
502
  class ObjectiveSummary < Struct.new(
371
503
  :arn,
372
- :create_time,
504
+ :name,
373
505
  :description,
374
506
  :domain,
375
- :last_update_time,
376
- :name)
507
+ :create_time,
508
+ :last_update_time)
509
+ SENSITIVE = []
510
+ include Aws::Structure
511
+ end
512
+
513
+ # Returns information about the control, including the scope of the
514
+ # control, if enabled, and the Regions in which the control currently is
515
+ # available for deployment.
516
+ #
517
+ # If you are applying controls through an Amazon Web Services Control
518
+ # Tower landing zone environment, remember that the values returned in
519
+ # the `RegionConfiguration` API operation are not related to the
520
+ # governed Regions in your landing zone. For example, if you are
521
+ # governing Regions `A`,`B`,and `C` while the control is available in
522
+ # Regions `A`, `B`, C`,` and `D`, you'd see a response with
523
+ # `DeployableRegions` of `A`, `B`, `C`, and `D` for a control with
524
+ # `REGIONAL` scope, even though you may not intend to deploy the control
525
+ # in Region `D`, because you do not govern it through your landing zone.
526
+ #
527
+ # @!attribute [rw] scope
528
+ # The coverage of the control, if deployed. Scope is an enumerated
529
+ # type, with value `Regional`, or `Global`. A control with Global
530
+ # scope is effective in all Amazon Web Services Regions, regardless of
531
+ # the Region from which it is enabled, or to which it is deployed. A
532
+ # control implemented by an SCP is usually Global in scope. A control
533
+ # with Regional scope has operations that are restricted specifically
534
+ # to the Region from which it is enabled and to which it is deployed.
535
+ # Controls implemented by Config rules and CloudFormation hooks
536
+ # usually are Regional in scope. Security Hub controls usually are
537
+ # Regional in scope.
538
+ # @return [String]
539
+ #
540
+ # @!attribute [rw] deployable_regions
541
+ # Regions in which the control is available to be deployed.
542
+ # @return [Array<String>]
543
+ #
544
+ # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/RegionConfiguration AWS API Documentation
545
+ #
546
+ class RegionConfiguration < Struct.new(
547
+ :scope,
548
+ :deployable_regions)
549
+ SENSITIVE = []
550
+ include Aws::Structure
551
+ end
552
+
553
+ # The requested resource does not exist.
554
+ #
555
+ # @!attribute [rw] message
556
+ # @return [String]
557
+ #
558
+ # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ResourceNotFoundException AWS API Documentation
559
+ #
560
+ class ResourceNotFoundException < Struct.new(
561
+ :message)
377
562
  SENSITIVE = []
378
563
  include Aws::Structure
379
564
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ require 'aws-sdk-core/waiters'
11
+
12
+ module Aws::ControlCatalog
13
+ module Waiters
14
+ end
15
+ end
@@ -16,6 +16,7 @@ require_relative 'aws-sdk-controlcatalog/client_api'
16
16
  require_relative 'aws-sdk-controlcatalog/plugins/endpoints.rb'
17
17
  require_relative 'aws-sdk-controlcatalog/client'
18
18
  require_relative 'aws-sdk-controlcatalog/errors'
19
+ require_relative 'aws-sdk-controlcatalog/waiters'
19
20
  require_relative 'aws-sdk-controlcatalog/resource'
20
21
  require_relative 'aws-sdk-controlcatalog/endpoint_parameters'
21
22
  require_relative 'aws-sdk-controlcatalog/endpoint_provider'
@@ -32,7 +33,7 @@ require_relative 'aws-sdk-controlcatalog/customizations'
32
33
  # structure.
33
34
  #
34
35
  # control_catalog = Aws::ControlCatalog::Client.new
35
- # resp = control_catalog.list_common_controls(params)
36
+ # resp = control_catalog.get_control(params)
36
37
  #
37
38
  # See {Client} for more information.
38
39
  #
@@ -52,6 +53,6 @@ require_relative 'aws-sdk-controlcatalog/customizations'
52
53
  # @!group service
53
54
  module Aws::ControlCatalog
54
55
 
55
- GEM_VERSION = '1.6.0'
56
+ GEM_VERSION = '1.8.0'
56
57
 
57
58
  end
data/sig/client.rbs CHANGED
@@ -50,6 +50,7 @@ module Aws
50
50
  ?session_token: String,
51
51
  ?sigv4a_signing_region_set: Array[String],
52
52
  ?stub_responses: untyped,
53
+ ?telemetry_provider: Aws::Telemetry::TelemetryProviderBase,
53
54
  ?token_provider: untyped,
54
55
  ?use_dualstack_endpoint: bool,
55
56
  ?use_fips_endpoint: bool,
@@ -73,6 +74,20 @@ module Aws
73
74
  | (?Hash[Symbol, untyped]) -> instance
74
75
 
75
76
 
77
+ interface _GetControlResponseSuccess
78
+ include ::Seahorse::Client::_ResponseSuccess[Types::GetControlResponse]
79
+ def arn: () -> ::String
80
+ def name: () -> ::String
81
+ def description: () -> ::String
82
+ def behavior: () -> ("PREVENTIVE" | "PROACTIVE" | "DETECTIVE")
83
+ def region_configuration: () -> Types::RegionConfiguration
84
+ end
85
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ControlCatalog/Client.html#get_control-instance_method
86
+ def get_control: (
87
+ control_arn: ::String
88
+ ) -> _GetControlResponseSuccess
89
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetControlResponseSuccess
90
+
76
91
  interface _ListCommonControlsResponseSuccess
77
92
  include ::Seahorse::Client::_ResponseSuccess[Types::ListCommonControlsResponse]
78
93
  def common_controls: () -> ::Array[Types::CommonControlSummary]
@@ -80,18 +95,30 @@ module Aws
80
95
  end
81
96
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ControlCatalog/Client.html#list_common_controls-instance_method
82
97
  def list_common_controls: (
98
+ ?max_results: ::Integer,
99
+ ?next_token: ::String,
83
100
  ?common_control_filter: {
84
101
  objectives: Array[
85
102
  {
86
103
  arn: ::String?
87
104
  },
88
105
  ]?
89
- },
90
- ?max_results: ::Integer,
91
- ?next_token: ::String
106
+ }
92
107
  ) -> _ListCommonControlsResponseSuccess
93
108
  | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListCommonControlsResponseSuccess
94
109
 
110
+ interface _ListControlsResponseSuccess
111
+ include ::Seahorse::Client::_ResponseSuccess[Types::ListControlsResponse]
112
+ def controls: () -> ::Array[Types::ControlSummary]
113
+ def next_token: () -> ::String
114
+ end
115
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ControlCatalog/Client.html#list_controls-instance_method
116
+ def list_controls: (
117
+ ?next_token: ::String,
118
+ ?max_results: ::Integer
119
+ ) -> _ListControlsResponseSuccess
120
+ | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListControlsResponseSuccess
121
+
95
122
  interface _ListDomainsResponseSuccess
96
123
  include ::Seahorse::Client::_ResponseSuccess[Types::ListDomainsResponse]
97
124
  def domains: () -> ::Array[Types::DomainSummary]
@@ -106,8 +133,8 @@ module Aws
106
133
 
107
134
  interface _ListObjectivesResponseSuccess
108
135
  include ::Seahorse::Client::_ResponseSuccess[Types::ListObjectivesResponse]
109
- def next_token: () -> ::String
110
136
  def objectives: () -> ::Array[Types::ObjectiveSummary]
137
+ def next_token: () -> ::String
111
138
  end
112
139
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ControlCatalog/Client.html#list_objectives-instance_method
113
140
  def list_objectives: (
data/sig/errors.rbs CHANGED
@@ -17,6 +17,9 @@ module Aws
17
17
  class InternalServerException < ::Aws::Errors::ServiceError
18
18
  def message: () -> ::String
19
19
  end
20
+ class ResourceNotFoundException < ::Aws::Errors::ServiceError
21
+ def message: () -> ::String
22
+ end
20
23
  class ThrottlingException < ::Aws::Errors::ServiceError
21
24
  def message: () -> ::String
22
25
  end
data/sig/resource.rbs CHANGED
@@ -50,6 +50,7 @@ module Aws
50
50
  ?session_token: String,
51
51
  ?sigv4a_signing_region_set: Array[String],
52
52
  ?stub_responses: untyped,
53
+ ?telemetry_provider: Aws::Telemetry::TelemetryProviderBase,
53
54
  ?token_provider: untyped,
54
55
  ?use_dualstack_endpoint: bool,
55
56
  ?use_fips_endpoint: bool,
data/sig/types.rbs CHANGED
@@ -32,12 +32,19 @@ module Aws::ControlCatalog
32
32
 
33
33
  class CommonControlSummary
34
34
  attr_accessor arn: ::String
35
- attr_accessor create_time: ::Time
35
+ attr_accessor name: ::String
36
36
  attr_accessor description: ::String
37
37
  attr_accessor domain: Types::AssociatedDomainSummary
38
+ attr_accessor objective: Types::AssociatedObjectiveSummary
39
+ attr_accessor create_time: ::Time
38
40
  attr_accessor last_update_time: ::Time
41
+ SENSITIVE: []
42
+ end
43
+
44
+ class ControlSummary
45
+ attr_accessor arn: ::String
39
46
  attr_accessor name: ::String
40
- attr_accessor objective: Types::AssociatedObjectiveSummary
47
+ attr_accessor description: ::String
41
48
  SENSITIVE: []
42
49
  end
43
50
 
@@ -48,10 +55,24 @@ module Aws::ControlCatalog
48
55
 
49
56
  class DomainSummary
50
57
  attr_accessor arn: ::String
51
- attr_accessor create_time: ::Time
58
+ attr_accessor name: ::String
52
59
  attr_accessor description: ::String
60
+ attr_accessor create_time: ::Time
53
61
  attr_accessor last_update_time: ::Time
62
+ SENSITIVE: []
63
+ end
64
+
65
+ class GetControlRequest
66
+ attr_accessor control_arn: ::String
67
+ SENSITIVE: []
68
+ end
69
+
70
+ class GetControlResponse
71
+ attr_accessor arn: ::String
54
72
  attr_accessor name: ::String
73
+ attr_accessor description: ::String
74
+ attr_accessor behavior: ("PREVENTIVE" | "PROACTIVE" | "DETECTIVE")
75
+ attr_accessor region_configuration: Types::RegionConfiguration
55
76
  SENSITIVE: []
56
77
  end
57
78
 
@@ -61,9 +82,9 @@ module Aws::ControlCatalog
61
82
  end
62
83
 
63
84
  class ListCommonControlsRequest
64
- attr_accessor common_control_filter: Types::CommonControlFilter
65
85
  attr_accessor max_results: ::Integer
66
86
  attr_accessor next_token: ::String
87
+ attr_accessor common_control_filter: Types::CommonControlFilter
67
88
  SENSITIVE: []
68
89
  end
69
90
 
@@ -73,6 +94,18 @@ module Aws::ControlCatalog
73
94
  SENSITIVE: []
74
95
  end
75
96
 
97
+ class ListControlsRequest
98
+ attr_accessor next_token: ::String
99
+ attr_accessor max_results: ::Integer
100
+ SENSITIVE: []
101
+ end
102
+
103
+ class ListControlsResponse
104
+ attr_accessor controls: ::Array[Types::ControlSummary]
105
+ attr_accessor next_token: ::String
106
+ SENSITIVE: []
107
+ end
108
+
76
109
  class ListDomainsRequest
77
110
  attr_accessor max_results: ::Integer
78
111
  attr_accessor next_token: ::String
@@ -93,8 +126,8 @@ module Aws::ControlCatalog
93
126
  end
94
127
 
95
128
  class ListObjectivesResponse
96
- attr_accessor next_token: ::String
97
129
  attr_accessor objectives: ::Array[Types::ObjectiveSummary]
130
+ attr_accessor next_token: ::String
98
131
  SENSITIVE: []
99
132
  end
100
133
 
@@ -110,11 +143,22 @@ module Aws::ControlCatalog
110
143
 
111
144
  class ObjectiveSummary
112
145
  attr_accessor arn: ::String
113
- attr_accessor create_time: ::Time
146
+ attr_accessor name: ::String
114
147
  attr_accessor description: ::String
115
148
  attr_accessor domain: Types::AssociatedDomainSummary
149
+ attr_accessor create_time: ::Time
116
150
  attr_accessor last_update_time: ::Time
117
- attr_accessor name: ::String
151
+ SENSITIVE: []
152
+ end
153
+
154
+ class RegionConfiguration
155
+ attr_accessor scope: ("GLOBAL" | "REGIONAL")
156
+ attr_accessor deployable_regions: ::Array[::String]
157
+ SENSITIVE: []
158
+ end
159
+
160
+ class ResourceNotFoundException
161
+ attr_accessor message: ::String
118
162
  SENSITIVE: []
119
163
  end
120
164
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-controlcatalog
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-02 00:00:00.000000000 Z
11
+ date: 2024-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.201.0
22
+ version: 3.203.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,21 +29,21 @@ dependencies:
29
29
  version: '3'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 3.201.0
32
+ version: 3.203.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: aws-sigv4
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.1'
39
+ version: '1.5'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.1'
46
+ version: '1.5'
47
47
  description: Official AWS Ruby gem for AWS Control Catalog. This gem is part of the
48
48
  AWS SDK for Ruby.
49
49
  email:
@@ -66,6 +66,7 @@ files:
66
66
  - lib/aws-sdk-controlcatalog/plugins/endpoints.rb
67
67
  - lib/aws-sdk-controlcatalog/resource.rb
68
68
  - lib/aws-sdk-controlcatalog/types.rb
69
+ - lib/aws-sdk-controlcatalog/waiters.rb
69
70
  - sig/client.rbs
70
71
  - sig/errors.rbs
71
72
  - sig/resource.rbs