aws-sdk-directoryservicedata 1.0.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.
@@ -0,0 +1,1756 @@
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 'seahorse/client/plugins/content_length.rb'
11
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
12
+ require 'aws-sdk-core/plugins/logging.rb'
13
+ require 'aws-sdk-core/plugins/param_converter.rb'
14
+ require 'aws-sdk-core/plugins/param_validator.rb'
15
+ require 'aws-sdk-core/plugins/user_agent.rb'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
17
+ require 'aws-sdk-core/plugins/retry_errors.rb'
18
+ require 'aws-sdk-core/plugins/global_configuration.rb'
19
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery.rb'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
+ require 'aws-sdk-core/plugins/response_paging.rb'
23
+ require 'aws-sdk-core/plugins/stub_responses.rb'
24
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
25
+ require 'aws-sdk-core/plugins/invocation_id.rb'
26
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
27
+ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
28
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
29
+ require 'aws-sdk-core/plugins/transfer_encoding.rb'
30
+ require 'aws-sdk-core/plugins/http_checksum.rb'
31
+ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
32
+ require 'aws-sdk-core/plugins/request_compression.rb'
33
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
34
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
35
+ require 'aws-sdk-core/plugins/telemetry.rb'
36
+ require 'aws-sdk-core/plugins/sign.rb'
37
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
38
+
39
+ Aws::Plugins::GlobalConfiguration.add_identifier(:directoryservicedata)
40
+
41
+ module Aws::DirectoryServiceData
42
+ # An API client for DirectoryServiceData. To construct a client, you need to configure a `:region` and `:credentials`.
43
+ #
44
+ # client = Aws::DirectoryServiceData::Client.new(
45
+ # region: region_name,
46
+ # credentials: credentials,
47
+ # # ...
48
+ # )
49
+ #
50
+ # For details on configuring region and credentials see
51
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
52
+ #
53
+ # See {#initialize} for a full list of supported configuration options.
54
+ class Client < Seahorse::Client::Base
55
+
56
+ include Aws::ClientStubs
57
+
58
+ @identifier = :directoryservicedata
59
+
60
+ set_api(ClientApi::API)
61
+
62
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
63
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
64
+ add_plugin(Aws::Plugins::Logging)
65
+ add_plugin(Aws::Plugins::ParamConverter)
66
+ add_plugin(Aws::Plugins::ParamValidator)
67
+ add_plugin(Aws::Plugins::UserAgent)
68
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
69
+ add_plugin(Aws::Plugins::RetryErrors)
70
+ add_plugin(Aws::Plugins::GlobalConfiguration)
71
+ add_plugin(Aws::Plugins::RegionalEndpoint)
72
+ add_plugin(Aws::Plugins::EndpointDiscovery)
73
+ add_plugin(Aws::Plugins::EndpointPattern)
74
+ add_plugin(Aws::Plugins::ResponsePaging)
75
+ add_plugin(Aws::Plugins::StubResponses)
76
+ add_plugin(Aws::Plugins::IdempotencyToken)
77
+ add_plugin(Aws::Plugins::InvocationId)
78
+ add_plugin(Aws::Plugins::JsonvalueConverter)
79
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
80
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
81
+ add_plugin(Aws::Plugins::TransferEncoding)
82
+ add_plugin(Aws::Plugins::HttpChecksum)
83
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
84
+ add_plugin(Aws::Plugins::RequestCompression)
85
+ add_plugin(Aws::Plugins::DefaultsMode)
86
+ add_plugin(Aws::Plugins::RecursionDetection)
87
+ add_plugin(Aws::Plugins::Telemetry)
88
+ add_plugin(Aws::Plugins::Sign)
89
+ add_plugin(Aws::Plugins::Protocols::RestJson)
90
+ add_plugin(Aws::DirectoryServiceData::Plugins::Endpoints)
91
+
92
+ # @overload initialize(options)
93
+ # @param [Hash] options
94
+ #
95
+ # @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
96
+ # A list of plugins to apply to the client. Each plugin is either a
97
+ # class name or an instance of a plugin class.
98
+ #
99
+ # @option options [required, Aws::CredentialProvider] :credentials
100
+ # Your AWS credentials. This can be an instance of any one of the
101
+ # following classes:
102
+ #
103
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
104
+ # credentials.
105
+ #
106
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
107
+ # shared file, such as `~/.aws/config`.
108
+ #
109
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
110
+ #
111
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
112
+ # assume a role after providing credentials via the web.
113
+ #
114
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
115
+ # access token generated from `aws login`.
116
+ #
117
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
118
+ # process that outputs to stdout.
119
+ #
120
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
121
+ # from an EC2 IMDS on an EC2 instance.
122
+ #
123
+ # * `Aws::ECSCredentials` - Used for loading credentials from
124
+ # instances running in ECS.
125
+ #
126
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
127
+ # from the Cognito Identity service.
128
+ #
129
+ # When `:credentials` are not configured directly, the following
130
+ # locations will be searched for credentials:
131
+ #
132
+ # * `Aws.config[:credentials]`
133
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
134
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
135
+ # * `~/.aws/credentials`
136
+ # * `~/.aws/config`
137
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
138
+ # are very aggressive. Construct and pass an instance of
139
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
140
+ # enable retries and extended timeouts. Instance profile credential
141
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
142
+ # to true.
143
+ #
144
+ # @option options [required, String] :region
145
+ # The AWS region to connect to. The configured `:region` is
146
+ # used to determine the service `:endpoint`. When not passed,
147
+ # a default `:region` is searched for in the following locations:
148
+ #
149
+ # * `Aws.config[:region]`
150
+ # * `ENV['AWS_REGION']`
151
+ # * `ENV['AMAZON_REGION']`
152
+ # * `ENV['AWS_DEFAULT_REGION']`
153
+ # * `~/.aws/credentials`
154
+ # * `~/.aws/config`
155
+ #
156
+ # @option options [String] :access_key_id
157
+ #
158
+ # @option options [Boolean] :active_endpoint_cache (false)
159
+ # When set to `true`, a thread polling for endpoints will be running in
160
+ # the background every 60 secs (default). Defaults to `false`.
161
+ #
162
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
163
+ # Used only in `adaptive` retry mode. When true, the request will sleep
164
+ # until there is sufficent client side capacity to retry the request.
165
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
166
+ # not retry instead of sleeping.
167
+ #
168
+ # @option options [Boolean] :client_side_monitoring (false)
169
+ # When `true`, client-side metrics will be collected for all API requests from
170
+ # this client.
171
+ #
172
+ # @option options [String] :client_side_monitoring_client_id ("")
173
+ # Allows you to provide an identifier for this client which will be attached to
174
+ # all generated client side metrics. Defaults to an empty string.
175
+ #
176
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
177
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
178
+ # side monitoring agent is running on, where client metrics will be published via UDP.
179
+ #
180
+ # @option options [Integer] :client_side_monitoring_port (31000)
181
+ # Required for publishing client metrics. The port that the client side monitoring
182
+ # agent is running on, where client metrics will be published via UDP.
183
+ #
184
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
185
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
186
+ # will use the Client Side Monitoring Agent Publisher.
187
+ #
188
+ # @option options [Boolean] :convert_params (true)
189
+ # When `true`, an attempt is made to coerce request parameters into
190
+ # the required types.
191
+ #
192
+ # @option options [Boolean] :correct_clock_skew (true)
193
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
194
+ # a clock skew correction and retry requests with skewed client clocks.
195
+ #
196
+ # @option options [String] :defaults_mode ("legacy")
197
+ # See {Aws::DefaultsModeConfiguration} for a list of the
198
+ # accepted modes and the configuration defaults that are included.
199
+ #
200
+ # @option options [Boolean] :disable_host_prefix_injection (false)
201
+ # Set to true to disable SDK automatically adding host prefix
202
+ # to default service endpoint when available.
203
+ #
204
+ # @option options [Boolean] :disable_request_compression (false)
205
+ # When set to 'true' the request body will not be compressed
206
+ # for supported operations.
207
+ #
208
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
209
+ # Normally you should not configure the `:endpoint` option
210
+ # directly. This is normally constructed from the `:region`
211
+ # option. Configuring `:endpoint` is normally reserved for
212
+ # connecting to test or custom endpoints. The endpoint should
213
+ # be a URI formatted like:
214
+ #
215
+ # 'http://example.com'
216
+ # 'https://example.com'
217
+ # 'http://example.com:123'
218
+ #
219
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
220
+ # Used for the maximum size limit of the LRU cache storing endpoints data
221
+ # for endpoint discovery enabled operations. Defaults to 1000.
222
+ #
223
+ # @option options [Integer] :endpoint_cache_max_threads (10)
224
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
225
+ #
226
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
227
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
228
+ # Use this option to config the time interval in seconds for making
229
+ # requests fetching endpoints information. Defaults to 60 sec.
230
+ #
231
+ # @option options [Boolean] :endpoint_discovery (false)
232
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
233
+ #
234
+ # @option options [Boolean] :ignore_configured_endpoint_urls
235
+ # Setting to true disables use of endpoint URLs provided via environment
236
+ # variables and the shared configuration file.
237
+ #
238
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
239
+ # The log formatter.
240
+ #
241
+ # @option options [Symbol] :log_level (:info)
242
+ # The log level to send messages to the `:logger` at.
243
+ #
244
+ # @option options [Logger] :logger
245
+ # The Logger instance to send log messages to. If this option
246
+ # is not set, logging will be disabled.
247
+ #
248
+ # @option options [Integer] :max_attempts (3)
249
+ # An integer representing the maximum number attempts that will be made for
250
+ # a single request, including the initial attempt. For example,
251
+ # setting this value to 5 will result in a request being retried up to
252
+ # 4 times. Used in `standard` and `adaptive` retry modes.
253
+ #
254
+ # @option options [String] :profile ("default")
255
+ # Used when loading credentials from the shared credentials file
256
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
257
+ #
258
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
259
+ # The minimum size in bytes that triggers compression for request
260
+ # bodies. The value must be non-negative integer value between 0
261
+ # and 10485780 bytes inclusive.
262
+ #
263
+ # @option options [Proc] :retry_backoff
264
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
265
+ # This option is only used in the `legacy` retry mode.
266
+ #
267
+ # @option options [Float] :retry_base_delay (0.3)
268
+ # The base delay in seconds used by the default backoff function. This option
269
+ # is only used in the `legacy` retry mode.
270
+ #
271
+ # @option options [Symbol] :retry_jitter (:none)
272
+ # A delay randomiser function used by the default backoff function.
273
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
274
+ # otherwise a Proc that takes and returns a number. This option is only used
275
+ # in the `legacy` retry mode.
276
+ #
277
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
278
+ #
279
+ # @option options [Integer] :retry_limit (3)
280
+ # The maximum number of times to retry failed requests. Only
281
+ # ~ 500 level server errors and certain ~ 400 level client errors
282
+ # are retried. Generally, these are throttling errors, data
283
+ # checksum errors, networking errors, timeout errors, auth errors,
284
+ # endpoint discovery, and errors from expired credentials.
285
+ # This option is only used in the `legacy` retry mode.
286
+ #
287
+ # @option options [Integer] :retry_max_delay (0)
288
+ # The maximum number of seconds to delay between retries (0 for no limit)
289
+ # used by the default backoff function. This option is only used in the
290
+ # `legacy` retry mode.
291
+ #
292
+ # @option options [String] :retry_mode ("legacy")
293
+ # Specifies which retry algorithm to use. Values are:
294
+ #
295
+ # * `legacy` - The pre-existing retry behavior. This is default value if
296
+ # no retry mode is provided.
297
+ #
298
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
299
+ # This includes support for retry quotas, which limit the number of
300
+ # unsuccessful retries a client can make.
301
+ #
302
+ # * `adaptive` - An experimental retry mode that includes all the
303
+ # functionality of `standard` mode along with automatic client side
304
+ # throttling. This is a provisional mode that may change behavior
305
+ # in the future.
306
+ #
307
+ # @option options [String] :sdk_ua_app_id
308
+ # A unique and opaque application ID that is appended to the
309
+ # User-Agent header as app/sdk_ua_app_id. It should have a
310
+ # maximum length of 50. This variable is sourced from environment
311
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
312
+ #
313
+ # @option options [String] :secret_access_key
314
+ #
315
+ # @option options [String] :session_token
316
+ #
317
+ # @option options [Array] :sigv4a_signing_region_set
318
+ # A list of regions that should be signed with SigV4a signing. When
319
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
320
+ # in the following locations:
321
+ #
322
+ # * `Aws.config[:sigv4a_signing_region_set]`
323
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
324
+ # * `~/.aws/config`
325
+ #
326
+ # @option options [Boolean] :stub_responses (false)
327
+ # Causes the client to return stubbed responses. By default
328
+ # fake responses are generated and returned. You can specify
329
+ # the response data to return or errors to raise by calling
330
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
331
+ #
332
+ # ** Please note ** When response stubbing is enabled, no HTTP
333
+ # requests are made, and retries are disabled.
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
+ #
345
+ # @option options [Aws::TokenProvider] :token_provider
346
+ # A Bearer Token Provider. This can be an instance of any one of the
347
+ # following classes:
348
+ #
349
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
350
+ # tokens.
351
+ #
352
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
353
+ # access token generated from `aws login`.
354
+ #
355
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
356
+ # will be used to search for tokens configured for your profile in shared configuration files.
357
+ #
358
+ # @option options [Boolean] :use_dualstack_endpoint
359
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
360
+ # will be used if available.
361
+ #
362
+ # @option options [Boolean] :use_fips_endpoint
363
+ # When set to `true`, fips compatible endpoints will be used if available.
364
+ # When a `fips` region is used, the region is normalized and this config
365
+ # is set to `true`.
366
+ #
367
+ # @option options [Boolean] :validate_params (true)
368
+ # When `true`, request parameters are validated before
369
+ # sending the request.
370
+ #
371
+ # @option options [Aws::DirectoryServiceData::EndpointProvider] :endpoint_provider
372
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::DirectoryServiceData::EndpointParameters`
373
+ #
374
+ # @option options [Float] :http_continue_timeout (1)
375
+ # The number of seconds to wait for a 100-continue response before sending the
376
+ # request body. This option has no effect unless the request has "Expect"
377
+ # header set to "100-continue". Defaults to `nil` which disables this
378
+ # behaviour. This value can safely be set per request on the session.
379
+ #
380
+ # @option options [Float] :http_idle_timeout (5)
381
+ # The number of seconds a connection is allowed to sit idle before it
382
+ # is considered stale. Stale connections are closed and removed from the
383
+ # pool before making a request.
384
+ #
385
+ # @option options [Float] :http_open_timeout (15)
386
+ # The default number of seconds to wait for response data.
387
+ # This value can safely be set per-request on the session.
388
+ #
389
+ # @option options [URI::HTTP,String] :http_proxy
390
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
391
+ #
392
+ # @option options [Float] :http_read_timeout (60)
393
+ # The default number of seconds to wait for response data.
394
+ # This value can safely be set per-request on the session.
395
+ #
396
+ # @option options [Boolean] :http_wire_trace (false)
397
+ # When `true`, HTTP debug output will be sent to the `:logger`.
398
+ #
399
+ # @option options [Proc] :on_chunk_received
400
+ # When a Proc object is provided, it will be used as callback when each chunk
401
+ # of the response body is received. It provides three arguments: the chunk,
402
+ # the number of bytes received, and the total number of
403
+ # bytes in the response (or nil if the server did not send a `content-length`).
404
+ #
405
+ # @option options [Proc] :on_chunk_sent
406
+ # When a Proc object is provided, it will be used as callback when each chunk
407
+ # of the request body is sent. It provides three arguments: the chunk,
408
+ # the number of bytes read from the body, and the total number of
409
+ # bytes in the body.
410
+ #
411
+ # @option options [Boolean] :raise_response_errors (true)
412
+ # When `true`, response errors are raised.
413
+ #
414
+ # @option options [String] :ssl_ca_bundle
415
+ # Full path to the SSL certificate authority bundle file that should be used when
416
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
417
+ # `:ssl_ca_directory` the the system default will be used if available.
418
+ #
419
+ # @option options [String] :ssl_ca_directory
420
+ # Full path of the directory that contains the unbundled SSL certificate
421
+ # authority files for verifying peer certificates. If you do
422
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
423
+ # default will be used if available.
424
+ #
425
+ # @option options [String] :ssl_ca_store
426
+ # Sets the X509::Store to verify peer certificate.
427
+ #
428
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
429
+ # Sets a client certificate when creating http connections.
430
+ #
431
+ # @option options [OpenSSL::PKey] :ssl_key
432
+ # Sets a client key when creating http connections.
433
+ #
434
+ # @option options [Float] :ssl_timeout
435
+ # Sets the SSL timeout in seconds
436
+ #
437
+ # @option options [Boolean] :ssl_verify_peer (true)
438
+ # When `true`, SSL peer certificates are verified when establishing a connection.
439
+ #
440
+ def initialize(*args)
441
+ super
442
+ end
443
+
444
+ # @!group API Operations
445
+
446
+ # Adds an existing user, group, or computer as a group member.
447
+ #
448
+ # @option params [String] :client_token
449
+ # A unique and case-sensitive identifier that you provide to make sure
450
+ # the idempotency of the request, so multiple identical calls have the
451
+ # same effect as one single call.
452
+ #
453
+ # A client token is valid for 8 hours after the first request that uses
454
+ # it completes. After 8 hours, any request with the same client token is
455
+ # treated as a new request. If the request succeeds, any future uses of
456
+ # that token will be idempotent for another 8 hours.
457
+ #
458
+ # If you submit a request with the same client token but change one of
459
+ # the other parameters within the 8-hour idempotency window, Directory
460
+ # Service Data returns an `ConflictException`.
461
+ #
462
+ # <note markdown="1"> This parameter is optional when using the CLI or SDK.
463
+ #
464
+ # </note>
465
+ #
466
+ # **A suitable default value is auto-generated.** You should normally
467
+ # not need to pass this option.**
468
+ #
469
+ # @option params [required, String] :directory_id
470
+ # The identifier (ID) of the directory that's associated with the
471
+ # group.
472
+ #
473
+ # @option params [required, String] :group_name
474
+ # The name of the group.
475
+ #
476
+ # @option params [required, String] :member_name
477
+ # The `SAMAccountName` of the user, group, or computer to add as a group
478
+ # member.
479
+ #
480
+ # @option params [String] :member_realm
481
+ # The domain name that's associated with the group member. This
482
+ # parameter is required only when adding a member outside of your
483
+ # Managed Microsoft AD domain to a group inside of your Managed
484
+ # Microsoft AD domain. This parameter defaults to the Managed Microsoft
485
+ # AD domain.
486
+ #
487
+ # <note markdown="1"> This parameter is case insensitive.
488
+ #
489
+ # </note>
490
+ #
491
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
492
+ #
493
+ # @example Request syntax with placeholder values
494
+ #
495
+ # resp = client.add_group_member({
496
+ # client_token: "ClientToken",
497
+ # directory_id: "DirectoryId", # required
498
+ # group_name: "GroupName", # required
499
+ # member_name: "MemberName", # required
500
+ # member_realm: "Realm",
501
+ # })
502
+ #
503
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/AddGroupMember AWS API Documentation
504
+ #
505
+ # @overload add_group_member(params = {})
506
+ # @param [Hash] params ({})
507
+ def add_group_member(params = {}, options = {})
508
+ req = build_request(:add_group_member, params)
509
+ req.send_request(options)
510
+ end
511
+
512
+ # Creates a new group.
513
+ #
514
+ # @option params [String] :client_token
515
+ # A unique and case-sensitive identifier that you provide to make sure
516
+ # the idempotency of the request, so multiple identical calls have the
517
+ # same effect as one single call.
518
+ #
519
+ # A client token is valid for 8 hours after the first request that uses
520
+ # it completes. After 8 hours, any request with the same client token is
521
+ # treated as a new request. If the request succeeds, any future uses of
522
+ # that token will be idempotent for another 8 hours.
523
+ #
524
+ # If you submit a request with the same client token but change one of
525
+ # the other parameters within the 8-hour idempotency window, Directory
526
+ # Service Data returns an `ConflictException`.
527
+ #
528
+ # <note markdown="1"> This parameter is optional when using the CLI or SDK.
529
+ #
530
+ # </note>
531
+ #
532
+ # **A suitable default value is auto-generated.** You should normally
533
+ # not need to pass this option.**
534
+ #
535
+ # @option params [required, String] :directory_id
536
+ # The identifier (ID) of the directory that's associated with the
537
+ # group.
538
+ #
539
+ # @option params [String] :group_scope
540
+ # The scope of the AD group. For details, see [Active Directory security
541
+ # group scope][1].
542
+ #
543
+ #
544
+ #
545
+ # [1]: https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/understand-security-groups#group-scope
546
+ #
547
+ # @option params [String] :group_type
548
+ # The AD group type. For details, see [Active Directory security group
549
+ # type][1].
550
+ #
551
+ #
552
+ #
553
+ # [1]: https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/understand-security-groups#how-active-directory-security-groups-work
554
+ #
555
+ # @option params [Hash<String,Types::AttributeValue>] :other_attributes
556
+ # An expression that defines one or more attributes with the data type
557
+ # and value of each attribute.
558
+ #
559
+ # @option params [required, String] :sam_account_name
560
+ # The name of the group.
561
+ #
562
+ # @return [Types::CreateGroupResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
563
+ #
564
+ # * {Types::CreateGroupResult#directory_id #directory_id} => String
565
+ # * {Types::CreateGroupResult#sam_account_name #sam_account_name} => String
566
+ # * {Types::CreateGroupResult#sid #sid} => String
567
+ #
568
+ # @example Request syntax with placeholder values
569
+ #
570
+ # resp = client.create_group({
571
+ # client_token: "ClientToken",
572
+ # directory_id: "DirectoryId", # required
573
+ # group_scope: "DomainLocal", # accepts DomainLocal, Global, Universal, BuiltinLocal
574
+ # group_type: "Distribution", # accepts Distribution, Security
575
+ # other_attributes: {
576
+ # "LdapDisplayName" => "value", # value <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
577
+ # },
578
+ # sam_account_name: "GroupName", # required
579
+ # })
580
+ #
581
+ # @example Response structure
582
+ #
583
+ # resp.directory_id #=> String
584
+ # resp.sam_account_name #=> String
585
+ # resp.sid #=> String
586
+ #
587
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/CreateGroup AWS API Documentation
588
+ #
589
+ # @overload create_group(params = {})
590
+ # @param [Hash] params ({})
591
+ def create_group(params = {}, options = {})
592
+ req = build_request(:create_group, params)
593
+ req.send_request(options)
594
+ end
595
+
596
+ # Creates a new user.
597
+ #
598
+ # @option params [String] :client_token
599
+ # A unique and case-sensitive identifier that you provide to make sure
600
+ # the idempotency of the request, so multiple identical calls have the
601
+ # same effect as one single call.
602
+ #
603
+ # A client token is valid for 8 hours after the first request that uses
604
+ # it completes. After 8 hours, any request with the same client token is
605
+ # treated as a new request. If the request succeeds, any future uses of
606
+ # that token will be idempotent for another 8 hours.
607
+ #
608
+ # If you submit a request with the same client token but change one of
609
+ # the other parameters within the 8-hour idempotency window, Directory
610
+ # Service Data returns an `ConflictException`.
611
+ #
612
+ # <note markdown="1"> This parameter is optional when using the CLI or SDK.
613
+ #
614
+ # </note>
615
+ #
616
+ # **A suitable default value is auto-generated.** You should normally
617
+ # not need to pass this option.**
618
+ #
619
+ # @option params [required, String] :directory_id
620
+ # The identifier (ID) of the directory that’s associated with the user.
621
+ #
622
+ # @option params [String] :email_address
623
+ # The email address of the user.
624
+ #
625
+ # @option params [String] :given_name
626
+ # The first name of the user.
627
+ #
628
+ # @option params [Hash<String,Types::AttributeValue>] :other_attributes
629
+ # An expression that defines one or more attribute names with the data
630
+ # type and value of each attribute. A key is an attribute name, and the
631
+ # value is a list of maps. For a list of supported attributes, see
632
+ # [Directory Service Data Attributes][1].
633
+ #
634
+ # <note markdown="1"> Attribute names are case insensitive.
635
+ #
636
+ # </note>
637
+ #
638
+ #
639
+ #
640
+ # [1]: https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ad_data_attributes.html
641
+ #
642
+ # @option params [required, String] :sam_account_name
643
+ # The name of the user.
644
+ #
645
+ # @option params [String] :surname
646
+ # The last name of the user.
647
+ #
648
+ # @return [Types::CreateUserResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
649
+ #
650
+ # * {Types::CreateUserResult#directory_id #directory_id} => String
651
+ # * {Types::CreateUserResult#sam_account_name #sam_account_name} => String
652
+ # * {Types::CreateUserResult#sid #sid} => String
653
+ #
654
+ # @example Request syntax with placeholder values
655
+ #
656
+ # resp = client.create_user({
657
+ # client_token: "ClientToken",
658
+ # directory_id: "DirectoryId", # required
659
+ # email_address: "EmailAddress",
660
+ # given_name: "GivenName",
661
+ # other_attributes: {
662
+ # "LdapDisplayName" => "value", # value <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
663
+ # },
664
+ # sam_account_name: "UserName", # required
665
+ # surname: "Surname",
666
+ # })
667
+ #
668
+ # @example Response structure
669
+ #
670
+ # resp.directory_id #=> String
671
+ # resp.sam_account_name #=> String
672
+ # resp.sid #=> String
673
+ #
674
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/CreateUser AWS API Documentation
675
+ #
676
+ # @overload create_user(params = {})
677
+ # @param [Hash] params ({})
678
+ def create_user(params = {}, options = {})
679
+ req = build_request(:create_user, params)
680
+ req.send_request(options)
681
+ end
682
+
683
+ # Deletes a group.
684
+ #
685
+ # @option params [String] :client_token
686
+ # A unique and case-sensitive identifier that you provide to make sure
687
+ # the idempotency of the request, so multiple identical calls have the
688
+ # same effect as one single call.
689
+ #
690
+ # A client token is valid for 8 hours after the first request that uses
691
+ # it completes. After 8 hours, any request with the same client token is
692
+ # treated as a new request. If the request succeeds, any future uses of
693
+ # that token will be idempotent for another 8 hours.
694
+ #
695
+ # If you submit a request with the same client token but change one of
696
+ # the other parameters within the 8-hour idempotency window, Directory
697
+ # Service Data returns an `ConflictException`.
698
+ #
699
+ # <note markdown="1"> This parameter is optional when using the CLI or SDK.
700
+ #
701
+ # </note>
702
+ #
703
+ # **A suitable default value is auto-generated.** You should normally
704
+ # not need to pass this option.**
705
+ #
706
+ # @option params [required, String] :directory_id
707
+ # The identifier (ID) of the directory that's associated with the
708
+ # group.
709
+ #
710
+ # @option params [required, String] :sam_account_name
711
+ # The name of the group.
712
+ #
713
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
714
+ #
715
+ # @example Request syntax with placeholder values
716
+ #
717
+ # resp = client.delete_group({
718
+ # client_token: "ClientToken",
719
+ # directory_id: "DirectoryId", # required
720
+ # sam_account_name: "GroupName", # required
721
+ # })
722
+ #
723
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/DeleteGroup AWS API Documentation
724
+ #
725
+ # @overload delete_group(params = {})
726
+ # @param [Hash] params ({})
727
+ def delete_group(params = {}, options = {})
728
+ req = build_request(:delete_group, params)
729
+ req.send_request(options)
730
+ end
731
+
732
+ # Deletes a user.
733
+ #
734
+ # @option params [String] :client_token
735
+ # A unique and case-sensitive identifier that you provide to make sure
736
+ # the idempotency of the request, so multiple identical calls have the
737
+ # same effect as one single call.
738
+ #
739
+ # A client token is valid for 8 hours after the first request that uses
740
+ # it completes. After 8 hours, any request with the same client token is
741
+ # treated as a new request. If the request succeeds, any future uses of
742
+ # that token will be idempotent for another 8 hours.
743
+ #
744
+ # If you submit a request with the same client token but change one of
745
+ # the other parameters within the 8-hour idempotency window, Directory
746
+ # Service Data returns an `ConflictException`.
747
+ #
748
+ # <note markdown="1"> This parameter is optional when using the CLI or SDK.
749
+ #
750
+ # </note>
751
+ #
752
+ # **A suitable default value is auto-generated.** You should normally
753
+ # not need to pass this option.**
754
+ #
755
+ # @option params [required, String] :directory_id
756
+ # The identifier (ID) of the directory that's associated with the user.
757
+ #
758
+ # @option params [required, String] :sam_account_name
759
+ # The name of the user.
760
+ #
761
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
762
+ #
763
+ # @example Request syntax with placeholder values
764
+ #
765
+ # resp = client.delete_user({
766
+ # client_token: "ClientToken",
767
+ # directory_id: "DirectoryId", # required
768
+ # sam_account_name: "UserName", # required
769
+ # })
770
+ #
771
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/DeleteUser AWS API Documentation
772
+ #
773
+ # @overload delete_user(params = {})
774
+ # @param [Hash] params ({})
775
+ def delete_user(params = {}, options = {})
776
+ req = build_request(:delete_user, params)
777
+ req.send_request(options)
778
+ end
779
+
780
+ # Returns information about a specific group.
781
+ #
782
+ # @option params [required, String] :directory_id
783
+ # The Identifier (ID) of the directory associated with the group.
784
+ #
785
+ # @option params [Array<String>] :other_attributes
786
+ # One or more attributes to be returned for the group. For a list of
787
+ # supported attributes, see [Directory Service Data Attributes][1].
788
+ #
789
+ #
790
+ #
791
+ # [1]: https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ad_data-attributes.html
792
+ #
793
+ # @option params [String] :realm
794
+ # The domain name that's associated with the group.
795
+ #
796
+ # <note markdown="1"> This parameter is optional, so you can return groups outside of your
797
+ # Managed Microsoft AD domain. When no value is defined, only your
798
+ # Managed Microsoft AD groups are returned.
799
+ #
800
+ # This value is case insensitive.
801
+ #
802
+ # </note>
803
+ #
804
+ # @option params [required, String] :sam_account_name
805
+ # The name of the group.
806
+ #
807
+ # @return [Types::DescribeGroupResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
808
+ #
809
+ # * {Types::DescribeGroupResult#directory_id #directory_id} => String
810
+ # * {Types::DescribeGroupResult#distinguished_name #distinguished_name} => String
811
+ # * {Types::DescribeGroupResult#group_scope #group_scope} => String
812
+ # * {Types::DescribeGroupResult#group_type #group_type} => String
813
+ # * {Types::DescribeGroupResult#other_attributes #other_attributes} => Hash&lt;String,Types::AttributeValue&gt;
814
+ # * {Types::DescribeGroupResult#realm #realm} => String
815
+ # * {Types::DescribeGroupResult#sam_account_name #sam_account_name} => String
816
+ # * {Types::DescribeGroupResult#sid #sid} => String
817
+ #
818
+ # @example Request syntax with placeholder values
819
+ #
820
+ # resp = client.describe_group({
821
+ # directory_id: "DirectoryId", # required
822
+ # other_attributes: ["LdapDisplayName"],
823
+ # realm: "Realm",
824
+ # sam_account_name: "GroupName", # required
825
+ # })
826
+ #
827
+ # @example Response structure
828
+ #
829
+ # resp.directory_id #=> String
830
+ # resp.distinguished_name #=> String
831
+ # resp.group_scope #=> String, one of "DomainLocal", "Global", "Universal", "BuiltinLocal"
832
+ # resp.group_type #=> String, one of "Distribution", "Security"
833
+ # resp.other_attributes #=> Hash
834
+ # resp.other_attributes["LdapDisplayName"] #=> <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
835
+ # resp.realm #=> String
836
+ # resp.sam_account_name #=> String
837
+ # resp.sid #=> String
838
+ #
839
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/DescribeGroup AWS API Documentation
840
+ #
841
+ # @overload describe_group(params = {})
842
+ # @param [Hash] params ({})
843
+ def describe_group(params = {}, options = {})
844
+ req = build_request(:describe_group, params)
845
+ req.send_request(options)
846
+ end
847
+
848
+ # Returns information about a specific user.
849
+ #
850
+ # @option params [required, String] :directory_id
851
+ # The identifier (ID) of the directory that's associated with the user.
852
+ #
853
+ # @option params [Array<String>] :other_attributes
854
+ # One or more attribute names to be returned for the user. A key is an
855
+ # attribute name, and the value is a list of maps. For a list of
856
+ # supported attributes, see [Directory Service Data Attributes][1].
857
+ #
858
+ #
859
+ #
860
+ # [1]: https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ad_data_attributes.html
861
+ #
862
+ # @option params [String] :realm
863
+ # The domain name that's associated with the user.
864
+ #
865
+ # <note markdown="1"> This parameter is optional, so you can return users outside your
866
+ # Managed Microsoft AD domain. When no value is defined, only your
867
+ # Managed Microsoft AD users are returned.
868
+ #
869
+ # This value is case insensitive.
870
+ #
871
+ # </note>
872
+ #
873
+ # @option params [required, String] :sam_account_name
874
+ # The name of the user.
875
+ #
876
+ # @return [Types::DescribeUserResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
877
+ #
878
+ # * {Types::DescribeUserResult#directory_id #directory_id} => String
879
+ # * {Types::DescribeUserResult#distinguished_name #distinguished_name} => String
880
+ # * {Types::DescribeUserResult#email_address #email_address} => String
881
+ # * {Types::DescribeUserResult#enabled #enabled} => Boolean
882
+ # * {Types::DescribeUserResult#given_name #given_name} => String
883
+ # * {Types::DescribeUserResult#other_attributes #other_attributes} => Hash&lt;String,Types::AttributeValue&gt;
884
+ # * {Types::DescribeUserResult#realm #realm} => String
885
+ # * {Types::DescribeUserResult#sam_account_name #sam_account_name} => String
886
+ # * {Types::DescribeUserResult#sid #sid} => String
887
+ # * {Types::DescribeUserResult#surname #surname} => String
888
+ # * {Types::DescribeUserResult#user_principal_name #user_principal_name} => String
889
+ #
890
+ # @example Request syntax with placeholder values
891
+ #
892
+ # resp = client.describe_user({
893
+ # directory_id: "DirectoryId", # required
894
+ # other_attributes: ["LdapDisplayName"],
895
+ # realm: "Realm",
896
+ # sam_account_name: "UserName", # required
897
+ # })
898
+ #
899
+ # @example Response structure
900
+ #
901
+ # resp.directory_id #=> String
902
+ # resp.distinguished_name #=> String
903
+ # resp.email_address #=> String
904
+ # resp.enabled #=> Boolean
905
+ # resp.given_name #=> String
906
+ # resp.other_attributes #=> Hash
907
+ # resp.other_attributes["LdapDisplayName"] #=> <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
908
+ # resp.realm #=> String
909
+ # resp.sam_account_name #=> String
910
+ # resp.sid #=> String
911
+ # resp.surname #=> String
912
+ # resp.user_principal_name #=> String
913
+ #
914
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/DescribeUser AWS API Documentation
915
+ #
916
+ # @overload describe_user(params = {})
917
+ # @param [Hash] params ({})
918
+ def describe_user(params = {}, options = {})
919
+ req = build_request(:describe_user, params)
920
+ req.send_request(options)
921
+ end
922
+
923
+ # Deactivates an active user account. For information about how to
924
+ # enable an inactive user account, see [ResetUserPassword][1] in the
925
+ # *Directory Service API Reference*.
926
+ #
927
+ #
928
+ #
929
+ # [1]: https://docs.aws.amazon.com/directoryservice/latest/devguide/API_ResetUserPassword.html
930
+ #
931
+ # @option params [String] :client_token
932
+ # A unique and case-sensitive identifier that you provide to make sure
933
+ # the idempotency of the request, so multiple identical calls have the
934
+ # same effect as one single call.
935
+ #
936
+ # A client token is valid for 8 hours after the first request that uses
937
+ # it completes. After 8 hours, any request with the same client token is
938
+ # treated as a new request. If the request succeeds, any future uses of
939
+ # that token will be idempotent for another 8 hours.
940
+ #
941
+ # If you submit a request with the same client token but change one of
942
+ # the other parameters within the 8-hour idempotency window, Directory
943
+ # Service Data returns an `ConflictException`.
944
+ #
945
+ # <note markdown="1"> This parameter is optional when using the CLI or SDK.
946
+ #
947
+ # </note>
948
+ #
949
+ # **A suitable default value is auto-generated.** You should normally
950
+ # not need to pass this option.**
951
+ #
952
+ # @option params [required, String] :directory_id
953
+ # The identifier (ID) of the directory that's associated with the user.
954
+ #
955
+ # @option params [required, String] :sam_account_name
956
+ # The name of the user.
957
+ #
958
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
959
+ #
960
+ # @example Request syntax with placeholder values
961
+ #
962
+ # resp = client.disable_user({
963
+ # client_token: "ClientToken",
964
+ # directory_id: "DirectoryId", # required
965
+ # sam_account_name: "UserName", # required
966
+ # })
967
+ #
968
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/DisableUser AWS API Documentation
969
+ #
970
+ # @overload disable_user(params = {})
971
+ # @param [Hash] params ({})
972
+ def disable_user(params = {}, options = {})
973
+ req = build_request(:disable_user, params)
974
+ req.send_request(options)
975
+ end
976
+
977
+ # Returns member information for the specified group.
978
+ #
979
+ # This operation supports pagination with the use of the `NextToken`
980
+ # request and response parameters. If more results are available, the
981
+ # `ListGroupMembers.NextToken` member contains a token that you pass in
982
+ # the next call to `ListGroupMembers`. This retrieves the next set of
983
+ # items.
984
+ #
985
+ # You can also specify a maximum number of return results with the
986
+ # `MaxResults` parameter.
987
+ #
988
+ # @option params [required, String] :directory_id
989
+ # The identifier (ID) of the directory that's associated with the
990
+ # group.
991
+ #
992
+ # @option params [Integer] :max_results
993
+ # The maximum number of results to be returned per request.
994
+ #
995
+ # @option params [String] :member_realm
996
+ # The domain name that's associated with the group member. This
997
+ # parameter defaults to the Managed Microsoft AD domain.
998
+ #
999
+ # <note markdown="1"> This parameter is optional and case insensitive.
1000
+ #
1001
+ # </note>
1002
+ #
1003
+ # @option params [String] :next_token
1004
+ # An encoded paging token for paginated calls that can be passed back to
1005
+ # retrieve the next page.
1006
+ #
1007
+ # @option params [String] :realm
1008
+ # The domain name that's associated with the group.
1009
+ #
1010
+ # <note markdown="1"> This parameter is optional, so you can return members from a group
1011
+ # outside of your Managed Microsoft AD domain. When no value is defined,
1012
+ # only members of your Managed Microsoft AD groups are returned.
1013
+ #
1014
+ # This value is case insensitive.
1015
+ #
1016
+ # </note>
1017
+ #
1018
+ # @option params [required, String] :sam_account_name
1019
+ # The name of the group.
1020
+ #
1021
+ # @return [Types::ListGroupMembersResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1022
+ #
1023
+ # * {Types::ListGroupMembersResult#directory_id #directory_id} => String
1024
+ # * {Types::ListGroupMembersResult#member_realm #member_realm} => String
1025
+ # * {Types::ListGroupMembersResult#members #members} => Array&lt;Types::Member&gt;
1026
+ # * {Types::ListGroupMembersResult#next_token #next_token} => String
1027
+ # * {Types::ListGroupMembersResult#realm #realm} => String
1028
+ #
1029
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1030
+ #
1031
+ # @example Request syntax with placeholder values
1032
+ #
1033
+ # resp = client.list_group_members({
1034
+ # directory_id: "DirectoryId", # required
1035
+ # max_results: 1,
1036
+ # member_realm: "Realm",
1037
+ # next_token: "NextToken",
1038
+ # realm: "Realm",
1039
+ # sam_account_name: "GroupName", # required
1040
+ # })
1041
+ #
1042
+ # @example Response structure
1043
+ #
1044
+ # resp.directory_id #=> String
1045
+ # resp.member_realm #=> String
1046
+ # resp.members #=> Array
1047
+ # resp.members[0].member_type #=> String, one of "USER", "GROUP", "COMPUTER"
1048
+ # resp.members[0].sam_account_name #=> String
1049
+ # resp.members[0].sid #=> String
1050
+ # resp.next_token #=> String
1051
+ # resp.realm #=> String
1052
+ #
1053
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/ListGroupMembers AWS API Documentation
1054
+ #
1055
+ # @overload list_group_members(params = {})
1056
+ # @param [Hash] params ({})
1057
+ def list_group_members(params = {}, options = {})
1058
+ req = build_request(:list_group_members, params)
1059
+ req.send_request(options)
1060
+ end
1061
+
1062
+ # Returns group information for the specified directory.
1063
+ #
1064
+ # This operation supports pagination with the use of the `NextToken`
1065
+ # request and response parameters. If more results are available, the
1066
+ # `ListGroups.NextToken` member contains a token that you pass in the
1067
+ # next call to `ListGroups`. This retrieves the next set of items.
1068
+ #
1069
+ # You can also specify a maximum number of return results with the
1070
+ # `MaxResults` parameter.
1071
+ #
1072
+ # @option params [required, String] :directory_id
1073
+ # The identifier (ID) of the directory that's associated with the
1074
+ # group.
1075
+ #
1076
+ # @option params [Integer] :max_results
1077
+ # The maximum number of results to be returned per request.
1078
+ #
1079
+ # @option params [String] :next_token
1080
+ # An encoded paging token for paginated calls that can be passed back to
1081
+ # retrieve the next page.
1082
+ #
1083
+ # @option params [String] :realm
1084
+ # The domain name associated with the directory.
1085
+ #
1086
+ # <note markdown="1"> This parameter is optional, so you can return groups outside of your
1087
+ # Managed Microsoft AD domain. When no value is defined, only your
1088
+ # Managed Microsoft AD groups are returned.
1089
+ #
1090
+ # This value is case insensitive.
1091
+ #
1092
+ # </note>
1093
+ #
1094
+ # @return [Types::ListGroupsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1095
+ #
1096
+ # * {Types::ListGroupsResult#directory_id #directory_id} => String
1097
+ # * {Types::ListGroupsResult#groups #groups} => Array&lt;Types::GroupSummary&gt;
1098
+ # * {Types::ListGroupsResult#next_token #next_token} => String
1099
+ # * {Types::ListGroupsResult#realm #realm} => String
1100
+ #
1101
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1102
+ #
1103
+ # @example Request syntax with placeholder values
1104
+ #
1105
+ # resp = client.list_groups({
1106
+ # directory_id: "DirectoryId", # required
1107
+ # max_results: 1,
1108
+ # next_token: "NextToken",
1109
+ # realm: "Realm",
1110
+ # })
1111
+ #
1112
+ # @example Response structure
1113
+ #
1114
+ # resp.directory_id #=> String
1115
+ # resp.groups #=> Array
1116
+ # resp.groups[0].group_scope #=> String, one of "DomainLocal", "Global", "Universal", "BuiltinLocal"
1117
+ # resp.groups[0].group_type #=> String, one of "Distribution", "Security"
1118
+ # resp.groups[0].sam_account_name #=> String
1119
+ # resp.groups[0].sid #=> String
1120
+ # resp.next_token #=> String
1121
+ # resp.realm #=> String
1122
+ #
1123
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/ListGroups AWS API Documentation
1124
+ #
1125
+ # @overload list_groups(params = {})
1126
+ # @param [Hash] params ({})
1127
+ def list_groups(params = {}, options = {})
1128
+ req = build_request(:list_groups, params)
1129
+ req.send_request(options)
1130
+ end
1131
+
1132
+ # Returns group information for the specified member.
1133
+ #
1134
+ # This operation supports pagination with the use of the `NextToken`
1135
+ # request and response parameters. If more results are available, the
1136
+ # `ListGroupsForMember.NextToken` member contains a token that you pass
1137
+ # in the next call to `ListGroupsForMember`. This retrieves the next set
1138
+ # of items.
1139
+ #
1140
+ # You can also specify a maximum number of return results with the
1141
+ # `MaxResults` parameter.
1142
+ #
1143
+ # @option params [required, String] :directory_id
1144
+ # The identifier (ID) of the directory that's associated with the
1145
+ # member.
1146
+ #
1147
+ # @option params [Integer] :max_results
1148
+ # The maximum number of results to be returned per request.
1149
+ #
1150
+ # @option params [String] :member_realm
1151
+ # The domain name that's associated with the group member.
1152
+ #
1153
+ # <note markdown="1"> This parameter is optional, so you can limit your results to the group
1154
+ # members in a specific domain.
1155
+ #
1156
+ # This parameter is case insensitive and defaults to `Realm`
1157
+ #
1158
+ # </note>
1159
+ #
1160
+ # @option params [String] :next_token
1161
+ # An encoded paging token for paginated calls that can be passed back to
1162
+ # retrieve the next page.
1163
+ #
1164
+ # @option params [String] :realm
1165
+ # The domain name that's associated with the group.
1166
+ #
1167
+ # <note markdown="1"> This parameter is optional, so you can return groups outside of your
1168
+ # Managed Microsoft AD domain. When no value is defined, only your
1169
+ # Managed Microsoft AD groups are returned.
1170
+ #
1171
+ # This value is case insensitive and defaults to your Managed Microsoft
1172
+ # AD domain.
1173
+ #
1174
+ # </note>
1175
+ #
1176
+ # @option params [required, String] :sam_account_name
1177
+ # The `SAMAccountName` of the user, group, or computer that's a member
1178
+ # of the group.
1179
+ #
1180
+ # @return [Types::ListGroupsForMemberResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1181
+ #
1182
+ # * {Types::ListGroupsForMemberResult#directory_id #directory_id} => String
1183
+ # * {Types::ListGroupsForMemberResult#groups #groups} => Array&lt;Types::GroupSummary&gt;
1184
+ # * {Types::ListGroupsForMemberResult#member_realm #member_realm} => String
1185
+ # * {Types::ListGroupsForMemberResult#next_token #next_token} => String
1186
+ # * {Types::ListGroupsForMemberResult#realm #realm} => String
1187
+ #
1188
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1189
+ #
1190
+ # @example Request syntax with placeholder values
1191
+ #
1192
+ # resp = client.list_groups_for_member({
1193
+ # directory_id: "DirectoryId", # required
1194
+ # max_results: 1,
1195
+ # member_realm: "Realm",
1196
+ # next_token: "NextToken",
1197
+ # realm: "Realm",
1198
+ # sam_account_name: "MemberName", # required
1199
+ # })
1200
+ #
1201
+ # @example Response structure
1202
+ #
1203
+ # resp.directory_id #=> String
1204
+ # resp.groups #=> Array
1205
+ # resp.groups[0].group_scope #=> String, one of "DomainLocal", "Global", "Universal", "BuiltinLocal"
1206
+ # resp.groups[0].group_type #=> String, one of "Distribution", "Security"
1207
+ # resp.groups[0].sam_account_name #=> String
1208
+ # resp.groups[0].sid #=> String
1209
+ # resp.member_realm #=> String
1210
+ # resp.next_token #=> String
1211
+ # resp.realm #=> String
1212
+ #
1213
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/ListGroupsForMember AWS API Documentation
1214
+ #
1215
+ # @overload list_groups_for_member(params = {})
1216
+ # @param [Hash] params ({})
1217
+ def list_groups_for_member(params = {}, options = {})
1218
+ req = build_request(:list_groups_for_member, params)
1219
+ req.send_request(options)
1220
+ end
1221
+
1222
+ # Returns user information for the specified directory.
1223
+ #
1224
+ # This operation supports pagination with the use of the `NextToken`
1225
+ # request and response parameters. If more results are available, the
1226
+ # `ListUsers.NextToken` member contains a token that you pass in the
1227
+ # next call to `ListUsers`. This retrieves the next set of items.
1228
+ #
1229
+ # You can also specify a maximum number of return results with the
1230
+ # `MaxResults` parameter.
1231
+ #
1232
+ # @option params [required, String] :directory_id
1233
+ # The identifier (ID) of the directory that's associated with the user.
1234
+ #
1235
+ # @option params [Integer] :max_results
1236
+ # The maximum number of results to be returned per request.
1237
+ #
1238
+ # @option params [String] :next_token
1239
+ # An encoded paging token for paginated calls that can be passed back to
1240
+ # retrieve the next page.
1241
+ #
1242
+ # @option params [String] :realm
1243
+ # The domain name that's associated with the user.
1244
+ #
1245
+ # <note markdown="1"> This parameter is optional, so you can return users outside of your
1246
+ # Managed Microsoft AD domain. When no value is defined, only your
1247
+ # Managed Microsoft AD users are returned.
1248
+ #
1249
+ # This value is case insensitive.
1250
+ #
1251
+ # </note>
1252
+ #
1253
+ # @return [Types::ListUsersResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1254
+ #
1255
+ # * {Types::ListUsersResult#directory_id #directory_id} => String
1256
+ # * {Types::ListUsersResult#next_token #next_token} => String
1257
+ # * {Types::ListUsersResult#realm #realm} => String
1258
+ # * {Types::ListUsersResult#users #users} => Array&lt;Types::UserSummary&gt;
1259
+ #
1260
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1261
+ #
1262
+ # @example Request syntax with placeholder values
1263
+ #
1264
+ # resp = client.list_users({
1265
+ # directory_id: "DirectoryId", # required
1266
+ # max_results: 1,
1267
+ # next_token: "NextToken",
1268
+ # realm: "Realm",
1269
+ # })
1270
+ #
1271
+ # @example Response structure
1272
+ #
1273
+ # resp.directory_id #=> String
1274
+ # resp.next_token #=> String
1275
+ # resp.realm #=> String
1276
+ # resp.users #=> Array
1277
+ # resp.users[0].enabled #=> Boolean
1278
+ # resp.users[0].given_name #=> String
1279
+ # resp.users[0].sam_account_name #=> String
1280
+ # resp.users[0].sid #=> String
1281
+ # resp.users[0].surname #=> String
1282
+ #
1283
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/ListUsers AWS API Documentation
1284
+ #
1285
+ # @overload list_users(params = {})
1286
+ # @param [Hash] params ({})
1287
+ def list_users(params = {}, options = {})
1288
+ req = build_request(:list_users, params)
1289
+ req.send_request(options)
1290
+ end
1291
+
1292
+ # Removes a member from a group.
1293
+ #
1294
+ # @option params [String] :client_token
1295
+ # A unique and case-sensitive identifier that you provide to make sure
1296
+ # the idempotency of the request, so multiple identical calls have the
1297
+ # same effect as one single call.
1298
+ #
1299
+ # A client token is valid for 8 hours after the first request that uses
1300
+ # it completes. After 8 hours, any request with the same client token is
1301
+ # treated as a new request. If the request succeeds, any future uses of
1302
+ # that token will be idempotent for another 8 hours.
1303
+ #
1304
+ # If you submit a request with the same client token but change one of
1305
+ # the other parameters within the 8-hour idempotency window, Directory
1306
+ # Service Data returns an `ConflictException`.
1307
+ #
1308
+ # <note markdown="1"> This parameter is optional when using the CLI or SDK.
1309
+ #
1310
+ # </note>
1311
+ #
1312
+ # **A suitable default value is auto-generated.** You should normally
1313
+ # not need to pass this option.**
1314
+ #
1315
+ # @option params [required, String] :directory_id
1316
+ # The identifier (ID) of the directory that's associated with the
1317
+ # member.
1318
+ #
1319
+ # @option params [required, String] :group_name
1320
+ # The name of the group.
1321
+ #
1322
+ # @option params [required, String] :member_name
1323
+ # The `SAMAccountName` of the user, group, or computer to remove from
1324
+ # the group.
1325
+ #
1326
+ # @option params [String] :member_realm
1327
+ # The domain name that's associated with the group member. This
1328
+ # parameter defaults to the Managed Microsoft AD domain.
1329
+ #
1330
+ # <note markdown="1"> This parameter is optional and case insensitive.
1331
+ #
1332
+ # </note>
1333
+ #
1334
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1335
+ #
1336
+ # @example Request syntax with placeholder values
1337
+ #
1338
+ # resp = client.remove_group_member({
1339
+ # client_token: "ClientToken",
1340
+ # directory_id: "DirectoryId", # required
1341
+ # group_name: "GroupName", # required
1342
+ # member_name: "MemberName", # required
1343
+ # member_realm: "Realm",
1344
+ # })
1345
+ #
1346
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/RemoveGroupMember AWS API Documentation
1347
+ #
1348
+ # @overload remove_group_member(params = {})
1349
+ # @param [Hash] params ({})
1350
+ def remove_group_member(params = {}, options = {})
1351
+ req = build_request(:remove_group_member, params)
1352
+ req.send_request(options)
1353
+ end
1354
+
1355
+ # Searches the specified directory for a group. You can find groups that
1356
+ # match the `SearchString` parameter with the value of their attributes
1357
+ # included in the `SearchString` parameter.
1358
+ #
1359
+ # This operation supports pagination with the use of the `NextToken`
1360
+ # request and response parameters. If more results are available, the
1361
+ # `SearchGroups.NextToken` member contains a token that you pass in the
1362
+ # next call to `SearchGroups`. This retrieves the next set of items.
1363
+ #
1364
+ # You can also specify a maximum number of return results with the
1365
+ # `MaxResults` parameter.
1366
+ #
1367
+ # @option params [required, String] :directory_id
1368
+ # The identifier (ID) of the directory that's associated with the
1369
+ # group.
1370
+ #
1371
+ # @option params [Integer] :max_results
1372
+ # The maximum number of results to be returned per request.
1373
+ #
1374
+ # @option params [String] :next_token
1375
+ # An encoded paging token for paginated calls that can be passed back to
1376
+ # retrieve the next page.
1377
+ #
1378
+ # @option params [String] :realm
1379
+ # The domain name that's associated with the group.
1380
+ #
1381
+ # <note markdown="1"> This parameter is optional, so you can return groups outside of your
1382
+ # Managed Microsoft AD domain. When no value is defined, only your
1383
+ # Managed Microsoft AD groups are returned.
1384
+ #
1385
+ # This value is case insensitive.
1386
+ #
1387
+ # </note>
1388
+ #
1389
+ # @option params [required, Array<String>] :search_attributes
1390
+ # One or more data attributes that are used to search for a group. For a
1391
+ # list of supported attributes, see [Directory Service Data
1392
+ # Attributes][1].
1393
+ #
1394
+ #
1395
+ #
1396
+ # [1]: https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ad_data_attributes.html
1397
+ #
1398
+ # @option params [required, String] :search_string
1399
+ # The attribute value that you want to search for.
1400
+ #
1401
+ # <note markdown="1"> Wildcard `(*)` searches aren't supported. For a list of supported
1402
+ # attributes, see [Directory Service Data Attributes][1].
1403
+ #
1404
+ # </note>
1405
+ #
1406
+ #
1407
+ #
1408
+ # [1]: https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ad_data_attributes.html
1409
+ #
1410
+ # @return [Types::SearchGroupsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1411
+ #
1412
+ # * {Types::SearchGroupsResult#directory_id #directory_id} => String
1413
+ # * {Types::SearchGroupsResult#groups #groups} => Array&lt;Types::Group&gt;
1414
+ # * {Types::SearchGroupsResult#next_token #next_token} => String
1415
+ # * {Types::SearchGroupsResult#realm #realm} => String
1416
+ #
1417
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1418
+ #
1419
+ # @example Request syntax with placeholder values
1420
+ #
1421
+ # resp = client.search_groups({
1422
+ # directory_id: "DirectoryId", # required
1423
+ # max_results: 1,
1424
+ # next_token: "NextToken",
1425
+ # realm: "Realm",
1426
+ # search_attributes: ["LdapDisplayName"], # required
1427
+ # search_string: "SearchString", # required
1428
+ # })
1429
+ #
1430
+ # @example Response structure
1431
+ #
1432
+ # resp.directory_id #=> String
1433
+ # resp.groups #=> Array
1434
+ # resp.groups[0].distinguished_name #=> String
1435
+ # resp.groups[0].group_scope #=> String, one of "DomainLocal", "Global", "Universal", "BuiltinLocal"
1436
+ # resp.groups[0].group_type #=> String, one of "Distribution", "Security"
1437
+ # resp.groups[0].other_attributes #=> Hash
1438
+ # resp.groups[0].other_attributes["LdapDisplayName"] #=> <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
1439
+ # resp.groups[0].sam_account_name #=> String
1440
+ # resp.groups[0].sid #=> String
1441
+ # resp.next_token #=> String
1442
+ # resp.realm #=> String
1443
+ #
1444
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/SearchGroups AWS API Documentation
1445
+ #
1446
+ # @overload search_groups(params = {})
1447
+ # @param [Hash] params ({})
1448
+ def search_groups(params = {}, options = {})
1449
+ req = build_request(:search_groups, params)
1450
+ req.send_request(options)
1451
+ end
1452
+
1453
+ # Searches the specified directory for a user. You can find users that
1454
+ # match the `SearchString` parameter with the value of their attributes
1455
+ # included in the `SearchString` parameter.
1456
+ #
1457
+ # This operation supports pagination with the use of the `NextToken`
1458
+ # request and response parameters. If more results are available, the
1459
+ # `SearchUsers.NextToken` member contains a token that you pass in the
1460
+ # next call to `SearchUsers`. This retrieves the next set of items.
1461
+ #
1462
+ # You can also specify a maximum number of return results with the
1463
+ # `MaxResults` parameter.
1464
+ #
1465
+ # @option params [required, String] :directory_id
1466
+ # The identifier (ID) of the directory that's associated with the user.
1467
+ #
1468
+ # @option params [Integer] :max_results
1469
+ # The maximum number of results to be returned per request.
1470
+ #
1471
+ # @option params [String] :next_token
1472
+ # An encoded paging token for paginated calls that can be passed back to
1473
+ # retrieve the next page.
1474
+ #
1475
+ # @option params [String] :realm
1476
+ # The domain name that's associated with the user.
1477
+ #
1478
+ # <note markdown="1"> This parameter is optional, so you can return users outside of your
1479
+ # Managed Microsoft AD domain. When no value is defined, only your
1480
+ # Managed Microsoft AD users are returned.
1481
+ #
1482
+ # This value is case insensitive.
1483
+ #
1484
+ # </note>
1485
+ #
1486
+ # @option params [required, Array<String>] :search_attributes
1487
+ # One or more data attributes that are used to search for a user. For a
1488
+ # list of supported attributes, see [Directory Service Data
1489
+ # Attributes][1].
1490
+ #
1491
+ #
1492
+ #
1493
+ # [1]: https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ad_data_attributes.html
1494
+ #
1495
+ # @option params [required, String] :search_string
1496
+ # The attribute value that you want to search for.
1497
+ #
1498
+ # <note markdown="1"> Wildcard `(*)` searches aren't supported. For a list of supported
1499
+ # attributes, see [Directory Service Data Attributes][1].
1500
+ #
1501
+ # </note>
1502
+ #
1503
+ #
1504
+ #
1505
+ # [1]: https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ad_data_attributes.html
1506
+ #
1507
+ # @return [Types::SearchUsersResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1508
+ #
1509
+ # * {Types::SearchUsersResult#directory_id #directory_id} => String
1510
+ # * {Types::SearchUsersResult#next_token #next_token} => String
1511
+ # * {Types::SearchUsersResult#realm #realm} => String
1512
+ # * {Types::SearchUsersResult#users #users} => Array&lt;Types::User&gt;
1513
+ #
1514
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1515
+ #
1516
+ # @example Request syntax with placeholder values
1517
+ #
1518
+ # resp = client.search_users({
1519
+ # directory_id: "DirectoryId", # required
1520
+ # max_results: 1,
1521
+ # next_token: "NextToken",
1522
+ # realm: "Realm",
1523
+ # search_attributes: ["LdapDisplayName"], # required
1524
+ # search_string: "SearchString", # required
1525
+ # })
1526
+ #
1527
+ # @example Response structure
1528
+ #
1529
+ # resp.directory_id #=> String
1530
+ # resp.next_token #=> String
1531
+ # resp.realm #=> String
1532
+ # resp.users #=> Array
1533
+ # resp.users[0].distinguished_name #=> String
1534
+ # resp.users[0].email_address #=> String
1535
+ # resp.users[0].enabled #=> Boolean
1536
+ # resp.users[0].given_name #=> String
1537
+ # resp.users[0].other_attributes #=> Hash
1538
+ # resp.users[0].other_attributes["LdapDisplayName"] #=> <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
1539
+ # resp.users[0].sam_account_name #=> String
1540
+ # resp.users[0].sid #=> String
1541
+ # resp.users[0].surname #=> String
1542
+ # resp.users[0].user_principal_name #=> String
1543
+ #
1544
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/SearchUsers AWS API Documentation
1545
+ #
1546
+ # @overload search_users(params = {})
1547
+ # @param [Hash] params ({})
1548
+ def search_users(params = {}, options = {})
1549
+ req = build_request(:search_users, params)
1550
+ req.send_request(options)
1551
+ end
1552
+
1553
+ # Updates group information.
1554
+ #
1555
+ # @option params [String] :client_token
1556
+ # A unique and case-sensitive identifier that you provide to make sure
1557
+ # the idempotency of the request, so multiple identical calls have the
1558
+ # same effect as one single call.
1559
+ #
1560
+ # A client token is valid for 8 hours after the first request that uses
1561
+ # it completes. After 8 hours, any request with the same client token is
1562
+ # treated as a new request. If the request succeeds, any future uses of
1563
+ # that token will be idempotent for another 8 hours.
1564
+ #
1565
+ # If you submit a request with the same client token but change one of
1566
+ # the other parameters within the 8-hour idempotency window, Directory
1567
+ # Service Data returns an `ConflictException`.
1568
+ #
1569
+ # <note markdown="1"> This parameter is optional when using the CLI or SDK.
1570
+ #
1571
+ # </note>
1572
+ #
1573
+ # **A suitable default value is auto-generated.** You should normally
1574
+ # not need to pass this option.**
1575
+ #
1576
+ # @option params [required, String] :directory_id
1577
+ # The identifier (ID) of the directory that's associated with the
1578
+ # group.
1579
+ #
1580
+ # @option params [String] :group_scope
1581
+ # The scope of the AD group. For details, see [Active Directory security
1582
+ # groups][1].
1583
+ #
1584
+ #
1585
+ #
1586
+ # [1]: https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/understand-security-groups#group-scope
1587
+ #
1588
+ # @option params [String] :group_type
1589
+ # The AD group type. For details, see [Active Directory security group
1590
+ # type][1].
1591
+ #
1592
+ #
1593
+ #
1594
+ # [1]: https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/understand-security-groups#how-active-directory-security-groups-work
1595
+ #
1596
+ # @option params [Hash<String,Types::AttributeValue>] :other_attributes
1597
+ # An expression that defines one or more attributes with the data type
1598
+ # and the value of each attribute.
1599
+ #
1600
+ # @option params [required, String] :sam_account_name
1601
+ # The name of the group.
1602
+ #
1603
+ # @option params [String] :update_type
1604
+ # The type of update to be performed. If no value exists for the
1605
+ # attribute, use `ADD`. Otherwise, use `REPLACE` to change an attribute
1606
+ # value or `REMOVE` to clear the attribute value.
1607
+ #
1608
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1609
+ #
1610
+ # @example Request syntax with placeholder values
1611
+ #
1612
+ # resp = client.update_group({
1613
+ # client_token: "ClientToken",
1614
+ # directory_id: "DirectoryId", # required
1615
+ # group_scope: "DomainLocal", # accepts DomainLocal, Global, Universal, BuiltinLocal
1616
+ # group_type: "Distribution", # accepts Distribution, Security
1617
+ # other_attributes: {
1618
+ # "LdapDisplayName" => "value", # value <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
1619
+ # },
1620
+ # sam_account_name: "GroupName", # required
1621
+ # update_type: "ADD", # accepts ADD, REPLACE, REMOVE
1622
+ # })
1623
+ #
1624
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/UpdateGroup AWS API Documentation
1625
+ #
1626
+ # @overload update_group(params = {})
1627
+ # @param [Hash] params ({})
1628
+ def update_group(params = {}, options = {})
1629
+ req = build_request(:update_group, params)
1630
+ req.send_request(options)
1631
+ end
1632
+
1633
+ # Updates user information.
1634
+ #
1635
+ # @option params [String] :client_token
1636
+ # A unique and case-sensitive identifier that you provide to make sure
1637
+ # the idempotency of the request, so multiple identical calls have the
1638
+ # same effect as one single call.
1639
+ #
1640
+ # A client token is valid for 8 hours after the first request that uses
1641
+ # it completes. After 8 hours, any request with the same client token is
1642
+ # treated as a new request. If the request succeeds, any future uses of
1643
+ # that token will be idempotent for another 8 hours.
1644
+ #
1645
+ # If you submit a request with the same client token but change one of
1646
+ # the other parameters within the 8-hour idempotency window, Directory
1647
+ # Service Data returns an `ConflictException`.
1648
+ #
1649
+ # <note markdown="1"> This parameter is optional when using the CLI or SDK.
1650
+ #
1651
+ # </note>
1652
+ #
1653
+ # **A suitable default value is auto-generated.** You should normally
1654
+ # not need to pass this option.**
1655
+ #
1656
+ # @option params [required, String] :directory_id
1657
+ # The identifier (ID) of the directory that's associated with the user.
1658
+ #
1659
+ # @option params [String] :email_address
1660
+ # The email address of the user.
1661
+ #
1662
+ # @option params [String] :given_name
1663
+ # The first name of the user.
1664
+ #
1665
+ # @option params [Hash<String,Types::AttributeValue>] :other_attributes
1666
+ # An expression that defines one or more attribute names with the data
1667
+ # type and value of each attribute. A key is an attribute name, and the
1668
+ # value is a list of maps. For a list of supported attributes, see
1669
+ # [Directory Service Data Attributes][1].
1670
+ #
1671
+ # <note markdown="1"> Attribute names are case insensitive.
1672
+ #
1673
+ # </note>
1674
+ #
1675
+ #
1676
+ #
1677
+ # [1]: https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ad_data-attributes.html
1678
+ #
1679
+ # @option params [required, String] :sam_account_name
1680
+ # The name of the user.
1681
+ #
1682
+ # @option params [String] :surname
1683
+ # The last name of the user.
1684
+ #
1685
+ # @option params [String] :update_type
1686
+ # The type of update to be performed. If no value exists for the
1687
+ # attribute, use `ADD`. Otherwise, use `REPLACE` to change an attribute
1688
+ # value or `REMOVE` to clear the attribute value.
1689
+ #
1690
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1691
+ #
1692
+ # @example Request syntax with placeholder values
1693
+ #
1694
+ # resp = client.update_user({
1695
+ # client_token: "ClientToken",
1696
+ # directory_id: "DirectoryId", # required
1697
+ # email_address: "EmailAddress",
1698
+ # given_name: "GivenName",
1699
+ # other_attributes: {
1700
+ # "LdapDisplayName" => "value", # value <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
1701
+ # },
1702
+ # sam_account_name: "UserName", # required
1703
+ # surname: "Surname",
1704
+ # update_type: "ADD", # accepts ADD, REPLACE, REMOVE
1705
+ # })
1706
+ #
1707
+ # @see http://docs.aws.amazon.com/goto/WebAPI/directory-service-data-2023-05-31/UpdateUser AWS API Documentation
1708
+ #
1709
+ # @overload update_user(params = {})
1710
+ # @param [Hash] params ({})
1711
+ def update_user(params = {}, options = {})
1712
+ req = build_request(:update_user, params)
1713
+ req.send_request(options)
1714
+ end
1715
+
1716
+ # @!endgroup
1717
+
1718
+ # @param params ({})
1719
+ # @api private
1720
+ def build_request(operation_name, params = {})
1721
+ handlers = @handlers.for(operation_name)
1722
+ tracer = config.telemetry_provider.tracer_provider.tracer(
1723
+ Aws::Telemetry.module_to_tracer_name('Aws::DirectoryServiceData')
1724
+ )
1725
+ context = Seahorse::Client::RequestContext.new(
1726
+ operation_name: operation_name,
1727
+ operation: config.api.operation(operation_name),
1728
+ client: self,
1729
+ params: params,
1730
+ config: config,
1731
+ tracer: tracer
1732
+ )
1733
+ context[:gem_name] = 'aws-sdk-directoryservicedata'
1734
+ context[:gem_version] = '1.0.0'
1735
+ Seahorse::Client::Request.new(handlers, context)
1736
+ end
1737
+
1738
+ # @api private
1739
+ # @deprecated
1740
+ def waiter_names
1741
+ []
1742
+ end
1743
+
1744
+ class << self
1745
+
1746
+ # @api private
1747
+ attr_reader :identifier
1748
+
1749
+ # @api private
1750
+ def errors_module
1751
+ Errors
1752
+ end
1753
+
1754
+ end
1755
+ end
1756
+ end