aws-sdk-partnercentralchannel 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,2021 @@
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'
11
+ require 'aws-sdk-core/plugins/credentials_configuration'
12
+ require 'aws-sdk-core/plugins/logging'
13
+ require 'aws-sdk-core/plugins/param_converter'
14
+ require 'aws-sdk-core/plugins/param_validator'
15
+ require 'aws-sdk-core/plugins/user_agent'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors'
17
+ require 'aws-sdk-core/plugins/retry_errors'
18
+ require 'aws-sdk-core/plugins/global_configuration'
19
+ require 'aws-sdk-core/plugins/regional_endpoint'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern'
22
+ require 'aws-sdk-core/plugins/response_paging'
23
+ require 'aws-sdk-core/plugins/stub_responses'
24
+ require 'aws-sdk-core/plugins/idempotency_token'
25
+ require 'aws-sdk-core/plugins/invocation_id'
26
+ require 'aws-sdk-core/plugins/jsonvalue_converter'
27
+ require 'aws-sdk-core/plugins/client_metrics_plugin'
28
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin'
29
+ require 'aws-sdk-core/plugins/transfer_encoding'
30
+ require 'aws-sdk-core/plugins/http_checksum'
31
+ require 'aws-sdk-core/plugins/checksum_algorithm'
32
+ require 'aws-sdk-core/plugins/request_compression'
33
+ require 'aws-sdk-core/plugins/defaults_mode'
34
+ require 'aws-sdk-core/plugins/recursion_detection'
35
+ require 'aws-sdk-core/plugins/telemetry'
36
+ require 'aws-sdk-core/plugins/sign'
37
+ require 'aws-sdk-core/plugins/protocols/json_rpc'
38
+
39
+ module Aws::PartnerCentralChannel
40
+ # An API client for PartnerCentralChannel. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::PartnerCentralChannel::Client.new(
43
+ # region: region_name,
44
+ # credentials: credentials,
45
+ # # ...
46
+ # )
47
+ #
48
+ # For details on configuring region and credentials see
49
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
50
+ #
51
+ # See {#initialize} for a full list of supported configuration options.
52
+ class Client < Seahorse::Client::Base
53
+
54
+ include Aws::ClientStubs
55
+
56
+ @identifier = :partnercentralchannel
57
+
58
+ set_api(ClientApi::API)
59
+
60
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
61
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
62
+ add_plugin(Aws::Plugins::Logging)
63
+ add_plugin(Aws::Plugins::ParamConverter)
64
+ add_plugin(Aws::Plugins::ParamValidator)
65
+ add_plugin(Aws::Plugins::UserAgent)
66
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
67
+ add_plugin(Aws::Plugins::RetryErrors)
68
+ add_plugin(Aws::Plugins::GlobalConfiguration)
69
+ add_plugin(Aws::Plugins::RegionalEndpoint)
70
+ add_plugin(Aws::Plugins::EndpointDiscovery)
71
+ add_plugin(Aws::Plugins::EndpointPattern)
72
+ add_plugin(Aws::Plugins::ResponsePaging)
73
+ add_plugin(Aws::Plugins::StubResponses)
74
+ add_plugin(Aws::Plugins::IdempotencyToken)
75
+ add_plugin(Aws::Plugins::InvocationId)
76
+ add_plugin(Aws::Plugins::JsonvalueConverter)
77
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
78
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
79
+ add_plugin(Aws::Plugins::TransferEncoding)
80
+ add_plugin(Aws::Plugins::HttpChecksum)
81
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
82
+ add_plugin(Aws::Plugins::RequestCompression)
83
+ add_plugin(Aws::Plugins::DefaultsMode)
84
+ add_plugin(Aws::Plugins::RecursionDetection)
85
+ add_plugin(Aws::Plugins::Telemetry)
86
+ add_plugin(Aws::Plugins::Sign)
87
+ add_plugin(Aws::Plugins::Protocols::JsonRpc)
88
+ add_plugin(Aws::PartnerCentralChannel::Plugins::Endpoints)
89
+
90
+ # @overload initialize(options)
91
+ # @param [Hash] options
92
+ #
93
+ # @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
94
+ # A list of plugins to apply to the client. Each plugin is either a
95
+ # class name or an instance of a plugin class.
96
+ #
97
+ # @option options [required, Aws::CredentialProvider] :credentials
98
+ # Your AWS credentials used for authentication. This can be any class that includes and implements
99
+ # `Aws::CredentialProvider`, or instance of any one of the following classes:
100
+ #
101
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
102
+ # credentials.
103
+ #
104
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
105
+ # shared file, such as `~/.aws/config`.
106
+ #
107
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ #
109
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
110
+ # assume a role after providing credentials via the web.
111
+ #
112
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
113
+ # access token generated from `aws login`.
114
+ #
115
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
116
+ # process that outputs to stdout.
117
+ #
118
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
119
+ # from an EC2 IMDS on an EC2 instance.
120
+ #
121
+ # * `Aws::ECSCredentials` - Used for loading credentials from
122
+ # instances running in ECS.
123
+ #
124
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
125
+ # from the Cognito Identity service.
126
+ #
127
+ # When `:credentials` are not configured directly, the following locations will be searched for credentials:
128
+ #
129
+ # * `Aws.config[:credentials]`
130
+ #
131
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
+ # `:account_id` options.
133
+ #
134
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
135
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
136
+ #
137
+ # * `~/.aws/credentials`
138
+ #
139
+ # * `~/.aws/config`
140
+ #
141
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
142
+ # Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
143
+ # enable retries and extended timeouts. Instance profile credential fetching can be disabled by
144
+ # setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
145
+ #
146
+ # @option options [required, String] :region
147
+ # The AWS region to connect to. The configured `:region` is
148
+ # used to determine the service `:endpoint`. When not passed,
149
+ # a default `:region` is searched for in the following locations:
150
+ #
151
+ # * `Aws.config[:region]`
152
+ # * `ENV['AWS_REGION']`
153
+ # * `ENV['AMAZON_REGION']`
154
+ # * `ENV['AWS_DEFAULT_REGION']`
155
+ # * `~/.aws/credentials`
156
+ # * `~/.aws/config`
157
+ #
158
+ # @option options [String] :access_key_id
159
+ #
160
+ # @option options [String] :account_id
161
+ #
162
+ # @option options [Boolean] :active_endpoint_cache (false)
163
+ # When set to `true`, a thread polling for endpoints will be running in
164
+ # the background every 60 secs (default). Defaults to `false`.
165
+ #
166
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
167
+ # Used only in `adaptive` retry mode. When true, the request will sleep
168
+ # until there is sufficent client side capacity to retry the request.
169
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
170
+ # not retry instead of sleeping.
171
+ #
172
+ # @option options [Array<String>] :auth_scheme_preference
173
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
174
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
175
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
176
+ #
177
+ # @option options [Boolean] :client_side_monitoring (false)
178
+ # When `true`, client-side metrics will be collected for all API requests from
179
+ # this client.
180
+ #
181
+ # @option options [String] :client_side_monitoring_client_id ("")
182
+ # Allows you to provide an identifier for this client which will be attached to
183
+ # all generated client side metrics. Defaults to an empty string.
184
+ #
185
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
186
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
187
+ # side monitoring agent is running on, where client metrics will be published via UDP.
188
+ #
189
+ # @option options [Integer] :client_side_monitoring_port (31000)
190
+ # Required for publishing client metrics. The port that the client side monitoring
191
+ # agent is running on, where client metrics will be published via UDP.
192
+ #
193
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
194
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
195
+ # will use the Client Side Monitoring Agent Publisher.
196
+ #
197
+ # @option options [Boolean] :convert_params (true)
198
+ # When `true`, an attempt is made to coerce request parameters into
199
+ # the required types.
200
+ #
201
+ # @option options [Boolean] :correct_clock_skew (true)
202
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
203
+ # a clock skew correction and retry requests with skewed client clocks.
204
+ #
205
+ # @option options [String] :defaults_mode ("legacy")
206
+ # See {Aws::DefaultsModeConfiguration} for a list of the
207
+ # accepted modes and the configuration defaults that are included.
208
+ #
209
+ # @option options [Boolean] :disable_host_prefix_injection (false)
210
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
211
+ #
212
+ # @option options [Boolean] :disable_request_compression (false)
213
+ # When set to 'true' the request body will not be compressed
214
+ # for supported operations.
215
+ #
216
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
217
+ # Normally you should not configure the `:endpoint` option
218
+ # directly. This is normally constructed from the `:region`
219
+ # option. Configuring `:endpoint` is normally reserved for
220
+ # connecting to test or custom endpoints. The endpoint should
221
+ # be a URI formatted like:
222
+ #
223
+ # 'http://example.com'
224
+ # 'https://example.com'
225
+ # 'http://example.com:123'
226
+ #
227
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
228
+ # Used for the maximum size limit of the LRU cache storing endpoints data
229
+ # for endpoint discovery enabled operations. Defaults to 1000.
230
+ #
231
+ # @option options [Integer] :endpoint_cache_max_threads (10)
232
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
233
+ #
234
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
235
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
236
+ # Use this option to config the time interval in seconds for making
237
+ # requests fetching endpoints information. Defaults to 60 sec.
238
+ #
239
+ # @option options [Boolean] :endpoint_discovery (false)
240
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
241
+ #
242
+ # @option options [Boolean] :ignore_configured_endpoint_urls
243
+ # Setting to true disables use of endpoint URLs provided via environment
244
+ # variables and the shared configuration file.
245
+ #
246
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
247
+ # The log formatter.
248
+ #
249
+ # @option options [Symbol] :log_level (:info)
250
+ # The log level to send messages to the `:logger` at.
251
+ #
252
+ # @option options [Logger] :logger
253
+ # The Logger instance to send log messages to. If this option
254
+ # is not set, logging will be disabled.
255
+ #
256
+ # @option options [Integer] :max_attempts (3)
257
+ # An integer representing the maximum number attempts that will be made for
258
+ # a single request, including the initial attempt. For example,
259
+ # setting this value to 5 will result in a request being retried up to
260
+ # 4 times. Used in `standard` and `adaptive` retry modes.
261
+ #
262
+ # @option options [String] :profile ("default")
263
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
264
+ # When not specified, 'default' is used.
265
+ #
266
+ # @option options [String] :request_checksum_calculation ("when_supported")
267
+ # Determines when a checksum will be calculated for request payloads. Values are:
268
+ #
269
+ # * `when_supported` - (default) When set, a checksum will be
270
+ # calculated for all request payloads of operations modeled with the
271
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
272
+ # `requestAlgorithmMember` is modeled.
273
+ # * `when_required` - When set, a checksum will only be calculated for
274
+ # request payloads of operations modeled with the `httpChecksum` trait where
275
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
276
+ # is modeled and supplied.
277
+ #
278
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
279
+ # The minimum size in bytes that triggers compression for request
280
+ # bodies. The value must be non-negative integer value between 0
281
+ # and 10485780 bytes inclusive.
282
+ #
283
+ # @option options [String] :response_checksum_validation ("when_supported")
284
+ # Determines when checksum validation will be performed on response payloads. Values are:
285
+ #
286
+ # * `when_supported` - (default) When set, checksum validation is performed on all
287
+ # response payloads of operations modeled with the `httpChecksum` trait where
288
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
289
+ # are supported.
290
+ # * `when_required` - When set, checksum validation is not performed on
291
+ # response payloads of operations unless the checksum algorithm is supported and
292
+ # the `requestValidationModeMember` member is set to `ENABLED`.
293
+ #
294
+ # @option options [Proc] :retry_backoff
295
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
296
+ # This option is only used in the `legacy` retry mode.
297
+ #
298
+ # @option options [Float] :retry_base_delay (0.3)
299
+ # The base delay in seconds used by the default backoff function. This option
300
+ # is only used in the `legacy` retry mode.
301
+ #
302
+ # @option options [Symbol] :retry_jitter (:none)
303
+ # A delay randomiser function used by the default backoff function.
304
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
305
+ # otherwise a Proc that takes and returns a number. This option is only used
306
+ # in the `legacy` retry mode.
307
+ #
308
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
309
+ #
310
+ # @option options [Integer] :retry_limit (3)
311
+ # The maximum number of times to retry failed requests. Only
312
+ # ~ 500 level server errors and certain ~ 400 level client errors
313
+ # are retried. Generally, these are throttling errors, data
314
+ # checksum errors, networking errors, timeout errors, auth errors,
315
+ # endpoint discovery, and errors from expired credentials.
316
+ # This option is only used in the `legacy` retry mode.
317
+ #
318
+ # @option options [Integer] :retry_max_delay (0)
319
+ # The maximum number of seconds to delay between retries (0 for no limit)
320
+ # used by the default backoff function. This option is only used in the
321
+ # `legacy` retry mode.
322
+ #
323
+ # @option options [String] :retry_mode ("legacy")
324
+ # Specifies which retry algorithm to use. Values are:
325
+ #
326
+ # * `legacy` - The pre-existing retry behavior. This is default value if
327
+ # no retry mode is provided.
328
+ #
329
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
330
+ # This includes support for retry quotas, which limit the number of
331
+ # unsuccessful retries a client can make.
332
+ #
333
+ # * `adaptive` - An experimental retry mode that includes all the
334
+ # functionality of `standard` mode along with automatic client side
335
+ # throttling. This is a provisional mode that may change behavior
336
+ # in the future.
337
+ #
338
+ # @option options [String] :sdk_ua_app_id
339
+ # A unique and opaque application ID that is appended to the
340
+ # User-Agent header as app/sdk_ua_app_id. It should have a
341
+ # maximum length of 50. This variable is sourced from environment
342
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
343
+ #
344
+ # @option options [String] :secret_access_key
345
+ #
346
+ # @option options [String] :session_token
347
+ #
348
+ # @option options [Array] :sigv4a_signing_region_set
349
+ # A list of regions that should be signed with SigV4a signing. When
350
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
351
+ # in the following locations:
352
+ #
353
+ # * `Aws.config[:sigv4a_signing_region_set]`
354
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
355
+ # * `~/.aws/config`
356
+ #
357
+ # @option options [Boolean] :simple_json (false)
358
+ # Disables request parameter conversion, validation, and formatting.
359
+ # Also disables response data type conversions. The request parameters
360
+ # hash must be formatted exactly as the API expects.This option is useful
361
+ # when you want to ensure the highest level of performance by avoiding
362
+ # overhead of walking request parameters and response data structures.
363
+ #
364
+ # @option options [Boolean] :stub_responses (false)
365
+ # Causes the client to return stubbed responses. By default
366
+ # fake responses are generated and returned. You can specify
367
+ # the response data to return or errors to raise by calling
368
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
369
+ #
370
+ # ** Please note ** When response stubbing is enabled, no HTTP
371
+ # requests are made, and retries are disabled.
372
+ #
373
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
374
+ # Allows you to provide a telemetry provider, which is used to
375
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
376
+ # will not record or emit any telemetry data. The SDK supports the
377
+ # following telemetry providers:
378
+ #
379
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
380
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
381
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
382
+ #
383
+ # @option options [Aws::TokenProvider] :token_provider
384
+ # Your Bearer token used for authentication. This can be any class that includes and implements
385
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
386
+ #
387
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
388
+ # tokens.
389
+ #
390
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
391
+ # access token generated from `aws login`.
392
+ #
393
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
394
+ # will be used to search for tokens configured for your profile in shared configuration files.
395
+ #
396
+ # @option options [Boolean] :use_dualstack_endpoint
397
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
398
+ # will be used if available.
399
+ #
400
+ # @option options [Boolean] :use_fips_endpoint
401
+ # When set to `true`, fips compatible endpoints will be used if available.
402
+ # When a `fips` region is used, the region is normalized and this config
403
+ # is set to `true`.
404
+ #
405
+ # @option options [Boolean] :validate_params (true)
406
+ # When `true`, request parameters are validated before
407
+ # sending the request.
408
+ #
409
+ # @option options [Aws::PartnerCentralChannel::EndpointProvider] :endpoint_provider
410
+ # The endpoint provider used to resolve endpoints. Any object that responds to
411
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
412
+ # `Aws::PartnerCentralChannel::EndpointParameters`.
413
+ #
414
+ # @option options [Float] :http_continue_timeout (1)
415
+ # The number of seconds to wait for a 100-continue response before sending the
416
+ # request body. This option has no effect unless the request has "Expect"
417
+ # header set to "100-continue". Defaults to `nil` which disables this
418
+ # behaviour. This value can safely be set per request on the session.
419
+ #
420
+ # @option options [Float] :http_idle_timeout (5)
421
+ # The number of seconds a connection is allowed to sit idle before it
422
+ # is considered stale. Stale connections are closed and removed from the
423
+ # pool before making a request.
424
+ #
425
+ # @option options [Float] :http_open_timeout (15)
426
+ # The default number of seconds to wait for response data.
427
+ # This value can safely be set per-request on the session.
428
+ #
429
+ # @option options [URI::HTTP,String] :http_proxy
430
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
431
+ #
432
+ # @option options [Float] :http_read_timeout (60)
433
+ # The default number of seconds to wait for response data.
434
+ # This value can safely be set per-request on the session.
435
+ #
436
+ # @option options [Boolean] :http_wire_trace (false)
437
+ # When `true`, HTTP debug output will be sent to the `:logger`.
438
+ #
439
+ # @option options [Proc] :on_chunk_received
440
+ # When a Proc object is provided, it will be used as callback when each chunk
441
+ # of the response body is received. It provides three arguments: the chunk,
442
+ # the number of bytes received, and the total number of
443
+ # bytes in the response (or nil if the server did not send a `content-length`).
444
+ #
445
+ # @option options [Proc] :on_chunk_sent
446
+ # When a Proc object is provided, it will be used as callback when each chunk
447
+ # of the request body is sent. It provides three arguments: the chunk,
448
+ # the number of bytes read from the body, and the total number of
449
+ # bytes in the body.
450
+ #
451
+ # @option options [Boolean] :raise_response_errors (true)
452
+ # When `true`, response errors are raised.
453
+ #
454
+ # @option options [String] :ssl_ca_bundle
455
+ # Full path to the SSL certificate authority bundle file that should be used when
456
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
457
+ # `:ssl_ca_directory` the the system default will be used if available.
458
+ #
459
+ # @option options [String] :ssl_ca_directory
460
+ # Full path of the directory that contains the unbundled SSL certificate
461
+ # authority files for verifying peer certificates. If you do
462
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
463
+ # default will be used if available.
464
+ #
465
+ # @option options [String] :ssl_ca_store
466
+ # Sets the X509::Store to verify peer certificate.
467
+ #
468
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
469
+ # Sets a client certificate when creating http connections.
470
+ #
471
+ # @option options [OpenSSL::PKey] :ssl_key
472
+ # Sets a client key when creating http connections.
473
+ #
474
+ # @option options [Float] :ssl_timeout
475
+ # Sets the SSL timeout in seconds
476
+ #
477
+ # @option options [Boolean] :ssl_verify_peer (true)
478
+ # When `true`, SSL peer certificates are verified when establishing a connection.
479
+ #
480
+ def initialize(*args)
481
+ super
482
+ end
483
+
484
+ # @!group API Operations
485
+
486
+ # Accepts a pending channel handshake request from another AWS account.
487
+ #
488
+ # @option params [required, String] :catalog
489
+ # The catalog identifier for the handshake request.
490
+ #
491
+ # @option params [required, String] :identifier
492
+ # The unique identifier of the channel handshake to accept.
493
+ #
494
+ # @return [Types::AcceptChannelHandshakeResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
495
+ #
496
+ # * {Types::AcceptChannelHandshakeResponse#channel_handshake_detail #channel_handshake_detail} => Types::AcceptChannelHandshakeDetail
497
+ #
498
+ #
499
+ # @example Example: Example for AcceptChannelHandshake
500
+ #
501
+ # resp = client.accept_channel_handshake({
502
+ # catalog: "AWS",
503
+ # identifier: "ch-4fj3bd2o3vb91",
504
+ # })
505
+ #
506
+ # resp.to_h outputs the following:
507
+ # {
508
+ # channel_handshake_detail: {
509
+ # arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/channel-handshake/ch-4fj3bd2o3vb91",
510
+ # id: "ch-4fj3bd2o3vb91",
511
+ # status: "ACCEPTED",
512
+ # },
513
+ # }
514
+ #
515
+ # @example Request syntax with placeholder values
516
+ #
517
+ # resp = client.accept_channel_handshake({
518
+ # catalog: "Catalog", # required
519
+ # identifier: "ChannelHandshakeIdentifier", # required
520
+ # })
521
+ #
522
+ # @example Response structure
523
+ #
524
+ # resp.channel_handshake_detail.id #=> String
525
+ # resp.channel_handshake_detail.arn #=> String
526
+ # resp.channel_handshake_detail.status #=> String, one of "PENDING", "ACCEPTED", "REJECTED", "CANCELED", "EXPIRED"
527
+ #
528
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/AcceptChannelHandshake AWS API Documentation
529
+ #
530
+ # @overload accept_channel_handshake(params = {})
531
+ # @param [Hash] params ({})
532
+ def accept_channel_handshake(params = {}, options = {})
533
+ req = build_request(:accept_channel_handshake, params)
534
+ req.send_request(options)
535
+ end
536
+
537
+ # Cancels a pending channel handshake request.
538
+ #
539
+ # @option params [required, String] :catalog
540
+ # The catalog identifier for the handshake request.
541
+ #
542
+ # @option params [required, String] :identifier
543
+ # The unique identifier of the channel handshake to cancel.
544
+ #
545
+ # @return [Types::CancelChannelHandshakeResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
546
+ #
547
+ # * {Types::CancelChannelHandshakeResponse#channel_handshake_detail #channel_handshake_detail} => Types::CancelChannelHandshakeDetail
548
+ #
549
+ #
550
+ # @example Example: Example for CancelChannelHandshake
551
+ #
552
+ # resp = client.cancel_channel_handshake({
553
+ # catalog: "AWS",
554
+ # identifier: "ch-4fj3bd2o3vb91",
555
+ # })
556
+ #
557
+ # resp.to_h outputs the following:
558
+ # {
559
+ # channel_handshake_detail: {
560
+ # arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/channel-handshake/ch-4fj3bd2o3vb91",
561
+ # id: "ch-4fj3bd2o3vb91",
562
+ # status: "CANCELED",
563
+ # },
564
+ # }
565
+ #
566
+ # @example Request syntax with placeholder values
567
+ #
568
+ # resp = client.cancel_channel_handshake({
569
+ # catalog: "Catalog", # required
570
+ # identifier: "ChannelHandshakeIdentifier", # required
571
+ # })
572
+ #
573
+ # @example Response structure
574
+ #
575
+ # resp.channel_handshake_detail.id #=> String
576
+ # resp.channel_handshake_detail.arn #=> String
577
+ # resp.channel_handshake_detail.status #=> String, one of "PENDING", "ACCEPTED", "REJECTED", "CANCELED", "EXPIRED"
578
+ #
579
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/CancelChannelHandshake AWS API Documentation
580
+ #
581
+ # @overload cancel_channel_handshake(params = {})
582
+ # @param [Hash] params ({})
583
+ def cancel_channel_handshake(params = {}, options = {})
584
+ req = build_request(:cancel_channel_handshake, params)
585
+ req.send_request(options)
586
+ end
587
+
588
+ # Creates a new channel handshake request to establish a partnership
589
+ # with another AWS account.
590
+ #
591
+ # @option params [required, String] :handshake_type
592
+ # The type of handshake to create (e.g., start service period, revoke
593
+ # service period).
594
+ #
595
+ # @option params [required, String] :catalog
596
+ # The catalog identifier for the handshake request.
597
+ #
598
+ # @option params [required, String] :associated_resource_identifier
599
+ # The identifier of the resource associated with this handshake.
600
+ #
601
+ # @option params [Types::ChannelHandshakePayload] :payload
602
+ # The payload containing specific details for the handshake type.
603
+ #
604
+ # @option params [String] :client_token
605
+ # A unique, case-sensitive identifier to ensure idempotency of the
606
+ # request.
607
+ #
608
+ # **A suitable default value is auto-generated.** You should normally
609
+ # not need to pass this option.**
610
+ #
611
+ # @option params [Array<Types::Tag>] :tags
612
+ # Key-value pairs to associate with the channel handshake.
613
+ #
614
+ # @return [Types::CreateChannelHandshakeResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
615
+ #
616
+ # * {Types::CreateChannelHandshakeResponse#channel_handshake_detail #channel_handshake_detail} => Types::CreateChannelHandshakeDetail
617
+ #
618
+ #
619
+ # @example Example: Example for CreateChannelHandshake - START_SERVICE_PERIOD with Minimum Notice Period
620
+ #
621
+ # resp = client.create_channel_handshake({
622
+ # associated_resource_identifier: "rs-abc123def456g",
623
+ # catalog: "AWS",
624
+ # client_token: "clientToken",
625
+ # handshake_type: "START_SERVICE_PERIOD",
626
+ # payload: {
627
+ # start_service_period_payload: {
628
+ # minimum_notice_days: "14",
629
+ # note: "Optional Note",
630
+ # program_management_account_identifier: "pma-abcdef123456g",
631
+ # service_period_type: "MINIMUM_NOTICE_PERIOD",
632
+ # },
633
+ # },
634
+ # })
635
+ #
636
+ # resp.to_h outputs the following:
637
+ # {
638
+ # channel_handshake_detail: {
639
+ # arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/channel-handshake/ch-4fj3bd2o3vb91",
640
+ # id: "ch-4fj3bd2o3vb91",
641
+ # },
642
+ # }
643
+ #
644
+ # @example Example: Example for CreateChannelHandshake - START_SERVICE_PERIOD with Fixed Commitment Period
645
+ #
646
+ # resp = client.create_channel_handshake({
647
+ # associated_resource_identifier: "rs-abc123def456g",
648
+ # catalog: "AWS",
649
+ # client_token: "clientToken",
650
+ # handshake_type: "START_SERVICE_PERIOD",
651
+ # payload: {
652
+ # start_service_period_payload: {
653
+ # end_date: Time.parse("2026-07-01T00:00:00Z"),
654
+ # note: "Optional Note",
655
+ # program_management_account_identifier: "pma-abcdef123456g",
656
+ # service_period_type: "FIXED_COMMITMENT_PERIOD",
657
+ # },
658
+ # },
659
+ # })
660
+ #
661
+ # resp.to_h outputs the following:
662
+ # {
663
+ # channel_handshake_detail: {
664
+ # arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/channel-handshake/ch-4fj3bd2o3vb91",
665
+ # id: "ch-4fj3bd2o3vb91",
666
+ # },
667
+ # }
668
+ #
669
+ # @example Example: Example for CreateChannelHandshake - REVOKE_SERVICE_PERIOD
670
+ #
671
+ # resp = client.create_channel_handshake({
672
+ # associated_resource_identifier: "rs-abc123def456g",
673
+ # catalog: "AWS",
674
+ # client_token: "clientToken",
675
+ # handshake_type: "REVOKE_SERVICE_PERIOD",
676
+ # payload: {
677
+ # revoke_service_period_payload: {
678
+ # note: "Optional Note",
679
+ # program_management_account_identifier: "pma-abcdef123456g",
680
+ # },
681
+ # },
682
+ # })
683
+ #
684
+ # resp.to_h outputs the following:
685
+ # {
686
+ # channel_handshake_detail: {
687
+ # arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/channel-handshake/ch-4fj3bd2o3vb91",
688
+ # id: "ch-4fj3bd2o3vb91",
689
+ # },
690
+ # }
691
+ #
692
+ # @example Example: Example for CreateChannelHandshake - PROGRAM_MANAGEMENT_ACCOUNT
693
+ #
694
+ # resp = client.create_channel_handshake({
695
+ # associated_resource_identifier: "pma-123abc456def7",
696
+ # catalog: "AWS",
697
+ # client_token: "clientToken",
698
+ # handshake_type: "PROGRAM_MANAGEMENT_ACCOUNT",
699
+ # })
700
+ #
701
+ # resp.to_h outputs the following:
702
+ # {
703
+ # channel_handshake_detail: {
704
+ # arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/channel-handshake/ch-4fj3bd2o3vb91",
705
+ # id: "ch-4fj3bd2o3vb91",
706
+ # },
707
+ # }
708
+ #
709
+ # @example Request syntax with placeholder values
710
+ #
711
+ # resp = client.create_channel_handshake({
712
+ # handshake_type: "START_SERVICE_PERIOD", # required, accepts START_SERVICE_PERIOD, REVOKE_SERVICE_PERIOD, PROGRAM_MANAGEMENT_ACCOUNT
713
+ # catalog: "Catalog", # required
714
+ # associated_resource_identifier: "AssociatedResourceIdentifier", # required
715
+ # payload: {
716
+ # start_service_period_payload: {
717
+ # program_management_account_identifier: "ProgramManagementAccountIdentifier", # required
718
+ # note: "Note",
719
+ # service_period_type: "MINIMUM_NOTICE_PERIOD", # required, accepts MINIMUM_NOTICE_PERIOD, FIXED_COMMITMENT_PERIOD
720
+ # minimum_notice_days: "MinimumNoticeDays",
721
+ # end_date: Time.now,
722
+ # },
723
+ # revoke_service_period_payload: {
724
+ # program_management_account_identifier: "ProgramManagementAccountIdentifier", # required
725
+ # note: "Note",
726
+ # },
727
+ # },
728
+ # client_token: "ClientToken",
729
+ # tags: [
730
+ # {
731
+ # key: "TagKey", # required
732
+ # value: "TagValue", # required
733
+ # },
734
+ # ],
735
+ # })
736
+ #
737
+ # @example Response structure
738
+ #
739
+ # resp.channel_handshake_detail.id #=> String
740
+ # resp.channel_handshake_detail.arn #=> String
741
+ #
742
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/CreateChannelHandshake AWS API Documentation
743
+ #
744
+ # @overload create_channel_handshake(params = {})
745
+ # @param [Hash] params ({})
746
+ def create_channel_handshake(params = {}, options = {})
747
+ req = build_request(:create_channel_handshake, params)
748
+ req.send_request(options)
749
+ end
750
+
751
+ # Creates a new program management account for managing partner
752
+ # relationships.
753
+ #
754
+ # @option params [required, String] :catalog
755
+ # The catalog identifier for the program management account.
756
+ #
757
+ # @option params [required, String] :program
758
+ # The program type for the management account.
759
+ #
760
+ # @option params [required, String] :display_name
761
+ # A human-readable name for the program management account.
762
+ #
763
+ # @option params [required, String] :account_id
764
+ # The AWS account ID to associate with the program management account.
765
+ #
766
+ # @option params [String] :client_token
767
+ # A unique, case-sensitive identifier to ensure idempotency of the
768
+ # request.
769
+ #
770
+ # **A suitable default value is auto-generated.** You should normally
771
+ # not need to pass this option.**
772
+ #
773
+ # @option params [Array<Types::Tag>] :tags
774
+ # Key-value pairs to associate with the program management account.
775
+ #
776
+ # @return [Types::CreateProgramManagementAccountResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
777
+ #
778
+ # * {Types::CreateProgramManagementAccountResponse#program_management_account_detail #program_management_account_detail} => Types::CreateProgramManagementAccountDetail
779
+ #
780
+ #
781
+ # @example Example: Example for CreateProgramManagementAccount
782
+ #
783
+ # resp = client.create_program_management_account({
784
+ # account_id: "111122223333",
785
+ # catalog: "AWS",
786
+ # client_token: "clientToken",
787
+ # display_name: "TestDisplayName",
788
+ # program: "SOLUTION_PROVIDER",
789
+ # })
790
+ #
791
+ # resp.to_h outputs the following:
792
+ # {
793
+ # program_management_account_detail: {
794
+ # arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/program-management-account/pma-u8ic702rtzng8",
795
+ # id: "pma-u8ic702rtzng8",
796
+ # },
797
+ # }
798
+ #
799
+ # @example Request syntax with placeholder values
800
+ #
801
+ # resp = client.create_program_management_account({
802
+ # catalog: "Catalog", # required
803
+ # program: "SOLUTION_PROVIDER", # required, accepts SOLUTION_PROVIDER, DISTRIBUTION, DISTRIBUTION_SELLER
804
+ # display_name: "ProgramManagementAccountDisplayName", # required
805
+ # account_id: "AccountId", # required
806
+ # client_token: "ClientToken",
807
+ # tags: [
808
+ # {
809
+ # key: "TagKey", # required
810
+ # value: "TagValue", # required
811
+ # },
812
+ # ],
813
+ # })
814
+ #
815
+ # @example Response structure
816
+ #
817
+ # resp.program_management_account_detail.id #=> String
818
+ # resp.program_management_account_detail.arn #=> String
819
+ #
820
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/CreateProgramManagementAccount AWS API Documentation
821
+ #
822
+ # @overload create_program_management_account(params = {})
823
+ # @param [Hash] params ({})
824
+ def create_program_management_account(params = {}, options = {})
825
+ req = build_request(:create_program_management_account, params)
826
+ req.send_request(options)
827
+ end
828
+
829
+ # Creates a new partner relationship between accounts.
830
+ #
831
+ # @option params [required, String] :catalog
832
+ # The catalog identifier for the relationship.
833
+ #
834
+ # @option params [required, String] :association_type
835
+ # The type of association for the relationship (e.g., reseller,
836
+ # distributor).
837
+ #
838
+ # @option params [required, String] :program_management_account_identifier
839
+ # The identifier of the program management account for this
840
+ # relationship.
841
+ #
842
+ # @option params [required, String] :associated_account_id
843
+ # The AWS account ID to associate in this relationship.
844
+ #
845
+ # @option params [required, String] :display_name
846
+ # A human-readable name for the relationship.
847
+ #
848
+ # @option params [String] :resale_account_model
849
+ # The resale account model for the relationship.
850
+ #
851
+ # @option params [required, String] :sector
852
+ # The business sector for the relationship.
853
+ #
854
+ # @option params [String] :client_token
855
+ # A unique, case-sensitive identifier to ensure idempotency of the
856
+ # request.
857
+ #
858
+ # **A suitable default value is auto-generated.** You should normally
859
+ # not need to pass this option.**
860
+ #
861
+ # @option params [Array<Types::Tag>] :tags
862
+ # Key-value pairs to associate with the relationship.
863
+ #
864
+ # @option params [Types::SupportPlan] :requested_support_plan
865
+ # The support plan requested for this relationship.
866
+ #
867
+ # @return [Types::CreateRelationshipResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
868
+ #
869
+ # * {Types::CreateRelationshipResponse#relationship_detail #relationship_detail} => Types::CreateRelationshipDetail
870
+ #
871
+ #
872
+ # @example Example: Example for CreateRelationship
873
+ #
874
+ # resp = client.create_relationship({
875
+ # associated_account_id: "987654321012",
876
+ # association_type: "DOWNSTREAM_SELLER",
877
+ # catalog: "AWS",
878
+ # client_token: "clientToken",
879
+ # display_name: "TestDisplayName",
880
+ # program_management_account_identifier: "pma-u8ic702rtzng8",
881
+ # resale_account_model: "END_CUSTOMER",
882
+ # sector: "COMMERCIAL",
883
+ # })
884
+ #
885
+ # resp.to_h outputs the following:
886
+ # {
887
+ # relationship_detail: {
888
+ # arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/program-management-account/pma-u8ic702rtzng8/relationship/rs-l9o4fj3b5zb91",
889
+ # id: "rs-l9o4fj3b5zb91",
890
+ # },
891
+ # }
892
+ #
893
+ # @example Request syntax with placeholder values
894
+ #
895
+ # resp = client.create_relationship({
896
+ # catalog: "Catalog", # required
897
+ # association_type: "DOWNSTREAM_SELLER", # required, accepts DOWNSTREAM_SELLER, END_CUSTOMER, INTERNAL
898
+ # program_management_account_identifier: "ProgramManagementAccountIdentifier", # required
899
+ # associated_account_id: "AccountId", # required
900
+ # display_name: "RelationshipDisplayName", # required
901
+ # resale_account_model: "DISTRIBUTOR", # accepts DISTRIBUTOR, END_CUSTOMER, SOLUTION_PROVIDER
902
+ # sector: "COMMERCIAL", # required, accepts COMMERCIAL, GOVERNMENT, GOVERNMENT_EXCEPTION
903
+ # client_token: "ClientToken",
904
+ # tags: [
905
+ # {
906
+ # key: "TagKey", # required
907
+ # value: "TagValue", # required
908
+ # },
909
+ # ],
910
+ # requested_support_plan: {
911
+ # resold_business: {
912
+ # coverage: "ENTIRE_ORGANIZATION", # required, accepts ENTIRE_ORGANIZATION, MANAGEMENT_ACCOUNT_ONLY
913
+ # },
914
+ # resold_enterprise: {
915
+ # coverage: "ENTIRE_ORGANIZATION", # required, accepts ENTIRE_ORGANIZATION, MANAGEMENT_ACCOUNT_ONLY
916
+ # tam_location: "String", # required
917
+ # charge_account_id: "AccountId",
918
+ # },
919
+ # partner_led_support: {
920
+ # coverage: "ENTIRE_ORGANIZATION", # required, accepts ENTIRE_ORGANIZATION, MANAGEMENT_ACCOUNT_ONLY
921
+ # provider: "DISTRIBUTOR", # accepts DISTRIBUTOR, DISTRIBUTION_SELLER
922
+ # tam_location: "String", # required
923
+ # },
924
+ # },
925
+ # })
926
+ #
927
+ # @example Response structure
928
+ #
929
+ # resp.relationship_detail.arn #=> String
930
+ # resp.relationship_detail.id #=> String
931
+ #
932
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/CreateRelationship AWS API Documentation
933
+ #
934
+ # @overload create_relationship(params = {})
935
+ # @param [Hash] params ({})
936
+ def create_relationship(params = {}, options = {})
937
+ req = build_request(:create_relationship, params)
938
+ req.send_request(options)
939
+ end
940
+
941
+ # Deletes a program management account.
942
+ #
943
+ # @option params [required, String] :catalog
944
+ # The catalog identifier for the program management account.
945
+ #
946
+ # @option params [required, String] :identifier
947
+ # The unique identifier of the program management account to delete.
948
+ #
949
+ # @option params [String] :client_token
950
+ # A unique, case-sensitive identifier to ensure idempotency of the
951
+ # request.
952
+ #
953
+ # **A suitable default value is auto-generated.** You should normally
954
+ # not need to pass this option.**
955
+ #
956
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
957
+ #
958
+ #
959
+ # @example Example: Example for DeleteProgramManagementAccount
960
+ #
961
+ # resp = client.delete_program_management_account({
962
+ # catalog: "AWS",
963
+ # client_token: "clientToken",
964
+ # identifier: "pma-u8ic702rtzng8",
965
+ # })
966
+ #
967
+ # resp.to_h outputs the following:
968
+ # {
969
+ # }
970
+ #
971
+ # @example Request syntax with placeholder values
972
+ #
973
+ # resp = client.delete_program_management_account({
974
+ # catalog: "Catalog", # required
975
+ # identifier: "ProgramManagementAccountIdentifier", # required
976
+ # client_token: "ClientToken",
977
+ # })
978
+ #
979
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/DeleteProgramManagementAccount AWS API Documentation
980
+ #
981
+ # @overload delete_program_management_account(params = {})
982
+ # @param [Hash] params ({})
983
+ def delete_program_management_account(params = {}, options = {})
984
+ req = build_request(:delete_program_management_account, params)
985
+ req.send_request(options)
986
+ end
987
+
988
+ # Deletes a partner relationship.
989
+ #
990
+ # @option params [required, String] :catalog
991
+ # The catalog identifier for the relationship.
992
+ #
993
+ # @option params [required, String] :identifier
994
+ # The unique identifier of the relationship to delete.
995
+ #
996
+ # @option params [required, String] :program_management_account_identifier
997
+ # The identifier of the program management account associated with the
998
+ # relationship.
999
+ #
1000
+ # @option params [String] :client_token
1001
+ # A unique, case-sensitive identifier to ensure idempotency of the
1002
+ # request.
1003
+ #
1004
+ # **A suitable default value is auto-generated.** You should normally
1005
+ # not need to pass this option.**
1006
+ #
1007
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1008
+ #
1009
+ #
1010
+ # @example Example: Example for DeleteRelationship
1011
+ #
1012
+ # resp = client.delete_relationship({
1013
+ # catalog: "AWS",
1014
+ # client_token: "clientToken",
1015
+ # identifier: "rs-l9o4fj3b5zb91",
1016
+ # program_management_account_identifier: "pma-u8ic702rtzng8",
1017
+ # })
1018
+ #
1019
+ # resp.to_h outputs the following:
1020
+ # {
1021
+ # }
1022
+ #
1023
+ # @example Request syntax with placeholder values
1024
+ #
1025
+ # resp = client.delete_relationship({
1026
+ # catalog: "Catalog", # required
1027
+ # identifier: "RelationshipIdentifier", # required
1028
+ # program_management_account_identifier: "ProgramManagementAccountIdentifier", # required
1029
+ # client_token: "ClientToken",
1030
+ # })
1031
+ #
1032
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/DeleteRelationship AWS API Documentation
1033
+ #
1034
+ # @overload delete_relationship(params = {})
1035
+ # @param [Hash] params ({})
1036
+ def delete_relationship(params = {}, options = {})
1037
+ req = build_request(:delete_relationship, params)
1038
+ req.send_request(options)
1039
+ end
1040
+
1041
+ # Retrieves details of a specific partner relationship.
1042
+ #
1043
+ # @option params [required, String] :catalog
1044
+ # The catalog identifier for the relationship.
1045
+ #
1046
+ # @option params [required, String] :program_management_account_identifier
1047
+ # The identifier of the program management account associated with the
1048
+ # relationship.
1049
+ #
1050
+ # @option params [required, String] :identifier
1051
+ # The unique identifier of the relationship to retrieve.
1052
+ #
1053
+ # @return [Types::GetRelationshipResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1054
+ #
1055
+ # * {Types::GetRelationshipResponse#relationship_detail #relationship_detail} => Types::RelationshipDetail
1056
+ #
1057
+ #
1058
+ # @example Example: Example for GetRelationship
1059
+ #
1060
+ # resp = client.get_relationship({
1061
+ # catalog: "AWS",
1062
+ # identifier: "rs-l9o4fj3b5zb91",
1063
+ # program_management_account_identifier: "pma-u8ic702rtzng8",
1064
+ # })
1065
+ #
1066
+ # resp.to_h outputs the following:
1067
+ # {
1068
+ # relationship_detail: {
1069
+ # arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/program-management-account/pma-u8ic702rtzng8/relationship/rs-l9o4fj3b5zb91",
1070
+ # associated_account_id: "987654321012",
1071
+ # association_type: "DOWNSTREAM_SELLER",
1072
+ # created_at: Time.parse("2024-04-29T16:18:16Z"),
1073
+ # display_name: "TestDisplayName",
1074
+ # id: "rs-l9o4fj3b5zb91",
1075
+ # program_management_account_id: "pma-u8ic702rtzng8",
1076
+ # resale_account_model: "END_CUSTOMER",
1077
+ # revision: "3",
1078
+ # sector: "COMMERCIAL",
1079
+ # updated_at: Time.parse("2024-05-02T16:18:16Z"),
1080
+ # },
1081
+ # }
1082
+ #
1083
+ # @example Request syntax with placeholder values
1084
+ #
1085
+ # resp = client.get_relationship({
1086
+ # catalog: "Catalog", # required
1087
+ # program_management_account_identifier: "ProgramManagementAccountIdentifier", # required
1088
+ # identifier: "RelationshipIdentifier", # required
1089
+ # })
1090
+ #
1091
+ # @example Response structure
1092
+ #
1093
+ # resp.relationship_detail.arn #=> String
1094
+ # resp.relationship_detail.id #=> String
1095
+ # resp.relationship_detail.revision #=> String
1096
+ # resp.relationship_detail.catalog #=> String
1097
+ # resp.relationship_detail.association_type #=> String, one of "DOWNSTREAM_SELLER", "END_CUSTOMER", "INTERNAL"
1098
+ # resp.relationship_detail.program_management_account_id #=> String
1099
+ # resp.relationship_detail.associated_account_id #=> String
1100
+ # resp.relationship_detail.display_name #=> String
1101
+ # resp.relationship_detail.resale_account_model #=> String, one of "DISTRIBUTOR", "END_CUSTOMER", "SOLUTION_PROVIDER"
1102
+ # resp.relationship_detail.sector #=> String, one of "COMMERCIAL", "GOVERNMENT", "GOVERNMENT_EXCEPTION"
1103
+ # resp.relationship_detail.created_at #=> Time
1104
+ # resp.relationship_detail.updated_at #=> Time
1105
+ # resp.relationship_detail.start_date #=> Time
1106
+ #
1107
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/GetRelationship AWS API Documentation
1108
+ #
1109
+ # @overload get_relationship(params = {})
1110
+ # @param [Hash] params ({})
1111
+ def get_relationship(params = {}, options = {})
1112
+ req = build_request(:get_relationship, params)
1113
+ req.send_request(options)
1114
+ end
1115
+
1116
+ # Lists channel handshakes based on specified criteria.
1117
+ #
1118
+ # @option params [required, String] :handshake_type
1119
+ # Filter results by handshake type.
1120
+ #
1121
+ # @option params [required, String] :catalog
1122
+ # The catalog identifier to filter handshakes.
1123
+ #
1124
+ # @option params [required, String] :participant_type
1125
+ # Filter by participant type (sender or receiver).
1126
+ #
1127
+ # @option params [Integer] :max_results
1128
+ # The maximum number of results to return in a single call.
1129
+ #
1130
+ # @option params [Array<String>] :statuses
1131
+ # Filter results by handshake status.
1132
+ #
1133
+ # @option params [Array<String>] :associated_resource_identifiers
1134
+ # Filter by associated resource identifiers.
1135
+ #
1136
+ # @option params [Types::ListChannelHandshakesTypeFilters] :handshake_type_filters
1137
+ # Type-specific filters for handshakes.
1138
+ #
1139
+ # @option params [Types::ListChannelHandshakesTypeSort] :handshake_type_sort
1140
+ # Type-specific sorting options for handshakes.
1141
+ #
1142
+ # @option params [String] :next_token
1143
+ # Token for retrieving the next page of results.
1144
+ #
1145
+ # @return [Types::ListChannelHandshakesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1146
+ #
1147
+ # * {Types::ListChannelHandshakesResponse#items #items} => Array&lt;Types::ChannelHandshakeSummary&gt;
1148
+ # * {Types::ListChannelHandshakesResponse#next_token #next_token} => String
1149
+ #
1150
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1151
+ #
1152
+ #
1153
+ # @example Example: Example for ListChannelHandshakes - START_SERVICE_PERIOD
1154
+ #
1155
+ # resp = client.list_channel_handshakes({
1156
+ # associated_resource_identifiers: [
1157
+ # "rs-123abc456def7",
1158
+ # ],
1159
+ # catalog: "AWS",
1160
+ # handshake_type: "START_SERVICE_PERIOD",
1161
+ # handshake_type_filters: {
1162
+ # start_service_period_type_filters: {
1163
+ # service_period_types: [
1164
+ # "FIXED_COMMITMENT_PERIOD",
1165
+ # ],
1166
+ # },
1167
+ # },
1168
+ # handshake_type_sort: {
1169
+ # start_service_period_type_sort: {
1170
+ # sort_by: "UpdatedAt",
1171
+ # sort_order: "Descending",
1172
+ # },
1173
+ # },
1174
+ # participant_type: "SENDER",
1175
+ # statuses: [
1176
+ # "ACCEPTED",
1177
+ # ],
1178
+ # })
1179
+ #
1180
+ # resp.to_h outputs the following:
1181
+ # {
1182
+ # items: [
1183
+ # {
1184
+ # arn: "arn:aws:partnercentral:us-east-1:111122223333:catalog/AWS/channel-handshake/ch-4fj3bd2o3vb91",
1185
+ # associated_resource_id: "rs-u8ic702rtfew1",
1186
+ # catalog: "AWS",
1187
+ # created_at: Time.parse("2025-04-29T16:18:16.000Z"),
1188
+ # detail: {
1189
+ # start_service_period_handshake_detail: {
1190
+ # minimum_notice_days: "14",
1191
+ # note: "Optional_Note",
1192
+ # service_period_type: "MINIMUM_NOTICE_PERIOD",
1193
+ # },
1194
+ # },
1195
+ # handshake_type: "START_SERVICE_PERIOD",
1196
+ # id: "ch-4fj3bd2o3vb91",
1197
+ # owner_account_id: "111122223333",
1198
+ # receiver_account_id: "333322221111",
1199
+ # sender_account_id: "111122224444",
1200
+ # status: "PENDING",
1201
+ # updated_at: Time.parse("2025-05-02T16:18:16.000Z"),
1202
+ # },
1203
+ # {
1204
+ # arn: "arn:aws:partnercentral:us-east-1:111122223333:catalog/AWS/channel-handshake/ch-4fj3bd2o3vb92",
1205
+ # associated_resource_id: "rs-u8ic702rtfew1",
1206
+ # catalog: "AWS",
1207
+ # created_at: Time.parse("2025-02-28T16:18:16.000Z"),
1208
+ # detail: {
1209
+ # start_service_period_handshake_detail: {
1210
+ # end_date: Time.parse("2027-03-31T00:00:00.000Z"),
1211
+ # note: "Optional_Note",
1212
+ # service_period_type: "FIXED_COMMITMENT_PERIOD",
1213
+ # start_date: Time.parse("2025-02-02T00:00:00.000Z"),
1214
+ # },
1215
+ # },
1216
+ # handshake_type: "START_SERVICE_PERIOD",
1217
+ # id: "ch-4fj3bd2o3vb92",
1218
+ # owner_account_id: "111122223333",
1219
+ # receiver_account_id: "333322221111",
1220
+ # sender_account_id: "111122224444",
1221
+ # status: "PENDING",
1222
+ # updated_at: Time.parse("2025-03-02T16:18:16.000Z"),
1223
+ # },
1224
+ # ],
1225
+ # next_token: "nextToken",
1226
+ # }
1227
+ #
1228
+ # @example Example: Example for ListChannelHandshakes - REVOKE_SERVICE_PERIOD
1229
+ #
1230
+ # resp = client.list_channel_handshakes({
1231
+ # associated_resource_identifiers: [
1232
+ # "rs-123abc456def7",
1233
+ # ],
1234
+ # catalog: "AWS",
1235
+ # handshake_type: "REVOKE_SERVICE_PERIOD",
1236
+ # handshake_type_filters: {
1237
+ # revoke_service_period_type_filters: {
1238
+ # service_period_types: [
1239
+ # "MINIMUM_NOTICE_PERIOD",
1240
+ # ],
1241
+ # },
1242
+ # },
1243
+ # handshake_type_sort: {
1244
+ # revoke_service_period_type_sort: {
1245
+ # sort_by: "UpdatedAt",
1246
+ # sort_order: "Descending",
1247
+ # },
1248
+ # },
1249
+ # participant_type: "SENDER",
1250
+ # statuses: [
1251
+ # "ACCEPTED",
1252
+ # ],
1253
+ # })
1254
+ #
1255
+ # resp.to_h outputs the following:
1256
+ # {
1257
+ # items: [
1258
+ # {
1259
+ # arn: "arn:aws:partnercentral:us-east-1:111122223333:catalog/AWS/channel-handshake/ch-4fj3bd2o3vb91",
1260
+ # associated_resource_id: "rs-u8ic702rtfew1",
1261
+ # catalog: "AWS",
1262
+ # created_at: Time.parse("2025-04-29T16:18:16.000Z"),
1263
+ # detail: {
1264
+ # revoke_service_period_handshake_detail: {
1265
+ # minimum_notice_days: "14",
1266
+ # note: "Optional_Note",
1267
+ # service_period_type: "MINIMUM_NOTICE_PERIOD",
1268
+ # },
1269
+ # },
1270
+ # handshake_type: "REVOKE_SERVICE_PERIOD",
1271
+ # id: "ch-4fj3bd2o3vb91",
1272
+ # owner_account_id: "111122223333",
1273
+ # receiver_account_id: "333322221111",
1274
+ # sender_account_id: "111122224444",
1275
+ # status: "PENDING",
1276
+ # updated_at: Time.parse("2025-05-02T16:18:16.000Z"),
1277
+ # },
1278
+ # ],
1279
+ # next_token: "nextToken",
1280
+ # }
1281
+ #
1282
+ # @example Example: Example for ListChannelHandshakes - PROGRAM_MANAGEMENT_ACCOUNT
1283
+ #
1284
+ # resp = client.list_channel_handshakes({
1285
+ # associated_resource_identifiers: [
1286
+ # "pma-123abc456def7",
1287
+ # ],
1288
+ # catalog: "AWS",
1289
+ # handshake_type: "PROGRAM_MANAGEMENT_ACCOUNT",
1290
+ # handshake_type_filters: {
1291
+ # program_management_account_type_filters: {
1292
+ # programs: [
1293
+ # "SOLUTION_PROVIDER",
1294
+ # ],
1295
+ # },
1296
+ # },
1297
+ # handshake_type_sort: {
1298
+ # program_management_account_type_sort: {
1299
+ # sort_by: "UpdatedAt",
1300
+ # sort_order: "Descending",
1301
+ # },
1302
+ # },
1303
+ # max_results: 20,
1304
+ # next_token: "nextToken",
1305
+ # participant_type: "SENDER",
1306
+ # statuses: [
1307
+ # "ACCEPTED",
1308
+ # ],
1309
+ # })
1310
+ #
1311
+ # resp.to_h outputs the following:
1312
+ # {
1313
+ # items: [
1314
+ # {
1315
+ # arn: "arn:aws:partnercentral:us-east-1:111122223333:catalog/AWS/channel-handshake/ch-4fj3bd2o3vb91",
1316
+ # associated_resource_id: "pma-u8ic702rtfew1",
1317
+ # catalog: "AWS",
1318
+ # created_at: Time.parse("2025-02-28T16:18:16.000Z"),
1319
+ # detail: {
1320
+ # program_management_account_handshake_detail: {
1321
+ # program: "SOLUTION_PROVIDER",
1322
+ # },
1323
+ # },
1324
+ # handshake_type: "PROGRAM_MANAGEMENT_ACCOUNT",
1325
+ # id: "ch-4fj3bd2o3vb91",
1326
+ # owner_account_id: "111122223333",
1327
+ # receiver_account_id: "333322221111",
1328
+ # sender_account_id: "111122223333",
1329
+ # status: "PENDING",
1330
+ # updated_at: Time.parse("2025-03-02T16:18:16.000Z"),
1331
+ # },
1332
+ # ],
1333
+ # next_token: "nextToken",
1334
+ # }
1335
+ #
1336
+ # @example Request syntax with placeholder values
1337
+ #
1338
+ # resp = client.list_channel_handshakes({
1339
+ # handshake_type: "START_SERVICE_PERIOD", # required, accepts START_SERVICE_PERIOD, REVOKE_SERVICE_PERIOD, PROGRAM_MANAGEMENT_ACCOUNT
1340
+ # catalog: "Catalog", # required
1341
+ # participant_type: "SENDER", # required, accepts SENDER, RECEIVER
1342
+ # max_results: 1,
1343
+ # statuses: ["PENDING"], # accepts PENDING, ACCEPTED, REJECTED, CANCELED, EXPIRED
1344
+ # associated_resource_identifiers: ["AssociatedResourceIdentifier"],
1345
+ # handshake_type_filters: {
1346
+ # start_service_period_type_filters: {
1347
+ # service_period_types: ["MINIMUM_NOTICE_PERIOD"], # accepts MINIMUM_NOTICE_PERIOD, FIXED_COMMITMENT_PERIOD
1348
+ # },
1349
+ # revoke_service_period_type_filters: {
1350
+ # service_period_types: ["MINIMUM_NOTICE_PERIOD"], # accepts MINIMUM_NOTICE_PERIOD, FIXED_COMMITMENT_PERIOD
1351
+ # },
1352
+ # program_management_account_type_filters: {
1353
+ # programs: ["SOLUTION_PROVIDER"], # accepts SOLUTION_PROVIDER, DISTRIBUTION, DISTRIBUTION_SELLER
1354
+ # },
1355
+ # },
1356
+ # handshake_type_sort: {
1357
+ # start_service_period_type_sort: {
1358
+ # sort_order: "Ascending", # required, accepts Ascending, Descending
1359
+ # sort_by: "UpdatedAt", # required, accepts UpdatedAt
1360
+ # },
1361
+ # revoke_service_period_type_sort: {
1362
+ # sort_order: "Ascending", # required, accepts Ascending, Descending
1363
+ # sort_by: "UpdatedAt", # required, accepts UpdatedAt
1364
+ # },
1365
+ # program_management_account_type_sort: {
1366
+ # sort_order: "Ascending", # required, accepts Ascending, Descending
1367
+ # sort_by: "UpdatedAt", # required, accepts UpdatedAt
1368
+ # },
1369
+ # },
1370
+ # next_token: "NextToken",
1371
+ # })
1372
+ #
1373
+ # @example Response structure
1374
+ #
1375
+ # resp.items #=> Array
1376
+ # resp.items[0].id #=> String
1377
+ # resp.items[0].arn #=> String
1378
+ # resp.items[0].catalog #=> String
1379
+ # resp.items[0].handshake_type #=> String, one of "START_SERVICE_PERIOD", "REVOKE_SERVICE_PERIOD", "PROGRAM_MANAGEMENT_ACCOUNT"
1380
+ # resp.items[0].owner_account_id #=> String
1381
+ # resp.items[0].sender_account_id #=> String
1382
+ # resp.items[0].sender_display_name #=> String
1383
+ # resp.items[0].receiver_account_id #=> String
1384
+ # resp.items[0].associated_resource_id #=> String
1385
+ # resp.items[0].detail.start_service_period_handshake_detail.note #=> String
1386
+ # resp.items[0].detail.start_service_period_handshake_detail.service_period_type #=> String, one of "MINIMUM_NOTICE_PERIOD", "FIXED_COMMITMENT_PERIOD"
1387
+ # resp.items[0].detail.start_service_period_handshake_detail.minimum_notice_days #=> String
1388
+ # resp.items[0].detail.start_service_period_handshake_detail.start_date #=> Time
1389
+ # resp.items[0].detail.start_service_period_handshake_detail.end_date #=> Time
1390
+ # resp.items[0].detail.revoke_service_period_handshake_detail.note #=> String
1391
+ # resp.items[0].detail.revoke_service_period_handshake_detail.service_period_type #=> String, one of "MINIMUM_NOTICE_PERIOD", "FIXED_COMMITMENT_PERIOD"
1392
+ # resp.items[0].detail.revoke_service_period_handshake_detail.minimum_notice_days #=> String
1393
+ # resp.items[0].detail.revoke_service_period_handshake_detail.start_date #=> Time
1394
+ # resp.items[0].detail.revoke_service_period_handshake_detail.end_date #=> Time
1395
+ # resp.items[0].detail.program_management_account_handshake_detail.program #=> String, one of "SOLUTION_PROVIDER", "DISTRIBUTION", "DISTRIBUTION_SELLER"
1396
+ # resp.items[0].created_at #=> Time
1397
+ # resp.items[0].updated_at #=> Time
1398
+ # resp.items[0].status #=> String, one of "PENDING", "ACCEPTED", "REJECTED", "CANCELED", "EXPIRED"
1399
+ # resp.next_token #=> String
1400
+ #
1401
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/ListChannelHandshakes AWS API Documentation
1402
+ #
1403
+ # @overload list_channel_handshakes(params = {})
1404
+ # @param [Hash] params ({})
1405
+ def list_channel_handshakes(params = {}, options = {})
1406
+ req = build_request(:list_channel_handshakes, params)
1407
+ req.send_request(options)
1408
+ end
1409
+
1410
+ # Lists program management accounts based on specified criteria.
1411
+ #
1412
+ # @option params [required, String] :catalog
1413
+ # The catalog identifier to filter accounts.
1414
+ #
1415
+ # @option params [Integer] :max_results
1416
+ # The maximum number of results to return in a single call.
1417
+ #
1418
+ # @option params [Array<String>] :display_names
1419
+ # Filter by display names.
1420
+ #
1421
+ # @option params [Array<String>] :programs
1422
+ # Filter by program types.
1423
+ #
1424
+ # @option params [Array<String>] :account_ids
1425
+ # Filter by AWS account IDs.
1426
+ #
1427
+ # @option params [Array<String>] :statuses
1428
+ # Filter by program management account statuses.
1429
+ #
1430
+ # @option params [Types::ListProgramManagementAccountsSortBase] :sort
1431
+ # Sorting options for the results.
1432
+ #
1433
+ # @option params [String] :next_token
1434
+ # Token for retrieving the next page of results.
1435
+ #
1436
+ # @return [Types::ListProgramManagementAccountsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1437
+ #
1438
+ # * {Types::ListProgramManagementAccountsResponse#items #items} => Array&lt;Types::ProgramManagementAccountSummary&gt;
1439
+ # * {Types::ListProgramManagementAccountsResponse#next_token #next_token} => String
1440
+ #
1441
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1442
+ #
1443
+ #
1444
+ # @example Example: Example for ListProgramManagementAccounts
1445
+ #
1446
+ # resp = client.list_program_management_accounts({
1447
+ # account_ids: [
1448
+ # "111122223333",
1449
+ # ],
1450
+ # catalog: "AWS",
1451
+ # display_names: [
1452
+ # "TestDisplayName",
1453
+ # ],
1454
+ # max_results: 20,
1455
+ # programs: [
1456
+ # "SOLUTION_PROVIDER",
1457
+ # ],
1458
+ # sort: {
1459
+ # sort_by: "UpdatedAt",
1460
+ # sort_order: "Descending",
1461
+ # },
1462
+ # statuses: [
1463
+ # "PENDING",
1464
+ # ],
1465
+ # })
1466
+ #
1467
+ # resp.to_h outputs the following:
1468
+ # {
1469
+ # items: [
1470
+ # {
1471
+ # account_id: "111122223333",
1472
+ # arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/program-management-account/pma-u8ic702rtzng8",
1473
+ # catalog: "AWS",
1474
+ # created_at: Time.parse("2024-04-29T08:52:46.397Z"),
1475
+ # display_name: "TestDisplayName",
1476
+ # id: "pma-u8ic702rtzng8",
1477
+ # program: "SOLUTION_PROVIDER",
1478
+ # revision: "4",
1479
+ # status: "PENDING",
1480
+ # updated_at: Time.parse("2024-05-02T16:18:16.432Z"),
1481
+ # },
1482
+ # ],
1483
+ # next_token: "nextToken",
1484
+ # }
1485
+ #
1486
+ # @example Request syntax with placeholder values
1487
+ #
1488
+ # resp = client.list_program_management_accounts({
1489
+ # catalog: "Catalog", # required
1490
+ # max_results: 1,
1491
+ # display_names: ["ProgramManagementAccountDisplayName"],
1492
+ # programs: ["SOLUTION_PROVIDER"], # accepts SOLUTION_PROVIDER, DISTRIBUTION, DISTRIBUTION_SELLER
1493
+ # account_ids: ["AccountId"],
1494
+ # statuses: ["PENDING"], # accepts PENDING, ACTIVE, INACTIVE
1495
+ # sort: {
1496
+ # sort_order: "Ascending", # required, accepts Ascending, Descending
1497
+ # sort_by: "UpdatedAt", # required, accepts UpdatedAt
1498
+ # },
1499
+ # next_token: "NextToken",
1500
+ # })
1501
+ #
1502
+ # @example Response structure
1503
+ #
1504
+ # resp.items #=> Array
1505
+ # resp.items[0].id #=> String
1506
+ # resp.items[0].revision #=> String
1507
+ # resp.items[0].catalog #=> String
1508
+ # resp.items[0].program #=> String, one of "SOLUTION_PROVIDER", "DISTRIBUTION", "DISTRIBUTION_SELLER"
1509
+ # resp.items[0].display_name #=> String
1510
+ # resp.items[0].account_id #=> String
1511
+ # resp.items[0].arn #=> String
1512
+ # resp.items[0].created_at #=> Time
1513
+ # resp.items[0].updated_at #=> Time
1514
+ # resp.items[0].start_date #=> Time
1515
+ # resp.items[0].status #=> String, one of "PENDING", "ACTIVE", "INACTIVE"
1516
+ # resp.next_token #=> String
1517
+ #
1518
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/ListProgramManagementAccounts AWS API Documentation
1519
+ #
1520
+ # @overload list_program_management_accounts(params = {})
1521
+ # @param [Hash] params ({})
1522
+ def list_program_management_accounts(params = {}, options = {})
1523
+ req = build_request(:list_program_management_accounts, params)
1524
+ req.send_request(options)
1525
+ end
1526
+
1527
+ # Lists partner relationships based on specified criteria.
1528
+ #
1529
+ # @option params [required, String] :catalog
1530
+ # The catalog identifier to filter relationships.
1531
+ #
1532
+ # @option params [Integer] :max_results
1533
+ # The maximum number of results to return in a single call.
1534
+ #
1535
+ # @option params [Array<String>] :associated_account_ids
1536
+ # Filter by associated AWS account IDs.
1537
+ #
1538
+ # @option params [Array<String>] :association_types
1539
+ # Filter by association types.
1540
+ #
1541
+ # @option params [Array<String>] :display_names
1542
+ # Filter by display names.
1543
+ #
1544
+ # @option params [Array<String>] :program_management_account_identifiers
1545
+ # Filter by program management account identifiers.
1546
+ #
1547
+ # @option params [Types::ListRelationshipsSortBase] :sort
1548
+ # Sorting options for the results.
1549
+ #
1550
+ # @option params [String] :next_token
1551
+ # Token for retrieving the next page of results.
1552
+ #
1553
+ # @return [Types::ListRelationshipsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1554
+ #
1555
+ # * {Types::ListRelationshipsResponse#items #items} => Array&lt;Types::RelationshipSummary&gt;
1556
+ # * {Types::ListRelationshipsResponse#next_token #next_token} => String
1557
+ #
1558
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1559
+ #
1560
+ #
1561
+ # @example Example: Example for ListRelationships
1562
+ #
1563
+ # resp = client.list_relationships({
1564
+ # associated_account_ids: [
1565
+ # "123456789012",
1566
+ # ],
1567
+ # association_types: [
1568
+ # "DOWNSTREAM_SELLER",
1569
+ # ],
1570
+ # catalog: "AWS",
1571
+ # display_names: [
1572
+ # "TestDisplayName",
1573
+ # ],
1574
+ # max_results: 100,
1575
+ # next_token: "nextToken",
1576
+ # program_management_account_identifiers: [
1577
+ # "pma-u8ic702rtzng8",
1578
+ # ],
1579
+ # sort: {
1580
+ # sort_by: "UpdatedAt",
1581
+ # sort_order: "Descending",
1582
+ # },
1583
+ # })
1584
+ #
1585
+ # resp.to_h outputs the following:
1586
+ # {
1587
+ # items: [
1588
+ # {
1589
+ # arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/program-management-account/pma-u8ic702rtzng8/relationship/rs-l9o4fj3b5zb91",
1590
+ # associated_account_id: "987654321012",
1591
+ # association_type: "DOWNSTREAM_SELLER",
1592
+ # created_at: Time.parse("2024-04-29T16:18:16Z"),
1593
+ # display_name: "TestDisplayName",
1594
+ # id: "rs-l9o4fj3b5zb91",
1595
+ # program_management_account_id: "pma-u8ic702rtzng8",
1596
+ # revision: "3",
1597
+ # updated_at: Time.parse("2024-05-02T16:18:16Z"),
1598
+ # },
1599
+ # ],
1600
+ # next_token: "nextToken",
1601
+ # }
1602
+ #
1603
+ # @example Request syntax with placeholder values
1604
+ #
1605
+ # resp = client.list_relationships({
1606
+ # catalog: "Catalog", # required
1607
+ # max_results: 1,
1608
+ # associated_account_ids: ["AccountId"],
1609
+ # association_types: ["DOWNSTREAM_SELLER"], # accepts DOWNSTREAM_SELLER, END_CUSTOMER, INTERNAL
1610
+ # display_names: ["RelationshipDisplayName"],
1611
+ # program_management_account_identifiers: ["ProgramManagementAccountIdentifier"],
1612
+ # sort: {
1613
+ # sort_order: "Ascending", # required, accepts Ascending, Descending
1614
+ # sort_by: "UpdatedAt", # required, accepts UpdatedAt
1615
+ # },
1616
+ # next_token: "NextToken",
1617
+ # })
1618
+ #
1619
+ # @example Response structure
1620
+ #
1621
+ # resp.items #=> Array
1622
+ # resp.items[0].arn #=> String
1623
+ # resp.items[0].id #=> String
1624
+ # resp.items[0].revision #=> String
1625
+ # resp.items[0].catalog #=> String
1626
+ # resp.items[0].association_type #=> String, one of "DOWNSTREAM_SELLER", "END_CUSTOMER", "INTERNAL"
1627
+ # resp.items[0].program_management_account_id #=> String
1628
+ # resp.items[0].associated_account_id #=> String
1629
+ # resp.items[0].display_name #=> String
1630
+ # resp.items[0].sector #=> String, one of "COMMERCIAL", "GOVERNMENT", "GOVERNMENT_EXCEPTION"
1631
+ # resp.items[0].created_at #=> Time
1632
+ # resp.items[0].updated_at #=> Time
1633
+ # resp.items[0].start_date #=> Time
1634
+ # resp.next_token #=> String
1635
+ #
1636
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/ListRelationships AWS API Documentation
1637
+ #
1638
+ # @overload list_relationships(params = {})
1639
+ # @param [Hash] params ({})
1640
+ def list_relationships(params = {}, options = {})
1641
+ req = build_request(:list_relationships, params)
1642
+ req.send_request(options)
1643
+ end
1644
+
1645
+ # Lists tags associated with a specific resource.
1646
+ #
1647
+ # @option params [required, String] :resource_arn
1648
+ # The Amazon Resource Name (ARN) of the resource to list tags for.
1649
+ #
1650
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1651
+ #
1652
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Array&lt;Types::Tag&gt;
1653
+ #
1654
+ #
1655
+ # @example Example: Example for ListTagsForResource
1656
+ #
1657
+ # resp = client.list_tags_for_resource({
1658
+ # resource_arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/program-management-account/pma-u8ic702rtzng8",
1659
+ # })
1660
+ #
1661
+ # resp.to_h outputs the following:
1662
+ # {
1663
+ # tags: [
1664
+ # {
1665
+ # key: "ExampleKey",
1666
+ # value: "ExampleValue",
1667
+ # },
1668
+ # ],
1669
+ # }
1670
+ #
1671
+ # @example Request syntax with placeholder values
1672
+ #
1673
+ # resp = client.list_tags_for_resource({
1674
+ # resource_arn: "TaggableArn", # required
1675
+ # })
1676
+ #
1677
+ # @example Response structure
1678
+ #
1679
+ # resp.tags #=> Array
1680
+ # resp.tags[0].key #=> String
1681
+ # resp.tags[0].value #=> String
1682
+ #
1683
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/ListTagsForResource AWS API Documentation
1684
+ #
1685
+ # @overload list_tags_for_resource(params = {})
1686
+ # @param [Hash] params ({})
1687
+ def list_tags_for_resource(params = {}, options = {})
1688
+ req = build_request(:list_tags_for_resource, params)
1689
+ req.send_request(options)
1690
+ end
1691
+
1692
+ # Rejects a pending channel handshake request.
1693
+ #
1694
+ # @option params [required, String] :catalog
1695
+ # The catalog identifier for the handshake request.
1696
+ #
1697
+ # @option params [required, String] :identifier
1698
+ # The unique identifier of the channel handshake to reject.
1699
+ #
1700
+ # @return [Types::RejectChannelHandshakeResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1701
+ #
1702
+ # * {Types::RejectChannelHandshakeResponse#channel_handshake_detail #channel_handshake_detail} => Types::RejectChannelHandshakeDetail
1703
+ #
1704
+ #
1705
+ # @example Example: Example for RejectChannelHandshake
1706
+ #
1707
+ # resp = client.reject_channel_handshake({
1708
+ # catalog: "AWS",
1709
+ # identifier: "ch-4fj3bd2o3vb91",
1710
+ # })
1711
+ #
1712
+ # resp.to_h outputs the following:
1713
+ # {
1714
+ # channel_handshake_detail: {
1715
+ # arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/channel-handshake/ch-4fj3bd2o3vb91",
1716
+ # id: "ch-4fj3bd2o3vb91",
1717
+ # status: "REJECTED",
1718
+ # },
1719
+ # }
1720
+ #
1721
+ # @example Request syntax with placeholder values
1722
+ #
1723
+ # resp = client.reject_channel_handshake({
1724
+ # catalog: "Catalog", # required
1725
+ # identifier: "ChannelHandshakeIdentifier", # required
1726
+ # })
1727
+ #
1728
+ # @example Response structure
1729
+ #
1730
+ # resp.channel_handshake_detail.id #=> String
1731
+ # resp.channel_handshake_detail.arn #=> String
1732
+ # resp.channel_handshake_detail.status #=> String, one of "PENDING", "ACCEPTED", "REJECTED", "CANCELED", "EXPIRED"
1733
+ #
1734
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/RejectChannelHandshake AWS API Documentation
1735
+ #
1736
+ # @overload reject_channel_handshake(params = {})
1737
+ # @param [Hash] params ({})
1738
+ def reject_channel_handshake(params = {}, options = {})
1739
+ req = build_request(:reject_channel_handshake, params)
1740
+ req.send_request(options)
1741
+ end
1742
+
1743
+ # Adds or updates tags for a specified resource.
1744
+ #
1745
+ # @option params [required, String] :resource_arn
1746
+ # The Amazon Resource Name (ARN) of the resource to tag.
1747
+ #
1748
+ # @option params [required, Array<Types::Tag>] :tags
1749
+ # Key-value pairs to associate with the resource.
1750
+ #
1751
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1752
+ #
1753
+ #
1754
+ # @example Example: Example for TagResource
1755
+ #
1756
+ # resp = client.tag_resource({
1757
+ # resource_arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/program-management-account/pma-u8ic702rtzng8/relationship/rs-l9o4fj3b5zb91",
1758
+ # tags: [
1759
+ # {
1760
+ # key: "ExampleKey",
1761
+ # value: "ExampleValue",
1762
+ # },
1763
+ # ],
1764
+ # })
1765
+ #
1766
+ # resp.to_h outputs the following:
1767
+ # {
1768
+ # }
1769
+ #
1770
+ # @example Request syntax with placeholder values
1771
+ #
1772
+ # resp = client.tag_resource({
1773
+ # resource_arn: "TaggableArn", # required
1774
+ # tags: [ # required
1775
+ # {
1776
+ # key: "TagKey", # required
1777
+ # value: "TagValue", # required
1778
+ # },
1779
+ # ],
1780
+ # })
1781
+ #
1782
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/TagResource AWS API Documentation
1783
+ #
1784
+ # @overload tag_resource(params = {})
1785
+ # @param [Hash] params ({})
1786
+ def tag_resource(params = {}, options = {})
1787
+ req = build_request(:tag_resource, params)
1788
+ req.send_request(options)
1789
+ end
1790
+
1791
+ # Removes tags from a specified resource.
1792
+ #
1793
+ # @option params [required, String] :resource_arn
1794
+ # The Amazon Resource Name (ARN) of the resource to remove tags from.
1795
+ #
1796
+ # @option params [required, Array<String>] :tag_keys
1797
+ # The keys of the tags to remove from the resource.
1798
+ #
1799
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1800
+ #
1801
+ #
1802
+ # @example Example: Example for UntagResource
1803
+ #
1804
+ # resp = client.untag_resource({
1805
+ # resource_arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/channel-handshake/ch-4fj3bd2o3vb91",
1806
+ # tag_keys: [
1807
+ # "ExampleKey",
1808
+ # ],
1809
+ # })
1810
+ #
1811
+ # resp.to_h outputs the following:
1812
+ # {
1813
+ # }
1814
+ #
1815
+ # @example Request syntax with placeholder values
1816
+ #
1817
+ # resp = client.untag_resource({
1818
+ # resource_arn: "TaggableArn", # required
1819
+ # tag_keys: ["TagKey"], # required
1820
+ # })
1821
+ #
1822
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/UntagResource AWS API Documentation
1823
+ #
1824
+ # @overload untag_resource(params = {})
1825
+ # @param [Hash] params ({})
1826
+ def untag_resource(params = {}, options = {})
1827
+ req = build_request(:untag_resource, params)
1828
+ req.send_request(options)
1829
+ end
1830
+
1831
+ # Updates the properties of a program management account.
1832
+ #
1833
+ # @option params [required, String] :catalog
1834
+ # The catalog identifier for the program management account.
1835
+ #
1836
+ # @option params [required, String] :identifier
1837
+ # The unique identifier of the program management account to update.
1838
+ #
1839
+ # @option params [String] :revision
1840
+ # The current revision number of the program management account.
1841
+ #
1842
+ # @option params [String] :display_name
1843
+ # The new display name for the program management account.
1844
+ #
1845
+ # @return [Types::UpdateProgramManagementAccountResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1846
+ #
1847
+ # * {Types::UpdateProgramManagementAccountResponse#program_management_account_detail #program_management_account_detail} => Types::UpdateProgramManagementAccountDetail
1848
+ #
1849
+ #
1850
+ # @example Example: Example for UpdateProgramManagementAccount
1851
+ #
1852
+ # resp = client.update_program_management_account({
1853
+ # catalog: "AWS",
1854
+ # display_name: "TestDisplayName",
1855
+ # identifier: "pma-u8ic702rtzng8",
1856
+ # revision: "3",
1857
+ # })
1858
+ #
1859
+ # resp.to_h outputs the following:
1860
+ # {
1861
+ # program_management_account_detail: {
1862
+ # arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/program-management-account/pma-u8ic702rtzng8",
1863
+ # display_name: "TestDisplayName",
1864
+ # id: "pma-u8ic702rtzng8",
1865
+ # revision: "4",
1866
+ # },
1867
+ # }
1868
+ #
1869
+ # @example Request syntax with placeholder values
1870
+ #
1871
+ # resp = client.update_program_management_account({
1872
+ # catalog: "Catalog", # required
1873
+ # identifier: "ProgramManagementAccountIdentifier", # required
1874
+ # revision: "Revision",
1875
+ # display_name: "ProgramManagementAccountDisplayName",
1876
+ # })
1877
+ #
1878
+ # @example Response structure
1879
+ #
1880
+ # resp.program_management_account_detail.id #=> String
1881
+ # resp.program_management_account_detail.arn #=> String
1882
+ # resp.program_management_account_detail.revision #=> String
1883
+ # resp.program_management_account_detail.display_name #=> String
1884
+ #
1885
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/UpdateProgramManagementAccount AWS API Documentation
1886
+ #
1887
+ # @overload update_program_management_account(params = {})
1888
+ # @param [Hash] params ({})
1889
+ def update_program_management_account(params = {}, options = {})
1890
+ req = build_request(:update_program_management_account, params)
1891
+ req.send_request(options)
1892
+ end
1893
+
1894
+ # Updates the properties of a partner relationship.
1895
+ #
1896
+ # @option params [required, String] :catalog
1897
+ # The catalog identifier for the relationship.
1898
+ #
1899
+ # @option params [required, String] :identifier
1900
+ # The unique identifier of the relationship to update.
1901
+ #
1902
+ # @option params [required, String] :program_management_account_identifier
1903
+ # The identifier of the program management account associated with the
1904
+ # relationship.
1905
+ #
1906
+ # @option params [String] :revision
1907
+ # The current revision number of the relationship.
1908
+ #
1909
+ # @option params [String] :display_name
1910
+ # The new display name for the relationship.
1911
+ #
1912
+ # @option params [Types::SupportPlan] :requested_support_plan
1913
+ # The updated support plan for the relationship.
1914
+ #
1915
+ # @return [Types::UpdateRelationshipResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1916
+ #
1917
+ # * {Types::UpdateRelationshipResponse#relationship_detail #relationship_detail} => Types::UpdateRelationshipDetail
1918
+ #
1919
+ #
1920
+ # @example Example: Example for UpdateRelationship
1921
+ #
1922
+ # resp = client.update_relationship({
1923
+ # catalog: "AWS",
1924
+ # display_name: "TestDisplayName",
1925
+ # identifier: "rs-l9o4fj3b5zb91",
1926
+ # program_management_account_identifier: "pma-u8ic702rtzng8",
1927
+ # revision: "3",
1928
+ # })
1929
+ #
1930
+ # resp.to_h outputs the following:
1931
+ # {
1932
+ # relationship_detail: {
1933
+ # arn: "arn:aws:partnercentral:us-east-1:123456789012:catalog/AWS/program-management-account/pma-u8ic702rtzng8/relationship/rs-l9o4fj3b5zb91",
1934
+ # display_name: "TestDisplayName",
1935
+ # id: "rs-l9o4fj3b5zb91",
1936
+ # revision: "4",
1937
+ # },
1938
+ # }
1939
+ #
1940
+ # @example Request syntax with placeholder values
1941
+ #
1942
+ # resp = client.update_relationship({
1943
+ # catalog: "Catalog", # required
1944
+ # identifier: "RelationshipIdentifier", # required
1945
+ # program_management_account_identifier: "ProgramManagementAccountIdentifier", # required
1946
+ # revision: "Revision",
1947
+ # display_name: "RelationshipDisplayName",
1948
+ # requested_support_plan: {
1949
+ # resold_business: {
1950
+ # coverage: "ENTIRE_ORGANIZATION", # required, accepts ENTIRE_ORGANIZATION, MANAGEMENT_ACCOUNT_ONLY
1951
+ # },
1952
+ # resold_enterprise: {
1953
+ # coverage: "ENTIRE_ORGANIZATION", # required, accepts ENTIRE_ORGANIZATION, MANAGEMENT_ACCOUNT_ONLY
1954
+ # tam_location: "String", # required
1955
+ # charge_account_id: "AccountId",
1956
+ # },
1957
+ # partner_led_support: {
1958
+ # coverage: "ENTIRE_ORGANIZATION", # required, accepts ENTIRE_ORGANIZATION, MANAGEMENT_ACCOUNT_ONLY
1959
+ # provider: "DISTRIBUTOR", # accepts DISTRIBUTOR, DISTRIBUTION_SELLER
1960
+ # tam_location: "String", # required
1961
+ # },
1962
+ # },
1963
+ # })
1964
+ #
1965
+ # @example Response structure
1966
+ #
1967
+ # resp.relationship_detail.arn #=> String
1968
+ # resp.relationship_detail.id #=> String
1969
+ # resp.relationship_detail.revision #=> String
1970
+ # resp.relationship_detail.display_name #=> String
1971
+ #
1972
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-channel-2024-03-18/UpdateRelationship AWS API Documentation
1973
+ #
1974
+ # @overload update_relationship(params = {})
1975
+ # @param [Hash] params ({})
1976
+ def update_relationship(params = {}, options = {})
1977
+ req = build_request(:update_relationship, params)
1978
+ req.send_request(options)
1979
+ end
1980
+
1981
+ # @!endgroup
1982
+
1983
+ # @param params ({})
1984
+ # @api private
1985
+ def build_request(operation_name, params = {})
1986
+ handlers = @handlers.for(operation_name)
1987
+ tracer = config.telemetry_provider.tracer_provider.tracer(
1988
+ Aws::Telemetry.module_to_tracer_name('Aws::PartnerCentralChannel')
1989
+ )
1990
+ context = Seahorse::Client::RequestContext.new(
1991
+ operation_name: operation_name,
1992
+ operation: config.api.operation(operation_name),
1993
+ client: self,
1994
+ params: params,
1995
+ config: config,
1996
+ tracer: tracer
1997
+ )
1998
+ context[:gem_name] = 'aws-sdk-partnercentralchannel'
1999
+ context[:gem_version] = '1.0.0'
2000
+ Seahorse::Client::Request.new(handlers, context)
2001
+ end
2002
+
2003
+ # @api private
2004
+ # @deprecated
2005
+ def waiter_names
2006
+ []
2007
+ end
2008
+
2009
+ class << self
2010
+
2011
+ # @api private
2012
+ attr_reader :identifier
2013
+
2014
+ # @api private
2015
+ def errors_module
2016
+ Errors
2017
+ end
2018
+
2019
+ end
2020
+ end
2021
+ end