aws-sdk-controlcatalog 1.6.0 → 1.7.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: 4adf62891e016d196a915a043344cd01d4d340b826067265f1c74ecbe1e13425
4
+ data.tar.gz: bdc5f61f1bb6dd08c7f0ad0178b4f1ac41e78ecca19661bd8db7e310374b318b
5
5
  SHA512:
6
- metadata.gz: 7aa4ba00fc41a3c4009daba78af85ddf91b1f51a0fb1512b3675e5dd36089e84e087f3b0f094dbefb7e68bd38ec4f804f74c02cf6180edb756439f1f5546aaaa
7
- data.tar.gz: 5ddf730729b817ea13c48f59ba74a8aeead95186187ea2c1ee6d30deee75cb0fe1727d5b4ae5968224592af970fa0fbc526501e67893fa8894000f4c529a16fb
6
+ metadata.gz: 0a3df13f823fac2d935b536172cceb591402012d7027b5cd53b6c96087b2d36e08d999597f258d864f543a7d9fe3f5c934c781e8c59924dbc99b91e8868c5bc9
7
+ data.tar.gz: 4afd3291addf59a48ab7229ac22dfad001f7350f457326f166cbc7448ce2af58cc28641c25ec2b701eec9b168a318b46e3835bdaec84452ead6fb03cbf97dc72
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.7.0 (2024-08-01)
5
+ ------------------
6
+
7
+ * 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.
8
+
4
9
  1.6.0 (2024-07-02)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.6.0
1
+ 1.7.0
@@ -425,6 +425,68 @@ module Aws::ControlCatalog
425
425
 
426
426
  # @!group API Operations
427
427
 
428
+ # Returns details about a specific control, most notably a list of
429
+ # Amazon Web Services Regions where this control is supported. Input a
430
+ # value for the *ControlArn* parameter, in ARN form. `GetControl`
431
+ # accepts *controltower* or *controlcatalog* control ARNs as input.
432
+ # Returns a *controlcatalog* ARN format.
433
+ #
434
+ # In the API response, controls that have the value `GLOBAL` in the
435
+ # `Scope` field do not show the `DeployableRegions` field, because it
436
+ # does not apply. Controls that have the value `REGIONAL` in the `Scope`
437
+ # field return a value for the `DeployableRegions` field, as shown in
438
+ # the example.
439
+ #
440
+ # @option params [required, String] :control_arn
441
+ # The Amazon Resource Name (ARN) of the control. It has one of the
442
+ # following formats:
443
+ #
444
+ # *Global format*
445
+ #
446
+ # `arn:\{PARTITION\}:controlcatalog:::control/\{CONTROL_CATALOG_OPAQUE_ID\}`
447
+ #
448
+ # *Or Regional format*
449
+ #
450
+ # `arn:\{PARTITION\}:controltower:\{REGION\}::control/\{CONTROL_TOWER_OPAQUE_ID\}`
451
+ #
452
+ # Here is a more general pattern that covers Amazon Web Services Control
453
+ # Tower and Control Catalog ARNs:
454
+ #
455
+ # `^arn:(aws(?:[-a-z]*)?):(controlcatalog|controltower):[a-zA-Z0-9-]*::control/[0-9a-zA-Z_\\-]+$`
456
+ #
457
+ # @return [Types::GetControlResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
458
+ #
459
+ # * {Types::GetControlResponse#arn #arn} => String
460
+ # * {Types::GetControlResponse#name #name} => String
461
+ # * {Types::GetControlResponse#description #description} => String
462
+ # * {Types::GetControlResponse#behavior #behavior} => String
463
+ # * {Types::GetControlResponse#region_configuration #region_configuration} => Types::RegionConfiguration
464
+ #
465
+ # @example Request syntax with placeholder values
466
+ #
467
+ # resp = client.get_control({
468
+ # control_arn: "ControlArn", # required
469
+ # })
470
+ #
471
+ # @example Response structure
472
+ #
473
+ # resp.arn #=> String
474
+ # resp.name #=> String
475
+ # resp.description #=> String
476
+ # resp.behavior #=> String, one of "PREVENTIVE", "PROACTIVE", "DETECTIVE"
477
+ # resp.region_configuration.scope #=> String, one of "GLOBAL", "REGIONAL"
478
+ # resp.region_configuration.deployable_regions #=> Array
479
+ # resp.region_configuration.deployable_regions[0] #=> String
480
+ #
481
+ # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/GetControl AWS API Documentation
482
+ #
483
+ # @overload get_control(params = {})
484
+ # @param [Hash] params ({})
485
+ def get_control(params = {}, options = {})
486
+ req = build_request(:get_control, params)
487
+ req.send_request(options)
488
+ end
489
+
428
490
  # Returns a paginated list of common controls from the Amazon Web
429
491
  # Services Control Catalog.
430
492
  #
@@ -432,18 +494,18 @@ module Aws::ControlCatalog
432
494
  # specific objective. If you don’t provide a filter, the operation
433
495
  # returns all common controls.
434
496
  #
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
497
  # @option params [Integer] :max_results
442
498
  # The maximum number of results on a page or for an API request call.
443
499
  #
444
500
  # @option params [String] :next_token
445
501
  # The pagination token that's used to fetch the next set of results.
446
502
  #
503
+ # @option params [Types::CommonControlFilter] :common_control_filter
504
+ # An optional filter that narrows the results to a specific objective.
505
+ #
506
+ # This filter allows you to specify one objective ARN at a time. Passing
507
+ # multiple ARNs in the `CommonControlFilter` isn’t currently supported.
508
+ #
447
509
  # @return [Types::ListCommonControlsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
448
510
  #
449
511
  # * {Types::ListCommonControlsResponse#common_controls #common_controls} => Array<Types::CommonControlSummary>
@@ -454,6 +516,8 @@ module Aws::ControlCatalog
454
516
  # @example Request syntax with placeholder values
455
517
  #
456
518
  # resp = client.list_common_controls({
519
+ # max_results: 1,
520
+ # next_token: "PaginationToken",
457
521
  # common_control_filter: {
458
522
  # objectives: [
459
523
  # {
@@ -461,22 +525,20 @@ module Aws::ControlCatalog
461
525
  # },
462
526
  # ],
463
527
  # },
464
- # max_results: 1,
465
- # next_token: "PaginationToken",
466
528
  # })
467
529
  #
468
530
  # @example Response structure
469
531
  #
470
532
  # resp.common_controls #=> Array
471
533
  # resp.common_controls[0].arn #=> String
472
- # resp.common_controls[0].create_time #=> Time
534
+ # resp.common_controls[0].name #=> String
473
535
  # resp.common_controls[0].description #=> String
474
536
  # resp.common_controls[0].domain.arn #=> String
475
537
  # resp.common_controls[0].domain.name #=> String
476
- # resp.common_controls[0].last_update_time #=> Time
477
- # resp.common_controls[0].name #=> String
478
538
  # resp.common_controls[0].objective.arn #=> String
479
539
  # resp.common_controls[0].objective.name #=> String
540
+ # resp.common_controls[0].create_time #=> Time
541
+ # resp.common_controls[0].last_update_time #=> Time
480
542
  # resp.next_token #=> String
481
543
  #
482
544
  # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListCommonControls AWS API Documentation
@@ -488,6 +550,49 @@ module Aws::ControlCatalog
488
550
  req.send_request(options)
489
551
  end
490
552
 
553
+ # Returns a paginated list of all available controls in the Amazon Web
554
+ # Services Control Catalog library. Allows you to discover available
555
+ # controls. The list of controls is given as structures of type
556
+ # *controlSummary*. The ARN is returned in the global *controlcatalog*
557
+ # format, as shown in the examples.
558
+ #
559
+ # @option params [String] :next_token
560
+ # The pagination token that's used to fetch the next set of results.
561
+ #
562
+ # @option params [Integer] :max_results
563
+ # The maximum number of results on a page or for an API request call.
564
+ #
565
+ # @return [Types::ListControlsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
566
+ #
567
+ # * {Types::ListControlsResponse#controls #controls} => Array<Types::ControlSummary>
568
+ # * {Types::ListControlsResponse#next_token #next_token} => String
569
+ #
570
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
571
+ #
572
+ # @example Request syntax with placeholder values
573
+ #
574
+ # resp = client.list_controls({
575
+ # next_token: "PaginationToken",
576
+ # max_results: 1,
577
+ # })
578
+ #
579
+ # @example Response structure
580
+ #
581
+ # resp.controls #=> Array
582
+ # resp.controls[0].arn #=> String
583
+ # resp.controls[0].name #=> String
584
+ # resp.controls[0].description #=> String
585
+ # resp.next_token #=> String
586
+ #
587
+ # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListControls AWS API Documentation
588
+ #
589
+ # @overload list_controls(params = {})
590
+ # @param [Hash] params ({})
591
+ def list_controls(params = {}, options = {})
592
+ req = build_request(:list_controls, params)
593
+ req.send_request(options)
594
+ end
595
+
491
596
  # Returns a paginated list of domains from the Amazon Web Services
492
597
  # Control Catalog.
493
598
  #
@@ -515,10 +620,10 @@ module Aws::ControlCatalog
515
620
  #
516
621
  # resp.domains #=> Array
517
622
  # resp.domains[0].arn #=> String
518
- # resp.domains[0].create_time #=> Time
623
+ # resp.domains[0].name #=> String
519
624
  # resp.domains[0].description #=> String
625
+ # resp.domains[0].create_time #=> Time
520
626
  # resp.domains[0].last_update_time #=> Time
521
- # resp.domains[0].name #=> String
522
627
  # resp.next_token #=> String
523
628
  #
524
629
  # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListDomains AWS API Documentation
@@ -551,8 +656,8 @@ module Aws::ControlCatalog
551
656
  #
552
657
  # @return [Types::ListObjectivesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
553
658
  #
554
- # * {Types::ListObjectivesResponse#next_token #next_token} => String
555
659
  # * {Types::ListObjectivesResponse#objectives #objectives} => Array<Types::ObjectiveSummary>
660
+ # * {Types::ListObjectivesResponse#next_token #next_token} => String
556
661
  #
557
662
  # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
558
663
  #
@@ -572,15 +677,15 @@ module Aws::ControlCatalog
572
677
  #
573
678
  # @example Response structure
574
679
  #
575
- # resp.next_token #=> String
576
680
  # resp.objectives #=> Array
577
681
  # resp.objectives[0].arn #=> String
578
- # resp.objectives[0].create_time #=> Time
682
+ # resp.objectives[0].name #=> String
579
683
  # resp.objectives[0].description #=> String
580
684
  # resp.objectives[0].domain.arn #=> String
581
685
  # resp.objectives[0].domain.name #=> String
686
+ # resp.objectives[0].create_time #=> Time
582
687
  # resp.objectives[0].last_update_time #=> Time
583
- # resp.objectives[0].name #=> String
688
+ # resp.next_token #=> String
584
689
  #
585
690
  # @see http://docs.aws.amazon.com/goto/WebAPI/controlcatalog-2018-05-10/ListObjectives AWS API Documentation
586
691
  #
@@ -604,7 +709,7 @@ module Aws::ControlCatalog
604
709
  params: params,
605
710
  config: config)
606
711
  context[:gem_name] = 'aws-sdk-controlcatalog'
607
- context[:gem_version] = '1.6.0'
712
+ context[:gem_version] = '1.7.0'
608
713
  Seahorse::Client::Request.new(handlers, context)
609
714
  end
610
715
 
@@ -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.7.0'
56
57
 
57
58
  end
data/sig/client.rbs CHANGED
@@ -73,6 +73,20 @@ module Aws
73
73
  | (?Hash[Symbol, untyped]) -> instance
74
74
 
75
75
 
76
+ interface _GetControlResponseSuccess
77
+ include ::Seahorse::Client::_ResponseSuccess[Types::GetControlResponse]
78
+ def arn: () -> ::String
79
+ def name: () -> ::String
80
+ def description: () -> ::String
81
+ def behavior: () -> ("PREVENTIVE" | "PROACTIVE" | "DETECTIVE")
82
+ def region_configuration: () -> Types::RegionConfiguration
83
+ end
84
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ControlCatalog/Client.html#get_control-instance_method
85
+ def get_control: (
86
+ control_arn: ::String
87
+ ) -> _GetControlResponseSuccess
88
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetControlResponseSuccess
89
+
76
90
  interface _ListCommonControlsResponseSuccess
77
91
  include ::Seahorse::Client::_ResponseSuccess[Types::ListCommonControlsResponse]
78
92
  def common_controls: () -> ::Array[Types::CommonControlSummary]
@@ -80,18 +94,30 @@ module Aws
80
94
  end
81
95
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ControlCatalog/Client.html#list_common_controls-instance_method
82
96
  def list_common_controls: (
97
+ ?max_results: ::Integer,
98
+ ?next_token: ::String,
83
99
  ?common_control_filter: {
84
100
  objectives: Array[
85
101
  {
86
102
  arn: ::String?
87
103
  },
88
104
  ]?
89
- },
90
- ?max_results: ::Integer,
91
- ?next_token: ::String
105
+ }
92
106
  ) -> _ListCommonControlsResponseSuccess
93
107
  | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListCommonControlsResponseSuccess
94
108
 
109
+ interface _ListControlsResponseSuccess
110
+ include ::Seahorse::Client::_ResponseSuccess[Types::ListControlsResponse]
111
+ def controls: () -> ::Array[Types::ControlSummary]
112
+ def next_token: () -> ::String
113
+ end
114
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ControlCatalog/Client.html#list_controls-instance_method
115
+ def list_controls: (
116
+ ?next_token: ::String,
117
+ ?max_results: ::Integer
118
+ ) -> _ListControlsResponseSuccess
119
+ | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListControlsResponseSuccess
120
+
95
121
  interface _ListDomainsResponseSuccess
96
122
  include ::Seahorse::Client::_ResponseSuccess[Types::ListDomainsResponse]
97
123
  def domains: () -> ::Array[Types::DomainSummary]
@@ -106,8 +132,8 @@ module Aws
106
132
 
107
133
  interface _ListObjectivesResponseSuccess
108
134
  include ::Seahorse::Client::_ResponseSuccess[Types::ListObjectivesResponse]
109
- def next_token: () -> ::String
110
135
  def objectives: () -> ::Array[Types::ObjectiveSummary]
136
+ def next_token: () -> ::String
111
137
  end
112
138
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ControlCatalog/Client.html#list_objectives-instance_method
113
139
  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/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.7.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-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -36,14 +36,14 @@ dependencies:
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