aws-sdk-directoryservice 1.87.0 → 1.89.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: 06b63acc705e7cd07c745c9399ab15a2e155d395f4e615beb828591c9589d536
4
- data.tar.gz: 3898005eeb7e3a324a464e355f60ac195a58c406fbbf964679afcac06a8d35d4
3
+ metadata.gz: b685b03b223331dcff8506f71624a4ddb19eda3141a972c87fd52a50e5b45883
4
+ data.tar.gz: f963d7106a0cdd8195608a4bf107670e89f56c109f194c08ebb251e7d0fd3420
5
5
  SHA512:
6
- metadata.gz: 297ff19e65833976b27a3b72017fa93f4febefa6f6259ec110c7d2a3dad5c59ad94469130e15c42bd0b3bb7a34f9dd34f568c3a89dd6b30f50e54102c425ea69
7
- data.tar.gz: 3d3f4f917ca512ebd3db1606df462f8069a63b747dc07925ecdd78286017f4bcdb938e5869fd7618de3a753b5f4bf3020011fae9da408e5619c60c7d8f1a55b1
6
+ metadata.gz: e7dc33c54d2270dc38295bfc91df3fe2228c4f696bfe9e8b179487a7652dcc1df07580574127f670d93eec277e2b0621828ce9d7f9daabf38fc01ae7affe1f2a
7
+ data.tar.gz: 4540254c4bad331f5e3c4d150261fba3c412ca5cc2f8c6f583e334297cb4e3f9245d8c28cd0e23e5a46e2569c7239350966e547777d0539ba93833776ccdf94b
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.89.0 (2025-07-31)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ 1.88.0 (2025-07-30)
10
+ ------------------
11
+
12
+ * Feature - This release adds support for AWS Managed Microsoft AD Hybrid Edition, introducing new operations: StartADAssessment, DescribeADAssessment, ListADAssessments, DeleteADAssessment, CreateHybridAD, UpdateHybridAD, and DescribeHybridADUpdate; and updated existing operation: DescribeDirectories.
13
+
4
14
  1.87.0 (2025-07-21)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.87.0
1
+ 1.89.0
@@ -674,8 +674,8 @@ module Aws::DirectoryService
674
674
  # replication. For example, `us-east-1`.
675
675
  #
676
676
  # @option params [required, Types::DirectoryVpcSettings] :vpc_settings
677
- # Contains VPC information for the CreateDirectory or CreateMicrosoftAD
678
- # operation.
677
+ # Contains VPC information for the CreateDirectory, CreateMicrosoftAD,
678
+ # or CreateHybridAD operation.
679
679
  #
680
680
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
681
681
  #
@@ -1240,6 +1240,66 @@ module Aws::DirectoryService
1240
1240
  req.send_request(options)
1241
1241
  end
1242
1242
 
1243
+ # Creates a hybrid directory that connects your self-managed Active
1244
+ # Directory (AD) infrastructure and Amazon Web Services.
1245
+ #
1246
+ # You must have a successful directory assessment using
1247
+ # StartADAssessment to validate your environment compatibility before
1248
+ # you use this operation.
1249
+ #
1250
+ # Updates are applied asynchronously. Use DescribeDirectories to monitor
1251
+ # the progress of directory creation.
1252
+ #
1253
+ # @option params [required, String] :secret_arn
1254
+ # The Amazon Resource Name (ARN) of the Amazon Web Services Secrets
1255
+ # Manager secret that contains the credentials for the service account
1256
+ # used to join hybrid domain controllers to your self-managed AD domain.
1257
+ # This secret is used once and not stored.
1258
+ #
1259
+ # The secret must contain key-value pairs with keys matching
1260
+ # `customerAdAdminDomainUsername` and `customerAdAdminDomainPassword`.
1261
+ # For example:
1262
+ # `{"customerAdAdminDomainUsername":"carlos_salazar","customerAdAdminDomainPassword":"ExamplePassword123!"}`.
1263
+ #
1264
+ # @option params [required, String] :assessment_id
1265
+ # The unique identifier of the successful directory assessment that
1266
+ # validates your self-managed AD environment. You must have a successful
1267
+ # directory assessment before you create a hybrid directory.
1268
+ #
1269
+ # @option params [Array<Types::Tag>] :tags
1270
+ # The tags to be assigned to the directory. Each tag consists of a key
1271
+ # and value pair. You can specify multiple tags as a list.
1272
+ #
1273
+ # @return [Types::CreateHybridADResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1274
+ #
1275
+ # * {Types::CreateHybridADResult#directory_id #directory_id} => String
1276
+ #
1277
+ # @example Request syntax with placeholder values
1278
+ #
1279
+ # resp = client.create_hybrid_ad({
1280
+ # secret_arn: "SecretArn", # required
1281
+ # assessment_id: "AssessmentId", # required
1282
+ # tags: [
1283
+ # {
1284
+ # key: "TagKey", # required
1285
+ # value: "TagValue", # required
1286
+ # },
1287
+ # ],
1288
+ # })
1289
+ #
1290
+ # @example Response structure
1291
+ #
1292
+ # resp.directory_id #=> String
1293
+ #
1294
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateHybridAD AWS API Documentation
1295
+ #
1296
+ # @overload create_hybrid_ad(params = {})
1297
+ # @param [Hash] params ({})
1298
+ def create_hybrid_ad(params = {}, options = {})
1299
+ req = build_request(:create_hybrid_ad, params)
1300
+ req.send_request(options)
1301
+ end
1302
+
1243
1303
  # Creates a subscription to forward real-time Directory Service domain
1244
1304
  # controller security logs to the specified Amazon CloudWatch log group
1245
1305
  # in your Amazon Web Services account.
@@ -1518,6 +1578,39 @@ module Aws::DirectoryService
1518
1578
  req.send_request(options)
1519
1579
  end
1520
1580
 
1581
+ # Deletes a directory assessment and all associated data. This operation
1582
+ # permanently removes the assessment results, validation reports, and
1583
+ # configuration information.
1584
+ #
1585
+ # You cannot delete system-initiated assessments. You can delete
1586
+ # customer-created assessments even if they are in progress.
1587
+ #
1588
+ # @option params [required, String] :assessment_id
1589
+ # The unique identifier of the directory assessment to delete.
1590
+ #
1591
+ # @return [Types::DeleteADAssessmentResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1592
+ #
1593
+ # * {Types::DeleteADAssessmentResult#assessment_id #assessment_id} => String
1594
+ #
1595
+ # @example Request syntax with placeholder values
1596
+ #
1597
+ # resp = client.delete_ad_assessment({
1598
+ # assessment_id: "AssessmentId", # required
1599
+ # })
1600
+ #
1601
+ # @example Response structure
1602
+ #
1603
+ # resp.assessment_id #=> String
1604
+ #
1605
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteADAssessment AWS API Documentation
1606
+ #
1607
+ # @overload delete_ad_assessment(params = {})
1608
+ # @param [Hash] params ({})
1609
+ def delete_ad_assessment(params = {}, options = {})
1610
+ req = build_request(:delete_ad_assessment, params)
1611
+ req.send_request(options)
1612
+ end
1613
+
1521
1614
  # Deletes a conditional forwarder that has been set up for your Amazon
1522
1615
  # Web Services directory.
1523
1616
  #
@@ -1794,6 +1887,65 @@ module Aws::DirectoryService
1794
1887
  req.send_request(options)
1795
1888
  end
1796
1889
 
1890
+ # Retrieves detailed information about a directory assessment, including
1891
+ # its current status, validation results, and configuration details. Use
1892
+ # this operation to monitor assessment progress and review results.
1893
+ #
1894
+ # @option params [required, String] :assessment_id
1895
+ # The identifier of the directory assessment to describe.
1896
+ #
1897
+ # @return [Types::DescribeADAssessmentResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1898
+ #
1899
+ # * {Types::DescribeADAssessmentResult#assessment #assessment} => Types::Assessment
1900
+ # * {Types::DescribeADAssessmentResult#assessment_reports #assessment_reports} => Array&lt;Types::AssessmentReport&gt;
1901
+ #
1902
+ # @example Request syntax with placeholder values
1903
+ #
1904
+ # resp = client.describe_ad_assessment({
1905
+ # assessment_id: "AssessmentId", # required
1906
+ # })
1907
+ #
1908
+ # @example Response structure
1909
+ #
1910
+ # resp.assessment.assessment_id #=> String
1911
+ # resp.assessment.directory_id #=> String
1912
+ # resp.assessment.dns_name #=> String
1913
+ # resp.assessment.start_time #=> Time
1914
+ # resp.assessment.last_update_date_time #=> Time
1915
+ # resp.assessment.status #=> String
1916
+ # resp.assessment.status_code #=> String
1917
+ # resp.assessment.status_reason #=> String
1918
+ # resp.assessment.customer_dns_ips #=> Array
1919
+ # resp.assessment.customer_dns_ips[0] #=> String
1920
+ # resp.assessment.vpc_id #=> String
1921
+ # resp.assessment.subnet_ids #=> Array
1922
+ # resp.assessment.subnet_ids[0] #=> String
1923
+ # resp.assessment.security_group_ids #=> Array
1924
+ # resp.assessment.security_group_ids[0] #=> String
1925
+ # resp.assessment.self_managed_instance_ids #=> Array
1926
+ # resp.assessment.self_managed_instance_ids[0] #=> String
1927
+ # resp.assessment.report_type #=> String
1928
+ # resp.assessment.version #=> String
1929
+ # resp.assessment_reports #=> Array
1930
+ # resp.assessment_reports[0].domain_controller_ip #=> String
1931
+ # resp.assessment_reports[0].validations #=> Array
1932
+ # resp.assessment_reports[0].validations[0].category #=> String
1933
+ # resp.assessment_reports[0].validations[0].name #=> String
1934
+ # resp.assessment_reports[0].validations[0].status #=> String
1935
+ # resp.assessment_reports[0].validations[0].status_code #=> String
1936
+ # resp.assessment_reports[0].validations[0].status_reason #=> String
1937
+ # resp.assessment_reports[0].validations[0].start_time #=> Time
1938
+ # resp.assessment_reports[0].validations[0].last_update_date_time #=> Time
1939
+ #
1940
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeADAssessment AWS API Documentation
1941
+ #
1942
+ # @overload describe_ad_assessment(params = {})
1943
+ # @param [Hash] params ({})
1944
+ def describe_ad_assessment(params = {}, options = {})
1945
+ req = build_request(:describe_ad_assessment, params)
1946
+ req.send_request(options)
1947
+ end
1948
+
1797
1949
  # Displays information about the certificate registered for secure LDAP
1798
1950
  # or client certificate authentication.
1799
1951
  #
@@ -2115,6 +2267,10 @@ module Aws::DirectoryService
2115
2267
  # resp.directory_descriptions[0].regions_info.additional_regions #=> Array
2116
2268
  # resp.directory_descriptions[0].regions_info.additional_regions[0] #=> String
2117
2269
  # resp.directory_descriptions[0].os_version #=> String, one of "SERVER_2012", "SERVER_2019"
2270
+ # resp.directory_descriptions[0].hybrid_settings.self_managed_dns_ip_addrs #=> Array
2271
+ # resp.directory_descriptions[0].hybrid_settings.self_managed_dns_ip_addrs[0] #=> String
2272
+ # resp.directory_descriptions[0].hybrid_settings.self_managed_instance_ids #=> Array
2273
+ # resp.directory_descriptions[0].hybrid_settings.self_managed_instance_ids[0] #=> String
2118
2274
  # resp.next_token #=> String
2119
2275
  #
2120
2276
  # @see http://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDirectories AWS API Documentation
@@ -2283,6 +2439,84 @@ module Aws::DirectoryService
2283
2439
  req.send_request(options)
2284
2440
  end
2285
2441
 
2442
+ # Retrieves information about update activities for a hybrid directory.
2443
+ # This operation provides details about configuration changes,
2444
+ # administrator account updates, and self-managed instance settings (IDs
2445
+ # and DNS IPs).
2446
+ #
2447
+ # @option params [required, String] :directory_id
2448
+ # The identifier of the hybrid directory for which to retrieve update
2449
+ # information.
2450
+ #
2451
+ # @option params [String] :update_type
2452
+ # The type of update activities to retrieve. Valid values include
2453
+ # `SelfManagedInstances` and `HybridAdministratorAccount`.
2454
+ #
2455
+ # @option params [String] :next_token
2456
+ # The pagination token from a previous request to
2457
+ # DescribeHybridADUpdate. Pass null if this is the first request.
2458
+ #
2459
+ # @return [Types::DescribeHybridADUpdateResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2460
+ #
2461
+ # * {Types::DescribeHybridADUpdateResult#update_activities #update_activities} => Types::HybridUpdateActivities
2462
+ # * {Types::DescribeHybridADUpdateResult#next_token #next_token} => String
2463
+ #
2464
+ # @example Request syntax with placeholder values
2465
+ #
2466
+ # resp = client.describe_hybrid_ad_update({
2467
+ # directory_id: "DirectoryId", # required
2468
+ # update_type: "SelfManagedInstances", # accepts SelfManagedInstances, HybridAdministratorAccount
2469
+ # next_token: "NextToken",
2470
+ # })
2471
+ #
2472
+ # @example Response structure
2473
+ #
2474
+ # resp.update_activities.self_managed_instances #=> Array
2475
+ # resp.update_activities.self_managed_instances[0].status #=> String, one of "Updated", "Updating", "UpdateFailed"
2476
+ # resp.update_activities.self_managed_instances[0].status_reason #=> String
2477
+ # resp.update_activities.self_managed_instances[0].initiated_by #=> String
2478
+ # resp.update_activities.self_managed_instances[0].new_value.instance_ids #=> Array
2479
+ # resp.update_activities.self_managed_instances[0].new_value.instance_ids[0] #=> String
2480
+ # resp.update_activities.self_managed_instances[0].new_value.dns_ips #=> Array
2481
+ # resp.update_activities.self_managed_instances[0].new_value.dns_ips[0] #=> String
2482
+ # resp.update_activities.self_managed_instances[0].previous_value.instance_ids #=> Array
2483
+ # resp.update_activities.self_managed_instances[0].previous_value.instance_ids[0] #=> String
2484
+ # resp.update_activities.self_managed_instances[0].previous_value.dns_ips #=> Array
2485
+ # resp.update_activities.self_managed_instances[0].previous_value.dns_ips[0] #=> String
2486
+ # resp.update_activities.self_managed_instances[0].start_time #=> Time
2487
+ # resp.update_activities.self_managed_instances[0].last_updated_date_time #=> Time
2488
+ # resp.update_activities.self_managed_instances[0].assessment_id #=> String
2489
+ # resp.update_activities.hybrid_administrator_account #=> Array
2490
+ # resp.update_activities.hybrid_administrator_account[0].status #=> String, one of "Updated", "Updating", "UpdateFailed"
2491
+ # resp.update_activities.hybrid_administrator_account[0].status_reason #=> String
2492
+ # resp.update_activities.hybrid_administrator_account[0].initiated_by #=> String
2493
+ # resp.update_activities.hybrid_administrator_account[0].new_value.instance_ids #=> Array
2494
+ # resp.update_activities.hybrid_administrator_account[0].new_value.instance_ids[0] #=> String
2495
+ # resp.update_activities.hybrid_administrator_account[0].new_value.dns_ips #=> Array
2496
+ # resp.update_activities.hybrid_administrator_account[0].new_value.dns_ips[0] #=> String
2497
+ # resp.update_activities.hybrid_administrator_account[0].previous_value.instance_ids #=> Array
2498
+ # resp.update_activities.hybrid_administrator_account[0].previous_value.instance_ids[0] #=> String
2499
+ # resp.update_activities.hybrid_administrator_account[0].previous_value.dns_ips #=> Array
2500
+ # resp.update_activities.hybrid_administrator_account[0].previous_value.dns_ips[0] #=> String
2501
+ # resp.update_activities.hybrid_administrator_account[0].start_time #=> Time
2502
+ # resp.update_activities.hybrid_administrator_account[0].last_updated_date_time #=> Time
2503
+ # resp.update_activities.hybrid_administrator_account[0].assessment_id #=> String
2504
+ # resp.next_token #=> String
2505
+ #
2506
+ #
2507
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
2508
+ #
2509
+ # * hybrid_ad_updated
2510
+ #
2511
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeHybridADUpdate AWS API Documentation
2512
+ #
2513
+ # @overload describe_hybrid_ad_update(params = {})
2514
+ # @param [Hash] params ({})
2515
+ def describe_hybrid_ad_update(params = {}, options = {})
2516
+ req = build_request(:describe_hybrid_ad_update, params)
2517
+ req.send_request(options)
2518
+ end
2519
+
2286
2520
  # Describes the status of LDAP security for the specified directory.
2287
2521
  #
2288
2522
  # @option params [required, String] :directory_id
@@ -3215,6 +3449,59 @@ module Aws::DirectoryService
3215
3449
  req.send_request(options)
3216
3450
  end
3217
3451
 
3452
+ # Retrieves a list of directory assessments for the specified directory
3453
+ # or all assessments in your account. Use this operation to monitor
3454
+ # assessment status and manage multiple assessments.
3455
+ #
3456
+ # @option params [String] :directory_id
3457
+ # The identifier of the directory for which to list assessments. If not
3458
+ # specified, all assessments in your account are returned.
3459
+ #
3460
+ # @option params [String] :next_token
3461
+ # The pagination token from a previous request to ListADAssessments.
3462
+ # Pass null if this is the first request.
3463
+ #
3464
+ # @option params [Integer] :limit
3465
+ # The maximum number of assessment summaries to return.
3466
+ #
3467
+ # @return [Types::ListADAssessmentsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3468
+ #
3469
+ # * {Types::ListADAssessmentsResult#assessments #assessments} => Array&lt;Types::AssessmentSummary&gt;
3470
+ # * {Types::ListADAssessmentsResult#next_token #next_token} => String
3471
+ #
3472
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
3473
+ #
3474
+ # @example Request syntax with placeholder values
3475
+ #
3476
+ # resp = client.list_ad_assessments({
3477
+ # directory_id: "DirectoryId",
3478
+ # next_token: "NextToken",
3479
+ # limit: 1,
3480
+ # })
3481
+ #
3482
+ # @example Response structure
3483
+ #
3484
+ # resp.assessments #=> Array
3485
+ # resp.assessments[0].assessment_id #=> String
3486
+ # resp.assessments[0].directory_id #=> String
3487
+ # resp.assessments[0].dns_name #=> String
3488
+ # resp.assessments[0].start_time #=> Time
3489
+ # resp.assessments[0].last_update_date_time #=> Time
3490
+ # resp.assessments[0].status #=> String
3491
+ # resp.assessments[0].customer_dns_ips #=> Array
3492
+ # resp.assessments[0].customer_dns_ips[0] #=> String
3493
+ # resp.assessments[0].report_type #=> String
3494
+ # resp.next_token #=> String
3495
+ #
3496
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListADAssessments AWS API Documentation
3497
+ #
3498
+ # @overload list_ad_assessments(params = {})
3499
+ # @param [Hash] params ({})
3500
+ def list_ad_assessments(params = {}, options = {})
3501
+ req = build_request(:list_ad_assessments, params)
3502
+ req.send_request(options)
3503
+ end
3504
+
3218
3505
  # For the specified directory, lists all the certificates registered for
3219
3506
  # a secure LDAP or client certificate authentication.
3220
3507
  #
@@ -3920,6 +4207,73 @@ module Aws::DirectoryService
3920
4207
  req.send_request(options)
3921
4208
  end
3922
4209
 
4210
+ # Initiates a directory assessment to validate your self-managed AD
4211
+ # environment for hybrid domain join. The assessment checks
4212
+ # compatibility and connectivity of the self-managed AD environment.
4213
+ #
4214
+ # A directory assessment is automatically created when you create a
4215
+ # hybrid directory. There are two types of assessments: `CUSTOMER` and
4216
+ # `SYSTEM`. Your Amazon Web Services account has a limit of 100
4217
+ # `CUSTOMER` directory assessments.
4218
+ #
4219
+ # The assessment process typically takes 30 minutes or more to complete.
4220
+ # The assessment process is asynchronous and you can monitor it with
4221
+ # `DescribeADAssessment`.
4222
+ #
4223
+ # The `InstanceIds` must have a one-to-one correspondence with
4224
+ # `CustomerDnsIps`, meaning that if the IP address for instance
4225
+ # i-10243410 is 10.24.34.100 and the IP address for instance i-10243420
4226
+ # is 10.24.34.200, then the input arrays must maintain the same order
4227
+ # relationship, either \[10.24.34.100, 10.24.34.200\] paired with
4228
+ # \[i-10243410, i-10243420\] or \[10.24.34.200, 10.24.34.100\] paired
4229
+ # with \[i-10243420, i-10243410\].
4230
+ #
4231
+ # Note: You must provide exactly one `DirectoryId` or
4232
+ # `AssessmentConfiguration`.
4233
+ #
4234
+ # @option params [Types::AssessmentConfiguration] :assessment_configuration
4235
+ # Configuration parameters for the directory assessment, including DNS
4236
+ # server information, domain name, Amazon VPC subnet, and Amazon Web
4237
+ # Services System Manager managed node details.
4238
+ #
4239
+ # @option params [String] :directory_id
4240
+ # The identifier of the directory for which to perform the assessment.
4241
+ # This should be an existing directory. If the assessment is not for an
4242
+ # existing directory, this parameter should be omitted.
4243
+ #
4244
+ # @return [Types::StartADAssessmentResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4245
+ #
4246
+ # * {Types::StartADAssessmentResult#assessment_id #assessment_id} => String
4247
+ #
4248
+ # @example Request syntax with placeholder values
4249
+ #
4250
+ # resp = client.start_ad_assessment({
4251
+ # assessment_configuration: {
4252
+ # customer_dns_ips: ["IpAddr"], # required
4253
+ # dns_name: "DirectoryName", # required
4254
+ # vpc_settings: { # required
4255
+ # vpc_id: "VpcId", # required
4256
+ # subnet_ids: ["SubnetId"], # required
4257
+ # },
4258
+ # instance_ids: ["AssessmentInstanceId"], # required
4259
+ # security_group_ids: ["SecurityGroupId"],
4260
+ # },
4261
+ # directory_id: "DirectoryId",
4262
+ # })
4263
+ #
4264
+ # @example Response structure
4265
+ #
4266
+ # resp.assessment_id #=> String
4267
+ #
4268
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/StartADAssessment AWS API Documentation
4269
+ #
4270
+ # @overload start_ad_assessment(params = {})
4271
+ # @param [Hash] params ({})
4272
+ def start_ad_assessment(params = {}, options = {})
4273
+ req = build_request(:start_ad_assessment, params)
4274
+ req.send_request(options)
4275
+ end
4276
+
3923
4277
  # Applies a schema extension to a Microsoft AD directory.
3924
4278
  #
3925
4279
  # @option params [required, String] :directory_id
@@ -4111,6 +4465,82 @@ module Aws::DirectoryService
4111
4465
  req.send_request(options)
4112
4466
  end
4113
4467
 
4468
+ # Updates the configuration of an existing hybrid directory. You can
4469
+ # recover hybrid directory administrator account or modify self-managed
4470
+ # instance settings.
4471
+ #
4472
+ # Updates are applied asynchronously. Use DescribeHybridADUpdate to
4473
+ # monitor the progress of configuration changes.
4474
+ #
4475
+ # The `InstanceIds` must have a one-to-one correspondence with
4476
+ # `CustomerDnsIps`, meaning that if the IP address for instance
4477
+ # i-10243410 is 10.24.34.100 and the IP address for instance i-10243420
4478
+ # is 10.24.34.200, then the input arrays must maintain the same order
4479
+ # relationship, either \[10.24.34.100, 10.24.34.200\] paired with
4480
+ # \[i-10243410, i-10243420\] or \[10.24.34.200, 10.24.34.100\] paired
4481
+ # with \[i-10243420, i-10243410\].
4482
+ #
4483
+ # <note markdown="1"> You must provide at least one update to
4484
+ # UpdateHybridADRequest$HybridAdministratorAccountUpdate or
4485
+ # UpdateHybridADRequest$SelfManagedInstancesSettings.
4486
+ #
4487
+ # </note>
4488
+ #
4489
+ # @option params [required, String] :directory_id
4490
+ # The identifier of the hybrid directory to update.
4491
+ #
4492
+ # @option params [Types::HybridAdministratorAccountUpdate] :hybrid_administrator_account_update
4493
+ # We create a hybrid directory administrator account when we create a
4494
+ # hybrid directory. Use `HybridAdministratorAccountUpdate` to recover
4495
+ # the hybrid directory administrator account if you have deleted it.
4496
+ #
4497
+ # To recover your hybrid directory administrator account, we need
4498
+ # temporary access to a user in your self-managed AD with administrator
4499
+ # permissions in the form of a secret from Amazon Web Services Secrets
4500
+ # Manager. We use these credentials once during recovery and don't
4501
+ # store them.
4502
+ #
4503
+ # If your hybrid directory administrator account exists, then you don’t
4504
+ # need to use `HybridAdministratorAccountUpdate`, even if you have
4505
+ # updated your self-managed AD administrator user.
4506
+ #
4507
+ # @option params [Types::HybridCustomerInstancesSettings] :self_managed_instances_settings
4508
+ # Updates to the self-managed AD configuration, including DNS server IP
4509
+ # addresses and Amazon Web Services System Manager managed node
4510
+ # identifiers.
4511
+ #
4512
+ # @return [Types::UpdateHybridADResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4513
+ #
4514
+ # * {Types::UpdateHybridADResult#directory_id #directory_id} => String
4515
+ # * {Types::UpdateHybridADResult#assessment_id #assessment_id} => String
4516
+ #
4517
+ # @example Request syntax with placeholder values
4518
+ #
4519
+ # resp = client.update_hybrid_ad({
4520
+ # directory_id: "DirectoryId", # required
4521
+ # hybrid_administrator_account_update: {
4522
+ # secret_arn: "SecretArn", # required
4523
+ # },
4524
+ # self_managed_instances_settings: {
4525
+ # customer_dns_ips: ["IpAddr"], # required
4526
+ # instance_ids: ["AssessmentInstanceId"], # required
4527
+ # },
4528
+ # })
4529
+ #
4530
+ # @example Response structure
4531
+ #
4532
+ # resp.directory_id #=> String
4533
+ # resp.assessment_id #=> String
4534
+ #
4535
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateHybridAD AWS API Documentation
4536
+ #
4537
+ # @overload update_hybrid_ad(params = {})
4538
+ # @param [Hash] params ({})
4539
+ def update_hybrid_ad(params = {}, options = {})
4540
+ req = build_request(:update_hybrid_ad, params)
4541
+ req.send_request(options)
4542
+ end
4543
+
4114
4544
  # Adds or removes domain controllers to or from the directory. Based on
4115
4545
  # the difference between current value and new value (provided through
4116
4546
  # this API call), domain controllers will be added or removed. It may
@@ -4343,14 +4773,127 @@ module Aws::DirectoryService
4343
4773
  tracer: tracer
4344
4774
  )
4345
4775
  context[:gem_name] = 'aws-sdk-directoryservice'
4346
- context[:gem_version] = '1.87.0'
4776
+ context[:gem_version] = '1.89.0'
4347
4777
  Seahorse::Client::Request.new(handlers, context)
4348
4778
  end
4349
4779
 
4780
+ # Polls an API operation until a resource enters a desired state.
4781
+ #
4782
+ # ## Basic Usage
4783
+ #
4784
+ # A waiter will call an API operation until:
4785
+ #
4786
+ # * It is successful
4787
+ # * It enters a terminal state
4788
+ # * It makes the maximum number of attempts
4789
+ #
4790
+ # In between attempts, the waiter will sleep.
4791
+ #
4792
+ # # polls in a loop, sleeping between attempts
4793
+ # client.wait_until(waiter_name, params)
4794
+ #
4795
+ # ## Configuration
4796
+ #
4797
+ # You can configure the maximum number of polling attempts, and the
4798
+ # delay (in seconds) between each polling attempt. You can pass
4799
+ # configuration as the final arguments hash.
4800
+ #
4801
+ # # poll for ~25 seconds
4802
+ # client.wait_until(waiter_name, params, {
4803
+ # max_attempts: 5,
4804
+ # delay: 5,
4805
+ # })
4806
+ #
4807
+ # ## Callbacks
4808
+ #
4809
+ # You can be notified before each polling attempt and before each
4810
+ # delay. If you throw `:success` or `:failure` from these callbacks,
4811
+ # it will terminate the waiter.
4812
+ #
4813
+ # started_at = Time.now
4814
+ # client.wait_until(waiter_name, params, {
4815
+ #
4816
+ # # disable max attempts
4817
+ # max_attempts: nil,
4818
+ #
4819
+ # # poll for 1 hour, instead of a number of attempts
4820
+ # before_wait: -> (attempts, response) do
4821
+ # throw :failure if Time.now - started_at > 3600
4822
+ # end
4823
+ # })
4824
+ #
4825
+ # ## Handling Errors
4826
+ #
4827
+ # When a waiter is unsuccessful, it will raise an error.
4828
+ # All of the failure errors extend from
4829
+ # {Aws::Waiters::Errors::WaiterFailed}.
4830
+ #
4831
+ # begin
4832
+ # client.wait_until(...)
4833
+ # rescue Aws::Waiters::Errors::WaiterFailed
4834
+ # # resource did not enter the desired state in time
4835
+ # end
4836
+ #
4837
+ # ## Valid Waiters
4838
+ #
4839
+ # The following table lists the valid waiter names, the operations they call,
4840
+ # and the default `:delay` and `:max_attempts` values.
4841
+ #
4842
+ # | waiter_name | params | :delay | :max_attempts |
4843
+ # | ----------------- | ---------------------------------- | -------- | ------------- |
4844
+ # | hybrid_ad_updated | {Client#describe_hybrid_ad_update} | 120 | 60 |
4845
+ #
4846
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
4847
+ # because the waiter has entered a state that it will not transition
4848
+ # out of, preventing success.
4849
+ #
4850
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
4851
+ # maximum number of attempts have been made, and the waiter is not
4852
+ # yet successful.
4853
+ #
4854
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
4855
+ # while polling for a resource that is not expected.
4856
+ #
4857
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
4858
+ # for an unknown state.
4859
+ #
4860
+ # @return [Boolean] Returns `true` if the waiter was successful.
4861
+ # @param [Symbol] waiter_name
4862
+ # @param [Hash] params ({})
4863
+ # @param [Hash] options ({})
4864
+ # @option options [Integer] :max_attempts
4865
+ # @option options [Integer] :delay
4866
+ # @option options [Proc] :before_attempt
4867
+ # @option options [Proc] :before_wait
4868
+ def wait_until(waiter_name, params = {}, options = {})
4869
+ w = waiter(waiter_name, options)
4870
+ yield(w.waiter) if block_given? # deprecated
4871
+ w.wait(params)
4872
+ end
4873
+
4350
4874
  # @api private
4351
4875
  # @deprecated
4352
4876
  def waiter_names
4353
- []
4877
+ waiters.keys
4878
+ end
4879
+
4880
+ private
4881
+
4882
+ # @param [Symbol] waiter_name
4883
+ # @param [Hash] options ({})
4884
+ def waiter(waiter_name, options = {})
4885
+ waiter_class = waiters[waiter_name]
4886
+ if waiter_class
4887
+ waiter_class.new(options.merge(client: self))
4888
+ else
4889
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
4890
+ end
4891
+ end
4892
+
4893
+ def waiters
4894
+ {
4895
+ hybrid_ad_updated: Waiters::HybridADUpdated
4896
+ }
4354
4897
  end
4355
4898
 
4356
4899
  class << self