aws-sdk-partnercentralselling 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2031 @@
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/json_rpc.rb'
38
+
39
+ module Aws::PartnerCentralSelling
40
+ # An API client for PartnerCentralSelling. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::PartnerCentralSelling::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 = :partnercentralselling
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::PartnerCentralSelling::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. This can be an instance of any one of the
99
+ # 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
128
+ # locations will be searched for credentials:
129
+ #
130
+ # * `Aws.config[:credentials]`
131
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
+ # `:account_id` options.
133
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'],
134
+ # ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
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::InstanceProfileCredentials` 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 [String] :account_id
159
+ #
160
+ # @option options [Boolean] :active_endpoint_cache (false)
161
+ # When set to `true`, a thread polling for endpoints will be running in
162
+ # the background every 60 secs (default). Defaults to `false`.
163
+ #
164
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
165
+ # Used only in `adaptive` retry mode. When true, the request will sleep
166
+ # until there is sufficent client side capacity to retry the request.
167
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
168
+ # not retry instead of sleeping.
169
+ #
170
+ # @option options [Boolean] :client_side_monitoring (false)
171
+ # When `true`, client-side metrics will be collected for all API requests from
172
+ # this client.
173
+ #
174
+ # @option options [String] :client_side_monitoring_client_id ("")
175
+ # Allows you to provide an identifier for this client which will be attached to
176
+ # all generated client side metrics. Defaults to an empty string.
177
+ #
178
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
179
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
180
+ # side monitoring agent is running on, where client metrics will be published via UDP.
181
+ #
182
+ # @option options [Integer] :client_side_monitoring_port (31000)
183
+ # Required for publishing client metrics. The port that the client side monitoring
184
+ # agent is running on, where client metrics will be published via UDP.
185
+ #
186
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
187
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
188
+ # will use the Client Side Monitoring Agent Publisher.
189
+ #
190
+ # @option options [Boolean] :convert_params (true)
191
+ # When `true`, an attempt is made to coerce request parameters into
192
+ # the required types.
193
+ #
194
+ # @option options [Boolean] :correct_clock_skew (true)
195
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
196
+ # a clock skew correction and retry requests with skewed client clocks.
197
+ #
198
+ # @option options [String] :defaults_mode ("legacy")
199
+ # See {Aws::DefaultsModeConfiguration} for a list of the
200
+ # accepted modes and the configuration defaults that are included.
201
+ #
202
+ # @option options [Boolean] :disable_host_prefix_injection (false)
203
+ # Set to true to disable SDK automatically adding host prefix
204
+ # to default service endpoint when available.
205
+ #
206
+ # @option options [Boolean] :disable_request_compression (false)
207
+ # When set to 'true' the request body will not be compressed
208
+ # for supported operations.
209
+ #
210
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
211
+ # Normally you should not configure the `:endpoint` option
212
+ # directly. This is normally constructed from the `:region`
213
+ # option. Configuring `:endpoint` is normally reserved for
214
+ # connecting to test or custom endpoints. The endpoint should
215
+ # be a URI formatted like:
216
+ #
217
+ # 'http://example.com'
218
+ # 'https://example.com'
219
+ # 'http://example.com:123'
220
+ #
221
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
222
+ # Used for the maximum size limit of the LRU cache storing endpoints data
223
+ # for endpoint discovery enabled operations. Defaults to 1000.
224
+ #
225
+ # @option options [Integer] :endpoint_cache_max_threads (10)
226
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
227
+ #
228
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
229
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
230
+ # Use this option to config the time interval in seconds for making
231
+ # requests fetching endpoints information. Defaults to 60 sec.
232
+ #
233
+ # @option options [Boolean] :endpoint_discovery (false)
234
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
235
+ #
236
+ # @option options [Boolean] :ignore_configured_endpoint_urls
237
+ # Setting to true disables use of endpoint URLs provided via environment
238
+ # variables and the shared configuration file.
239
+ #
240
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
241
+ # The log formatter.
242
+ #
243
+ # @option options [Symbol] :log_level (:info)
244
+ # The log level to send messages to the `:logger` at.
245
+ #
246
+ # @option options [Logger] :logger
247
+ # The Logger instance to send log messages to. If this option
248
+ # is not set, logging will be disabled.
249
+ #
250
+ # @option options [Integer] :max_attempts (3)
251
+ # An integer representing the maximum number attempts that will be made for
252
+ # a single request, including the initial attempt. For example,
253
+ # setting this value to 5 will result in a request being retried up to
254
+ # 4 times. Used in `standard` and `adaptive` retry modes.
255
+ #
256
+ # @option options [String] :profile ("default")
257
+ # Used when loading credentials from the shared credentials file
258
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
259
+ #
260
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
261
+ # The minimum size in bytes that triggers compression for request
262
+ # bodies. The value must be non-negative integer value between 0
263
+ # and 10485780 bytes inclusive.
264
+ #
265
+ # @option options [Proc] :retry_backoff
266
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
267
+ # This option is only used in the `legacy` retry mode.
268
+ #
269
+ # @option options [Float] :retry_base_delay (0.3)
270
+ # The base delay in seconds used by the default backoff function. This option
271
+ # is only used in the `legacy` retry mode.
272
+ #
273
+ # @option options [Symbol] :retry_jitter (:none)
274
+ # A delay randomiser function used by the default backoff function.
275
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
276
+ # otherwise a Proc that takes and returns a number. This option is only used
277
+ # in the `legacy` retry mode.
278
+ #
279
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
280
+ #
281
+ # @option options [Integer] :retry_limit (3)
282
+ # The maximum number of times to retry failed requests. Only
283
+ # ~ 500 level server errors and certain ~ 400 level client errors
284
+ # are retried. Generally, these are throttling errors, data
285
+ # checksum errors, networking errors, timeout errors, auth errors,
286
+ # endpoint discovery, and errors from expired credentials.
287
+ # This option is only used in the `legacy` retry mode.
288
+ #
289
+ # @option options [Integer] :retry_max_delay (0)
290
+ # The maximum number of seconds to delay between retries (0 for no limit)
291
+ # used by the default backoff function. This option is only used in the
292
+ # `legacy` retry mode.
293
+ #
294
+ # @option options [String] :retry_mode ("legacy")
295
+ # Specifies which retry algorithm to use. Values are:
296
+ #
297
+ # * `legacy` - The pre-existing retry behavior. This is default value if
298
+ # no retry mode is provided.
299
+ #
300
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
301
+ # This includes support for retry quotas, which limit the number of
302
+ # unsuccessful retries a client can make.
303
+ #
304
+ # * `adaptive` - An experimental retry mode that includes all the
305
+ # functionality of `standard` mode along with automatic client side
306
+ # throttling. This is a provisional mode that may change behavior
307
+ # in the future.
308
+ #
309
+ # @option options [String] :sdk_ua_app_id
310
+ # A unique and opaque application ID that is appended to the
311
+ # User-Agent header as app/sdk_ua_app_id. It should have a
312
+ # maximum length of 50. This variable is sourced from environment
313
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
314
+ #
315
+ # @option options [String] :secret_access_key
316
+ #
317
+ # @option options [String] :session_token
318
+ #
319
+ # @option options [Array] :sigv4a_signing_region_set
320
+ # A list of regions that should be signed with SigV4a signing. When
321
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
322
+ # in the following locations:
323
+ #
324
+ # * `Aws.config[:sigv4a_signing_region_set]`
325
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
326
+ # * `~/.aws/config`
327
+ #
328
+ # @option options [Boolean] :simple_json (false)
329
+ # Disables request parameter conversion, validation, and formatting.
330
+ # Also disables response data type conversions. The request parameters
331
+ # hash must be formatted exactly as the API expects.This option is useful
332
+ # when you want to ensure the highest level of performance by avoiding
333
+ # overhead of walking request parameters and response data structures.
334
+ #
335
+ # @option options [Boolean] :stub_responses (false)
336
+ # Causes the client to return stubbed responses. By default
337
+ # fake responses are generated and returned. You can specify
338
+ # the response data to return or errors to raise by calling
339
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
340
+ #
341
+ # ** Please note ** When response stubbing is enabled, no HTTP
342
+ # requests are made, and retries are disabled.
343
+ #
344
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
345
+ # Allows you to provide a telemetry provider, which is used to
346
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
347
+ # will not record or emit any telemetry data. The SDK supports the
348
+ # following telemetry providers:
349
+ #
350
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
351
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
352
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
353
+ #
354
+ # @option options [Aws::TokenProvider] :token_provider
355
+ # A Bearer Token Provider. This can be an instance of any one of the
356
+ # following classes:
357
+ #
358
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
359
+ # tokens.
360
+ #
361
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
362
+ # access token generated from `aws login`.
363
+ #
364
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
365
+ # will be used to search for tokens configured for your profile in shared configuration files.
366
+ #
367
+ # @option options [Boolean] :use_dualstack_endpoint
368
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
369
+ # will be used if available.
370
+ #
371
+ # @option options [Boolean] :use_fips_endpoint
372
+ # When set to `true`, fips compatible endpoints will be used if available.
373
+ # When a `fips` region is used, the region is normalized and this config
374
+ # is set to `true`.
375
+ #
376
+ # @option options [Boolean] :validate_params (true)
377
+ # When `true`, request parameters are validated before
378
+ # sending the request.
379
+ #
380
+ # @option options [Aws::PartnerCentralSelling::EndpointProvider] :endpoint_provider
381
+ # The endpoint provider used to resolve endpoints. Any object that responds to
382
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
383
+ # `Aws::PartnerCentralSelling::EndpointParameters`.
384
+ #
385
+ # @option options [Float] :http_continue_timeout (1)
386
+ # The number of seconds to wait for a 100-continue response before sending the
387
+ # request body. This option has no effect unless the request has "Expect"
388
+ # header set to "100-continue". Defaults to `nil` which disables this
389
+ # behaviour. This value can safely be set per request on the session.
390
+ #
391
+ # @option options [Float] :http_idle_timeout (5)
392
+ # The number of seconds a connection is allowed to sit idle before it
393
+ # is considered stale. Stale connections are closed and removed from the
394
+ # pool before making a request.
395
+ #
396
+ # @option options [Float] :http_open_timeout (15)
397
+ # The default number of seconds to wait for response data.
398
+ # This value can safely be set per-request on the session.
399
+ #
400
+ # @option options [URI::HTTP,String] :http_proxy
401
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
402
+ #
403
+ # @option options [Float] :http_read_timeout (60)
404
+ # The default number of seconds to wait for response data.
405
+ # This value can safely be set per-request on the session.
406
+ #
407
+ # @option options [Boolean] :http_wire_trace (false)
408
+ # When `true`, HTTP debug output will be sent to the `:logger`.
409
+ #
410
+ # @option options [Proc] :on_chunk_received
411
+ # When a Proc object is provided, it will be used as callback when each chunk
412
+ # of the response body is received. It provides three arguments: the chunk,
413
+ # the number of bytes received, and the total number of
414
+ # bytes in the response (or nil if the server did not send a `content-length`).
415
+ #
416
+ # @option options [Proc] :on_chunk_sent
417
+ # When a Proc object is provided, it will be used as callback when each chunk
418
+ # of the request body is sent. It provides three arguments: the chunk,
419
+ # the number of bytes read from the body, and the total number of
420
+ # bytes in the body.
421
+ #
422
+ # @option options [Boolean] :raise_response_errors (true)
423
+ # When `true`, response errors are raised.
424
+ #
425
+ # @option options [String] :ssl_ca_bundle
426
+ # Full path to the SSL certificate authority bundle file that should be used when
427
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
428
+ # `:ssl_ca_directory` the the system default will be used if available.
429
+ #
430
+ # @option options [String] :ssl_ca_directory
431
+ # Full path of the directory that contains the unbundled SSL certificate
432
+ # authority files for verifying peer certificates. If you do
433
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
434
+ # default will be used if available.
435
+ #
436
+ # @option options [String] :ssl_ca_store
437
+ # Sets the X509::Store to verify peer certificate.
438
+ #
439
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
440
+ # Sets a client certificate when creating http connections.
441
+ #
442
+ # @option options [OpenSSL::PKey] :ssl_key
443
+ # Sets a client key when creating http connections.
444
+ #
445
+ # @option options [Float] :ssl_timeout
446
+ # Sets the SSL timeout in seconds
447
+ #
448
+ # @option options [Boolean] :ssl_verify_peer (true)
449
+ # When `true`, SSL peer certificates are verified when establishing a connection.
450
+ #
451
+ def initialize(*args)
452
+ super
453
+ end
454
+
455
+ # @!group API Operations
456
+
457
+ # Enables you to reassign an existing `Opportunity` to another user
458
+ # within your Partner Central account. The specified user receives the
459
+ # opportunity, and it appears on their Partner Central dashboard,
460
+ # allowing them to take necessary actions or proceed with the
461
+ # opportunity.
462
+ #
463
+ # This is useful for distributing opportunities to the appropriate team
464
+ # members or departments within your organization, ensuring that each
465
+ # opportunity is handled by the right person. By default, the
466
+ # opportunity owner is the one who creates it. Currently, there's no
467
+ # API to enumerate the list of available users.
468
+ #
469
+ # @option params [required, Types::AssigneeContact] :assignee
470
+ # Specifies the user or team member responsible for managing the
471
+ # assigned opportunity. This field identifies the *Assignee* based on
472
+ # the partner's internal team structure. Ensure that the email address
473
+ # is associated with a registered user in your Partner Central account.
474
+ #
475
+ # @option params [required, String] :catalog
476
+ # Specifies the catalog associated with the request. This field takes a
477
+ # string value from a predefined list: `AWS` or `Sandbox`. The catalog
478
+ # determines which environment the opportunity is assigned in. Use `AWS`
479
+ # to assign real opportunities in the Amazon Web Services catalog, and
480
+ # `Sandbox` to test in a secure and isolated environment.
481
+ #
482
+ # @option params [required, String] :identifier
483
+ # Requires the `Opportunity`'s unique identifier when you want to
484
+ # assign it to another user. Provide the correct identifier so the
485
+ # intended opportunity is reassigned.
486
+ #
487
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
488
+ #
489
+ # @example Request syntax with placeholder values
490
+ #
491
+ # resp = client.assign_opportunity({
492
+ # assignee: { # required
493
+ # business_title: "JobTitle", # required
494
+ # email: "Email", # required
495
+ # first_name: "AssigneeContactFirstNameString", # required
496
+ # last_name: "AssigneeContactLastNameString", # required
497
+ # },
498
+ # catalog: "CatalogIdentifier", # required
499
+ # identifier: "OpportunityIdentifier", # required
500
+ # })
501
+ #
502
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-selling-2022-07-26/AssignOpportunity AWS API Documentation
503
+ #
504
+ # @overload assign_opportunity(params = {})
505
+ # @param [Hash] params ({})
506
+ def assign_opportunity(params = {}, options = {})
507
+ req = build_request(:assign_opportunity, params)
508
+ req.send_request(options)
509
+ end
510
+
511
+ # Enables you to create a formal association between an `Opportunity`
512
+ # and various related entities, enriching the context and details of the
513
+ # opportunity for better collaboration and decision-making. You can
514
+ # associate an opportunity with the following types of entities:
515
+ #
516
+ # * Partner Solution: A software product or consulting practice created
517
+ # and delivered by Partners. Partner Solutions help customers address
518
+ # specific business challenges or achieve particular goals using
519
+ # Amazon Web Services services.
520
+ #
521
+ # * Amazon Web Services Product: Amazon Web Services offers a wide range
522
+ # of products and services designed to provide scalable, reliable, and
523
+ # cost-effective infrastructure solutions. For the latest list of
524
+ # Amazon Web Services products, refer to [Amazon Web Services
525
+ # products][1].
526
+ #
527
+ # * Amazon Web Services Marketplace private offer: Allows Amazon Web
528
+ # Services Marketplace sellers to extend custom pricing and terms to
529
+ # individual Amazon Web Services customers. Sellers can negotiate
530
+ # custom prices, payment schedules, and end user license terms through
531
+ # private offers, enabling Amazon Web Services customers to acquire
532
+ # software solutions tailored to their specific needs. For more
533
+ # information, refer to [Private offers in Amazon Web Services
534
+ # Marketplace][2].
535
+ #
536
+ # To obtain identifiers for these entities, use the following methods:
537
+ #
538
+ # * Solution: Use the `ListSolutions` operation.
539
+ #
540
+ # * AWS products: For the latest list of Amazon Web Services products,
541
+ # refer to the Amazon Web Services products list.
542
+ #
543
+ # * Amazon Web Services Marketplace private offer: Use the [AWS
544
+ # Marketplace Catalog API][3] to list entities. Specifically, use the
545
+ # `ListEntities` operation to retrieve a list of private offers. The
546
+ # request to the `ListEntities` API returns the details of the private
547
+ # offers available to you. For more information, refer to
548
+ # [ListEntities][4].
549
+ #
550
+ #
551
+ #
552
+ # [1]: https://github.com/aws-samples/partner-crm-integration-samples/blob/main/resources/aws_products.json
553
+ # [2]: https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-private-offers.html
554
+ # [3]: https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/welcome.html
555
+ # [4]: https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_ListEntities.html
556
+ #
557
+ # @option params [required, String] :catalog
558
+ # Specifies the catalog associated with the request. This field takes a
559
+ # string value from a predefined list: `AWS` or `Sandbox`. The catalog
560
+ # determines whichenvironment the opportunity association is made in.
561
+ # Use `AWS` to associate opportunities in the Amazon Web Services
562
+ # catalog, and `Sandbox` to test in a secure and isolated environment.
563
+ #
564
+ # @option params [required, String] :opportunity_identifier
565
+ # Requires the `Opportunity`'s unique identifier when you want to
566
+ # associate it with a related entity. Provide the correct identifier so
567
+ # the intended opportunity is updated with the association.
568
+ #
569
+ # @option params [required, String] :related_entity_identifier
570
+ # Requires the related entity's unique identifier when you want to
571
+ # associate it with the ` Opportunity`. For Amazon Web Services
572
+ # Marketplace entities, provide the Amazon Resource Name (ARN). Use the
573
+ # [ Amazon Web Services Marketplace API][1] to obtain the ARN.
574
+ #
575
+ #
576
+ #
577
+ # [1]: https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/welcome.html
578
+ #
579
+ # @option params [required, String] :related_entity_type
580
+ # Specifies the type of the related entity you're associating with the
581
+ # ` Opportunity`. This helps to categorize and properly process the
582
+ # association.
583
+ #
584
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
585
+ #
586
+ # @example Request syntax with placeholder values
587
+ #
588
+ # resp = client.associate_opportunity({
589
+ # catalog: "CatalogIdentifier", # required
590
+ # opportunity_identifier: "OpportunityIdentifier", # required
591
+ # related_entity_identifier: "AssociateOpportunityRequestRelatedEntityIdentifierString", # required
592
+ # related_entity_type: "Solutions", # required, accepts Solutions, AwsProducts, AwsMarketplaceOffers
593
+ # })
594
+ #
595
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-selling-2022-07-26/AssociateOpportunity AWS API Documentation
596
+ #
597
+ # @overload associate_opportunity(params = {})
598
+ # @param [Hash] params ({})
599
+ def associate_opportunity(params = {}, options = {})
600
+ req = build_request(:associate_opportunity, params)
601
+ req.send_request(options)
602
+ end
603
+
604
+ # Creates an `Opportunity` record in Partner Central. Use this operation
605
+ # to create a potential business opportunity intended to be submitted to
606
+ # Amazon Web Services. Creating an opportunity sets its
607
+ # `Lifecycle.ReviewStatus` to `Pending Submission`.
608
+ #
609
+ # To fully submit an opportunity, follow these steps:
610
+ #
611
+ # 1. To create the opportunity, use `CreateOpportunity`.
612
+ #
613
+ # 2. To associate a solution with the opportunity, use
614
+ # `AssociateOpportunity`.
615
+ #
616
+ # 3. To submit the opportunity, use `SubmitOpportunity`.
617
+ #
618
+ # After submission, you can't edit the opportunity until the review is
619
+ # complete. However, opportunities in the `Pending Submission` state
620
+ # still need all details completed. You can update the opportunity while
621
+ # it's in the `Pending Submission` state.
622
+ #
623
+ # There's a set of mandatory fields required to create opportunities,
624
+ # but consider providing optional fields to enrich the opportunity
625
+ # record.
626
+ #
627
+ # @option params [required, String] :catalog
628
+ # Specifies the catalog associated with the request. This field takes a
629
+ # string value from a predefined list: `AWS` or `Sandbox`. The catalog
630
+ # determines which environment the opportunity is created in. Use `AWS`
631
+ # to create opportunities in the Amazon Web Services catalog, and
632
+ # `Sandbox` to test in a secure and isolated environment.
633
+ #
634
+ # @option params [required, String] :client_token
635
+ # Required to be unique, and should be unchanging, it can be randomly
636
+ # generated or a meaningful string.
637
+ #
638
+ # Default: None
639
+ #
640
+ # Best practice: To ensure uniqueness and avoid collisions, we recommend
641
+ # you use a UUID (Universally Unique Identifier) as the `ClientToken`.
642
+ # You can use standard libraries available in most programming languages
643
+ # to generated this. If you use the same client token, the API throws
644
+ # this error: "Conflicting client token submitted for a new request
645
+ # body".
646
+ #
647
+ # **A suitable default value is auto-generated.** You should normally
648
+ # not need to pass this option.**
649
+ #
650
+ # @option params [Types::Customer] :customer
651
+ # Specifies customer details associated with the `Opportunity`.
652
+ #
653
+ # @option params [Types::LifeCycle] :life_cycle
654
+ # An object that contains lifecycle details for the `Opportunity`.
655
+ #
656
+ # @option params [Types::Marketing] :marketing
657
+ # This object contains marketing details and is optional for an
658
+ # opportunity.
659
+ #
660
+ # @option params [String] :national_security
661
+ # Indicates whether the `Opportunity` pertains to a national security
662
+ # project. This field must be set to `true` only when the customer's
663
+ # industry is *Government*. Additional privacy and security measures
664
+ # apply during the review and management process for opportunities
665
+ # marked as `NationalSecurity`.
666
+ #
667
+ # @option params [Array<Types::Contact>] :opportunity_team
668
+ # Represents the internal team handling the opportunity. Specify the
669
+ # members involved in collaborating on this opportunity within the
670
+ # partner's organization.
671
+ #
672
+ # @option params [String] :opportunity_type
673
+ # Specifies the opportunity type as a renewal, new, or expansion.
674
+ #
675
+ # Opportunity types:
676
+ #
677
+ # * New opportunity: Represents a new business opportunity with a
678
+ # potential customer that's not previously engaged with your
679
+ # solutions or services.
680
+ #
681
+ # * Renewal opportunity: Represents an opportunity to renew an existing
682
+ # contract or subscription with a current customer, ensuring
683
+ # continuity of service.
684
+ #
685
+ # * Expansion opportunity: Represents an opportunity to expand the scope
686
+ # of an existing contract or subscription, either by adding new
687
+ # services or increasing the volume of existing services for a current
688
+ # customer.
689
+ #
690
+ # @option params [String] :origin
691
+ # Specifies the origin of the opportunity, indicating if it was sourced
692
+ # from Amazon Web Services or the partner. For all opportunities created
693
+ # with `Catalog: AWS`, this field must only be `Partner Referral`.
694
+ # However, when using `Catalog: Sandbox`, you can set this field to `AWS
695
+ # Referral` to simulate Amazon Web Services referral creation. This
696
+ # allows Amazon Web Services-originated flows testing in the sandbox
697
+ # catalog.
698
+ #
699
+ # @option params [String] :partner_opportunity_identifier
700
+ # Specifies the opportunity's unique identifier in the partner's CRM
701
+ # system. This value is essential to track and reconcile because it's
702
+ # included in the outbound payload sent back to the partner.
703
+ #
704
+ # This field allows partners to link an opportunity to their CRM, to
705
+ # ensure seamless integration and accurate synchronization between the
706
+ # Partner Central API and the partner's internal systems.
707
+ #
708
+ # @option params [Array<String>] :primary_needs_from_aws
709
+ # Identifies the type of support the partner needs from Amazon Web
710
+ # Services.
711
+ #
712
+ # Valid values:
713
+ #
714
+ # * Co-Sell - Architectural Validation: Confirmation from Amazon Web
715
+ # Services that the partner's proposed solution architecture is
716
+ # aligned with Amazon Web Services best practices and poses minimal
717
+ # architectural risks.
718
+ #
719
+ # * Co-Sell - Business Presentation: Request Amazon Web Services
720
+ # seller's participation in a joint customer presentation.
721
+ #
722
+ # * Co-Sell - Competitive Information: Access to Amazon Web Services
723
+ # competitive resources and support for the partner's proposed
724
+ # solution.
725
+ #
726
+ # * Co-Sell - Pricing Assistance: Connect with an Amazon Web Services
727
+ # seller for support situations where a partner may be receiving an
728
+ # upfront discount on a service (for example: EDP deals).
729
+ #
730
+ # * Co-Sell - Technical Consultation: Connect with an Amazon Web
731
+ # Services Solutions Architect to address the partner's questions
732
+ # about the proposed solution.
733
+ #
734
+ # * Co-Sell - Total Cost of Ownership Evaluation: Assistance with
735
+ # quoting different cost savings of proposed solutions on Amazon Web
736
+ # Services versus on-premises or a traditional hosting environment.
737
+ #
738
+ # * Co-Sell - Deal Support: Request Amazon Web Services seller's
739
+ # support to progress the opportunity (for example: joint customer
740
+ # call, strategic positioning).
741
+ #
742
+ # * Co-Sell - Support for Public Tender / RFx: Opportunity related to
743
+ # the public sector where the partner needs Amazon Web Services RFx
744
+ # support.
745
+ #
746
+ # * Do Not Need Support from AWS Sales Rep: Indicates that a partner
747
+ # doesn't need support from an Amazon Web Services sales
748
+ # representative, and the partner solely manages the opportunity.
749
+ # It's possible to request co-selling support on these opportunities
750
+ # at any stage during their lifecycle. Also known as,
751
+ # for-visibility-only (FVO) opportunity.
752
+ #
753
+ # @option params [Types::Project] :project
754
+ # An object that contains project details for the `Opportunity`.
755
+ #
756
+ # @option params [Types::SoftwareRevenue] :software_revenue
757
+ # Specifies details of a customer's procurement terms. Required only
758
+ # for partners in eligible programs.
759
+ #
760
+ # @return [Types::CreateOpportunityResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
761
+ #
762
+ # * {Types::CreateOpportunityResponse#id #id} => String
763
+ # * {Types::CreateOpportunityResponse#last_modified_date #last_modified_date} => Time
764
+ # * {Types::CreateOpportunityResponse#partner_opportunity_identifier #partner_opportunity_identifier} => String
765
+ #
766
+ # @example Request syntax with placeholder values
767
+ #
768
+ # resp = client.create_opportunity({
769
+ # catalog: "CatalogIdentifier", # required
770
+ # client_token: "CreateOpportunityRequestClientTokenString", # required
771
+ # customer: {
772
+ # account: {
773
+ # address: {
774
+ # city: "AddressCityString",
775
+ # country_code: "US", # accepts US, AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CK, CR, CI, HR, CU, CW, CY, CZ, CD, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, AN, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
776
+ # postal_code: "AddressPostalCodeString",
777
+ # state_or_region: "AddressPart",
778
+ # street_address: "AddressStreetAddressString",
779
+ # },
780
+ # aws_account_id: "AwsAccount",
781
+ # company_name: "AccountCompanyNameString", # required
782
+ # duns: "DunsNumber",
783
+ # industry: "Aerospace", # accepts Aerospace, Agriculture, Automotive, Computers and Electronics, Consumer Goods, Education, Energy - Oil and Gas, Energy - Power and Utilities, Financial Services, Gaming, Government, Healthcare, Hospitality, Life Sciences, Manufacturing, Marketing and Advertising, Media and Entertainment, Mining, Non-Profit Organization, Professional Services, Real Estate and Construction, Retail, Software and Internet, Telecommunications, Transportation and Logistics, Travel, Wholesale and Distribution, Other
784
+ # other_industry: "AccountOtherIndustryString",
785
+ # website_url: "WebsiteUrl",
786
+ # },
787
+ # contacts: [
788
+ # {
789
+ # business_title: "JobTitle",
790
+ # email: "Email",
791
+ # first_name: "ContactFirstNameString",
792
+ # last_name: "ContactLastNameString",
793
+ # phone: "PhoneNumber",
794
+ # },
795
+ # ],
796
+ # },
797
+ # life_cycle: {
798
+ # closed_lost_reason: "Customer Deficiency", # accepts Customer Deficiency, Delay / Cancellation of Project, Legal / Tax / Regulatory, Lost to Competitor - Google, Lost to Competitor - Microsoft, Lost to Competitor - SoftLayer, Lost to Competitor - VMWare, Lost to Competitor - Other, No Opportunity, On Premises Deployment, Partner Gap, Price, Security / Compliance, Technical Limitations, Customer Experience, Other, People/Relationship/Governance, Product/Technology, Financial/Commercial
799
+ # next_steps: "LifeCycleNextStepsString",
800
+ # next_steps_history: [
801
+ # {
802
+ # time: Time.now, # required
803
+ # value: "String", # required
804
+ # },
805
+ # ],
806
+ # review_comments: "String",
807
+ # review_status: "Pending Submission", # accepts Pending Submission, Submitted, In review, Approved, Rejected, Action Required
808
+ # review_status_reason: "String",
809
+ # stage: "Prospect", # accepts Prospect, Qualified, Technical Validation, Business Validation, Committed, Launched, Closed Lost
810
+ # target_close_date: "Date",
811
+ # },
812
+ # marketing: {
813
+ # aws_funding_used: "Yes", # accepts Yes, No
814
+ # campaign_name: "String",
815
+ # channels: ["AWS Marketing Central"], # accepts AWS Marketing Central, Content Syndication, Display, Email, Live Event, Out Of Home (OOH), Print, Search, Social, Telemarketing, TV, Video, Virtual Event
816
+ # source: "Marketing Activity", # accepts Marketing Activity, None
817
+ # use_cases: ["String"],
818
+ # },
819
+ # national_security: "Yes", # accepts Yes, No
820
+ # opportunity_team: [
821
+ # {
822
+ # business_title: "JobTitle",
823
+ # email: "Email",
824
+ # first_name: "ContactFirstNameString",
825
+ # last_name: "ContactLastNameString",
826
+ # phone: "PhoneNumber",
827
+ # },
828
+ # ],
829
+ # opportunity_type: "Net New Business", # accepts Net New Business, Flat Renewal, Expansion
830
+ # origin: "AWS Referral", # accepts AWS Referral, Partner Referral
831
+ # partner_opportunity_identifier: "CreateOpportunityRequestPartnerOpportunityIdentifierString",
832
+ # primary_needs_from_aws: ["Co-Sell - Architectural Validation"], # accepts Co-Sell - Architectural Validation, Co-Sell - Business Presentation, Co-Sell - Competitive Information, Co-Sell - Pricing Assistance, Co-Sell - Technical Consultation, Co-Sell - Total Cost of Ownership Evaluation, Co-Sell - Deal Support, Co-Sell - Support for Public Tender / RFx
833
+ # project: {
834
+ # additional_comments: "ProjectAdditionalCommentsString",
835
+ # apn_programs: ["String"],
836
+ # competitor_name: "Oracle Cloud", # accepts Oracle Cloud, On-Prem, Co-location, Akamai, AliCloud, Google Cloud Platform, IBM Softlayer, Microsoft Azure, Other- Cost Optimization, No Competition, *Other
837
+ # customer_business_problem: "ProjectCustomerBusinessProblemString",
838
+ # customer_use_case: "String",
839
+ # delivery_models: ["SaaS or PaaS"], # accepts SaaS or PaaS, BYOL or AMI, Managed Services, Professional Services, Resell, Other
840
+ # expected_customer_spend: [
841
+ # {
842
+ # amount: "ExpectedCustomerSpendAmountString", # required
843
+ # currency_code: "USD", # required, accepts USD, EUR, GBP, AUD, CAD, CNY, NZD, INR, JPY, CHF, SEK, AED, AFN, ALL, AMD, ANG, AOA, ARS, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CDF, CHE, CHW, CLF, CLP, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, FJD, FKP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, IQD, IRR, ISK, JMD, JOD, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SGD, SHP, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USN, UYI, UYU, UZS, VEF, VND, VUV, WST, XAF, XCD, XDR, XOF, XPF, XSU, XUA, YER, ZAR, ZMW, ZWL
844
+ # frequency: "Monthly", # required, accepts Monthly
845
+ # target_company: "ExpectedCustomerSpendTargetCompanyString", # required
846
+ # },
847
+ # ],
848
+ # other_competitor_names: "ProjectOtherCompetitorNamesString",
849
+ # other_solution_description: "ProjectOtherSolutionDescriptionString",
850
+ # related_opportunity_identifier: "OpportunityIdentifier",
851
+ # sales_activities: ["Initialized discussions with customer"], # accepts Initialized discussions with customer, Customer has shown interest in solution, Conducted POC / Demo, In evaluation / planning stage, Agreed on solution to Business Problem, Completed Action Plan, Finalized Deployment Need, SOW Signed
852
+ # title: "ProjectTitleString",
853
+ # },
854
+ # software_revenue: {
855
+ # delivery_model: "Contract", # accepts Contract, Pay-as-you-go, Subscription
856
+ # effective_date: "Date",
857
+ # expiration_date: "Date",
858
+ # value: {
859
+ # amount: "MonetaryValueAmountString", # required
860
+ # currency_code: "USD", # required, accepts USD, EUR, GBP, AUD, CAD, CNY, NZD, INR, JPY, CHF, SEK, AED, AFN, ALL, AMD, ANG, AOA, ARS, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CDF, CHE, CHW, CLF, CLP, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, FJD, FKP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, IQD, IRR, ISK, JMD, JOD, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SGD, SHP, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USN, UYI, UYU, UZS, VEF, VND, VUV, WST, XAF, XCD, XDR, XOF, XPF, XSU, XUA, YER, ZAR, ZMW, ZWL
861
+ # },
862
+ # },
863
+ # })
864
+ #
865
+ # @example Response structure
866
+ #
867
+ # resp.id #=> String
868
+ # resp.last_modified_date #=> Time
869
+ # resp.partner_opportunity_identifier #=> String
870
+ #
871
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-selling-2022-07-26/CreateOpportunity AWS API Documentation
872
+ #
873
+ # @overload create_opportunity(params = {})
874
+ # @param [Hash] params ({})
875
+ def create_opportunity(params = {}, options = {})
876
+ req = build_request(:create_opportunity, params)
877
+ req.send_request(options)
878
+ end
879
+
880
+ # Allows you to remove an existing association between an `Opportunity`
881
+ # and related entities such as a Partner Solution, Amazon Web Services
882
+ # product, or an Amazon Web Services Marketplace offer. This operation
883
+ # is the counterpart to `AssociateOpportunity`, and it provides
884
+ # flexibility to manage associations as business needs change.
885
+ #
886
+ # Use this operation to update the associations of an `Opportunity` due
887
+ # to changes in the related entities, or if an association was made in
888
+ # error. Ensuring accurate associations helps maintain clarity and
889
+ # accuracy to track and manage business opportunities. When you replace
890
+ # an entity, first attach the new entity and then disassociate the one
891
+ # to be removed, especially if it's the last remaining related entity
892
+ # that's required.
893
+ #
894
+ # @option params [required, String] :catalog
895
+ # Specifies the catalog associated with the request. This field takes a
896
+ # string value from a predefined list: `AWS` or `Sandbox`. The catalog
897
+ # determines which environment the opportunity disassociation is made
898
+ # in. Use `AWS` to disassociate opportunities in the Amazon Web Services
899
+ # catalog, and `Sandbox` to test in a secure and isolated environment.
900
+ #
901
+ # @option params [required, String] :opportunity_identifier
902
+ # The opportunity's unique identifier for when you want to disassociate
903
+ # it from related entities. This identifier is crucial to ensure the
904
+ # correct opportunity is updated, especially in environments with
905
+ # numerous opportunities.
906
+ #
907
+ # Validation: Ensure that the identifier provided corresponds to an
908
+ # existing opportunity in the Amazon Web Services system because
909
+ # incorrect identifiers result in an error and no changes are made.
910
+ #
911
+ # @option params [required, String] :related_entity_identifier
912
+ # The related entity's identifier that you want to disassociate from
913
+ # the opportunity. Depending on the type of entity, this could be a
914
+ # simple identifier or an Amazon Resource Name (ARN) for entities
915
+ # managed through Amazon Web Services Marketplace.
916
+ #
917
+ # For Amazon Web Services Marketplace entities, use the Amazon Web
918
+ # Services Marketplace API to obtain the necessary ARNs. For guidance on
919
+ # retrieving these ARNs, refer to [ Amazon Web Services Marketplace
920
+ # Catalog API][1] .
921
+ #
922
+ # Validation: Ensure the identifier or ARN is valid and corresponds to
923
+ # an existing related entity. An incorrect or invalid identifier results
924
+ # in an error.
925
+ #
926
+ #
927
+ #
928
+ # [1]: https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/welcome.html
929
+ #
930
+ # @option params [required, String] :related_entity_type
931
+ # The type of the entity that you're disassociating from the
932
+ # opportunity. When you specify the entity type, it helps the system
933
+ # correctly process the disassociation request and ensures that the
934
+ # right connections are removed.
935
+ #
936
+ # Examples of entity types include Partner Solution, Amazon Web Services
937
+ # product, and Amazon Web Services Marketplace offer. Ensure that the
938
+ # value matches one of the expected entity types.
939
+ #
940
+ # Validation: Provide a valid entity type to ensure successful
941
+ # disassociation. Invalid or incorrect entity types result in an error.
942
+ #
943
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
944
+ #
945
+ # @example Request syntax with placeholder values
946
+ #
947
+ # resp = client.disassociate_opportunity({
948
+ # catalog: "CatalogIdentifier", # required
949
+ # opportunity_identifier: "OpportunityIdentifier", # required
950
+ # related_entity_identifier: "DisassociateOpportunityRequestRelatedEntityIdentifierString", # required
951
+ # related_entity_type: "Solutions", # required, accepts Solutions, AwsProducts, AwsMarketplaceOffers
952
+ # })
953
+ #
954
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-selling-2022-07-26/DisassociateOpportunity AWS API Documentation
955
+ #
956
+ # @overload disassociate_opportunity(params = {})
957
+ # @param [Hash] params ({})
958
+ def disassociate_opportunity(params = {}, options = {})
959
+ req = build_request(:disassociate_opportunity, params)
960
+ req.send_request(options)
961
+ end
962
+
963
+ # Retrieves a summary of an AWS Opportunity. This summary includes
964
+ # high-level details about the opportunity sourced from AWS, such as
965
+ # lifecycle information, customer details, and involvement type. It is
966
+ # useful for tracking updates on the AWS opportunity corresponding to an
967
+ # opportunity in the partner's account.
968
+ #
969
+ # @option params [required, String] :catalog
970
+ # Specifies the catalog in which the AWS Opportunity is located.
971
+ # Accepted values include `AWS` for production opportunities or
972
+ # `Sandbox` for testing purposes. The catalog determines which
973
+ # environment the opportunity data is pulled from.
974
+ #
975
+ # @option params [required, String] :related_opportunity_identifier
976
+ # The unique identifier for the related partner opportunity. Use this
977
+ # field to correlate an AWS opportunity with its corresponding partner
978
+ # opportunity in your CRM system.
979
+ #
980
+ # @return [Types::GetAwsOpportunitySummaryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
981
+ #
982
+ # * {Types::GetAwsOpportunitySummaryResponse#catalog #catalog} => String
983
+ # * {Types::GetAwsOpportunitySummaryResponse#customer #customer} => Types::AwsOpportunityCustomer
984
+ # * {Types::GetAwsOpportunitySummaryResponse#insights #insights} => Types::AwsOpportunityInsights
985
+ # * {Types::GetAwsOpportunitySummaryResponse#involvement_type #involvement_type} => String
986
+ # * {Types::GetAwsOpportunitySummaryResponse#involvement_type_change_reason #involvement_type_change_reason} => String
987
+ # * {Types::GetAwsOpportunitySummaryResponse#life_cycle #life_cycle} => Types::AwsOpportunityLifeCycle
988
+ # * {Types::GetAwsOpportunitySummaryResponse#opportunity_team #opportunity_team} => Array&lt;Types::AwsTeamMember&gt;
989
+ # * {Types::GetAwsOpportunitySummaryResponse#origin #origin} => String
990
+ # * {Types::GetAwsOpportunitySummaryResponse#project #project} => Types::AwsOpportunityProject
991
+ # * {Types::GetAwsOpportunitySummaryResponse#related_entity_ids #related_entity_ids} => Types::AwsOpportunityRelatedEntities
992
+ # * {Types::GetAwsOpportunitySummaryResponse#related_opportunity_id #related_opportunity_id} => String
993
+ # * {Types::GetAwsOpportunitySummaryResponse#visibility #visibility} => String
994
+ #
995
+ # @example Request syntax with placeholder values
996
+ #
997
+ # resp = client.get_aws_opportunity_summary({
998
+ # catalog: "CatalogIdentifier", # required
999
+ # related_opportunity_identifier: "OpportunityIdentifier", # required
1000
+ # })
1001
+ #
1002
+ # @example Response structure
1003
+ #
1004
+ # resp.catalog #=> String
1005
+ # resp.customer.contacts #=> Array
1006
+ # resp.customer.contacts[0].business_title #=> String
1007
+ # resp.customer.contacts[0].email #=> String
1008
+ # resp.customer.contacts[0].first_name #=> String
1009
+ # resp.customer.contacts[0].last_name #=> String
1010
+ # resp.customer.contacts[0].phone #=> String
1011
+ # resp.insights.engagement_score #=> String, one of "High", "Medium", "Low"
1012
+ # resp.insights.next_best_actions #=> String
1013
+ # resp.involvement_type #=> String, one of "For Visibility Only", "Co-Sell"
1014
+ # resp.involvement_type_change_reason #=> String, one of "Expansion Opportunity", "Change in Deal Information", "Customer Requested", "Technical Complexity", "Risk Mitigation"
1015
+ # resp.life_cycle.closed_lost_reason #=> String, one of "Administrative", "Business Associate Agreement", "Company Acquired/Dissolved", "Competitive Offering", "Customer Data Requirement", "Customer Deficiency", "Customer Experience", "Delay / Cancellation of Project", "Duplicate", "Duplicate Opportunity", "Executive Blocker", "Failed Vetting", "Feature Limitation", "Financial/Commercial", "Insufficient Amazon Value", "Insufficient AWS Value", "International Constraints", "Legal / Tax / Regulatory", "Legal Terms and Conditions", "Lost to Competitor", "Lost to Competitor - Google", "Lost to Competitor - Microsoft", "Lost to Competitor - Other", "Lost to Competitor - Rackspace", "Lost to Competitor - SoftLayer", "Lost to Competitor - VMWare", "No Customer Reference", "No Integration Resources", "No Opportunity", "No Perceived Value of MP", "No Response", "Not Committed to AWS", "No Update", "On Premises Deployment", "Other", "Other (Details in Description)", "Partner Gap", "Past Due", "People/Relationship/Governance", "Platform Technology Limitation", "Preference for Competitor", "Price", "Product/Technology", "Product Not on AWS", "Security / Compliance", "Self-Service", "Technical Limitations", "Term Sheet Impasse"
1016
+ # resp.life_cycle.next_steps #=> String
1017
+ # resp.life_cycle.next_steps_history #=> Array
1018
+ # resp.life_cycle.next_steps_history[0].time #=> Time
1019
+ # resp.life_cycle.next_steps_history[0].value #=> String
1020
+ # resp.life_cycle.stage #=> String, one of "Not Started", "In Progress", "Prospect", "Engaged", "Identified", "Qualify", "Research", "Seller Engaged", "Evaluating", "Seller Registered", "Term Sheet Negotiation", "Contract Negotiation", "Onboarding", "Building Integration", "Qualified", "On-hold", "Technical Validation", "Business Validation", "Committed", "Launched", "Deferred to Partner", "Closed Lost", "Completed", "Closed Incomplete"
1021
+ # resp.life_cycle.target_close_date #=> String
1022
+ # resp.opportunity_team #=> Array
1023
+ # resp.opportunity_team[0].business_title #=> String, one of "AWSSalesRep", "AWSAccountOwner", "WWPSPDM", "PDM", "PSM", "ISVSM"
1024
+ # resp.opportunity_team[0].email #=> String
1025
+ # resp.opportunity_team[0].first_name #=> String
1026
+ # resp.opportunity_team[0].last_name #=> String
1027
+ # resp.origin #=> String, one of "AWS Referral", "Partner Referral"
1028
+ # resp.project.expected_customer_spend #=> Array
1029
+ # resp.project.expected_customer_spend[0].amount #=> String
1030
+ # resp.project.expected_customer_spend[0].currency_code #=> String, one of "USD", "EUR", "GBP", "AUD", "CAD", "CNY", "NZD", "INR", "JPY", "CHF", "SEK", "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CDF", "CHE", "CHW", "CLF", "CLP", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "FJD", "FKP", "GEL", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IQD", "IRR", "ISK", "JMD", "JOD", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USN", "UYI", "UYU", "UZS", "VEF", "VND", "VUV", "WST", "XAF", "XCD", "XDR", "XOF", "XPF", "XSU", "XUA", "YER", "ZAR", "ZMW", "ZWL"
1031
+ # resp.project.expected_customer_spend[0].frequency #=> String, one of "Monthly"
1032
+ # resp.project.expected_customer_spend[0].target_company #=> String
1033
+ # resp.related_entity_ids.aws_products #=> Array
1034
+ # resp.related_entity_ids.aws_products[0] #=> String
1035
+ # resp.related_entity_ids.solutions #=> Array
1036
+ # resp.related_entity_ids.solutions[0] #=> String
1037
+ # resp.related_opportunity_id #=> String
1038
+ # resp.visibility #=> String, one of "Full", "Limited"
1039
+ #
1040
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-selling-2022-07-26/GetAwsOpportunitySummary AWS API Documentation
1041
+ #
1042
+ # @overload get_aws_opportunity_summary(params = {})
1043
+ # @param [Hash] params ({})
1044
+ def get_aws_opportunity_summary(params = {}, options = {})
1045
+ req = build_request(:get_aws_opportunity_summary, params)
1046
+ req.send_request(options)
1047
+ end
1048
+
1049
+ # Retrieves the details of an engagement invitation shared by AWS with a
1050
+ # partner. The information includes key aspects such as the customer,
1051
+ # project details, and lifecycle information related to the engagement.
1052
+ #
1053
+ # @option params [required, String] :catalog
1054
+ # Specifies the catalog associated with the request. The field accepts
1055
+ # values from the predefined set: `AWS` for live operations or `Sandbox`
1056
+ # for testing environments.
1057
+ #
1058
+ # @option params [required, String] :identifier
1059
+ # Specifies the unique identifier for the engagement invitation being
1060
+ # retrieved.
1061
+ #
1062
+ # @return [Types::GetEngagementInvitationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1063
+ #
1064
+ # * {Types::GetEngagementInvitationResponse#arn #arn} => String
1065
+ # * {Types::GetEngagementInvitationResponse#catalog #catalog} => String
1066
+ # * {Types::GetEngagementInvitationResponse#engagement_title #engagement_title} => String
1067
+ # * {Types::GetEngagementInvitationResponse#expiration_date #expiration_date} => Time
1068
+ # * {Types::GetEngagementInvitationResponse#id #id} => String
1069
+ # * {Types::GetEngagementInvitationResponse#invitation_date #invitation_date} => Time
1070
+ # * {Types::GetEngagementInvitationResponse#payload #payload} => Types::Payload
1071
+ # * {Types::GetEngagementInvitationResponse#payload_type #payload_type} => String
1072
+ # * {Types::GetEngagementInvitationResponse#receiver #receiver} => Types::Receiver
1073
+ # * {Types::GetEngagementInvitationResponse#rejection_reason #rejection_reason} => String
1074
+ # * {Types::GetEngagementInvitationResponse#sender_aws_account_id #sender_aws_account_id} => String
1075
+ # * {Types::GetEngagementInvitationResponse#sender_company_name #sender_company_name} => String
1076
+ # * {Types::GetEngagementInvitationResponse#status #status} => String
1077
+ #
1078
+ # @example Request syntax with placeholder values
1079
+ #
1080
+ # resp = client.get_engagement_invitation({
1081
+ # catalog: "CatalogIdentifier", # required
1082
+ # identifier: "EngagementInvitationArnOrIdentifier", # required
1083
+ # })
1084
+ #
1085
+ # @example Response structure
1086
+ #
1087
+ # resp.arn #=> String
1088
+ # resp.catalog #=> String
1089
+ # resp.engagement_title #=> String
1090
+ # resp.expiration_date #=> Time
1091
+ # resp.id #=> String
1092
+ # resp.invitation_date #=> Time
1093
+ # resp.payload.opportunity_invitation.customer.company_name #=> String
1094
+ # resp.payload.opportunity_invitation.customer.country_code #=> String, one of "US", "AF", "AX", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BQ", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "KH", "CM", "CA", "CV", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CK", "CR", "CI", "HR", "CU", "CW", "CY", "CZ", "CD", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MQ", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "AN", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "MP", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "SS", "ES", "LK", "SD", "SR", "SJ", "SZ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "UA", "AE", "GB", "UM", "UY", "UZ", "VU", "VE", "VN", "VG", "VI", "WF", "EH", "YE", "ZM", "ZW"
1095
+ # resp.payload.opportunity_invitation.customer.industry #=> String, one of "Aerospace", "Agriculture", "Automotive", "Computers and Electronics", "Consumer Goods", "Education", "Energy - Oil and Gas", "Energy - Power and Utilities", "Financial Services", "Gaming", "Government", "Healthcare", "Hospitality", "Life Sciences", "Manufacturing", "Marketing and Advertising", "Media and Entertainment", "Mining", "Non-Profit Organization", "Professional Services", "Real Estate and Construction", "Retail", "Software and Internet", "Telecommunications", "Transportation and Logistics", "Travel", "Wholesale and Distribution", "Other"
1096
+ # resp.payload.opportunity_invitation.customer.website_url #=> String
1097
+ # resp.payload.opportunity_invitation.project.business_problem #=> String
1098
+ # resp.payload.opportunity_invitation.project.expected_customer_spend #=> Array
1099
+ # resp.payload.opportunity_invitation.project.expected_customer_spend[0].amount #=> String
1100
+ # resp.payload.opportunity_invitation.project.expected_customer_spend[0].currency_code #=> String, one of "USD", "EUR", "GBP", "AUD", "CAD", "CNY", "NZD", "INR", "JPY", "CHF", "SEK", "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CDF", "CHE", "CHW", "CLF", "CLP", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "FJD", "FKP", "GEL", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IQD", "IRR", "ISK", "JMD", "JOD", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USN", "UYI", "UYU", "UZS", "VEF", "VND", "VUV", "WST", "XAF", "XCD", "XDR", "XOF", "XPF", "XSU", "XUA", "YER", "ZAR", "ZMW", "ZWL"
1101
+ # resp.payload.opportunity_invitation.project.expected_customer_spend[0].frequency #=> String, one of "Monthly"
1102
+ # resp.payload.opportunity_invitation.project.expected_customer_spend[0].target_company #=> String
1103
+ # resp.payload.opportunity_invitation.project.target_completion_date #=> String
1104
+ # resp.payload.opportunity_invitation.project.title #=> String
1105
+ # resp.payload.opportunity_invitation.receiver_responsibilities #=> Array
1106
+ # resp.payload.opportunity_invitation.receiver_responsibilities[0] #=> String, one of "Distributor", "Reseller", "Hardware Partner", "Managed Service Provider", "Software Partner", "Services Partner", "Training Partner", "Co-Sell Facilitator", "Facilitator"
1107
+ # resp.payload.opportunity_invitation.sender_contacts #=> Array
1108
+ # resp.payload.opportunity_invitation.sender_contacts[0].business_title #=> String
1109
+ # resp.payload.opportunity_invitation.sender_contacts[0].email #=> String
1110
+ # resp.payload.opportunity_invitation.sender_contacts[0].first_name #=> String
1111
+ # resp.payload.opportunity_invitation.sender_contacts[0].last_name #=> String
1112
+ # resp.payload.opportunity_invitation.sender_contacts[0].phone #=> String
1113
+ # resp.payload_type #=> String, one of "OpportunityInvitation"
1114
+ # resp.receiver.account.alias #=> String
1115
+ # resp.receiver.account.aws_account_id #=> String
1116
+ # resp.rejection_reason #=> String
1117
+ # resp.sender_aws_account_id #=> String
1118
+ # resp.sender_company_name #=> String
1119
+ # resp.status #=> String, one of "ACCEPTED", "PENDING", "REJECTED", "EXPIRED"
1120
+ #
1121
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-selling-2022-07-26/GetEngagementInvitation AWS API Documentation
1122
+ #
1123
+ # @overload get_engagement_invitation(params = {})
1124
+ # @param [Hash] params ({})
1125
+ def get_engagement_invitation(params = {}, options = {})
1126
+ req = build_request(:get_engagement_invitation, params)
1127
+ req.send_request(options)
1128
+ end
1129
+
1130
+ # Fetches the `Opportunity` record from Partner Central by a given
1131
+ # `Identifier`.
1132
+ #
1133
+ # Use the `ListOpportunities` action or the event notification (from
1134
+ # Amazon EventBridge) to obtain this identifier.
1135
+ #
1136
+ # @option params [required, String] :catalog
1137
+ # Specifies the catalog associated with the request. This field takes a
1138
+ # string value from a predefined list: `AWS` or `Sandbox`. The catalog
1139
+ # determines which environment the opportunity is fetched from. Use
1140
+ # `AWS` to retrieve opportunities in the Amazon Web Services catalog,
1141
+ # and `Sandbox` to retrieve opportunities in a secure and isolated
1142
+ # testing environment.
1143
+ #
1144
+ # @option params [required, String] :identifier
1145
+ # Read-only, system generated `Opportunity` unique identifier.
1146
+ #
1147
+ # @return [Types::GetOpportunityResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1148
+ #
1149
+ # * {Types::GetOpportunityResponse#catalog #catalog} => String
1150
+ # * {Types::GetOpportunityResponse#created_date #created_date} => Time
1151
+ # * {Types::GetOpportunityResponse#customer #customer} => Types::Customer
1152
+ # * {Types::GetOpportunityResponse#id #id} => String
1153
+ # * {Types::GetOpportunityResponse#last_modified_date #last_modified_date} => Time
1154
+ # * {Types::GetOpportunityResponse#life_cycle #life_cycle} => Types::LifeCycle
1155
+ # * {Types::GetOpportunityResponse#marketing #marketing} => Types::Marketing
1156
+ # * {Types::GetOpportunityResponse#national_security #national_security} => String
1157
+ # * {Types::GetOpportunityResponse#opportunity_team #opportunity_team} => Array&lt;Types::Contact&gt;
1158
+ # * {Types::GetOpportunityResponse#opportunity_type #opportunity_type} => String
1159
+ # * {Types::GetOpportunityResponse#partner_opportunity_identifier #partner_opportunity_identifier} => String
1160
+ # * {Types::GetOpportunityResponse#primary_needs_from_aws #primary_needs_from_aws} => Array&lt;String&gt;
1161
+ # * {Types::GetOpportunityResponse#project #project} => Types::Project
1162
+ # * {Types::GetOpportunityResponse#related_entity_identifiers #related_entity_identifiers} => Types::RelatedEntityIdentifiers
1163
+ # * {Types::GetOpportunityResponse#software_revenue #software_revenue} => Types::SoftwareRevenue
1164
+ #
1165
+ # @example Request syntax with placeholder values
1166
+ #
1167
+ # resp = client.get_opportunity({
1168
+ # catalog: "CatalogIdentifier", # required
1169
+ # identifier: "OpportunityIdentifier", # required
1170
+ # })
1171
+ #
1172
+ # @example Response structure
1173
+ #
1174
+ # resp.catalog #=> String
1175
+ # resp.created_date #=> Time
1176
+ # resp.customer.account.address.city #=> String
1177
+ # resp.customer.account.address.country_code #=> String, one of "US", "AF", "AX", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BQ", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "KH", "CM", "CA", "CV", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CK", "CR", "CI", "HR", "CU", "CW", "CY", "CZ", "CD", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MQ", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "AN", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "MP", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "SS", "ES", "LK", "SD", "SR", "SJ", "SZ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "UA", "AE", "GB", "UM", "UY", "UZ", "VU", "VE", "VN", "VG", "VI", "WF", "EH", "YE", "ZM", "ZW"
1178
+ # resp.customer.account.address.postal_code #=> String
1179
+ # resp.customer.account.address.state_or_region #=> String
1180
+ # resp.customer.account.address.street_address #=> String
1181
+ # resp.customer.account.aws_account_id #=> String
1182
+ # resp.customer.account.company_name #=> String
1183
+ # resp.customer.account.duns #=> String
1184
+ # resp.customer.account.industry #=> String, one of "Aerospace", "Agriculture", "Automotive", "Computers and Electronics", "Consumer Goods", "Education", "Energy - Oil and Gas", "Energy - Power and Utilities", "Financial Services", "Gaming", "Government", "Healthcare", "Hospitality", "Life Sciences", "Manufacturing", "Marketing and Advertising", "Media and Entertainment", "Mining", "Non-Profit Organization", "Professional Services", "Real Estate and Construction", "Retail", "Software and Internet", "Telecommunications", "Transportation and Logistics", "Travel", "Wholesale and Distribution", "Other"
1185
+ # resp.customer.account.other_industry #=> String
1186
+ # resp.customer.account.website_url #=> String
1187
+ # resp.customer.contacts #=> Array
1188
+ # resp.customer.contacts[0].business_title #=> String
1189
+ # resp.customer.contacts[0].email #=> String
1190
+ # resp.customer.contacts[0].first_name #=> String
1191
+ # resp.customer.contacts[0].last_name #=> String
1192
+ # resp.customer.contacts[0].phone #=> String
1193
+ # resp.id #=> String
1194
+ # resp.last_modified_date #=> Time
1195
+ # resp.life_cycle.closed_lost_reason #=> String, one of "Customer Deficiency", "Delay / Cancellation of Project", "Legal / Tax / Regulatory", "Lost to Competitor - Google", "Lost to Competitor - Microsoft", "Lost to Competitor - SoftLayer", "Lost to Competitor - VMWare", "Lost to Competitor - Other", "No Opportunity", "On Premises Deployment", "Partner Gap", "Price", "Security / Compliance", "Technical Limitations", "Customer Experience", "Other", "People/Relationship/Governance", "Product/Technology", "Financial/Commercial"
1196
+ # resp.life_cycle.next_steps #=> String
1197
+ # resp.life_cycle.next_steps_history #=> Array
1198
+ # resp.life_cycle.next_steps_history[0].time #=> Time
1199
+ # resp.life_cycle.next_steps_history[0].value #=> String
1200
+ # resp.life_cycle.review_comments #=> String
1201
+ # resp.life_cycle.review_status #=> String, one of "Pending Submission", "Submitted", "In review", "Approved", "Rejected", "Action Required"
1202
+ # resp.life_cycle.review_status_reason #=> String
1203
+ # resp.life_cycle.stage #=> String, one of "Prospect", "Qualified", "Technical Validation", "Business Validation", "Committed", "Launched", "Closed Lost"
1204
+ # resp.life_cycle.target_close_date #=> String
1205
+ # resp.marketing.aws_funding_used #=> String, one of "Yes", "No"
1206
+ # resp.marketing.campaign_name #=> String
1207
+ # resp.marketing.channels #=> Array
1208
+ # resp.marketing.channels[0] #=> String, one of "AWS Marketing Central", "Content Syndication", "Display", "Email", "Live Event", "Out Of Home (OOH)", "Print", "Search", "Social", "Telemarketing", "TV", "Video", "Virtual Event"
1209
+ # resp.marketing.source #=> String, one of "Marketing Activity", "None"
1210
+ # resp.marketing.use_cases #=> Array
1211
+ # resp.marketing.use_cases[0] #=> String
1212
+ # resp.national_security #=> String, one of "Yes", "No"
1213
+ # resp.opportunity_team #=> Array
1214
+ # resp.opportunity_team[0].business_title #=> String
1215
+ # resp.opportunity_team[0].email #=> String
1216
+ # resp.opportunity_team[0].first_name #=> String
1217
+ # resp.opportunity_team[0].last_name #=> String
1218
+ # resp.opportunity_team[0].phone #=> String
1219
+ # resp.opportunity_type #=> String, one of "Net New Business", "Flat Renewal", "Expansion"
1220
+ # resp.partner_opportunity_identifier #=> String
1221
+ # resp.primary_needs_from_aws #=> Array
1222
+ # resp.primary_needs_from_aws[0] #=> String, one of "Co-Sell - Architectural Validation", "Co-Sell - Business Presentation", "Co-Sell - Competitive Information", "Co-Sell - Pricing Assistance", "Co-Sell - Technical Consultation", "Co-Sell - Total Cost of Ownership Evaluation", "Co-Sell - Deal Support", "Co-Sell - Support for Public Tender / RFx"
1223
+ # resp.project.additional_comments #=> String
1224
+ # resp.project.apn_programs #=> Array
1225
+ # resp.project.apn_programs[0] #=> String
1226
+ # resp.project.competitor_name #=> String, one of "Oracle Cloud", "On-Prem", "Co-location", "Akamai", "AliCloud", "Google Cloud Platform", "IBM Softlayer", "Microsoft Azure", "Other- Cost Optimization", "No Competition", "*Other"
1227
+ # resp.project.customer_business_problem #=> String
1228
+ # resp.project.customer_use_case #=> String
1229
+ # resp.project.delivery_models #=> Array
1230
+ # resp.project.delivery_models[0] #=> String, one of "SaaS or PaaS", "BYOL or AMI", "Managed Services", "Professional Services", "Resell", "Other"
1231
+ # resp.project.expected_customer_spend #=> Array
1232
+ # resp.project.expected_customer_spend[0].amount #=> String
1233
+ # resp.project.expected_customer_spend[0].currency_code #=> String, one of "USD", "EUR", "GBP", "AUD", "CAD", "CNY", "NZD", "INR", "JPY", "CHF", "SEK", "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CDF", "CHE", "CHW", "CLF", "CLP", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "FJD", "FKP", "GEL", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IQD", "IRR", "ISK", "JMD", "JOD", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USN", "UYI", "UYU", "UZS", "VEF", "VND", "VUV", "WST", "XAF", "XCD", "XDR", "XOF", "XPF", "XSU", "XUA", "YER", "ZAR", "ZMW", "ZWL"
1234
+ # resp.project.expected_customer_spend[0].frequency #=> String, one of "Monthly"
1235
+ # resp.project.expected_customer_spend[0].target_company #=> String
1236
+ # resp.project.other_competitor_names #=> String
1237
+ # resp.project.other_solution_description #=> String
1238
+ # resp.project.related_opportunity_identifier #=> String
1239
+ # resp.project.sales_activities #=> Array
1240
+ # resp.project.sales_activities[0] #=> String, one of "Initialized discussions with customer", "Customer has shown interest in solution", "Conducted POC / Demo", "In evaluation / planning stage", "Agreed on solution to Business Problem", "Completed Action Plan", "Finalized Deployment Need", "SOW Signed"
1241
+ # resp.project.title #=> String
1242
+ # resp.related_entity_identifiers.aws_marketplace_offers #=> Array
1243
+ # resp.related_entity_identifiers.aws_marketplace_offers[0] #=> String
1244
+ # resp.related_entity_identifiers.aws_products #=> Array
1245
+ # resp.related_entity_identifiers.aws_products[0] #=> String
1246
+ # resp.related_entity_identifiers.solutions #=> Array
1247
+ # resp.related_entity_identifiers.solutions[0] #=> String
1248
+ # resp.software_revenue.delivery_model #=> String, one of "Contract", "Pay-as-you-go", "Subscription"
1249
+ # resp.software_revenue.effective_date #=> String
1250
+ # resp.software_revenue.expiration_date #=> String
1251
+ # resp.software_revenue.value.amount #=> String
1252
+ # resp.software_revenue.value.currency_code #=> String, one of "USD", "EUR", "GBP", "AUD", "CAD", "CNY", "NZD", "INR", "JPY", "CHF", "SEK", "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CDF", "CHE", "CHW", "CLF", "CLP", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "FJD", "FKP", "GEL", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IQD", "IRR", "ISK", "JMD", "JOD", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USN", "UYI", "UYU", "UZS", "VEF", "VND", "VUV", "WST", "XAF", "XCD", "XDR", "XOF", "XPF", "XSU", "XUA", "YER", "ZAR", "ZMW", "ZWL"
1253
+ #
1254
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-selling-2022-07-26/GetOpportunity AWS API Documentation
1255
+ #
1256
+ # @overload get_opportunity(params = {})
1257
+ # @param [Hash] params ({})
1258
+ def get_opportunity(params = {}, options = {})
1259
+ req = build_request(:get_opportunity, params)
1260
+ req.send_request(options)
1261
+ end
1262
+
1263
+ # Retrieves a list of engagement invitations sent to the partner. This
1264
+ # allows partners to view all pending or past engagement invitations,
1265
+ # helping them track opportunities shared by AWS.
1266
+ #
1267
+ # @option params [required, String] :catalog
1268
+ # Specifies the catalog from which to list the engagement invitations.
1269
+ # Use `AWS` for production invitations or `Sandbox` for testing
1270
+ # environments.
1271
+ #
1272
+ # @option params [Integer] :max_results
1273
+ # Specifies the maximum number of engagement invitations to return in
1274
+ # the response. If more results are available, a pagination token will
1275
+ # be provided.
1276
+ #
1277
+ # @option params [String] :next_token
1278
+ # A pagination token used to retrieve additional pages of results when
1279
+ # the response to a previous request was truncated. Pass this token to
1280
+ # continue listing invitations from where the previous call left off.
1281
+ #
1282
+ # @option params [required, String] :participant_type
1283
+ # Specifies the type of participant for which to list engagement
1284
+ # invitations. Identifies the role of the participant.
1285
+ #
1286
+ # @option params [Array<String>] :payload_type
1287
+ # Defines the type of payload associated with the engagement invitations
1288
+ # to be listed. The attributes in this payload help decide on acceptance
1289
+ # or rejection of the invitation.
1290
+ #
1291
+ # @option params [Types::OpportunityEngagementInvitationSort] :sort
1292
+ # Specifies the sorting options for listing engagement invitations.
1293
+ # Invitations can be sorted by fields such as `InvitationDate` or
1294
+ # `Status` to help partners view results in their preferred order.
1295
+ #
1296
+ # @return [Types::ListEngagementInvitationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1297
+ #
1298
+ # * {Types::ListEngagementInvitationsResponse#engagement_invitation_summaries #engagement_invitation_summaries} => Array&lt;Types::EngagementInvitationSummary&gt;
1299
+ # * {Types::ListEngagementInvitationsResponse#next_token #next_token} => String
1300
+ #
1301
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1302
+ #
1303
+ # @example Request syntax with placeholder values
1304
+ #
1305
+ # resp = client.list_engagement_invitations({
1306
+ # catalog: "CatalogIdentifier", # required
1307
+ # max_results: 1,
1308
+ # next_token: "String",
1309
+ # participant_type: "RECEIVER", # required, accepts RECEIVER
1310
+ # payload_type: ["OpportunityInvitation"], # accepts OpportunityInvitation
1311
+ # sort: {
1312
+ # sort_by: "InvitationDate", # required, accepts InvitationDate
1313
+ # sort_order: "ASCENDING", # required, accepts ASCENDING, DESCENDING
1314
+ # },
1315
+ # })
1316
+ #
1317
+ # @example Response structure
1318
+ #
1319
+ # resp.engagement_invitation_summaries #=> Array
1320
+ # resp.engagement_invitation_summaries[0].arn #=> String
1321
+ # resp.engagement_invitation_summaries[0].catalog #=> String
1322
+ # resp.engagement_invitation_summaries[0].engagement_title #=> String
1323
+ # resp.engagement_invitation_summaries[0].expiration_date #=> Time
1324
+ # resp.engagement_invitation_summaries[0].id #=> String
1325
+ # resp.engagement_invitation_summaries[0].invitation_date #=> Time
1326
+ # resp.engagement_invitation_summaries[0].payload_type #=> String, one of "OpportunityInvitation"
1327
+ # resp.engagement_invitation_summaries[0].receiver.account.alias #=> String
1328
+ # resp.engagement_invitation_summaries[0].receiver.account.aws_account_id #=> String
1329
+ # resp.engagement_invitation_summaries[0].sender_aws_account_id #=> String
1330
+ # resp.engagement_invitation_summaries[0].sender_company_name #=> String
1331
+ # resp.engagement_invitation_summaries[0].status #=> String, one of "ACCEPTED", "PENDING", "REJECTED", "EXPIRED"
1332
+ # resp.next_token #=> String
1333
+ #
1334
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-selling-2022-07-26/ListEngagementInvitations AWS API Documentation
1335
+ #
1336
+ # @overload list_engagement_invitations(params = {})
1337
+ # @param [Hash] params ({})
1338
+ def list_engagement_invitations(params = {}, options = {})
1339
+ req = build_request(:list_engagement_invitations, params)
1340
+ req.send_request(options)
1341
+ end
1342
+
1343
+ # This request accepts a list of filters to use to retrieve a specific
1344
+ # subset of opportunities, as well as sort options. This feature is
1345
+ # available to partners from [Partner Central][1] using the
1346
+ # `ListOpportunities` API action.
1347
+ #
1348
+ # To synchronize your system with Amazon Web Services, only list the
1349
+ # opportunities that were newly created or updated. We recommend you
1350
+ # rely on events emitted by the service into your Amazon Web Services
1351
+ # account’s Amazon EventBridge default event bus, you can also use the
1352
+ # `ListOpportunities` action.
1353
+ #
1354
+ # We recommend the following approach:
1355
+ #
1356
+ # 1. Find the latest `LastModifiedDate` that you stored, and only use
1357
+ # the values that came from Amazon Web Services. Don’t use values
1358
+ # generated by your system.
1359
+ #
1360
+ # 2. When you send a `ListOpportunities` request, submit the date in
1361
+ # ISO 8601 format in the `AfterLastModifiedDate` filter.
1362
+ #
1363
+ # 3. Amazon Web Services only returns opportunities created or updated
1364
+ # on or after that date and time. Use `NextToken` to iterate over
1365
+ # all pages.
1366
+ #
1367
+ #
1368
+ #
1369
+ # [1]: https://partnercentral.awspartner.com/
1370
+ #
1371
+ # @option params [required, String] :catalog
1372
+ # Specifies the catalog associated with the request. This field takes a
1373
+ # string value from a predefined list: `AWS` or `Sandbox`. The catalog
1374
+ # determines which environment the opportunities are listed in. Use
1375
+ # `AWS` for listing real opportunities in the Amazon Web Services
1376
+ # catalog, and `Sandbox` for to test in a secure and isolated
1377
+ # environment.
1378
+ #
1379
+ # @option params [Array<String>] :customer_company_name
1380
+ # Filters the opportunities based on the customer's company name. This
1381
+ # allows partners to search for opportunities associated with a specific
1382
+ # customer by matching the provided company name string.
1383
+ #
1384
+ # @option params [Array<String>] :identifier
1385
+ # Filters the opportunities based on the opportunity identifier. This
1386
+ # allows partners to retrieve specific opportunities by providing their
1387
+ # unique identifiers, ensuring precise results.
1388
+ #
1389
+ # @option params [Types::LastModifiedDate] :last_modified_date
1390
+ # Filters the opportunities based on their last modified date. This
1391
+ # filter helps retrieve opportunities that were updated after the
1392
+ # specified date, allowing partners to track recent changes or updates.
1393
+ #
1394
+ # @option params [Array<String>] :life_cycle_review_status
1395
+ # Filters the opportunities based on their current lifecycle approval
1396
+ # status. Use this filter to retrieve opportunities with statuses such
1397
+ # as `Pending Submission`, `In Review`, `Action Required`, or
1398
+ # `Approved`.
1399
+ #
1400
+ # @option params [Array<String>] :life_cycle_stage
1401
+ # Filters the opportunities based on their lifecycle stage. This filter
1402
+ # allows partners to retrieve opportunities at various stages in the
1403
+ # sales cycle, such as `Qualified`, `Technical Validation`, `Business
1404
+ # Validation`, or `Closed Won`.
1405
+ #
1406
+ # @option params [Integer] :max_results
1407
+ # Specifies the maximum number of results to return in a single call.
1408
+ # This limits the number of opportunities returned in the response to
1409
+ # avoid overloading with too many results at once.
1410
+ #
1411
+ # Default: 20
1412
+ #
1413
+ # @option params [String] :next_token
1414
+ # A pagination token used to retrieve the next set of results in
1415
+ # subsequent calls. This token is included in the response only if there
1416
+ # are additional result pages available.
1417
+ #
1418
+ # @option params [Types::OpportunitySort] :sort
1419
+ # An object that specifies how the response is sorted. The default
1420
+ # `Sort.SortBy` value is `LastModifiedDate`.
1421
+ #
1422
+ # @return [Types::ListOpportunitiesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1423
+ #
1424
+ # * {Types::ListOpportunitiesResponse#next_token #next_token} => String
1425
+ # * {Types::ListOpportunitiesResponse#opportunity_summaries #opportunity_summaries} => Array&lt;Types::OpportunitySummary&gt;
1426
+ #
1427
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1428
+ #
1429
+ # @example Request syntax with placeholder values
1430
+ #
1431
+ # resp = client.list_opportunities({
1432
+ # catalog: "CatalogIdentifier", # required
1433
+ # customer_company_name: ["String"],
1434
+ # identifier: ["OpportunityIdentifier"],
1435
+ # last_modified_date: {
1436
+ # after_last_modified_date: Time.now,
1437
+ # before_last_modified_date: Time.now,
1438
+ # },
1439
+ # life_cycle_review_status: ["Pending Submission"], # accepts Pending Submission, Submitted, In review, Approved, Rejected, Action Required
1440
+ # life_cycle_stage: ["Prospect"], # accepts Prospect, Qualified, Technical Validation, Business Validation, Committed, Launched, Closed Lost
1441
+ # max_results: 1,
1442
+ # next_token: "String",
1443
+ # sort: {
1444
+ # sort_by: "LastModifiedDate", # required, accepts LastModifiedDate, Identifier, CustomerCompanyName
1445
+ # sort_order: "ASCENDING", # required, accepts ASCENDING, DESCENDING
1446
+ # },
1447
+ # })
1448
+ #
1449
+ # @example Response structure
1450
+ #
1451
+ # resp.next_token #=> String
1452
+ # resp.opportunity_summaries #=> Array
1453
+ # resp.opportunity_summaries[0].catalog #=> String
1454
+ # resp.opportunity_summaries[0].created_date #=> Time
1455
+ # resp.opportunity_summaries[0].customer.account.address.city #=> String
1456
+ # resp.opportunity_summaries[0].customer.account.address.country_code #=> String, one of "US", "AF", "AX", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BQ", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "KH", "CM", "CA", "CV", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CK", "CR", "CI", "HR", "CU", "CW", "CY", "CZ", "CD", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MQ", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "AN", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "MP", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "SS", "ES", "LK", "SD", "SR", "SJ", "SZ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "UA", "AE", "GB", "UM", "UY", "UZ", "VU", "VE", "VN", "VG", "VI", "WF", "EH", "YE", "ZM", "ZW"
1457
+ # resp.opportunity_summaries[0].customer.account.address.postal_code #=> String
1458
+ # resp.opportunity_summaries[0].customer.account.address.state_or_region #=> String
1459
+ # resp.opportunity_summaries[0].customer.account.company_name #=> String
1460
+ # resp.opportunity_summaries[0].customer.account.industry #=> String, one of "Aerospace", "Agriculture", "Automotive", "Computers and Electronics", "Consumer Goods", "Education", "Energy - Oil and Gas", "Energy - Power and Utilities", "Financial Services", "Gaming", "Government", "Healthcare", "Hospitality", "Life Sciences", "Manufacturing", "Marketing and Advertising", "Media and Entertainment", "Mining", "Non-Profit Organization", "Professional Services", "Real Estate and Construction", "Retail", "Software and Internet", "Telecommunications", "Transportation and Logistics", "Travel", "Wholesale and Distribution", "Other"
1461
+ # resp.opportunity_summaries[0].customer.account.other_industry #=> String
1462
+ # resp.opportunity_summaries[0].customer.account.website_url #=> String
1463
+ # resp.opportunity_summaries[0].id #=> String
1464
+ # resp.opportunity_summaries[0].last_modified_date #=> Time
1465
+ # resp.opportunity_summaries[0].life_cycle.closed_lost_reason #=> String, one of "Customer Deficiency", "Delay / Cancellation of Project", "Legal / Tax / Regulatory", "Lost to Competitor - Google", "Lost to Competitor - Microsoft", "Lost to Competitor - SoftLayer", "Lost to Competitor - VMWare", "Lost to Competitor - Other", "No Opportunity", "On Premises Deployment", "Partner Gap", "Price", "Security / Compliance", "Technical Limitations", "Customer Experience", "Other", "People/Relationship/Governance", "Product/Technology", "Financial/Commercial"
1466
+ # resp.opportunity_summaries[0].life_cycle.next_steps #=> String
1467
+ # resp.opportunity_summaries[0].life_cycle.review_comments #=> String
1468
+ # resp.opportunity_summaries[0].life_cycle.review_status #=> String, one of "Pending Submission", "Submitted", "In review", "Approved", "Rejected", "Action Required"
1469
+ # resp.opportunity_summaries[0].life_cycle.review_status_reason #=> String
1470
+ # resp.opportunity_summaries[0].life_cycle.stage #=> String, one of "Prospect", "Qualified", "Technical Validation", "Business Validation", "Committed", "Launched", "Closed Lost"
1471
+ # resp.opportunity_summaries[0].life_cycle.target_close_date #=> String
1472
+ # resp.opportunity_summaries[0].opportunity_type #=> String, one of "Net New Business", "Flat Renewal", "Expansion"
1473
+ # resp.opportunity_summaries[0].partner_opportunity_identifier #=> String
1474
+ # resp.opportunity_summaries[0].project.delivery_models #=> Array
1475
+ # resp.opportunity_summaries[0].project.delivery_models[0] #=> String, one of "SaaS or PaaS", "BYOL or AMI", "Managed Services", "Professional Services", "Resell", "Other"
1476
+ # resp.opportunity_summaries[0].project.expected_customer_spend #=> Array
1477
+ # resp.opportunity_summaries[0].project.expected_customer_spend[0].amount #=> String
1478
+ # resp.opportunity_summaries[0].project.expected_customer_spend[0].currency_code #=> String, one of "USD", "EUR", "GBP", "AUD", "CAD", "CNY", "NZD", "INR", "JPY", "CHF", "SEK", "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CDF", "CHE", "CHW", "CLF", "CLP", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "FJD", "FKP", "GEL", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IQD", "IRR", "ISK", "JMD", "JOD", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USN", "UYI", "UYU", "UZS", "VEF", "VND", "VUV", "WST", "XAF", "XCD", "XDR", "XOF", "XPF", "XSU", "XUA", "YER", "ZAR", "ZMW", "ZWL"
1479
+ # resp.opportunity_summaries[0].project.expected_customer_spend[0].frequency #=> String, one of "Monthly"
1480
+ # resp.opportunity_summaries[0].project.expected_customer_spend[0].target_company #=> String
1481
+ #
1482
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-selling-2022-07-26/ListOpportunities AWS API Documentation
1483
+ #
1484
+ # @overload list_opportunities(params = {})
1485
+ # @param [Hash] params ({})
1486
+ def list_opportunities(params = {}, options = {})
1487
+ req = build_request(:list_opportunities, params)
1488
+ req.send_request(options)
1489
+ end
1490
+
1491
+ # Retrieves a list of Partner Solutions that the partner registered on
1492
+ # Partner Central. This API is used to generate a list of solutions that
1493
+ # an end user selects from for association with an opportunity.
1494
+ #
1495
+ # @option params [required, String] :catalog
1496
+ # Specifies the catalog associated with the request. This field takes a
1497
+ # string value from a predefined list: `AWS` or `Sandbox`. The catalog
1498
+ # determines which environment the solutions are listed in. Use `AWS` to
1499
+ # list solutions in the Amazon Web Services catalog, and `Sandbox` to
1500
+ # list solutions in a secure and isolated testing environment.
1501
+ #
1502
+ # @option params [Array<String>] :category
1503
+ # Filters the solutions based on the category to which they belong. This
1504
+ # allows partners to search for solutions within specific categories,
1505
+ # such as `Software`, `Consulting`, or `Managed Services`.
1506
+ #
1507
+ # @option params [Array<String>] :identifier
1508
+ # Filters the solutions based on their unique identifier. Use this
1509
+ # filter to retrieve specific solutions by providing the solution's
1510
+ # identifier for accurate results.
1511
+ #
1512
+ # @option params [Integer] :max_results
1513
+ # The maximum number of results returned by a single call. This value
1514
+ # must be provided in the next call to retrieve the next set of results.
1515
+ #
1516
+ # Default: 20
1517
+ #
1518
+ # @option params [String] :next_token
1519
+ # A pagination token used to retrieve the next set of results in
1520
+ # subsequent calls. This token is included in the response only if there
1521
+ # are additional result pages available.
1522
+ #
1523
+ # @option params [Types::SolutionSort] :sort
1524
+ # Object that configures sorting done on the response. Default
1525
+ # `Sort.SortBy` is `Identifier`.
1526
+ #
1527
+ # @option params [Array<String>] :status
1528
+ # Filters the solutions based on their status. This filter helps
1529
+ # retrieve solutions with statuses such as `Active`, `Inactive`, or
1530
+ # `Pending Approval`, allowing partners to manage their solution
1531
+ # portfolios effectively.
1532
+ #
1533
+ # @return [Types::ListSolutionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1534
+ #
1535
+ # * {Types::ListSolutionsResponse#next_token #next_token} => String
1536
+ # * {Types::ListSolutionsResponse#solution_summaries #solution_summaries} => Array&lt;Types::SolutionBase&gt;
1537
+ #
1538
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1539
+ #
1540
+ # @example Request syntax with placeholder values
1541
+ #
1542
+ # resp = client.list_solutions({
1543
+ # catalog: "CatalogIdentifier", # required
1544
+ # category: ["String"],
1545
+ # identifier: ["SolutionIdentifier"],
1546
+ # max_results: 1,
1547
+ # next_token: "String",
1548
+ # sort: {
1549
+ # sort_by: "Identifier", # required, accepts Identifier, Name, Status, Category, CreatedDate
1550
+ # sort_order: "ASCENDING", # required, accepts ASCENDING, DESCENDING
1551
+ # },
1552
+ # status: ["Active"], # accepts Active, Inactive, Draft
1553
+ # })
1554
+ #
1555
+ # @example Response structure
1556
+ #
1557
+ # resp.next_token #=> String
1558
+ # resp.solution_summaries #=> Array
1559
+ # resp.solution_summaries[0].catalog #=> String
1560
+ # resp.solution_summaries[0].category #=> String
1561
+ # resp.solution_summaries[0].created_date #=> Time
1562
+ # resp.solution_summaries[0].id #=> String
1563
+ # resp.solution_summaries[0].name #=> String
1564
+ # resp.solution_summaries[0].status #=> String, one of "Active", "Inactive", "Draft"
1565
+ #
1566
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-selling-2022-07-26/ListSolutions AWS API Documentation
1567
+ #
1568
+ # @overload list_solutions(params = {})
1569
+ # @param [Hash] params ({})
1570
+ def list_solutions(params = {}, options = {})
1571
+ req = build_request(:list_solutions, params)
1572
+ req.send_request(options)
1573
+ end
1574
+
1575
+ # Use this action to reject an `EngagementInvitation` that has been
1576
+ # shared by AWS. Rejecting the engagement invitation indicates that the
1577
+ # partner does not wish to pursue the opportunity, and all related data
1578
+ # will be inaccessible after the rejection.
1579
+ #
1580
+ # @option params [required, String] :catalog
1581
+ # Specifies the catalog related to the engagement invitation. Accepted
1582
+ # values are `AWS` and `Sandbox`, which determine the environment in
1583
+ # which the opportunity is managed.
1584
+ #
1585
+ # @option params [required, String] :identifier
1586
+ # Specifies the unique identifier of the `EngagementInvitation` to be
1587
+ # rejected. Providing the correct identifier ensures that the intended
1588
+ # invitation is rejected.
1589
+ #
1590
+ # @option params [String] :rejection_reason
1591
+ # Specifies the reason for rejecting the engagement invitation.
1592
+ # Providing a reason helps document the rationale behind the rejection
1593
+ # and assists AWS in tracking patterns or issues. Possible values
1594
+ # include:
1595
+ #
1596
+ # * *Customer problem unclear:* The customer's problem is not clearly
1597
+ # defined.
1598
+ #
1599
+ # * *Next steps unclear:* The next steps required to proceed are not
1600
+ # clear.
1601
+ #
1602
+ # * *Unable to support:* The partner is unable to provide support due to
1603
+ # resource or capability constraints.
1604
+ #
1605
+ # * *Duplicate of Partner Referral:* The opportunity is a duplicate of
1606
+ # an existing referral.
1607
+ #
1608
+ # * *Other:* Any other reason not covered by the specified values.
1609
+ #
1610
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1611
+ #
1612
+ # @example Request syntax with placeholder values
1613
+ #
1614
+ # resp = client.reject_engagement_invitation({
1615
+ # catalog: "CatalogIdentifier", # required
1616
+ # identifier: "EngagementInvitationArnOrIdentifier", # required
1617
+ # rejection_reason: "RejectionReasonString",
1618
+ # })
1619
+ #
1620
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-selling-2022-07-26/RejectEngagementInvitation AWS API Documentation
1621
+ #
1622
+ # @overload reject_engagement_invitation(params = {})
1623
+ # @param [Hash] params ({})
1624
+ def reject_engagement_invitation(params = {}, options = {})
1625
+ req = build_request(:reject_engagement_invitation, params)
1626
+ req.send_request(options)
1627
+ end
1628
+
1629
+ # This action starts the engagement by accepting an
1630
+ # `EngagementInvitation`. The task is asynchronous and involves several
1631
+ # steps: accepting the invitation, creating an opportunity in the
1632
+ # partner’s account from the AWS Opportunity, and copying over key
1633
+ # details for tracking. Once completed, an `Opportunity Created` event
1634
+ # is generated, indicating that the opportunity has been successfully
1635
+ # created in the partner's account.
1636
+ #
1637
+ # @option params [required, String] :catalog
1638
+ # Specifies the catalog related to the task. Use `AWS` for production
1639
+ # engagements and `Sandbox` for testing scenarios.
1640
+ #
1641
+ # @option params [required, String] :client_token
1642
+ # A unique, case-sensitive identifier provided by the client to ensure
1643
+ # the idempotency of the request. Can be a random or meaningful string,
1644
+ # but must be unique for each request.
1645
+ #
1646
+ # **A suitable default value is auto-generated.** You should normally
1647
+ # not need to pass this option.**
1648
+ #
1649
+ # @option params [required, String] :identifier
1650
+ # Specifies the unique identifier of the `EngagementInvitation` to be
1651
+ # accepted. Providing the correct identifier ensures the right
1652
+ # engagement invitation is processed.
1653
+ #
1654
+ # @return [Types::StartEngagementByAcceptingInvitationTaskResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1655
+ #
1656
+ # * {Types::StartEngagementByAcceptingInvitationTaskResponse#engagement_invitation_id #engagement_invitation_id} => String
1657
+ # * {Types::StartEngagementByAcceptingInvitationTaskResponse#message #message} => String
1658
+ # * {Types::StartEngagementByAcceptingInvitationTaskResponse#opportunity_id #opportunity_id} => String
1659
+ # * {Types::StartEngagementByAcceptingInvitationTaskResponse#reason_code #reason_code} => String
1660
+ # * {Types::StartEngagementByAcceptingInvitationTaskResponse#start_time #start_time} => Time
1661
+ # * {Types::StartEngagementByAcceptingInvitationTaskResponse#task_arn #task_arn} => String
1662
+ # * {Types::StartEngagementByAcceptingInvitationTaskResponse#task_id #task_id} => String
1663
+ # * {Types::StartEngagementByAcceptingInvitationTaskResponse#task_status #task_status} => String
1664
+ #
1665
+ # @example Request syntax with placeholder values
1666
+ #
1667
+ # resp = client.start_engagement_by_accepting_invitation_task({
1668
+ # catalog: "CatalogIdentifier", # required
1669
+ # client_token: "StartEngagementByAcceptingInvitationTaskRequestClientTokenString", # required
1670
+ # identifier: "EngagementInvitationArnOrIdentifier", # required
1671
+ # })
1672
+ #
1673
+ # @example Response structure
1674
+ #
1675
+ # resp.engagement_invitation_id #=> String
1676
+ # resp.message #=> String
1677
+ # resp.opportunity_id #=> String
1678
+ # resp.reason_code #=> String, one of "InvitationAccessDenied", "EngagementAccessDenied", "OpportunityAccessDenied", "ResourceSnapshotJobAccessDenied", "EngagementValidationFailed", "OpportunitySubmissionFailed", "EngagementInvitationConflict", "InternalError", "OpportunityValidationFailed", "OpportunityConflict"
1679
+ # resp.start_time #=> Time
1680
+ # resp.task_arn #=> String
1681
+ # resp.task_id #=> String
1682
+ # resp.task_status #=> String, one of "IN_PROGRESS", "COMPLETE", "FAILED"
1683
+ #
1684
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-selling-2022-07-26/StartEngagementByAcceptingInvitationTask AWS API Documentation
1685
+ #
1686
+ # @overload start_engagement_by_accepting_invitation_task(params = {})
1687
+ # @param [Hash] params ({})
1688
+ def start_engagement_by_accepting_invitation_task(params = {}, options = {})
1689
+ req = build_request(:start_engagement_by_accepting_invitation_task, params)
1690
+ req.send_request(options)
1691
+ end
1692
+
1693
+ # This action initiates the engagement process from an existing
1694
+ # opportunity by accepting the engagement invitation and creating a
1695
+ # corresponding opportunity in the partner’s system. Similar to
1696
+ # `StartEngagementByAcceptingInvitationTask`, this action is
1697
+ # asynchronous and performs multiple steps before completion.
1698
+ #
1699
+ # @option params [required, Types::AwsSubmission] :aws_submission
1700
+ # Indicates the level of AWS involvement in the opportunity. This field
1701
+ # helps track AWS's role and participation throughout the engagement,
1702
+ # such as providing technical support, deal assistance, or sales
1703
+ # support.
1704
+ #
1705
+ # @option params [required, String] :catalog
1706
+ # Specifies the catalog in which the engagement is tracked. Acceptable
1707
+ # values include `AWS` for production and `Sandbox` for testing
1708
+ # environments.
1709
+ #
1710
+ # @option params [required, String] :client_token
1711
+ # A unique token provided by the client to ensure the idempotency of the
1712
+ # request. It helps prevent the same task from being performed multiple
1713
+ # times.
1714
+ #
1715
+ # **A suitable default value is auto-generated.** You should normally
1716
+ # not need to pass this option.**
1717
+ #
1718
+ # @option params [required, String] :identifier
1719
+ # The unique identifier of the opportunity from which the engagement
1720
+ # task is to be initiated. This ensures the task is applied to the
1721
+ # correct opportunity.
1722
+ #
1723
+ # @return [Types::StartEngagementFromOpportunityTaskResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1724
+ #
1725
+ # * {Types::StartEngagementFromOpportunityTaskResponse#message #message} => String
1726
+ # * {Types::StartEngagementFromOpportunityTaskResponse#opportunity_id #opportunity_id} => String
1727
+ # * {Types::StartEngagementFromOpportunityTaskResponse#reason_code #reason_code} => String
1728
+ # * {Types::StartEngagementFromOpportunityTaskResponse#start_time #start_time} => Time
1729
+ # * {Types::StartEngagementFromOpportunityTaskResponse#task_arn #task_arn} => String
1730
+ # * {Types::StartEngagementFromOpportunityTaskResponse#task_id #task_id} => String
1731
+ # * {Types::StartEngagementFromOpportunityTaskResponse#task_status #task_status} => String
1732
+ #
1733
+ # @example Request syntax with placeholder values
1734
+ #
1735
+ # resp = client.start_engagement_from_opportunity_task({
1736
+ # aws_submission: { # required
1737
+ # involvement_type: "For Visibility Only", # required, accepts For Visibility Only, Co-Sell
1738
+ # visibility: "Full", # accepts Full, Limited
1739
+ # },
1740
+ # catalog: "CatalogIdentifier", # required
1741
+ # client_token: "StartEngagementFromOpportunityTaskRequestClientTokenString", # required
1742
+ # identifier: "OpportunityIdentifier", # required
1743
+ # })
1744
+ #
1745
+ # @example Response structure
1746
+ #
1747
+ # resp.message #=> String
1748
+ # resp.opportunity_id #=> String
1749
+ # resp.reason_code #=> String, one of "InvitationAccessDenied", "EngagementAccessDenied", "OpportunityAccessDenied", "ResourceSnapshotJobAccessDenied", "EngagementValidationFailed", "OpportunitySubmissionFailed", "EngagementInvitationConflict", "InternalError", "OpportunityValidationFailed", "OpportunityConflict"
1750
+ # resp.start_time #=> Time
1751
+ # resp.task_arn #=> String
1752
+ # resp.task_id #=> String
1753
+ # resp.task_status #=> String, one of "IN_PROGRESS", "COMPLETE", "FAILED"
1754
+ #
1755
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-selling-2022-07-26/StartEngagementFromOpportunityTask AWS API Documentation
1756
+ #
1757
+ # @overload start_engagement_from_opportunity_task(params = {})
1758
+ # @param [Hash] params ({})
1759
+ def start_engagement_from_opportunity_task(params = {}, options = {})
1760
+ req = build_request(:start_engagement_from_opportunity_task, params)
1761
+ req.send_request(options)
1762
+ end
1763
+
1764
+ # Updates the `Opportunity` record identified by a given `Identifier`.
1765
+ # This operation allows you to modify the details of an existing
1766
+ # opportunity to reflect the latest information and progress. Use this
1767
+ # action to keep the opportunity record up-to-date and accurate.
1768
+ #
1769
+ # When you perform updates, include the entire payload with each
1770
+ # request. If any field is omitted, the API assumes that the field is
1771
+ # set to `null`. The best practice is to always perform a
1772
+ # `GetOpportunity` to retrieve the latest values, then send the complete
1773
+ # payload with the updated values to be changed.
1774
+ #
1775
+ # @option params [required, String] :catalog
1776
+ # Specifies the catalog associated with the request. This field takes a
1777
+ # string value from a predefined list: `AWS` or `Sandbox`. The catalog
1778
+ # determines which environment the opportunity is updated in. Use `AWS`
1779
+ # to update real opportunities in the production environment, and
1780
+ # `Sandbox` to test in a secure and isolated environment. When you use
1781
+ # the `Sandbox` catalog, it allows you to simulate and validate your
1782
+ # interactions with Amazon Web Services services without affecting live
1783
+ # data or operations.
1784
+ #
1785
+ # @option params [Types::Customer] :customer
1786
+ # Specifies details of the customer associated with the `Opportunity` .
1787
+ #
1788
+ # @option params [required, String] :identifier
1789
+ # Read-only, system generated `Opportunity` unique identifier.
1790
+ #
1791
+ # @option params [required, Time,DateTime,Date,Integer,String] :last_modified_date
1792
+ # `DateTime` when the opportunity was last modified.
1793
+ #
1794
+ # @option params [Types::LifeCycle] :life_cycle
1795
+ # An object that contains lifecycle details for the `Opportunity`.
1796
+ #
1797
+ # @option params [Types::Marketing] :marketing
1798
+ # An object that contains marketing details for the `Opportunity`.
1799
+ #
1800
+ # @option params [String] :national_security
1801
+ # Specifies if the opportunity is associated with national security
1802
+ # concerns. This flag is only applicable when the industry is
1803
+ # `Government`. For national security-related opportunities, specific
1804
+ # validation and compliance rules may apply, impacting the
1805
+ # opportunity's visibility and processing.
1806
+ #
1807
+ # @option params [String] :opportunity_type
1808
+ # Specifies the opportunity type as a renewal, new, or expansion.
1809
+ #
1810
+ # Opportunity types:
1811
+ #
1812
+ # * New opportunity: Represents a new business opportunity with a
1813
+ # potential customer that's not previously engaged with your
1814
+ # solutions or services.
1815
+ #
1816
+ # * Renewal opportunity: Represents an opportunity to renew an existing
1817
+ # contract or subscription with a current customer, ensuring
1818
+ # continuity of service.
1819
+ #
1820
+ # * Expansion opportunity: Represents an opportunity to expand the scope
1821
+ # of an existing contract or subscription, either by adding new
1822
+ # services or increasing the volume of existing services for a current
1823
+ # customer.
1824
+ #
1825
+ # @option params [String] :partner_opportunity_identifier
1826
+ # Specifies the opportunity's unique identifier in the partner's CRM
1827
+ # system. This value is essential to track and reconcile because it's
1828
+ # included in the outbound payload sent back to the partner.
1829
+ #
1830
+ # @option params [Array<String>] :primary_needs_from_aws
1831
+ # Identifies the type of support the partner needs from Amazon Web
1832
+ # Services.
1833
+ #
1834
+ # Valid values:
1835
+ #
1836
+ # * Co-Sell - Architectural Validation: Confirmation from Amazon Web
1837
+ # Services that the partner's proposed solution architecture is
1838
+ # aligned with Amazon Web Services best practices and poses minimal
1839
+ # architectural risks.
1840
+ #
1841
+ # * Co-Sell - Business Presentation: Request Amazon Web Services
1842
+ # seller's participation in a joint customer presentation.
1843
+ #
1844
+ # * Co-Sell - Competitive Information: Access to Amazon Web Services
1845
+ # competitive resources and support for the partner's proposed
1846
+ # solution.
1847
+ #
1848
+ # * Co-Sell - Pricing Assistance: Connect with an AWS seller for support
1849
+ # situations where a partner may be receiving an upfront discount on a
1850
+ # service (for example: EDP deals).
1851
+ #
1852
+ # * Co-Sell - Technical Consultation: Connection with an Amazon Web
1853
+ # Services Solutions Architect to address the partner's questions
1854
+ # about the proposed solution.
1855
+ #
1856
+ # * Co-Sell - Total Cost of Ownership Evaluation: Assistance with
1857
+ # quoting different cost savings of proposed solutions on Amazon Web
1858
+ # Services versus on-premises or a traditional hosting environment.
1859
+ #
1860
+ # * Co-Sell - Deal Support: Request Amazon Web Services seller's
1861
+ # support to progress the opportunity (for example: joint customer
1862
+ # call, strategic positioning).
1863
+ #
1864
+ # * Co-Sell - Support for Public Tender / RFx: Opportunity related to
1865
+ # the public sector where the partner needs RFx support from Amazon
1866
+ # Web Services.
1867
+ #
1868
+ # * Do Not Need Support from AWS Sales Rep: Indicates that a partner
1869
+ # doesn't need support from an Amazon Web Services Sales
1870
+ # representative. The opportunity is managed solely by the partner.
1871
+ # It's possible to request co-selling support on these opportunities
1872
+ # at any stage during their lifecycle. Also known as,
1873
+ # for-visibility-only (FVO) opportunity.
1874
+ #
1875
+ # @option params [Types::Project] :project
1876
+ # An object that contains project details summary for the `Opportunity`.
1877
+ #
1878
+ # @option params [Types::SoftwareRevenue] :software_revenue
1879
+ # Specifies details of a customer's procurement terms. Required only
1880
+ # for partners in eligible programs.
1881
+ #
1882
+ # @return [Types::UpdateOpportunityResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1883
+ #
1884
+ # * {Types::UpdateOpportunityResponse#id #id} => String
1885
+ # * {Types::UpdateOpportunityResponse#last_modified_date #last_modified_date} => Time
1886
+ #
1887
+ # @example Request syntax with placeholder values
1888
+ #
1889
+ # resp = client.update_opportunity({
1890
+ # catalog: "CatalogIdentifier", # required
1891
+ # customer: {
1892
+ # account: {
1893
+ # address: {
1894
+ # city: "AddressCityString",
1895
+ # country_code: "US", # accepts US, AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CK, CR, CI, HR, CU, CW, CY, CZ, CD, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, AN, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
1896
+ # postal_code: "AddressPostalCodeString",
1897
+ # state_or_region: "AddressPart",
1898
+ # street_address: "AddressStreetAddressString",
1899
+ # },
1900
+ # aws_account_id: "AwsAccount",
1901
+ # company_name: "AccountCompanyNameString", # required
1902
+ # duns: "DunsNumber",
1903
+ # industry: "Aerospace", # accepts Aerospace, Agriculture, Automotive, Computers and Electronics, Consumer Goods, Education, Energy - Oil and Gas, Energy - Power and Utilities, Financial Services, Gaming, Government, Healthcare, Hospitality, Life Sciences, Manufacturing, Marketing and Advertising, Media and Entertainment, Mining, Non-Profit Organization, Professional Services, Real Estate and Construction, Retail, Software and Internet, Telecommunications, Transportation and Logistics, Travel, Wholesale and Distribution, Other
1904
+ # other_industry: "AccountOtherIndustryString",
1905
+ # website_url: "WebsiteUrl",
1906
+ # },
1907
+ # contacts: [
1908
+ # {
1909
+ # business_title: "JobTitle",
1910
+ # email: "Email",
1911
+ # first_name: "ContactFirstNameString",
1912
+ # last_name: "ContactLastNameString",
1913
+ # phone: "PhoneNumber",
1914
+ # },
1915
+ # ],
1916
+ # },
1917
+ # identifier: "OpportunityIdentifier", # required
1918
+ # last_modified_date: Time.now, # required
1919
+ # life_cycle: {
1920
+ # closed_lost_reason: "Customer Deficiency", # accepts Customer Deficiency, Delay / Cancellation of Project, Legal / Tax / Regulatory, Lost to Competitor - Google, Lost to Competitor - Microsoft, Lost to Competitor - SoftLayer, Lost to Competitor - VMWare, Lost to Competitor - Other, No Opportunity, On Premises Deployment, Partner Gap, Price, Security / Compliance, Technical Limitations, Customer Experience, Other, People/Relationship/Governance, Product/Technology, Financial/Commercial
1921
+ # next_steps: "LifeCycleNextStepsString",
1922
+ # next_steps_history: [
1923
+ # {
1924
+ # time: Time.now, # required
1925
+ # value: "String", # required
1926
+ # },
1927
+ # ],
1928
+ # review_comments: "String",
1929
+ # review_status: "Pending Submission", # accepts Pending Submission, Submitted, In review, Approved, Rejected, Action Required
1930
+ # review_status_reason: "String",
1931
+ # stage: "Prospect", # accepts Prospect, Qualified, Technical Validation, Business Validation, Committed, Launched, Closed Lost
1932
+ # target_close_date: "Date",
1933
+ # },
1934
+ # marketing: {
1935
+ # aws_funding_used: "Yes", # accepts Yes, No
1936
+ # campaign_name: "String",
1937
+ # channels: ["AWS Marketing Central"], # accepts AWS Marketing Central, Content Syndication, Display, Email, Live Event, Out Of Home (OOH), Print, Search, Social, Telemarketing, TV, Video, Virtual Event
1938
+ # source: "Marketing Activity", # accepts Marketing Activity, None
1939
+ # use_cases: ["String"],
1940
+ # },
1941
+ # national_security: "Yes", # accepts Yes, No
1942
+ # opportunity_type: "Net New Business", # accepts Net New Business, Flat Renewal, Expansion
1943
+ # partner_opportunity_identifier: "UpdateOpportunityRequestPartnerOpportunityIdentifierString",
1944
+ # primary_needs_from_aws: ["Co-Sell - Architectural Validation"], # accepts Co-Sell - Architectural Validation, Co-Sell - Business Presentation, Co-Sell - Competitive Information, Co-Sell - Pricing Assistance, Co-Sell - Technical Consultation, Co-Sell - Total Cost of Ownership Evaluation, Co-Sell - Deal Support, Co-Sell - Support for Public Tender / RFx
1945
+ # project: {
1946
+ # additional_comments: "ProjectAdditionalCommentsString",
1947
+ # apn_programs: ["String"],
1948
+ # competitor_name: "Oracle Cloud", # accepts Oracle Cloud, On-Prem, Co-location, Akamai, AliCloud, Google Cloud Platform, IBM Softlayer, Microsoft Azure, Other- Cost Optimization, No Competition, *Other
1949
+ # customer_business_problem: "ProjectCustomerBusinessProblemString",
1950
+ # customer_use_case: "String",
1951
+ # delivery_models: ["SaaS or PaaS"], # accepts SaaS or PaaS, BYOL or AMI, Managed Services, Professional Services, Resell, Other
1952
+ # expected_customer_spend: [
1953
+ # {
1954
+ # amount: "ExpectedCustomerSpendAmountString", # required
1955
+ # currency_code: "USD", # required, accepts USD, EUR, GBP, AUD, CAD, CNY, NZD, INR, JPY, CHF, SEK, AED, AFN, ALL, AMD, ANG, AOA, ARS, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CDF, CHE, CHW, CLF, CLP, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, FJD, FKP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, IQD, IRR, ISK, JMD, JOD, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SGD, SHP, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USN, UYI, UYU, UZS, VEF, VND, VUV, WST, XAF, XCD, XDR, XOF, XPF, XSU, XUA, YER, ZAR, ZMW, ZWL
1956
+ # frequency: "Monthly", # required, accepts Monthly
1957
+ # target_company: "ExpectedCustomerSpendTargetCompanyString", # required
1958
+ # },
1959
+ # ],
1960
+ # other_competitor_names: "ProjectOtherCompetitorNamesString",
1961
+ # other_solution_description: "ProjectOtherSolutionDescriptionString",
1962
+ # related_opportunity_identifier: "OpportunityIdentifier",
1963
+ # sales_activities: ["Initialized discussions with customer"], # accepts Initialized discussions with customer, Customer has shown interest in solution, Conducted POC / Demo, In evaluation / planning stage, Agreed on solution to Business Problem, Completed Action Plan, Finalized Deployment Need, SOW Signed
1964
+ # title: "ProjectTitleString",
1965
+ # },
1966
+ # software_revenue: {
1967
+ # delivery_model: "Contract", # accepts Contract, Pay-as-you-go, Subscription
1968
+ # effective_date: "Date",
1969
+ # expiration_date: "Date",
1970
+ # value: {
1971
+ # amount: "MonetaryValueAmountString", # required
1972
+ # currency_code: "USD", # required, accepts USD, EUR, GBP, AUD, CAD, CNY, NZD, INR, JPY, CHF, SEK, AED, AFN, ALL, AMD, ANG, AOA, ARS, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CDF, CHE, CHW, CLF, CLP, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, FJD, FKP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, IQD, IRR, ISK, JMD, JOD, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SGD, SHP, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USN, UYI, UYU, UZS, VEF, VND, VUV, WST, XAF, XCD, XDR, XOF, XPF, XSU, XUA, YER, ZAR, ZMW, ZWL
1973
+ # },
1974
+ # },
1975
+ # })
1976
+ #
1977
+ # @example Response structure
1978
+ #
1979
+ # resp.id #=> String
1980
+ # resp.last_modified_date #=> Time
1981
+ #
1982
+ # @see http://docs.aws.amazon.com/goto/WebAPI/partnercentral-selling-2022-07-26/UpdateOpportunity AWS API Documentation
1983
+ #
1984
+ # @overload update_opportunity(params = {})
1985
+ # @param [Hash] params ({})
1986
+ def update_opportunity(params = {}, options = {})
1987
+ req = build_request(:update_opportunity, params)
1988
+ req.send_request(options)
1989
+ end
1990
+
1991
+ # @!endgroup
1992
+
1993
+ # @param params ({})
1994
+ # @api private
1995
+ def build_request(operation_name, params = {})
1996
+ handlers = @handlers.for(operation_name)
1997
+ tracer = config.telemetry_provider.tracer_provider.tracer(
1998
+ Aws::Telemetry.module_to_tracer_name('Aws::PartnerCentralSelling')
1999
+ )
2000
+ context = Seahorse::Client::RequestContext.new(
2001
+ operation_name: operation_name,
2002
+ operation: config.api.operation(operation_name),
2003
+ client: self,
2004
+ params: params,
2005
+ config: config,
2006
+ tracer: tracer
2007
+ )
2008
+ context[:gem_name] = 'aws-sdk-partnercentralselling'
2009
+ context[:gem_version] = '1.0.0'
2010
+ Seahorse::Client::Request.new(handlers, context)
2011
+ end
2012
+
2013
+ # @api private
2014
+ # @deprecated
2015
+ def waiter_names
2016
+ []
2017
+ end
2018
+
2019
+ class << self
2020
+
2021
+ # @api private
2022
+ attr_reader :identifier
2023
+
2024
+ # @api private
2025
+ def errors_module
2026
+ Errors
2027
+ end
2028
+
2029
+ end
2030
+ end
2031
+ end