1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package servicecatalog
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12)
13
14const opAcceptPortfolioShare = "AcceptPortfolioShare"
15
16// AcceptPortfolioShareRequest generates a "aws/request.Request" representing the
17// client's request for the AcceptPortfolioShare operation. The "output" return
18// value will be populated with the request's response once the request completes
19// successfuly.
20//
21// Use "Send" method on the returned Request to send the API call to the service.
22// the "output" return value is not valid until after Send returns without error.
23//
24// See AcceptPortfolioShare for more information on using the AcceptPortfolioShare
25// API call, and error handling.
26//
27// This method is useful when you want to inject custom logic or configuration
28// into the SDK's request lifecycle. Such as custom headers, or retry logic.
29//
30//
31//    // Example sending a request using the AcceptPortfolioShareRequest method.
32//    req, resp := client.AcceptPortfolioShareRequest(params)
33//
34//    err := req.Send()
35//    if err == nil { // resp is now filled
36//        fmt.Println(resp)
37//    }
38//
39// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AcceptPortfolioShare
40func (c *ServiceCatalog) AcceptPortfolioShareRequest(input *AcceptPortfolioShareInput) (req *request.Request, output *AcceptPortfolioShareOutput) {
41	op := &request.Operation{
42		Name:       opAcceptPortfolioShare,
43		HTTPMethod: "POST",
44		HTTPPath:   "/",
45	}
46
47	if input == nil {
48		input = &AcceptPortfolioShareInput{}
49	}
50
51	output = &AcceptPortfolioShareOutput{}
52	req = c.newRequest(op, input, output)
53	return
54}
55
56// AcceptPortfolioShare API operation for AWS Service Catalog.
57//
58// Accepts an offer to share the specified portfolio.
59//
60// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
61// with awserr.Error's Code and Message methods to get detailed information about
62// the error.
63//
64// See the AWS API reference guide for AWS Service Catalog's
65// API operation AcceptPortfolioShare for usage and error information.
66//
67// Returned Error Codes:
68//   * ErrCodeInvalidParametersException "InvalidParametersException"
69//   One or more parameters provided to the operation are not valid.
70//
71//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
72//   The specified resource was not found.
73//
74//   * ErrCodeLimitExceededException "LimitExceededException"
75//   The current limits of the service would have been exceeded by this operation.
76//   Decrease your resource use or increase your service limits and retry the
77//   operation.
78//
79// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AcceptPortfolioShare
80func (c *ServiceCatalog) AcceptPortfolioShare(input *AcceptPortfolioShareInput) (*AcceptPortfolioShareOutput, error) {
81	req, out := c.AcceptPortfolioShareRequest(input)
82	return out, req.Send()
83}
84
85// AcceptPortfolioShareWithContext is the same as AcceptPortfolioShare with the addition of
86// the ability to pass a context and additional request options.
87//
88// See AcceptPortfolioShare for details on how to use this API operation.
89//
90// The context must be non-nil and will be used for request cancellation. If
91// the context is nil a panic will occur. In the future the SDK may create
92// sub-contexts for http.Requests. See https://golang.org/pkg/context/
93// for more information on using Contexts.
94func (c *ServiceCatalog) AcceptPortfolioShareWithContext(ctx aws.Context, input *AcceptPortfolioShareInput, opts ...request.Option) (*AcceptPortfolioShareOutput, error) {
95	req, out := c.AcceptPortfolioShareRequest(input)
96	req.SetContext(ctx)
97	req.ApplyOptions(opts...)
98	return out, req.Send()
99}
100
101const opAssociatePrincipalWithPortfolio = "AssociatePrincipalWithPortfolio"
102
103// AssociatePrincipalWithPortfolioRequest generates a "aws/request.Request" representing the
104// client's request for the AssociatePrincipalWithPortfolio operation. The "output" return
105// value will be populated with the request's response once the request completes
106// successfuly.
107//
108// Use "Send" method on the returned Request to send the API call to the service.
109// the "output" return value is not valid until after Send returns without error.
110//
111// See AssociatePrincipalWithPortfolio for more information on using the AssociatePrincipalWithPortfolio
112// API call, and error handling.
113//
114// This method is useful when you want to inject custom logic or configuration
115// into the SDK's request lifecycle. Such as custom headers, or retry logic.
116//
117//
118//    // Example sending a request using the AssociatePrincipalWithPortfolioRequest method.
119//    req, resp := client.AssociatePrincipalWithPortfolioRequest(params)
120//
121//    err := req.Send()
122//    if err == nil { // resp is now filled
123//        fmt.Println(resp)
124//    }
125//
126// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AssociatePrincipalWithPortfolio
127func (c *ServiceCatalog) AssociatePrincipalWithPortfolioRequest(input *AssociatePrincipalWithPortfolioInput) (req *request.Request, output *AssociatePrincipalWithPortfolioOutput) {
128	op := &request.Operation{
129		Name:       opAssociatePrincipalWithPortfolio,
130		HTTPMethod: "POST",
131		HTTPPath:   "/",
132	}
133
134	if input == nil {
135		input = &AssociatePrincipalWithPortfolioInput{}
136	}
137
138	output = &AssociatePrincipalWithPortfolioOutput{}
139	req = c.newRequest(op, input, output)
140	return
141}
142
143// AssociatePrincipalWithPortfolio API operation for AWS Service Catalog.
144//
145// Associates the specified principal ARN with the specified portfolio.
146//
147// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
148// with awserr.Error's Code and Message methods to get detailed information about
149// the error.
150//
151// See the AWS API reference guide for AWS Service Catalog's
152// API operation AssociatePrincipalWithPortfolio for usage and error information.
153//
154// Returned Error Codes:
155//   * ErrCodeInvalidParametersException "InvalidParametersException"
156//   One or more parameters provided to the operation are not valid.
157//
158//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
159//   The specified resource was not found.
160//
161//   * ErrCodeLimitExceededException "LimitExceededException"
162//   The current limits of the service would have been exceeded by this operation.
163//   Decrease your resource use or increase your service limits and retry the
164//   operation.
165//
166// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AssociatePrincipalWithPortfolio
167func (c *ServiceCatalog) AssociatePrincipalWithPortfolio(input *AssociatePrincipalWithPortfolioInput) (*AssociatePrincipalWithPortfolioOutput, error) {
168	req, out := c.AssociatePrincipalWithPortfolioRequest(input)
169	return out, req.Send()
170}
171
172// AssociatePrincipalWithPortfolioWithContext is the same as AssociatePrincipalWithPortfolio with the addition of
173// the ability to pass a context and additional request options.
174//
175// See AssociatePrincipalWithPortfolio for details on how to use this API operation.
176//
177// The context must be non-nil and will be used for request cancellation. If
178// the context is nil a panic will occur. In the future the SDK may create
179// sub-contexts for http.Requests. See https://golang.org/pkg/context/
180// for more information on using Contexts.
181func (c *ServiceCatalog) AssociatePrincipalWithPortfolioWithContext(ctx aws.Context, input *AssociatePrincipalWithPortfolioInput, opts ...request.Option) (*AssociatePrincipalWithPortfolioOutput, error) {
182	req, out := c.AssociatePrincipalWithPortfolioRequest(input)
183	req.SetContext(ctx)
184	req.ApplyOptions(opts...)
185	return out, req.Send()
186}
187
188const opAssociateProductWithPortfolio = "AssociateProductWithPortfolio"
189
190// AssociateProductWithPortfolioRequest generates a "aws/request.Request" representing the
191// client's request for the AssociateProductWithPortfolio operation. The "output" return
192// value will be populated with the request's response once the request completes
193// successfuly.
194//
195// Use "Send" method on the returned Request to send the API call to the service.
196// the "output" return value is not valid until after Send returns without error.
197//
198// See AssociateProductWithPortfolio for more information on using the AssociateProductWithPortfolio
199// API call, and error handling.
200//
201// This method is useful when you want to inject custom logic or configuration
202// into the SDK's request lifecycle. Such as custom headers, or retry logic.
203//
204//
205//    // Example sending a request using the AssociateProductWithPortfolioRequest method.
206//    req, resp := client.AssociateProductWithPortfolioRequest(params)
207//
208//    err := req.Send()
209//    if err == nil { // resp is now filled
210//        fmt.Println(resp)
211//    }
212//
213// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AssociateProductWithPortfolio
214func (c *ServiceCatalog) AssociateProductWithPortfolioRequest(input *AssociateProductWithPortfolioInput) (req *request.Request, output *AssociateProductWithPortfolioOutput) {
215	op := &request.Operation{
216		Name:       opAssociateProductWithPortfolio,
217		HTTPMethod: "POST",
218		HTTPPath:   "/",
219	}
220
221	if input == nil {
222		input = &AssociateProductWithPortfolioInput{}
223	}
224
225	output = &AssociateProductWithPortfolioOutput{}
226	req = c.newRequest(op, input, output)
227	return
228}
229
230// AssociateProductWithPortfolio API operation for AWS Service Catalog.
231//
232// Associates the specified product with the specified portfolio.
233//
234// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
235// with awserr.Error's Code and Message methods to get detailed information about
236// the error.
237//
238// See the AWS API reference guide for AWS Service Catalog's
239// API operation AssociateProductWithPortfolio for usage and error information.
240//
241// Returned Error Codes:
242//   * ErrCodeInvalidParametersException "InvalidParametersException"
243//   One or more parameters provided to the operation are not valid.
244//
245//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
246//   The specified resource was not found.
247//
248//   * ErrCodeLimitExceededException "LimitExceededException"
249//   The current limits of the service would have been exceeded by this operation.
250//   Decrease your resource use or increase your service limits and retry the
251//   operation.
252//
253// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AssociateProductWithPortfolio
254func (c *ServiceCatalog) AssociateProductWithPortfolio(input *AssociateProductWithPortfolioInput) (*AssociateProductWithPortfolioOutput, error) {
255	req, out := c.AssociateProductWithPortfolioRequest(input)
256	return out, req.Send()
257}
258
259// AssociateProductWithPortfolioWithContext is the same as AssociateProductWithPortfolio with the addition of
260// the ability to pass a context and additional request options.
261//
262// See AssociateProductWithPortfolio for details on how to use this API operation.
263//
264// The context must be non-nil and will be used for request cancellation. If
265// the context is nil a panic will occur. In the future the SDK may create
266// sub-contexts for http.Requests. See https://golang.org/pkg/context/
267// for more information on using Contexts.
268func (c *ServiceCatalog) AssociateProductWithPortfolioWithContext(ctx aws.Context, input *AssociateProductWithPortfolioInput, opts ...request.Option) (*AssociateProductWithPortfolioOutput, error) {
269	req, out := c.AssociateProductWithPortfolioRequest(input)
270	req.SetContext(ctx)
271	req.ApplyOptions(opts...)
272	return out, req.Send()
273}
274
275const opAssociateTagOptionWithResource = "AssociateTagOptionWithResource"
276
277// AssociateTagOptionWithResourceRequest generates a "aws/request.Request" representing the
278// client's request for the AssociateTagOptionWithResource operation. The "output" return
279// value will be populated with the request's response once the request completes
280// successfuly.
281//
282// Use "Send" method on the returned Request to send the API call to the service.
283// the "output" return value is not valid until after Send returns without error.
284//
285// See AssociateTagOptionWithResource for more information on using the AssociateTagOptionWithResource
286// API call, and error handling.
287//
288// This method is useful when you want to inject custom logic or configuration
289// into the SDK's request lifecycle. Such as custom headers, or retry logic.
290//
291//
292//    // Example sending a request using the AssociateTagOptionWithResourceRequest method.
293//    req, resp := client.AssociateTagOptionWithResourceRequest(params)
294//
295//    err := req.Send()
296//    if err == nil { // resp is now filled
297//        fmt.Println(resp)
298//    }
299//
300// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AssociateTagOptionWithResource
301func (c *ServiceCatalog) AssociateTagOptionWithResourceRequest(input *AssociateTagOptionWithResourceInput) (req *request.Request, output *AssociateTagOptionWithResourceOutput) {
302	op := &request.Operation{
303		Name:       opAssociateTagOptionWithResource,
304		HTTPMethod: "POST",
305		HTTPPath:   "/",
306	}
307
308	if input == nil {
309		input = &AssociateTagOptionWithResourceInput{}
310	}
311
312	output = &AssociateTagOptionWithResourceOutput{}
313	req = c.newRequest(op, input, output)
314	return
315}
316
317// AssociateTagOptionWithResource API operation for AWS Service Catalog.
318//
319// Associate the specified TagOption with the specified portfolio or product.
320//
321// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
322// with awserr.Error's Code and Message methods to get detailed information about
323// the error.
324//
325// See the AWS API reference guide for AWS Service Catalog's
326// API operation AssociateTagOptionWithResource for usage and error information.
327//
328// Returned Error Codes:
329//   * ErrCodeTagOptionNotMigratedException "TagOptionNotMigratedException"
330//   An operation requiring TagOptions failed because the TagOptions migration
331//   process has not been performed for this account. Please use the AWS console
332//   to perform the migration process before retrying the operation.
333//
334//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
335//   The specified resource was not found.
336//
337//   * ErrCodeInvalidParametersException "InvalidParametersException"
338//   One or more parameters provided to the operation are not valid.
339//
340//   * ErrCodeLimitExceededException "LimitExceededException"
341//   The current limits of the service would have been exceeded by this operation.
342//   Decrease your resource use or increase your service limits and retry the
343//   operation.
344//
345//   * ErrCodeDuplicateResourceException "DuplicateResourceException"
346//   The specified resource is a duplicate.
347//
348//   * ErrCodeInvalidStateException "InvalidStateException"
349//   An attempt was made to modify a resource that is in a state that is not valid.
350//   Check your resources to ensure that they are in valid states before retrying
351//   the operation.
352//
353// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AssociateTagOptionWithResource
354func (c *ServiceCatalog) AssociateTagOptionWithResource(input *AssociateTagOptionWithResourceInput) (*AssociateTagOptionWithResourceOutput, error) {
355	req, out := c.AssociateTagOptionWithResourceRequest(input)
356	return out, req.Send()
357}
358
359// AssociateTagOptionWithResourceWithContext is the same as AssociateTagOptionWithResource with the addition of
360// the ability to pass a context and additional request options.
361//
362// See AssociateTagOptionWithResource for details on how to use this API operation.
363//
364// The context must be non-nil and will be used for request cancellation. If
365// the context is nil a panic will occur. In the future the SDK may create
366// sub-contexts for http.Requests. See https://golang.org/pkg/context/
367// for more information on using Contexts.
368func (c *ServiceCatalog) AssociateTagOptionWithResourceWithContext(ctx aws.Context, input *AssociateTagOptionWithResourceInput, opts ...request.Option) (*AssociateTagOptionWithResourceOutput, error) {
369	req, out := c.AssociateTagOptionWithResourceRequest(input)
370	req.SetContext(ctx)
371	req.ApplyOptions(opts...)
372	return out, req.Send()
373}
374
375const opCopyProduct = "CopyProduct"
376
377// CopyProductRequest generates a "aws/request.Request" representing the
378// client's request for the CopyProduct operation. The "output" return
379// value will be populated with the request's response once the request completes
380// successfuly.
381//
382// Use "Send" method on the returned Request to send the API call to the service.
383// the "output" return value is not valid until after Send returns without error.
384//
385// See CopyProduct for more information on using the CopyProduct
386// API call, and error handling.
387//
388// This method is useful when you want to inject custom logic or configuration
389// into the SDK's request lifecycle. Such as custom headers, or retry logic.
390//
391//
392//    // Example sending a request using the CopyProductRequest method.
393//    req, resp := client.CopyProductRequest(params)
394//
395//    err := req.Send()
396//    if err == nil { // resp is now filled
397//        fmt.Println(resp)
398//    }
399//
400// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CopyProduct
401func (c *ServiceCatalog) CopyProductRequest(input *CopyProductInput) (req *request.Request, output *CopyProductOutput) {
402	op := &request.Operation{
403		Name:       opCopyProduct,
404		HTTPMethod: "POST",
405		HTTPPath:   "/",
406	}
407
408	if input == nil {
409		input = &CopyProductInput{}
410	}
411
412	output = &CopyProductOutput{}
413	req = c.newRequest(op, input, output)
414	return
415}
416
417// CopyProduct API operation for AWS Service Catalog.
418//
419// Copies the specified source product to the specified target product or a
420// new product.
421//
422// You can copy a product to the same account or another account. You can copy
423// a product to the same region or another region.
424//
425// This operation is performed asynchronously. To track the progress of the
426// operation, use DescribeCopyProductStatus.
427//
428// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
429// with awserr.Error's Code and Message methods to get detailed information about
430// the error.
431//
432// See the AWS API reference guide for AWS Service Catalog's
433// API operation CopyProduct for usage and error information.
434//
435// Returned Error Codes:
436//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
437//   The specified resource was not found.
438//
439//   * ErrCodeInvalidParametersException "InvalidParametersException"
440//   One or more parameters provided to the operation are not valid.
441//
442// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CopyProduct
443func (c *ServiceCatalog) CopyProduct(input *CopyProductInput) (*CopyProductOutput, error) {
444	req, out := c.CopyProductRequest(input)
445	return out, req.Send()
446}
447
448// CopyProductWithContext is the same as CopyProduct with the addition of
449// the ability to pass a context and additional request options.
450//
451// See CopyProduct for details on how to use this API operation.
452//
453// The context must be non-nil and will be used for request cancellation. If
454// the context is nil a panic will occur. In the future the SDK may create
455// sub-contexts for http.Requests. See https://golang.org/pkg/context/
456// for more information on using Contexts.
457func (c *ServiceCatalog) CopyProductWithContext(ctx aws.Context, input *CopyProductInput, opts ...request.Option) (*CopyProductOutput, error) {
458	req, out := c.CopyProductRequest(input)
459	req.SetContext(ctx)
460	req.ApplyOptions(opts...)
461	return out, req.Send()
462}
463
464const opCreateConstraint = "CreateConstraint"
465
466// CreateConstraintRequest generates a "aws/request.Request" representing the
467// client's request for the CreateConstraint operation. The "output" return
468// value will be populated with the request's response once the request completes
469// successfuly.
470//
471// Use "Send" method on the returned Request to send the API call to the service.
472// the "output" return value is not valid until after Send returns without error.
473//
474// See CreateConstraint for more information on using the CreateConstraint
475// API call, and error handling.
476//
477// This method is useful when you want to inject custom logic or configuration
478// into the SDK's request lifecycle. Such as custom headers, or retry logic.
479//
480//
481//    // Example sending a request using the CreateConstraintRequest method.
482//    req, resp := client.CreateConstraintRequest(params)
483//
484//    err := req.Send()
485//    if err == nil { // resp is now filled
486//        fmt.Println(resp)
487//    }
488//
489// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateConstraint
490func (c *ServiceCatalog) CreateConstraintRequest(input *CreateConstraintInput) (req *request.Request, output *CreateConstraintOutput) {
491	op := &request.Operation{
492		Name:       opCreateConstraint,
493		HTTPMethod: "POST",
494		HTTPPath:   "/",
495	}
496
497	if input == nil {
498		input = &CreateConstraintInput{}
499	}
500
501	output = &CreateConstraintOutput{}
502	req = c.newRequest(op, input, output)
503	return
504}
505
506// CreateConstraint API operation for AWS Service Catalog.
507//
508// Creates a constraint.
509//
510// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
511// with awserr.Error's Code and Message methods to get detailed information about
512// the error.
513//
514// See the AWS API reference guide for AWS Service Catalog's
515// API operation CreateConstraint for usage and error information.
516//
517// Returned Error Codes:
518//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
519//   The specified resource was not found.
520//
521//   * ErrCodeInvalidParametersException "InvalidParametersException"
522//   One or more parameters provided to the operation are not valid.
523//
524//   * ErrCodeLimitExceededException "LimitExceededException"
525//   The current limits of the service would have been exceeded by this operation.
526//   Decrease your resource use or increase your service limits and retry the
527//   operation.
528//
529//   * ErrCodeDuplicateResourceException "DuplicateResourceException"
530//   The specified resource is a duplicate.
531//
532// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateConstraint
533func (c *ServiceCatalog) CreateConstraint(input *CreateConstraintInput) (*CreateConstraintOutput, error) {
534	req, out := c.CreateConstraintRequest(input)
535	return out, req.Send()
536}
537
538// CreateConstraintWithContext is the same as CreateConstraint with the addition of
539// the ability to pass a context and additional request options.
540//
541// See CreateConstraint for details on how to use this API operation.
542//
543// The context must be non-nil and will be used for request cancellation. If
544// the context is nil a panic will occur. In the future the SDK may create
545// sub-contexts for http.Requests. See https://golang.org/pkg/context/
546// for more information on using Contexts.
547func (c *ServiceCatalog) CreateConstraintWithContext(ctx aws.Context, input *CreateConstraintInput, opts ...request.Option) (*CreateConstraintOutput, error) {
548	req, out := c.CreateConstraintRequest(input)
549	req.SetContext(ctx)
550	req.ApplyOptions(opts...)
551	return out, req.Send()
552}
553
554const opCreatePortfolio = "CreatePortfolio"
555
556// CreatePortfolioRequest generates a "aws/request.Request" representing the
557// client's request for the CreatePortfolio operation. The "output" return
558// value will be populated with the request's response once the request completes
559// successfuly.
560//
561// Use "Send" method on the returned Request to send the API call to the service.
562// the "output" return value is not valid until after Send returns without error.
563//
564// See CreatePortfolio for more information on using the CreatePortfolio
565// API call, and error handling.
566//
567// This method is useful when you want to inject custom logic or configuration
568// into the SDK's request lifecycle. Such as custom headers, or retry logic.
569//
570//
571//    // Example sending a request using the CreatePortfolioRequest method.
572//    req, resp := client.CreatePortfolioRequest(params)
573//
574//    err := req.Send()
575//    if err == nil { // resp is now filled
576//        fmt.Println(resp)
577//    }
578//
579// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreatePortfolio
580func (c *ServiceCatalog) CreatePortfolioRequest(input *CreatePortfolioInput) (req *request.Request, output *CreatePortfolioOutput) {
581	op := &request.Operation{
582		Name:       opCreatePortfolio,
583		HTTPMethod: "POST",
584		HTTPPath:   "/",
585	}
586
587	if input == nil {
588		input = &CreatePortfolioInput{}
589	}
590
591	output = &CreatePortfolioOutput{}
592	req = c.newRequest(op, input, output)
593	return
594}
595
596// CreatePortfolio API operation for AWS Service Catalog.
597//
598// Creates a portfolio.
599//
600// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
601// with awserr.Error's Code and Message methods to get detailed information about
602// the error.
603//
604// See the AWS API reference guide for AWS Service Catalog's
605// API operation CreatePortfolio for usage and error information.
606//
607// Returned Error Codes:
608//   * ErrCodeInvalidParametersException "InvalidParametersException"
609//   One or more parameters provided to the operation are not valid.
610//
611//   * ErrCodeLimitExceededException "LimitExceededException"
612//   The current limits of the service would have been exceeded by this operation.
613//   Decrease your resource use or increase your service limits and retry the
614//   operation.
615//
616//   * ErrCodeTagOptionNotMigratedException "TagOptionNotMigratedException"
617//   An operation requiring TagOptions failed because the TagOptions migration
618//   process has not been performed for this account. Please use the AWS console
619//   to perform the migration process before retrying the operation.
620//
621// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreatePortfolio
622func (c *ServiceCatalog) CreatePortfolio(input *CreatePortfolioInput) (*CreatePortfolioOutput, error) {
623	req, out := c.CreatePortfolioRequest(input)
624	return out, req.Send()
625}
626
627// CreatePortfolioWithContext is the same as CreatePortfolio with the addition of
628// the ability to pass a context and additional request options.
629//
630// See CreatePortfolio for details on how to use this API operation.
631//
632// The context must be non-nil and will be used for request cancellation. If
633// the context is nil a panic will occur. In the future the SDK may create
634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
635// for more information on using Contexts.
636func (c *ServiceCatalog) CreatePortfolioWithContext(ctx aws.Context, input *CreatePortfolioInput, opts ...request.Option) (*CreatePortfolioOutput, error) {
637	req, out := c.CreatePortfolioRequest(input)
638	req.SetContext(ctx)
639	req.ApplyOptions(opts...)
640	return out, req.Send()
641}
642
643const opCreatePortfolioShare = "CreatePortfolioShare"
644
645// CreatePortfolioShareRequest generates a "aws/request.Request" representing the
646// client's request for the CreatePortfolioShare operation. The "output" return
647// value will be populated with the request's response once the request completes
648// successfuly.
649//
650// Use "Send" method on the returned Request to send the API call to the service.
651// the "output" return value is not valid until after Send returns without error.
652//
653// See CreatePortfolioShare for more information on using the CreatePortfolioShare
654// API call, and error handling.
655//
656// This method is useful when you want to inject custom logic or configuration
657// into the SDK's request lifecycle. Such as custom headers, or retry logic.
658//
659//
660//    // Example sending a request using the CreatePortfolioShareRequest method.
661//    req, resp := client.CreatePortfolioShareRequest(params)
662//
663//    err := req.Send()
664//    if err == nil { // resp is now filled
665//        fmt.Println(resp)
666//    }
667//
668// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreatePortfolioShare
669func (c *ServiceCatalog) CreatePortfolioShareRequest(input *CreatePortfolioShareInput) (req *request.Request, output *CreatePortfolioShareOutput) {
670	op := &request.Operation{
671		Name:       opCreatePortfolioShare,
672		HTTPMethod: "POST",
673		HTTPPath:   "/",
674	}
675
676	if input == nil {
677		input = &CreatePortfolioShareInput{}
678	}
679
680	output = &CreatePortfolioShareOutput{}
681	req = c.newRequest(op, input, output)
682	return
683}
684
685// CreatePortfolioShare API operation for AWS Service Catalog.
686//
687// Shares the specified portfolio with the specified account.
688//
689// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
690// with awserr.Error's Code and Message methods to get detailed information about
691// the error.
692//
693// See the AWS API reference guide for AWS Service Catalog's
694// API operation CreatePortfolioShare for usage and error information.
695//
696// Returned Error Codes:
697//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
698//   The specified resource was not found.
699//
700//   * ErrCodeLimitExceededException "LimitExceededException"
701//   The current limits of the service would have been exceeded by this operation.
702//   Decrease your resource use or increase your service limits and retry the
703//   operation.
704//
705//   * ErrCodeInvalidParametersException "InvalidParametersException"
706//   One or more parameters provided to the operation are not valid.
707//
708// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreatePortfolioShare
709func (c *ServiceCatalog) CreatePortfolioShare(input *CreatePortfolioShareInput) (*CreatePortfolioShareOutput, error) {
710	req, out := c.CreatePortfolioShareRequest(input)
711	return out, req.Send()
712}
713
714// CreatePortfolioShareWithContext is the same as CreatePortfolioShare with the addition of
715// the ability to pass a context and additional request options.
716//
717// See CreatePortfolioShare for details on how to use this API operation.
718//
719// The context must be non-nil and will be used for request cancellation. If
720// the context is nil a panic will occur. In the future the SDK may create
721// sub-contexts for http.Requests. See https://golang.org/pkg/context/
722// for more information on using Contexts.
723func (c *ServiceCatalog) CreatePortfolioShareWithContext(ctx aws.Context, input *CreatePortfolioShareInput, opts ...request.Option) (*CreatePortfolioShareOutput, error) {
724	req, out := c.CreatePortfolioShareRequest(input)
725	req.SetContext(ctx)
726	req.ApplyOptions(opts...)
727	return out, req.Send()
728}
729
730const opCreateProduct = "CreateProduct"
731
732// CreateProductRequest generates a "aws/request.Request" representing the
733// client's request for the CreateProduct operation. The "output" return
734// value will be populated with the request's response once the request completes
735// successfuly.
736//
737// Use "Send" method on the returned Request to send the API call to the service.
738// the "output" return value is not valid until after Send returns without error.
739//
740// See CreateProduct for more information on using the CreateProduct
741// API call, and error handling.
742//
743// This method is useful when you want to inject custom logic or configuration
744// into the SDK's request lifecycle. Such as custom headers, or retry logic.
745//
746//
747//    // Example sending a request using the CreateProductRequest method.
748//    req, resp := client.CreateProductRequest(params)
749//
750//    err := req.Send()
751//    if err == nil { // resp is now filled
752//        fmt.Println(resp)
753//    }
754//
755// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateProduct
756func (c *ServiceCatalog) CreateProductRequest(input *CreateProductInput) (req *request.Request, output *CreateProductOutput) {
757	op := &request.Operation{
758		Name:       opCreateProduct,
759		HTTPMethod: "POST",
760		HTTPPath:   "/",
761	}
762
763	if input == nil {
764		input = &CreateProductInput{}
765	}
766
767	output = &CreateProductOutput{}
768	req = c.newRequest(op, input, output)
769	return
770}
771
772// CreateProduct API operation for AWS Service Catalog.
773//
774// Creates a product.
775//
776// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
777// with awserr.Error's Code and Message methods to get detailed information about
778// the error.
779//
780// See the AWS API reference guide for AWS Service Catalog's
781// API operation CreateProduct for usage and error information.
782//
783// Returned Error Codes:
784//   * ErrCodeInvalidParametersException "InvalidParametersException"
785//   One or more parameters provided to the operation are not valid.
786//
787//   * ErrCodeLimitExceededException "LimitExceededException"
788//   The current limits of the service would have been exceeded by this operation.
789//   Decrease your resource use or increase your service limits and retry the
790//   operation.
791//
792//   * ErrCodeTagOptionNotMigratedException "TagOptionNotMigratedException"
793//   An operation requiring TagOptions failed because the TagOptions migration
794//   process has not been performed for this account. Please use the AWS console
795//   to perform the migration process before retrying the operation.
796//
797// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateProduct
798func (c *ServiceCatalog) CreateProduct(input *CreateProductInput) (*CreateProductOutput, error) {
799	req, out := c.CreateProductRequest(input)
800	return out, req.Send()
801}
802
803// CreateProductWithContext is the same as CreateProduct with the addition of
804// the ability to pass a context and additional request options.
805//
806// See CreateProduct for details on how to use this API operation.
807//
808// The context must be non-nil and will be used for request cancellation. If
809// the context is nil a panic will occur. In the future the SDK may create
810// sub-contexts for http.Requests. See https://golang.org/pkg/context/
811// for more information on using Contexts.
812func (c *ServiceCatalog) CreateProductWithContext(ctx aws.Context, input *CreateProductInput, opts ...request.Option) (*CreateProductOutput, error) {
813	req, out := c.CreateProductRequest(input)
814	req.SetContext(ctx)
815	req.ApplyOptions(opts...)
816	return out, req.Send()
817}
818
819const opCreateProvisionedProductPlan = "CreateProvisionedProductPlan"
820
821// CreateProvisionedProductPlanRequest generates a "aws/request.Request" representing the
822// client's request for the CreateProvisionedProductPlan operation. The "output" return
823// value will be populated with the request's response once the request completes
824// successfuly.
825//
826// Use "Send" method on the returned Request to send the API call to the service.
827// the "output" return value is not valid until after Send returns without error.
828//
829// See CreateProvisionedProductPlan for more information on using the CreateProvisionedProductPlan
830// API call, and error handling.
831//
832// This method is useful when you want to inject custom logic or configuration
833// into the SDK's request lifecycle. Such as custom headers, or retry logic.
834//
835//
836//    // Example sending a request using the CreateProvisionedProductPlanRequest method.
837//    req, resp := client.CreateProvisionedProductPlanRequest(params)
838//
839//    err := req.Send()
840//    if err == nil { // resp is now filled
841//        fmt.Println(resp)
842//    }
843//
844// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateProvisionedProductPlan
845func (c *ServiceCatalog) CreateProvisionedProductPlanRequest(input *CreateProvisionedProductPlanInput) (req *request.Request, output *CreateProvisionedProductPlanOutput) {
846	op := &request.Operation{
847		Name:       opCreateProvisionedProductPlan,
848		HTTPMethod: "POST",
849		HTTPPath:   "/",
850	}
851
852	if input == nil {
853		input = &CreateProvisionedProductPlanInput{}
854	}
855
856	output = &CreateProvisionedProductPlanOutput{}
857	req = c.newRequest(op, input, output)
858	return
859}
860
861// CreateProvisionedProductPlan API operation for AWS Service Catalog.
862//
863// Creates a plan. A plan includes the list of resources to be created (when
864// provisioning a new product) or modified (when updating a provisioned product)
865// when the plan is executed.
866//
867// You can create one plan per provisioned product. To create a plan for an
868// existing provisioned product, the product status must be AVAILBLE or TAINTED.
869//
870// To view the resource changes in the change set, use DescribeProvisionedProductPlan.
871// To create or modify the provisioned product, use ExecuteProvisionedProductPlan.
872//
873// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
874// with awserr.Error's Code and Message methods to get detailed information about
875// the error.
876//
877// See the AWS API reference guide for AWS Service Catalog's
878// API operation CreateProvisionedProductPlan for usage and error information.
879//
880// Returned Error Codes:
881//   * ErrCodeInvalidParametersException "InvalidParametersException"
882//   One or more parameters provided to the operation are not valid.
883//
884//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
885//   The specified resource was not found.
886//
887//   * ErrCodeInvalidStateException "InvalidStateException"
888//   An attempt was made to modify a resource that is in a state that is not valid.
889//   Check your resources to ensure that they are in valid states before retrying
890//   the operation.
891//
892// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateProvisionedProductPlan
893func (c *ServiceCatalog) CreateProvisionedProductPlan(input *CreateProvisionedProductPlanInput) (*CreateProvisionedProductPlanOutput, error) {
894	req, out := c.CreateProvisionedProductPlanRequest(input)
895	return out, req.Send()
896}
897
898// CreateProvisionedProductPlanWithContext is the same as CreateProvisionedProductPlan with the addition of
899// the ability to pass a context and additional request options.
900//
901// See CreateProvisionedProductPlan for details on how to use this API operation.
902//
903// The context must be non-nil and will be used for request cancellation. If
904// the context is nil a panic will occur. In the future the SDK may create
905// sub-contexts for http.Requests. See https://golang.org/pkg/context/
906// for more information on using Contexts.
907func (c *ServiceCatalog) CreateProvisionedProductPlanWithContext(ctx aws.Context, input *CreateProvisionedProductPlanInput, opts ...request.Option) (*CreateProvisionedProductPlanOutput, error) {
908	req, out := c.CreateProvisionedProductPlanRequest(input)
909	req.SetContext(ctx)
910	req.ApplyOptions(opts...)
911	return out, req.Send()
912}
913
914const opCreateProvisioningArtifact = "CreateProvisioningArtifact"
915
916// CreateProvisioningArtifactRequest generates a "aws/request.Request" representing the
917// client's request for the CreateProvisioningArtifact operation. The "output" return
918// value will be populated with the request's response once the request completes
919// successfuly.
920//
921// Use "Send" method on the returned Request to send the API call to the service.
922// the "output" return value is not valid until after Send returns without error.
923//
924// See CreateProvisioningArtifact for more information on using the CreateProvisioningArtifact
925// API call, and error handling.
926//
927// This method is useful when you want to inject custom logic or configuration
928// into the SDK's request lifecycle. Such as custom headers, or retry logic.
929//
930//
931//    // Example sending a request using the CreateProvisioningArtifactRequest method.
932//    req, resp := client.CreateProvisioningArtifactRequest(params)
933//
934//    err := req.Send()
935//    if err == nil { // resp is now filled
936//        fmt.Println(resp)
937//    }
938//
939// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateProvisioningArtifact
940func (c *ServiceCatalog) CreateProvisioningArtifactRequest(input *CreateProvisioningArtifactInput) (req *request.Request, output *CreateProvisioningArtifactOutput) {
941	op := &request.Operation{
942		Name:       opCreateProvisioningArtifact,
943		HTTPMethod: "POST",
944		HTTPPath:   "/",
945	}
946
947	if input == nil {
948		input = &CreateProvisioningArtifactInput{}
949	}
950
951	output = &CreateProvisioningArtifactOutput{}
952	req = c.newRequest(op, input, output)
953	return
954}
955
956// CreateProvisioningArtifact API operation for AWS Service Catalog.
957//
958// Creates a provisioning artifact (also known as a version) for the specified
959// product.
960//
961// You cannot create a provisioning artifact for a product that was shared with
962// you.
963//
964// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
965// with awserr.Error's Code and Message methods to get detailed information about
966// the error.
967//
968// See the AWS API reference guide for AWS Service Catalog's
969// API operation CreateProvisioningArtifact for usage and error information.
970//
971// Returned Error Codes:
972//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
973//   The specified resource was not found.
974//
975//   * ErrCodeInvalidParametersException "InvalidParametersException"
976//   One or more parameters provided to the operation are not valid.
977//
978//   * ErrCodeLimitExceededException "LimitExceededException"
979//   The current limits of the service would have been exceeded by this operation.
980//   Decrease your resource use or increase your service limits and retry the
981//   operation.
982//
983// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateProvisioningArtifact
984func (c *ServiceCatalog) CreateProvisioningArtifact(input *CreateProvisioningArtifactInput) (*CreateProvisioningArtifactOutput, error) {
985	req, out := c.CreateProvisioningArtifactRequest(input)
986	return out, req.Send()
987}
988
989// CreateProvisioningArtifactWithContext is the same as CreateProvisioningArtifact with the addition of
990// the ability to pass a context and additional request options.
991//
992// See CreateProvisioningArtifact for details on how to use this API operation.
993//
994// The context must be non-nil and will be used for request cancellation. If
995// the context is nil a panic will occur. In the future the SDK may create
996// sub-contexts for http.Requests. See https://golang.org/pkg/context/
997// for more information on using Contexts.
998func (c *ServiceCatalog) CreateProvisioningArtifactWithContext(ctx aws.Context, input *CreateProvisioningArtifactInput, opts ...request.Option) (*CreateProvisioningArtifactOutput, error) {
999	req, out := c.CreateProvisioningArtifactRequest(input)
1000	req.SetContext(ctx)
1001	req.ApplyOptions(opts...)
1002	return out, req.Send()
1003}
1004
1005const opCreateTagOption = "CreateTagOption"
1006
1007// CreateTagOptionRequest generates a "aws/request.Request" representing the
1008// client's request for the CreateTagOption operation. The "output" return
1009// value will be populated with the request's response once the request completes
1010// successfuly.
1011//
1012// Use "Send" method on the returned Request to send the API call to the service.
1013// the "output" return value is not valid until after Send returns without error.
1014//
1015// See CreateTagOption for more information on using the CreateTagOption
1016// API call, and error handling.
1017//
1018// This method is useful when you want to inject custom logic or configuration
1019// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1020//
1021//
1022//    // Example sending a request using the CreateTagOptionRequest method.
1023//    req, resp := client.CreateTagOptionRequest(params)
1024//
1025//    err := req.Send()
1026//    if err == nil { // resp is now filled
1027//        fmt.Println(resp)
1028//    }
1029//
1030// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateTagOption
1031func (c *ServiceCatalog) CreateTagOptionRequest(input *CreateTagOptionInput) (req *request.Request, output *CreateTagOptionOutput) {
1032	op := &request.Operation{
1033		Name:       opCreateTagOption,
1034		HTTPMethod: "POST",
1035		HTTPPath:   "/",
1036	}
1037
1038	if input == nil {
1039		input = &CreateTagOptionInput{}
1040	}
1041
1042	output = &CreateTagOptionOutput{}
1043	req = c.newRequest(op, input, output)
1044	return
1045}
1046
1047// CreateTagOption API operation for AWS Service Catalog.
1048//
1049// Creates a TagOption.
1050//
1051// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1052// with awserr.Error's Code and Message methods to get detailed information about
1053// the error.
1054//
1055// See the AWS API reference guide for AWS Service Catalog's
1056// API operation CreateTagOption for usage and error information.
1057//
1058// Returned Error Codes:
1059//   * ErrCodeTagOptionNotMigratedException "TagOptionNotMigratedException"
1060//   An operation requiring TagOptions failed because the TagOptions migration
1061//   process has not been performed for this account. Please use the AWS console
1062//   to perform the migration process before retrying the operation.
1063//
1064//   * ErrCodeDuplicateResourceException "DuplicateResourceException"
1065//   The specified resource is a duplicate.
1066//
1067//   * ErrCodeLimitExceededException "LimitExceededException"
1068//   The current limits of the service would have been exceeded by this operation.
1069//   Decrease your resource use or increase your service limits and retry the
1070//   operation.
1071//
1072// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateTagOption
1073func (c *ServiceCatalog) CreateTagOption(input *CreateTagOptionInput) (*CreateTagOptionOutput, error) {
1074	req, out := c.CreateTagOptionRequest(input)
1075	return out, req.Send()
1076}
1077
1078// CreateTagOptionWithContext is the same as CreateTagOption with the addition of
1079// the ability to pass a context and additional request options.
1080//
1081// See CreateTagOption for details on how to use this API operation.
1082//
1083// The context must be non-nil and will be used for request cancellation. If
1084// the context is nil a panic will occur. In the future the SDK may create
1085// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1086// for more information on using Contexts.
1087func (c *ServiceCatalog) CreateTagOptionWithContext(ctx aws.Context, input *CreateTagOptionInput, opts ...request.Option) (*CreateTagOptionOutput, error) {
1088	req, out := c.CreateTagOptionRequest(input)
1089	req.SetContext(ctx)
1090	req.ApplyOptions(opts...)
1091	return out, req.Send()
1092}
1093
1094const opDeleteConstraint = "DeleteConstraint"
1095
1096// DeleteConstraintRequest generates a "aws/request.Request" representing the
1097// client's request for the DeleteConstraint operation. The "output" return
1098// value will be populated with the request's response once the request completes
1099// successfuly.
1100//
1101// Use "Send" method on the returned Request to send the API call to the service.
1102// the "output" return value is not valid until after Send returns without error.
1103//
1104// See DeleteConstraint for more information on using the DeleteConstraint
1105// API call, and error handling.
1106//
1107// This method is useful when you want to inject custom logic or configuration
1108// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1109//
1110//
1111//    // Example sending a request using the DeleteConstraintRequest method.
1112//    req, resp := client.DeleteConstraintRequest(params)
1113//
1114//    err := req.Send()
1115//    if err == nil { // resp is now filled
1116//        fmt.Println(resp)
1117//    }
1118//
1119// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteConstraint
1120func (c *ServiceCatalog) DeleteConstraintRequest(input *DeleteConstraintInput) (req *request.Request, output *DeleteConstraintOutput) {
1121	op := &request.Operation{
1122		Name:       opDeleteConstraint,
1123		HTTPMethod: "POST",
1124		HTTPPath:   "/",
1125	}
1126
1127	if input == nil {
1128		input = &DeleteConstraintInput{}
1129	}
1130
1131	output = &DeleteConstraintOutput{}
1132	req = c.newRequest(op, input, output)
1133	return
1134}
1135
1136// DeleteConstraint API operation for AWS Service Catalog.
1137//
1138// Deletes the specified constraint.
1139//
1140// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1141// with awserr.Error's Code and Message methods to get detailed information about
1142// the error.
1143//
1144// See the AWS API reference guide for AWS Service Catalog's
1145// API operation DeleteConstraint for usage and error information.
1146//
1147// Returned Error Codes:
1148//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1149//   The specified resource was not found.
1150//
1151//   * ErrCodeInvalidParametersException "InvalidParametersException"
1152//   One or more parameters provided to the operation are not valid.
1153//
1154// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteConstraint
1155func (c *ServiceCatalog) DeleteConstraint(input *DeleteConstraintInput) (*DeleteConstraintOutput, error) {
1156	req, out := c.DeleteConstraintRequest(input)
1157	return out, req.Send()
1158}
1159
1160// DeleteConstraintWithContext is the same as DeleteConstraint with the addition of
1161// the ability to pass a context and additional request options.
1162//
1163// See DeleteConstraint for details on how to use this API operation.
1164//
1165// The context must be non-nil and will be used for request cancellation. If
1166// the context is nil a panic will occur. In the future the SDK may create
1167// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1168// for more information on using Contexts.
1169func (c *ServiceCatalog) DeleteConstraintWithContext(ctx aws.Context, input *DeleteConstraintInput, opts ...request.Option) (*DeleteConstraintOutput, error) {
1170	req, out := c.DeleteConstraintRequest(input)
1171	req.SetContext(ctx)
1172	req.ApplyOptions(opts...)
1173	return out, req.Send()
1174}
1175
1176const opDeletePortfolio = "DeletePortfolio"
1177
1178// DeletePortfolioRequest generates a "aws/request.Request" representing the
1179// client's request for the DeletePortfolio operation. The "output" return
1180// value will be populated with the request's response once the request completes
1181// successfuly.
1182//
1183// Use "Send" method on the returned Request to send the API call to the service.
1184// the "output" return value is not valid until after Send returns without error.
1185//
1186// See DeletePortfolio for more information on using the DeletePortfolio
1187// API call, and error handling.
1188//
1189// This method is useful when you want to inject custom logic or configuration
1190// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1191//
1192//
1193//    // Example sending a request using the DeletePortfolioRequest method.
1194//    req, resp := client.DeletePortfolioRequest(params)
1195//
1196//    err := req.Send()
1197//    if err == nil { // resp is now filled
1198//        fmt.Println(resp)
1199//    }
1200//
1201// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeletePortfolio
1202func (c *ServiceCatalog) DeletePortfolioRequest(input *DeletePortfolioInput) (req *request.Request, output *DeletePortfolioOutput) {
1203	op := &request.Operation{
1204		Name:       opDeletePortfolio,
1205		HTTPMethod: "POST",
1206		HTTPPath:   "/",
1207	}
1208
1209	if input == nil {
1210		input = &DeletePortfolioInput{}
1211	}
1212
1213	output = &DeletePortfolioOutput{}
1214	req = c.newRequest(op, input, output)
1215	return
1216}
1217
1218// DeletePortfolio API operation for AWS Service Catalog.
1219//
1220// Deletes the specified portfolio.
1221//
1222// You cannot delete a portfolio if it was shared with you or if it has associated
1223// products, users, constraints, or shared accounts.
1224//
1225// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1226// with awserr.Error's Code and Message methods to get detailed information about
1227// the error.
1228//
1229// See the AWS API reference guide for AWS Service Catalog's
1230// API operation DeletePortfolio for usage and error information.
1231//
1232// Returned Error Codes:
1233//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1234//   The specified resource was not found.
1235//
1236//   * ErrCodeInvalidParametersException "InvalidParametersException"
1237//   One or more parameters provided to the operation are not valid.
1238//
1239//   * ErrCodeResourceInUseException "ResourceInUseException"
1240//   A resource that is currently in use. Ensure that the resource is not in use
1241//   and retry the operation.
1242//
1243//   * ErrCodeTagOptionNotMigratedException "TagOptionNotMigratedException"
1244//   An operation requiring TagOptions failed because the TagOptions migration
1245//   process has not been performed for this account. Please use the AWS console
1246//   to perform the migration process before retrying the operation.
1247//
1248// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeletePortfolio
1249func (c *ServiceCatalog) DeletePortfolio(input *DeletePortfolioInput) (*DeletePortfolioOutput, error) {
1250	req, out := c.DeletePortfolioRequest(input)
1251	return out, req.Send()
1252}
1253
1254// DeletePortfolioWithContext is the same as DeletePortfolio with the addition of
1255// the ability to pass a context and additional request options.
1256//
1257// See DeletePortfolio for details on how to use this API operation.
1258//
1259// The context must be non-nil and will be used for request cancellation. If
1260// the context is nil a panic will occur. In the future the SDK may create
1261// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1262// for more information on using Contexts.
1263func (c *ServiceCatalog) DeletePortfolioWithContext(ctx aws.Context, input *DeletePortfolioInput, opts ...request.Option) (*DeletePortfolioOutput, error) {
1264	req, out := c.DeletePortfolioRequest(input)
1265	req.SetContext(ctx)
1266	req.ApplyOptions(opts...)
1267	return out, req.Send()
1268}
1269
1270const opDeletePortfolioShare = "DeletePortfolioShare"
1271
1272// DeletePortfolioShareRequest generates a "aws/request.Request" representing the
1273// client's request for the DeletePortfolioShare operation. The "output" return
1274// value will be populated with the request's response once the request completes
1275// successfuly.
1276//
1277// Use "Send" method on the returned Request to send the API call to the service.
1278// the "output" return value is not valid until after Send returns without error.
1279//
1280// See DeletePortfolioShare for more information on using the DeletePortfolioShare
1281// API call, and error handling.
1282//
1283// This method is useful when you want to inject custom logic or configuration
1284// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1285//
1286//
1287//    // Example sending a request using the DeletePortfolioShareRequest method.
1288//    req, resp := client.DeletePortfolioShareRequest(params)
1289//
1290//    err := req.Send()
1291//    if err == nil { // resp is now filled
1292//        fmt.Println(resp)
1293//    }
1294//
1295// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeletePortfolioShare
1296func (c *ServiceCatalog) DeletePortfolioShareRequest(input *DeletePortfolioShareInput) (req *request.Request, output *DeletePortfolioShareOutput) {
1297	op := &request.Operation{
1298		Name:       opDeletePortfolioShare,
1299		HTTPMethod: "POST",
1300		HTTPPath:   "/",
1301	}
1302
1303	if input == nil {
1304		input = &DeletePortfolioShareInput{}
1305	}
1306
1307	output = &DeletePortfolioShareOutput{}
1308	req = c.newRequest(op, input, output)
1309	return
1310}
1311
1312// DeletePortfolioShare API operation for AWS Service Catalog.
1313//
1314// Stops sharing the specified portfolio with the specified account.
1315//
1316// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1317// with awserr.Error's Code and Message methods to get detailed information about
1318// the error.
1319//
1320// See the AWS API reference guide for AWS Service Catalog's
1321// API operation DeletePortfolioShare for usage and error information.
1322//
1323// Returned Error Codes:
1324//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1325//   The specified resource was not found.
1326//
1327// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeletePortfolioShare
1328func (c *ServiceCatalog) DeletePortfolioShare(input *DeletePortfolioShareInput) (*DeletePortfolioShareOutput, error) {
1329	req, out := c.DeletePortfolioShareRequest(input)
1330	return out, req.Send()
1331}
1332
1333// DeletePortfolioShareWithContext is the same as DeletePortfolioShare with the addition of
1334// the ability to pass a context and additional request options.
1335//
1336// See DeletePortfolioShare for details on how to use this API operation.
1337//
1338// The context must be non-nil and will be used for request cancellation. If
1339// the context is nil a panic will occur. In the future the SDK may create
1340// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1341// for more information on using Contexts.
1342func (c *ServiceCatalog) DeletePortfolioShareWithContext(ctx aws.Context, input *DeletePortfolioShareInput, opts ...request.Option) (*DeletePortfolioShareOutput, error) {
1343	req, out := c.DeletePortfolioShareRequest(input)
1344	req.SetContext(ctx)
1345	req.ApplyOptions(opts...)
1346	return out, req.Send()
1347}
1348
1349const opDeleteProduct = "DeleteProduct"
1350
1351// DeleteProductRequest generates a "aws/request.Request" representing the
1352// client's request for the DeleteProduct operation. The "output" return
1353// value will be populated with the request's response once the request completes
1354// successfuly.
1355//
1356// Use "Send" method on the returned Request to send the API call to the service.
1357// the "output" return value is not valid until after Send returns without error.
1358//
1359// See DeleteProduct for more information on using the DeleteProduct
1360// API call, and error handling.
1361//
1362// This method is useful when you want to inject custom logic or configuration
1363// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1364//
1365//
1366//    // Example sending a request using the DeleteProductRequest method.
1367//    req, resp := client.DeleteProductRequest(params)
1368//
1369//    err := req.Send()
1370//    if err == nil { // resp is now filled
1371//        fmt.Println(resp)
1372//    }
1373//
1374// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteProduct
1375func (c *ServiceCatalog) DeleteProductRequest(input *DeleteProductInput) (req *request.Request, output *DeleteProductOutput) {
1376	op := &request.Operation{
1377		Name:       opDeleteProduct,
1378		HTTPMethod: "POST",
1379		HTTPPath:   "/",
1380	}
1381
1382	if input == nil {
1383		input = &DeleteProductInput{}
1384	}
1385
1386	output = &DeleteProductOutput{}
1387	req = c.newRequest(op, input, output)
1388	return
1389}
1390
1391// DeleteProduct API operation for AWS Service Catalog.
1392//
1393// Deletes the specified product.
1394//
1395// You cannot delete a product if it was shared with you or is associated with
1396// a portfolio.
1397//
1398// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1399// with awserr.Error's Code and Message methods to get detailed information about
1400// the error.
1401//
1402// See the AWS API reference guide for AWS Service Catalog's
1403// API operation DeleteProduct for usage and error information.
1404//
1405// Returned Error Codes:
1406//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1407//   The specified resource was not found.
1408//
1409//   * ErrCodeResourceInUseException "ResourceInUseException"
1410//   A resource that is currently in use. Ensure that the resource is not in use
1411//   and retry the operation.
1412//
1413//   * ErrCodeInvalidParametersException "InvalidParametersException"
1414//   One or more parameters provided to the operation are not valid.
1415//
1416//   * ErrCodeTagOptionNotMigratedException "TagOptionNotMigratedException"
1417//   An operation requiring TagOptions failed because the TagOptions migration
1418//   process has not been performed for this account. Please use the AWS console
1419//   to perform the migration process before retrying the operation.
1420//
1421// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteProduct
1422func (c *ServiceCatalog) DeleteProduct(input *DeleteProductInput) (*DeleteProductOutput, error) {
1423	req, out := c.DeleteProductRequest(input)
1424	return out, req.Send()
1425}
1426
1427// DeleteProductWithContext is the same as DeleteProduct with the addition of
1428// the ability to pass a context and additional request options.
1429//
1430// See DeleteProduct for details on how to use this API operation.
1431//
1432// The context must be non-nil and will be used for request cancellation. If
1433// the context is nil a panic will occur. In the future the SDK may create
1434// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1435// for more information on using Contexts.
1436func (c *ServiceCatalog) DeleteProductWithContext(ctx aws.Context, input *DeleteProductInput, opts ...request.Option) (*DeleteProductOutput, error) {
1437	req, out := c.DeleteProductRequest(input)
1438	req.SetContext(ctx)
1439	req.ApplyOptions(opts...)
1440	return out, req.Send()
1441}
1442
1443const opDeleteProvisionedProductPlan = "DeleteProvisionedProductPlan"
1444
1445// DeleteProvisionedProductPlanRequest generates a "aws/request.Request" representing the
1446// client's request for the DeleteProvisionedProductPlan operation. The "output" return
1447// value will be populated with the request's response once the request completes
1448// successfuly.
1449//
1450// Use "Send" method on the returned Request to send the API call to the service.
1451// the "output" return value is not valid until after Send returns without error.
1452//
1453// See DeleteProvisionedProductPlan for more information on using the DeleteProvisionedProductPlan
1454// API call, and error handling.
1455//
1456// This method is useful when you want to inject custom logic or configuration
1457// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1458//
1459//
1460//    // Example sending a request using the DeleteProvisionedProductPlanRequest method.
1461//    req, resp := client.DeleteProvisionedProductPlanRequest(params)
1462//
1463//    err := req.Send()
1464//    if err == nil { // resp is now filled
1465//        fmt.Println(resp)
1466//    }
1467//
1468// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteProvisionedProductPlan
1469func (c *ServiceCatalog) DeleteProvisionedProductPlanRequest(input *DeleteProvisionedProductPlanInput) (req *request.Request, output *DeleteProvisionedProductPlanOutput) {
1470	op := &request.Operation{
1471		Name:       opDeleteProvisionedProductPlan,
1472		HTTPMethod: "POST",
1473		HTTPPath:   "/",
1474	}
1475
1476	if input == nil {
1477		input = &DeleteProvisionedProductPlanInput{}
1478	}
1479
1480	output = &DeleteProvisionedProductPlanOutput{}
1481	req = c.newRequest(op, input, output)
1482	return
1483}
1484
1485// DeleteProvisionedProductPlan API operation for AWS Service Catalog.
1486//
1487// Deletes the specified plan.
1488//
1489// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1490// with awserr.Error's Code and Message methods to get detailed information about
1491// the error.
1492//
1493// See the AWS API reference guide for AWS Service Catalog's
1494// API operation DeleteProvisionedProductPlan for usage and error information.
1495//
1496// Returned Error Codes:
1497//   * ErrCodeInvalidParametersException "InvalidParametersException"
1498//   One or more parameters provided to the operation are not valid.
1499//
1500//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1501//   The specified resource was not found.
1502//
1503// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteProvisionedProductPlan
1504func (c *ServiceCatalog) DeleteProvisionedProductPlan(input *DeleteProvisionedProductPlanInput) (*DeleteProvisionedProductPlanOutput, error) {
1505	req, out := c.DeleteProvisionedProductPlanRequest(input)
1506	return out, req.Send()
1507}
1508
1509// DeleteProvisionedProductPlanWithContext is the same as DeleteProvisionedProductPlan with the addition of
1510// the ability to pass a context and additional request options.
1511//
1512// See DeleteProvisionedProductPlan for details on how to use this API operation.
1513//
1514// The context must be non-nil and will be used for request cancellation. If
1515// the context is nil a panic will occur. In the future the SDK may create
1516// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1517// for more information on using Contexts.
1518func (c *ServiceCatalog) DeleteProvisionedProductPlanWithContext(ctx aws.Context, input *DeleteProvisionedProductPlanInput, opts ...request.Option) (*DeleteProvisionedProductPlanOutput, error) {
1519	req, out := c.DeleteProvisionedProductPlanRequest(input)
1520	req.SetContext(ctx)
1521	req.ApplyOptions(opts...)
1522	return out, req.Send()
1523}
1524
1525const opDeleteProvisioningArtifact = "DeleteProvisioningArtifact"
1526
1527// DeleteProvisioningArtifactRequest generates a "aws/request.Request" representing the
1528// client's request for the DeleteProvisioningArtifact operation. The "output" return
1529// value will be populated with the request's response once the request completes
1530// successfuly.
1531//
1532// Use "Send" method on the returned Request to send the API call to the service.
1533// the "output" return value is not valid until after Send returns without error.
1534//
1535// See DeleteProvisioningArtifact for more information on using the DeleteProvisioningArtifact
1536// API call, and error handling.
1537//
1538// This method is useful when you want to inject custom logic or configuration
1539// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1540//
1541//
1542//    // Example sending a request using the DeleteProvisioningArtifactRequest method.
1543//    req, resp := client.DeleteProvisioningArtifactRequest(params)
1544//
1545//    err := req.Send()
1546//    if err == nil { // resp is now filled
1547//        fmt.Println(resp)
1548//    }
1549//
1550// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteProvisioningArtifact
1551func (c *ServiceCatalog) DeleteProvisioningArtifactRequest(input *DeleteProvisioningArtifactInput) (req *request.Request, output *DeleteProvisioningArtifactOutput) {
1552	op := &request.Operation{
1553		Name:       opDeleteProvisioningArtifact,
1554		HTTPMethod: "POST",
1555		HTTPPath:   "/",
1556	}
1557
1558	if input == nil {
1559		input = &DeleteProvisioningArtifactInput{}
1560	}
1561
1562	output = &DeleteProvisioningArtifactOutput{}
1563	req = c.newRequest(op, input, output)
1564	return
1565}
1566
1567// DeleteProvisioningArtifact API operation for AWS Service Catalog.
1568//
1569// Deletes the specified provisioning artifact (also known as a version) for
1570// the specified product.
1571//
1572// You cannot delete a provisioning artifact associated with a product that
1573// was shared with you. You cannot delete the last provisioning artifact for
1574// a product, because a product must have at least one provisioning artifact.
1575//
1576// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1577// with awserr.Error's Code and Message methods to get detailed information about
1578// the error.
1579//
1580// See the AWS API reference guide for AWS Service Catalog's
1581// API operation DeleteProvisioningArtifact for usage and error information.
1582//
1583// Returned Error Codes:
1584//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1585//   The specified resource was not found.
1586//
1587//   * ErrCodeResourceInUseException "ResourceInUseException"
1588//   A resource that is currently in use. Ensure that the resource is not in use
1589//   and retry the operation.
1590//
1591//   * ErrCodeInvalidParametersException "InvalidParametersException"
1592//   One or more parameters provided to the operation are not valid.
1593//
1594// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteProvisioningArtifact
1595func (c *ServiceCatalog) DeleteProvisioningArtifact(input *DeleteProvisioningArtifactInput) (*DeleteProvisioningArtifactOutput, error) {
1596	req, out := c.DeleteProvisioningArtifactRequest(input)
1597	return out, req.Send()
1598}
1599
1600// DeleteProvisioningArtifactWithContext is the same as DeleteProvisioningArtifact with the addition of
1601// the ability to pass a context and additional request options.
1602//
1603// See DeleteProvisioningArtifact for details on how to use this API operation.
1604//
1605// The context must be non-nil and will be used for request cancellation. If
1606// the context is nil a panic will occur. In the future the SDK may create
1607// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1608// for more information on using Contexts.
1609func (c *ServiceCatalog) DeleteProvisioningArtifactWithContext(ctx aws.Context, input *DeleteProvisioningArtifactInput, opts ...request.Option) (*DeleteProvisioningArtifactOutput, error) {
1610	req, out := c.DeleteProvisioningArtifactRequest(input)
1611	req.SetContext(ctx)
1612	req.ApplyOptions(opts...)
1613	return out, req.Send()
1614}
1615
1616const opDeleteTagOption = "DeleteTagOption"
1617
1618// DeleteTagOptionRequest generates a "aws/request.Request" representing the
1619// client's request for the DeleteTagOption operation. The "output" return
1620// value will be populated with the request's response once the request completes
1621// successfuly.
1622//
1623// Use "Send" method on the returned Request to send the API call to the service.
1624// the "output" return value is not valid until after Send returns without error.
1625//
1626// See DeleteTagOption for more information on using the DeleteTagOption
1627// API call, and error handling.
1628//
1629// This method is useful when you want to inject custom logic or configuration
1630// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1631//
1632//
1633//    // Example sending a request using the DeleteTagOptionRequest method.
1634//    req, resp := client.DeleteTagOptionRequest(params)
1635//
1636//    err := req.Send()
1637//    if err == nil { // resp is now filled
1638//        fmt.Println(resp)
1639//    }
1640//
1641// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteTagOption
1642func (c *ServiceCatalog) DeleteTagOptionRequest(input *DeleteTagOptionInput) (req *request.Request, output *DeleteTagOptionOutput) {
1643	op := &request.Operation{
1644		Name:       opDeleteTagOption,
1645		HTTPMethod: "POST",
1646		HTTPPath:   "/",
1647	}
1648
1649	if input == nil {
1650		input = &DeleteTagOptionInput{}
1651	}
1652
1653	output = &DeleteTagOptionOutput{}
1654	req = c.newRequest(op, input, output)
1655	return
1656}
1657
1658// DeleteTagOption API operation for AWS Service Catalog.
1659//
1660// Deletes the specified TagOption.
1661//
1662// You cannot delete a TagOption if it is associated with a product or portfolio.
1663//
1664// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1665// with awserr.Error's Code and Message methods to get detailed information about
1666// the error.
1667//
1668// See the AWS API reference guide for AWS Service Catalog's
1669// API operation DeleteTagOption for usage and error information.
1670//
1671// Returned Error Codes:
1672//   * ErrCodeTagOptionNotMigratedException "TagOptionNotMigratedException"
1673//   An operation requiring TagOptions failed because the TagOptions migration
1674//   process has not been performed for this account. Please use the AWS console
1675//   to perform the migration process before retrying the operation.
1676//
1677//   * ErrCodeResourceInUseException "ResourceInUseException"
1678//   A resource that is currently in use. Ensure that the resource is not in use
1679//   and retry the operation.
1680//
1681//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1682//   The specified resource was not found.
1683//
1684// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteTagOption
1685func (c *ServiceCatalog) DeleteTagOption(input *DeleteTagOptionInput) (*DeleteTagOptionOutput, error) {
1686	req, out := c.DeleteTagOptionRequest(input)
1687	return out, req.Send()
1688}
1689
1690// DeleteTagOptionWithContext is the same as DeleteTagOption with the addition of
1691// the ability to pass a context and additional request options.
1692//
1693// See DeleteTagOption for details on how to use this API operation.
1694//
1695// The context must be non-nil and will be used for request cancellation. If
1696// the context is nil a panic will occur. In the future the SDK may create
1697// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1698// for more information on using Contexts.
1699func (c *ServiceCatalog) DeleteTagOptionWithContext(ctx aws.Context, input *DeleteTagOptionInput, opts ...request.Option) (*DeleteTagOptionOutput, error) {
1700	req, out := c.DeleteTagOptionRequest(input)
1701	req.SetContext(ctx)
1702	req.ApplyOptions(opts...)
1703	return out, req.Send()
1704}
1705
1706const opDescribeConstraint = "DescribeConstraint"
1707
1708// DescribeConstraintRequest generates a "aws/request.Request" representing the
1709// client's request for the DescribeConstraint operation. The "output" return
1710// value will be populated with the request's response once the request completes
1711// successfuly.
1712//
1713// Use "Send" method on the returned Request to send the API call to the service.
1714// the "output" return value is not valid until after Send returns without error.
1715//
1716// See DescribeConstraint for more information on using the DescribeConstraint
1717// API call, and error handling.
1718//
1719// This method is useful when you want to inject custom logic or configuration
1720// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1721//
1722//
1723//    // Example sending a request using the DescribeConstraintRequest method.
1724//    req, resp := client.DescribeConstraintRequest(params)
1725//
1726//    err := req.Send()
1727//    if err == nil { // resp is now filled
1728//        fmt.Println(resp)
1729//    }
1730//
1731// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeConstraint
1732func (c *ServiceCatalog) DescribeConstraintRequest(input *DescribeConstraintInput) (req *request.Request, output *DescribeConstraintOutput) {
1733	op := &request.Operation{
1734		Name:       opDescribeConstraint,
1735		HTTPMethod: "POST",
1736		HTTPPath:   "/",
1737	}
1738
1739	if input == nil {
1740		input = &DescribeConstraintInput{}
1741	}
1742
1743	output = &DescribeConstraintOutput{}
1744	req = c.newRequest(op, input, output)
1745	return
1746}
1747
1748// DescribeConstraint API operation for AWS Service Catalog.
1749//
1750// Gets information about the specified constraint.
1751//
1752// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1753// with awserr.Error's Code and Message methods to get detailed information about
1754// the error.
1755//
1756// See the AWS API reference guide for AWS Service Catalog's
1757// API operation DescribeConstraint for usage and error information.
1758//
1759// Returned Error Codes:
1760//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1761//   The specified resource was not found.
1762//
1763// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeConstraint
1764func (c *ServiceCatalog) DescribeConstraint(input *DescribeConstraintInput) (*DescribeConstraintOutput, error) {
1765	req, out := c.DescribeConstraintRequest(input)
1766	return out, req.Send()
1767}
1768
1769// DescribeConstraintWithContext is the same as DescribeConstraint with the addition of
1770// the ability to pass a context and additional request options.
1771//
1772// See DescribeConstraint for details on how to use this API operation.
1773//
1774// The context must be non-nil and will be used for request cancellation. If
1775// the context is nil a panic will occur. In the future the SDK may create
1776// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1777// for more information on using Contexts.
1778func (c *ServiceCatalog) DescribeConstraintWithContext(ctx aws.Context, input *DescribeConstraintInput, opts ...request.Option) (*DescribeConstraintOutput, error) {
1779	req, out := c.DescribeConstraintRequest(input)
1780	req.SetContext(ctx)
1781	req.ApplyOptions(opts...)
1782	return out, req.Send()
1783}
1784
1785const opDescribeCopyProductStatus = "DescribeCopyProductStatus"
1786
1787// DescribeCopyProductStatusRequest generates a "aws/request.Request" representing the
1788// client's request for the DescribeCopyProductStatus operation. The "output" return
1789// value will be populated with the request's response once the request completes
1790// successfuly.
1791//
1792// Use "Send" method on the returned Request to send the API call to the service.
1793// the "output" return value is not valid until after Send returns without error.
1794//
1795// See DescribeCopyProductStatus for more information on using the DescribeCopyProductStatus
1796// API call, and error handling.
1797//
1798// This method is useful when you want to inject custom logic or configuration
1799// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1800//
1801//
1802//    // Example sending a request using the DescribeCopyProductStatusRequest method.
1803//    req, resp := client.DescribeCopyProductStatusRequest(params)
1804//
1805//    err := req.Send()
1806//    if err == nil { // resp is now filled
1807//        fmt.Println(resp)
1808//    }
1809//
1810// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeCopyProductStatus
1811func (c *ServiceCatalog) DescribeCopyProductStatusRequest(input *DescribeCopyProductStatusInput) (req *request.Request, output *DescribeCopyProductStatusOutput) {
1812	op := &request.Operation{
1813		Name:       opDescribeCopyProductStatus,
1814		HTTPMethod: "POST",
1815		HTTPPath:   "/",
1816	}
1817
1818	if input == nil {
1819		input = &DescribeCopyProductStatusInput{}
1820	}
1821
1822	output = &DescribeCopyProductStatusOutput{}
1823	req = c.newRequest(op, input, output)
1824	return
1825}
1826
1827// DescribeCopyProductStatus API operation for AWS Service Catalog.
1828//
1829// Gets the status of the specified copy product operation.
1830//
1831// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1832// with awserr.Error's Code and Message methods to get detailed information about
1833// the error.
1834//
1835// See the AWS API reference guide for AWS Service Catalog's
1836// API operation DescribeCopyProductStatus for usage and error information.
1837//
1838// Returned Error Codes:
1839//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1840//   The specified resource was not found.
1841//
1842// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeCopyProductStatus
1843func (c *ServiceCatalog) DescribeCopyProductStatus(input *DescribeCopyProductStatusInput) (*DescribeCopyProductStatusOutput, error) {
1844	req, out := c.DescribeCopyProductStatusRequest(input)
1845	return out, req.Send()
1846}
1847
1848// DescribeCopyProductStatusWithContext is the same as DescribeCopyProductStatus with the addition of
1849// the ability to pass a context and additional request options.
1850//
1851// See DescribeCopyProductStatus for details on how to use this API operation.
1852//
1853// The context must be non-nil and will be used for request cancellation. If
1854// the context is nil a panic will occur. In the future the SDK may create
1855// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1856// for more information on using Contexts.
1857func (c *ServiceCatalog) DescribeCopyProductStatusWithContext(ctx aws.Context, input *DescribeCopyProductStatusInput, opts ...request.Option) (*DescribeCopyProductStatusOutput, error) {
1858	req, out := c.DescribeCopyProductStatusRequest(input)
1859	req.SetContext(ctx)
1860	req.ApplyOptions(opts...)
1861	return out, req.Send()
1862}
1863
1864const opDescribePortfolio = "DescribePortfolio"
1865
1866// DescribePortfolioRequest generates a "aws/request.Request" representing the
1867// client's request for the DescribePortfolio operation. The "output" return
1868// value will be populated with the request's response once the request completes
1869// successfuly.
1870//
1871// Use "Send" method on the returned Request to send the API call to the service.
1872// the "output" return value is not valid until after Send returns without error.
1873//
1874// See DescribePortfolio for more information on using the DescribePortfolio
1875// API call, and error handling.
1876//
1877// This method is useful when you want to inject custom logic or configuration
1878// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1879//
1880//
1881//    // Example sending a request using the DescribePortfolioRequest method.
1882//    req, resp := client.DescribePortfolioRequest(params)
1883//
1884//    err := req.Send()
1885//    if err == nil { // resp is now filled
1886//        fmt.Println(resp)
1887//    }
1888//
1889// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribePortfolio
1890func (c *ServiceCatalog) DescribePortfolioRequest(input *DescribePortfolioInput) (req *request.Request, output *DescribePortfolioOutput) {
1891	op := &request.Operation{
1892		Name:       opDescribePortfolio,
1893		HTTPMethod: "POST",
1894		HTTPPath:   "/",
1895	}
1896
1897	if input == nil {
1898		input = &DescribePortfolioInput{}
1899	}
1900
1901	output = &DescribePortfolioOutput{}
1902	req = c.newRequest(op, input, output)
1903	return
1904}
1905
1906// DescribePortfolio API operation for AWS Service Catalog.
1907//
1908// Gets information about the specified portfolio.
1909//
1910// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1911// with awserr.Error's Code and Message methods to get detailed information about
1912// the error.
1913//
1914// See the AWS API reference guide for AWS Service Catalog's
1915// API operation DescribePortfolio for usage and error information.
1916//
1917// Returned Error Codes:
1918//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1919//   The specified resource was not found.
1920//
1921// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribePortfolio
1922func (c *ServiceCatalog) DescribePortfolio(input *DescribePortfolioInput) (*DescribePortfolioOutput, error) {
1923	req, out := c.DescribePortfolioRequest(input)
1924	return out, req.Send()
1925}
1926
1927// DescribePortfolioWithContext is the same as DescribePortfolio with the addition of
1928// the ability to pass a context and additional request options.
1929//
1930// See DescribePortfolio for details on how to use this API operation.
1931//
1932// The context must be non-nil and will be used for request cancellation. If
1933// the context is nil a panic will occur. In the future the SDK may create
1934// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1935// for more information on using Contexts.
1936func (c *ServiceCatalog) DescribePortfolioWithContext(ctx aws.Context, input *DescribePortfolioInput, opts ...request.Option) (*DescribePortfolioOutput, error) {
1937	req, out := c.DescribePortfolioRequest(input)
1938	req.SetContext(ctx)
1939	req.ApplyOptions(opts...)
1940	return out, req.Send()
1941}
1942
1943const opDescribeProduct = "DescribeProduct"
1944
1945// DescribeProductRequest generates a "aws/request.Request" representing the
1946// client's request for the DescribeProduct operation. The "output" return
1947// value will be populated with the request's response once the request completes
1948// successfuly.
1949//
1950// Use "Send" method on the returned Request to send the API call to the service.
1951// the "output" return value is not valid until after Send returns without error.
1952//
1953// See DescribeProduct for more information on using the DescribeProduct
1954// API call, and error handling.
1955//
1956// This method is useful when you want to inject custom logic or configuration
1957// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1958//
1959//
1960//    // Example sending a request using the DescribeProductRequest method.
1961//    req, resp := client.DescribeProductRequest(params)
1962//
1963//    err := req.Send()
1964//    if err == nil { // resp is now filled
1965//        fmt.Println(resp)
1966//    }
1967//
1968// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProduct
1969func (c *ServiceCatalog) DescribeProductRequest(input *DescribeProductInput) (req *request.Request, output *DescribeProductOutput) {
1970	op := &request.Operation{
1971		Name:       opDescribeProduct,
1972		HTTPMethod: "POST",
1973		HTTPPath:   "/",
1974	}
1975
1976	if input == nil {
1977		input = &DescribeProductInput{}
1978	}
1979
1980	output = &DescribeProductOutput{}
1981	req = c.newRequest(op, input, output)
1982	return
1983}
1984
1985// DescribeProduct API operation for AWS Service Catalog.
1986//
1987// Gets information about the specified product.
1988//
1989// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1990// with awserr.Error's Code and Message methods to get detailed information about
1991// the error.
1992//
1993// See the AWS API reference guide for AWS Service Catalog's
1994// API operation DescribeProduct for usage and error information.
1995//
1996// Returned Error Codes:
1997//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1998//   The specified resource was not found.
1999//
2000//   * ErrCodeInvalidParametersException "InvalidParametersException"
2001//   One or more parameters provided to the operation are not valid.
2002//
2003// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProduct
2004func (c *ServiceCatalog) DescribeProduct(input *DescribeProductInput) (*DescribeProductOutput, error) {
2005	req, out := c.DescribeProductRequest(input)
2006	return out, req.Send()
2007}
2008
2009// DescribeProductWithContext is the same as DescribeProduct with the addition of
2010// the ability to pass a context and additional request options.
2011//
2012// See DescribeProduct for details on how to use this API operation.
2013//
2014// The context must be non-nil and will be used for request cancellation. If
2015// the context is nil a panic will occur. In the future the SDK may create
2016// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2017// for more information on using Contexts.
2018func (c *ServiceCatalog) DescribeProductWithContext(ctx aws.Context, input *DescribeProductInput, opts ...request.Option) (*DescribeProductOutput, error) {
2019	req, out := c.DescribeProductRequest(input)
2020	req.SetContext(ctx)
2021	req.ApplyOptions(opts...)
2022	return out, req.Send()
2023}
2024
2025const opDescribeProductAsAdmin = "DescribeProductAsAdmin"
2026
2027// DescribeProductAsAdminRequest generates a "aws/request.Request" representing the
2028// client's request for the DescribeProductAsAdmin operation. The "output" return
2029// value will be populated with the request's response once the request completes
2030// successfuly.
2031//
2032// Use "Send" method on the returned Request to send the API call to the service.
2033// the "output" return value is not valid until after Send returns without error.
2034//
2035// See DescribeProductAsAdmin for more information on using the DescribeProductAsAdmin
2036// API call, and error handling.
2037//
2038// This method is useful when you want to inject custom logic or configuration
2039// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2040//
2041//
2042//    // Example sending a request using the DescribeProductAsAdminRequest method.
2043//    req, resp := client.DescribeProductAsAdminRequest(params)
2044//
2045//    err := req.Send()
2046//    if err == nil { // resp is now filled
2047//        fmt.Println(resp)
2048//    }
2049//
2050// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProductAsAdmin
2051func (c *ServiceCatalog) DescribeProductAsAdminRequest(input *DescribeProductAsAdminInput) (req *request.Request, output *DescribeProductAsAdminOutput) {
2052	op := &request.Operation{
2053		Name:       opDescribeProductAsAdmin,
2054		HTTPMethod: "POST",
2055		HTTPPath:   "/",
2056	}
2057
2058	if input == nil {
2059		input = &DescribeProductAsAdminInput{}
2060	}
2061
2062	output = &DescribeProductAsAdminOutput{}
2063	req = c.newRequest(op, input, output)
2064	return
2065}
2066
2067// DescribeProductAsAdmin API operation for AWS Service Catalog.
2068//
2069// Gets information about the specified product. This operation is run with
2070// administrator access.
2071//
2072// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2073// with awserr.Error's Code and Message methods to get detailed information about
2074// the error.
2075//
2076// See the AWS API reference guide for AWS Service Catalog's
2077// API operation DescribeProductAsAdmin for usage and error information.
2078//
2079// Returned Error Codes:
2080//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2081//   The specified resource was not found.
2082//
2083// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProductAsAdmin
2084func (c *ServiceCatalog) DescribeProductAsAdmin(input *DescribeProductAsAdminInput) (*DescribeProductAsAdminOutput, error) {
2085	req, out := c.DescribeProductAsAdminRequest(input)
2086	return out, req.Send()
2087}
2088
2089// DescribeProductAsAdminWithContext is the same as DescribeProductAsAdmin with the addition of
2090// the ability to pass a context and additional request options.
2091//
2092// See DescribeProductAsAdmin for details on how to use this API operation.
2093//
2094// The context must be non-nil and will be used for request cancellation. If
2095// the context is nil a panic will occur. In the future the SDK may create
2096// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2097// for more information on using Contexts.
2098func (c *ServiceCatalog) DescribeProductAsAdminWithContext(ctx aws.Context, input *DescribeProductAsAdminInput, opts ...request.Option) (*DescribeProductAsAdminOutput, error) {
2099	req, out := c.DescribeProductAsAdminRequest(input)
2100	req.SetContext(ctx)
2101	req.ApplyOptions(opts...)
2102	return out, req.Send()
2103}
2104
2105const opDescribeProductView = "DescribeProductView"
2106
2107// DescribeProductViewRequest generates a "aws/request.Request" representing the
2108// client's request for the DescribeProductView operation. The "output" return
2109// value will be populated with the request's response once the request completes
2110// successfuly.
2111//
2112// Use "Send" method on the returned Request to send the API call to the service.
2113// the "output" return value is not valid until after Send returns without error.
2114//
2115// See DescribeProductView for more information on using the DescribeProductView
2116// API call, and error handling.
2117//
2118// This method is useful when you want to inject custom logic or configuration
2119// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2120//
2121//
2122//    // Example sending a request using the DescribeProductViewRequest method.
2123//    req, resp := client.DescribeProductViewRequest(params)
2124//
2125//    err := req.Send()
2126//    if err == nil { // resp is now filled
2127//        fmt.Println(resp)
2128//    }
2129//
2130// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProductView
2131func (c *ServiceCatalog) DescribeProductViewRequest(input *DescribeProductViewInput) (req *request.Request, output *DescribeProductViewOutput) {
2132	op := &request.Operation{
2133		Name:       opDescribeProductView,
2134		HTTPMethod: "POST",
2135		HTTPPath:   "/",
2136	}
2137
2138	if input == nil {
2139		input = &DescribeProductViewInput{}
2140	}
2141
2142	output = &DescribeProductViewOutput{}
2143	req = c.newRequest(op, input, output)
2144	return
2145}
2146
2147// DescribeProductView API operation for AWS Service Catalog.
2148//
2149// Gets information about the specified product.
2150//
2151// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2152// with awserr.Error's Code and Message methods to get detailed information about
2153// the error.
2154//
2155// See the AWS API reference guide for AWS Service Catalog's
2156// API operation DescribeProductView for usage and error information.
2157//
2158// Returned Error Codes:
2159//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2160//   The specified resource was not found.
2161//
2162//   * ErrCodeInvalidParametersException "InvalidParametersException"
2163//   One or more parameters provided to the operation are not valid.
2164//
2165// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProductView
2166func (c *ServiceCatalog) DescribeProductView(input *DescribeProductViewInput) (*DescribeProductViewOutput, error) {
2167	req, out := c.DescribeProductViewRequest(input)
2168	return out, req.Send()
2169}
2170
2171// DescribeProductViewWithContext is the same as DescribeProductView with the addition of
2172// the ability to pass a context and additional request options.
2173//
2174// See DescribeProductView for details on how to use this API operation.
2175//
2176// The context must be non-nil and will be used for request cancellation. If
2177// the context is nil a panic will occur. In the future the SDK may create
2178// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2179// for more information on using Contexts.
2180func (c *ServiceCatalog) DescribeProductViewWithContext(ctx aws.Context, input *DescribeProductViewInput, opts ...request.Option) (*DescribeProductViewOutput, error) {
2181	req, out := c.DescribeProductViewRequest(input)
2182	req.SetContext(ctx)
2183	req.ApplyOptions(opts...)
2184	return out, req.Send()
2185}
2186
2187const opDescribeProvisionedProduct = "DescribeProvisionedProduct"
2188
2189// DescribeProvisionedProductRequest generates a "aws/request.Request" representing the
2190// client's request for the DescribeProvisionedProduct operation. The "output" return
2191// value will be populated with the request's response once the request completes
2192// successfuly.
2193//
2194// Use "Send" method on the returned Request to send the API call to the service.
2195// the "output" return value is not valid until after Send returns without error.
2196//
2197// See DescribeProvisionedProduct for more information on using the DescribeProvisionedProduct
2198// API call, and error handling.
2199//
2200// This method is useful when you want to inject custom logic or configuration
2201// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2202//
2203//
2204//    // Example sending a request using the DescribeProvisionedProductRequest method.
2205//    req, resp := client.DescribeProvisionedProductRequest(params)
2206//
2207//    err := req.Send()
2208//    if err == nil { // resp is now filled
2209//        fmt.Println(resp)
2210//    }
2211//
2212// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisionedProduct
2213func (c *ServiceCatalog) DescribeProvisionedProductRequest(input *DescribeProvisionedProductInput) (req *request.Request, output *DescribeProvisionedProductOutput) {
2214	op := &request.Operation{
2215		Name:       opDescribeProvisionedProduct,
2216		HTTPMethod: "POST",
2217		HTTPPath:   "/",
2218	}
2219
2220	if input == nil {
2221		input = &DescribeProvisionedProductInput{}
2222	}
2223
2224	output = &DescribeProvisionedProductOutput{}
2225	req = c.newRequest(op, input, output)
2226	return
2227}
2228
2229// DescribeProvisionedProduct API operation for AWS Service Catalog.
2230//
2231// Gets information about the specified provisioned product.
2232//
2233// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2234// with awserr.Error's Code and Message methods to get detailed information about
2235// the error.
2236//
2237// See the AWS API reference guide for AWS Service Catalog's
2238// API operation DescribeProvisionedProduct for usage and error information.
2239//
2240// Returned Error Codes:
2241//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2242//   The specified resource was not found.
2243//
2244// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisionedProduct
2245func (c *ServiceCatalog) DescribeProvisionedProduct(input *DescribeProvisionedProductInput) (*DescribeProvisionedProductOutput, error) {
2246	req, out := c.DescribeProvisionedProductRequest(input)
2247	return out, req.Send()
2248}
2249
2250// DescribeProvisionedProductWithContext is the same as DescribeProvisionedProduct with the addition of
2251// the ability to pass a context and additional request options.
2252//
2253// See DescribeProvisionedProduct for details on how to use this API operation.
2254//
2255// The context must be non-nil and will be used for request cancellation. If
2256// the context is nil a panic will occur. In the future the SDK may create
2257// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2258// for more information on using Contexts.
2259func (c *ServiceCatalog) DescribeProvisionedProductWithContext(ctx aws.Context, input *DescribeProvisionedProductInput, opts ...request.Option) (*DescribeProvisionedProductOutput, error) {
2260	req, out := c.DescribeProvisionedProductRequest(input)
2261	req.SetContext(ctx)
2262	req.ApplyOptions(opts...)
2263	return out, req.Send()
2264}
2265
2266const opDescribeProvisionedProductPlan = "DescribeProvisionedProductPlan"
2267
2268// DescribeProvisionedProductPlanRequest generates a "aws/request.Request" representing the
2269// client's request for the DescribeProvisionedProductPlan operation. The "output" return
2270// value will be populated with the request's response once the request completes
2271// successfuly.
2272//
2273// Use "Send" method on the returned Request to send the API call to the service.
2274// the "output" return value is not valid until after Send returns without error.
2275//
2276// See DescribeProvisionedProductPlan for more information on using the DescribeProvisionedProductPlan
2277// API call, and error handling.
2278//
2279// This method is useful when you want to inject custom logic or configuration
2280// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2281//
2282//
2283//    // Example sending a request using the DescribeProvisionedProductPlanRequest method.
2284//    req, resp := client.DescribeProvisionedProductPlanRequest(params)
2285//
2286//    err := req.Send()
2287//    if err == nil { // resp is now filled
2288//        fmt.Println(resp)
2289//    }
2290//
2291// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisionedProductPlan
2292func (c *ServiceCatalog) DescribeProvisionedProductPlanRequest(input *DescribeProvisionedProductPlanInput) (req *request.Request, output *DescribeProvisionedProductPlanOutput) {
2293	op := &request.Operation{
2294		Name:       opDescribeProvisionedProductPlan,
2295		HTTPMethod: "POST",
2296		HTTPPath:   "/",
2297	}
2298
2299	if input == nil {
2300		input = &DescribeProvisionedProductPlanInput{}
2301	}
2302
2303	output = &DescribeProvisionedProductPlanOutput{}
2304	req = c.newRequest(op, input, output)
2305	return
2306}
2307
2308// DescribeProvisionedProductPlan API operation for AWS Service Catalog.
2309//
2310// Gets information about the resource changes for the specified plan.
2311//
2312// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2313// with awserr.Error's Code and Message methods to get detailed information about
2314// the error.
2315//
2316// See the AWS API reference guide for AWS Service Catalog's
2317// API operation DescribeProvisionedProductPlan for usage and error information.
2318//
2319// Returned Error Codes:
2320//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2321//   The specified resource was not found.
2322//
2323//   * ErrCodeInvalidParametersException "InvalidParametersException"
2324//   One or more parameters provided to the operation are not valid.
2325//
2326// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisionedProductPlan
2327func (c *ServiceCatalog) DescribeProvisionedProductPlan(input *DescribeProvisionedProductPlanInput) (*DescribeProvisionedProductPlanOutput, error) {
2328	req, out := c.DescribeProvisionedProductPlanRequest(input)
2329	return out, req.Send()
2330}
2331
2332// DescribeProvisionedProductPlanWithContext is the same as DescribeProvisionedProductPlan with the addition of
2333// the ability to pass a context and additional request options.
2334//
2335// See DescribeProvisionedProductPlan for details on how to use this API operation.
2336//
2337// The context must be non-nil and will be used for request cancellation. If
2338// the context is nil a panic will occur. In the future the SDK may create
2339// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2340// for more information on using Contexts.
2341func (c *ServiceCatalog) DescribeProvisionedProductPlanWithContext(ctx aws.Context, input *DescribeProvisionedProductPlanInput, opts ...request.Option) (*DescribeProvisionedProductPlanOutput, error) {
2342	req, out := c.DescribeProvisionedProductPlanRequest(input)
2343	req.SetContext(ctx)
2344	req.ApplyOptions(opts...)
2345	return out, req.Send()
2346}
2347
2348const opDescribeProvisioningArtifact = "DescribeProvisioningArtifact"
2349
2350// DescribeProvisioningArtifactRequest generates a "aws/request.Request" representing the
2351// client's request for the DescribeProvisioningArtifact operation. The "output" return
2352// value will be populated with the request's response once the request completes
2353// successfuly.
2354//
2355// Use "Send" method on the returned Request to send the API call to the service.
2356// the "output" return value is not valid until after Send returns without error.
2357//
2358// See DescribeProvisioningArtifact for more information on using the DescribeProvisioningArtifact
2359// API call, and error handling.
2360//
2361// This method is useful when you want to inject custom logic or configuration
2362// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2363//
2364//
2365//    // Example sending a request using the DescribeProvisioningArtifactRequest method.
2366//    req, resp := client.DescribeProvisioningArtifactRequest(params)
2367//
2368//    err := req.Send()
2369//    if err == nil { // resp is now filled
2370//        fmt.Println(resp)
2371//    }
2372//
2373// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisioningArtifact
2374func (c *ServiceCatalog) DescribeProvisioningArtifactRequest(input *DescribeProvisioningArtifactInput) (req *request.Request, output *DescribeProvisioningArtifactOutput) {
2375	op := &request.Operation{
2376		Name:       opDescribeProvisioningArtifact,
2377		HTTPMethod: "POST",
2378		HTTPPath:   "/",
2379	}
2380
2381	if input == nil {
2382		input = &DescribeProvisioningArtifactInput{}
2383	}
2384
2385	output = &DescribeProvisioningArtifactOutput{}
2386	req = c.newRequest(op, input, output)
2387	return
2388}
2389
2390// DescribeProvisioningArtifact API operation for AWS Service Catalog.
2391//
2392// Gets information about the specified provisioning artifact (also known as
2393// a version) for the specified product.
2394//
2395// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2396// with awserr.Error's Code and Message methods to get detailed information about
2397// the error.
2398//
2399// See the AWS API reference guide for AWS Service Catalog's
2400// API operation DescribeProvisioningArtifact for usage and error information.
2401//
2402// Returned Error Codes:
2403//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2404//   The specified resource was not found.
2405//
2406// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisioningArtifact
2407func (c *ServiceCatalog) DescribeProvisioningArtifact(input *DescribeProvisioningArtifactInput) (*DescribeProvisioningArtifactOutput, error) {
2408	req, out := c.DescribeProvisioningArtifactRequest(input)
2409	return out, req.Send()
2410}
2411
2412// DescribeProvisioningArtifactWithContext is the same as DescribeProvisioningArtifact with the addition of
2413// the ability to pass a context and additional request options.
2414//
2415// See DescribeProvisioningArtifact for details on how to use this API operation.
2416//
2417// The context must be non-nil and will be used for request cancellation. If
2418// the context is nil a panic will occur. In the future the SDK may create
2419// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2420// for more information on using Contexts.
2421func (c *ServiceCatalog) DescribeProvisioningArtifactWithContext(ctx aws.Context, input *DescribeProvisioningArtifactInput, opts ...request.Option) (*DescribeProvisioningArtifactOutput, error) {
2422	req, out := c.DescribeProvisioningArtifactRequest(input)
2423	req.SetContext(ctx)
2424	req.ApplyOptions(opts...)
2425	return out, req.Send()
2426}
2427
2428const opDescribeProvisioningParameters = "DescribeProvisioningParameters"
2429
2430// DescribeProvisioningParametersRequest generates a "aws/request.Request" representing the
2431// client's request for the DescribeProvisioningParameters operation. The "output" return
2432// value will be populated with the request's response once the request completes
2433// successfuly.
2434//
2435// Use "Send" method on the returned Request to send the API call to the service.
2436// the "output" return value is not valid until after Send returns without error.
2437//
2438// See DescribeProvisioningParameters for more information on using the DescribeProvisioningParameters
2439// API call, and error handling.
2440//
2441// This method is useful when you want to inject custom logic or configuration
2442// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2443//
2444//
2445//    // Example sending a request using the DescribeProvisioningParametersRequest method.
2446//    req, resp := client.DescribeProvisioningParametersRequest(params)
2447//
2448//    err := req.Send()
2449//    if err == nil { // resp is now filled
2450//        fmt.Println(resp)
2451//    }
2452//
2453// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisioningParameters
2454func (c *ServiceCatalog) DescribeProvisioningParametersRequest(input *DescribeProvisioningParametersInput) (req *request.Request, output *DescribeProvisioningParametersOutput) {
2455	op := &request.Operation{
2456		Name:       opDescribeProvisioningParameters,
2457		HTTPMethod: "POST",
2458		HTTPPath:   "/",
2459	}
2460
2461	if input == nil {
2462		input = &DescribeProvisioningParametersInput{}
2463	}
2464
2465	output = &DescribeProvisioningParametersOutput{}
2466	req = c.newRequest(op, input, output)
2467	return
2468}
2469
2470// DescribeProvisioningParameters API operation for AWS Service Catalog.
2471//
2472// Gets information about the configuration required to provision the specified
2473// product using the specified provisioning artifact.
2474//
2475// If the output contains a TagOption key with an empty list of values, there
2476// is a TagOption conflict for that key. The end user cannot take action to
2477// fix the conflict, and launch is not blocked. In subsequent calls to ProvisionProduct,
2478// do not include conflicted TagOption keys as tags, or this causes the error
2479// "Parameter validation failed: Missing required parameter in Tags[N]:Value".
2480// Tag the provisioned product with the value sc-tagoption-conflict-portfolioId-productId.
2481//
2482// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2483// with awserr.Error's Code and Message methods to get detailed information about
2484// the error.
2485//
2486// See the AWS API reference guide for AWS Service Catalog's
2487// API operation DescribeProvisioningParameters for usage and error information.
2488//
2489// Returned Error Codes:
2490//   * ErrCodeInvalidParametersException "InvalidParametersException"
2491//   One or more parameters provided to the operation are not valid.
2492//
2493//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2494//   The specified resource was not found.
2495//
2496// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisioningParameters
2497func (c *ServiceCatalog) DescribeProvisioningParameters(input *DescribeProvisioningParametersInput) (*DescribeProvisioningParametersOutput, error) {
2498	req, out := c.DescribeProvisioningParametersRequest(input)
2499	return out, req.Send()
2500}
2501
2502// DescribeProvisioningParametersWithContext is the same as DescribeProvisioningParameters with the addition of
2503// the ability to pass a context and additional request options.
2504//
2505// See DescribeProvisioningParameters for details on how to use this API operation.
2506//
2507// The context must be non-nil and will be used for request cancellation. If
2508// the context is nil a panic will occur. In the future the SDK may create
2509// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2510// for more information on using Contexts.
2511func (c *ServiceCatalog) DescribeProvisioningParametersWithContext(ctx aws.Context, input *DescribeProvisioningParametersInput, opts ...request.Option) (*DescribeProvisioningParametersOutput, error) {
2512	req, out := c.DescribeProvisioningParametersRequest(input)
2513	req.SetContext(ctx)
2514	req.ApplyOptions(opts...)
2515	return out, req.Send()
2516}
2517
2518const opDescribeRecord = "DescribeRecord"
2519
2520// DescribeRecordRequest generates a "aws/request.Request" representing the
2521// client's request for the DescribeRecord operation. The "output" return
2522// value will be populated with the request's response once the request completes
2523// successfuly.
2524//
2525// Use "Send" method on the returned Request to send the API call to the service.
2526// the "output" return value is not valid until after Send returns without error.
2527//
2528// See DescribeRecord for more information on using the DescribeRecord
2529// API call, and error handling.
2530//
2531// This method is useful when you want to inject custom logic or configuration
2532// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2533//
2534//
2535//    // Example sending a request using the DescribeRecordRequest method.
2536//    req, resp := client.DescribeRecordRequest(params)
2537//
2538//    err := req.Send()
2539//    if err == nil { // resp is now filled
2540//        fmt.Println(resp)
2541//    }
2542//
2543// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeRecord
2544func (c *ServiceCatalog) DescribeRecordRequest(input *DescribeRecordInput) (req *request.Request, output *DescribeRecordOutput) {
2545	op := &request.Operation{
2546		Name:       opDescribeRecord,
2547		HTTPMethod: "POST",
2548		HTTPPath:   "/",
2549	}
2550
2551	if input == nil {
2552		input = &DescribeRecordInput{}
2553	}
2554
2555	output = &DescribeRecordOutput{}
2556	req = c.newRequest(op, input, output)
2557	return
2558}
2559
2560// DescribeRecord API operation for AWS Service Catalog.
2561//
2562// Gets information about the specified request operation.
2563//
2564// Use this operation after calling a request operation (for example, ProvisionProduct,
2565// TerminateProvisionedProduct, or UpdateProvisionedProduct).
2566//
2567// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2568// with awserr.Error's Code and Message methods to get detailed information about
2569// the error.
2570//
2571// See the AWS API reference guide for AWS Service Catalog's
2572// API operation DescribeRecord for usage and error information.
2573//
2574// Returned Error Codes:
2575//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2576//   The specified resource was not found.
2577//
2578// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeRecord
2579func (c *ServiceCatalog) DescribeRecord(input *DescribeRecordInput) (*DescribeRecordOutput, error) {
2580	req, out := c.DescribeRecordRequest(input)
2581	return out, req.Send()
2582}
2583
2584// DescribeRecordWithContext is the same as DescribeRecord with the addition of
2585// the ability to pass a context and additional request options.
2586//
2587// See DescribeRecord for details on how to use this API operation.
2588//
2589// The context must be non-nil and will be used for request cancellation. If
2590// the context is nil a panic will occur. In the future the SDK may create
2591// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2592// for more information on using Contexts.
2593func (c *ServiceCatalog) DescribeRecordWithContext(ctx aws.Context, input *DescribeRecordInput, opts ...request.Option) (*DescribeRecordOutput, error) {
2594	req, out := c.DescribeRecordRequest(input)
2595	req.SetContext(ctx)
2596	req.ApplyOptions(opts...)
2597	return out, req.Send()
2598}
2599
2600const opDescribeTagOption = "DescribeTagOption"
2601
2602// DescribeTagOptionRequest generates a "aws/request.Request" representing the
2603// client's request for the DescribeTagOption operation. The "output" return
2604// value will be populated with the request's response once the request completes
2605// successfuly.
2606//
2607// Use "Send" method on the returned Request to send the API call to the service.
2608// the "output" return value is not valid until after Send returns without error.
2609//
2610// See DescribeTagOption for more information on using the DescribeTagOption
2611// API call, and error handling.
2612//
2613// This method is useful when you want to inject custom logic or configuration
2614// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2615//
2616//
2617//    // Example sending a request using the DescribeTagOptionRequest method.
2618//    req, resp := client.DescribeTagOptionRequest(params)
2619//
2620//    err := req.Send()
2621//    if err == nil { // resp is now filled
2622//        fmt.Println(resp)
2623//    }
2624//
2625// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeTagOption
2626func (c *ServiceCatalog) DescribeTagOptionRequest(input *DescribeTagOptionInput) (req *request.Request, output *DescribeTagOptionOutput) {
2627	op := &request.Operation{
2628		Name:       opDescribeTagOption,
2629		HTTPMethod: "POST",
2630		HTTPPath:   "/",
2631	}
2632
2633	if input == nil {
2634		input = &DescribeTagOptionInput{}
2635	}
2636
2637	output = &DescribeTagOptionOutput{}
2638	req = c.newRequest(op, input, output)
2639	return
2640}
2641
2642// DescribeTagOption API operation for AWS Service Catalog.
2643//
2644// Gets information about the specified TagOption.
2645//
2646// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2647// with awserr.Error's Code and Message methods to get detailed information about
2648// the error.
2649//
2650// See the AWS API reference guide for AWS Service Catalog's
2651// API operation DescribeTagOption for usage and error information.
2652//
2653// Returned Error Codes:
2654//   * ErrCodeTagOptionNotMigratedException "TagOptionNotMigratedException"
2655//   An operation requiring TagOptions failed because the TagOptions migration
2656//   process has not been performed for this account. Please use the AWS console
2657//   to perform the migration process before retrying the operation.
2658//
2659//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2660//   The specified resource was not found.
2661//
2662// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeTagOption
2663func (c *ServiceCatalog) DescribeTagOption(input *DescribeTagOptionInput) (*DescribeTagOptionOutput, error) {
2664	req, out := c.DescribeTagOptionRequest(input)
2665	return out, req.Send()
2666}
2667
2668// DescribeTagOptionWithContext is the same as DescribeTagOption with the addition of
2669// the ability to pass a context and additional request options.
2670//
2671// See DescribeTagOption for details on how to use this API operation.
2672//
2673// The context must be non-nil and will be used for request cancellation. If
2674// the context is nil a panic will occur. In the future the SDK may create
2675// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2676// for more information on using Contexts.
2677func (c *ServiceCatalog) DescribeTagOptionWithContext(ctx aws.Context, input *DescribeTagOptionInput, opts ...request.Option) (*DescribeTagOptionOutput, error) {
2678	req, out := c.DescribeTagOptionRequest(input)
2679	req.SetContext(ctx)
2680	req.ApplyOptions(opts...)
2681	return out, req.Send()
2682}
2683
2684const opDisassociatePrincipalFromPortfolio = "DisassociatePrincipalFromPortfolio"
2685
2686// DisassociatePrincipalFromPortfolioRequest generates a "aws/request.Request" representing the
2687// client's request for the DisassociatePrincipalFromPortfolio operation. The "output" return
2688// value will be populated with the request's response once the request completes
2689// successfuly.
2690//
2691// Use "Send" method on the returned Request to send the API call to the service.
2692// the "output" return value is not valid until after Send returns without error.
2693//
2694// See DisassociatePrincipalFromPortfolio for more information on using the DisassociatePrincipalFromPortfolio
2695// API call, and error handling.
2696//
2697// This method is useful when you want to inject custom logic or configuration
2698// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2699//
2700//
2701//    // Example sending a request using the DisassociatePrincipalFromPortfolioRequest method.
2702//    req, resp := client.DisassociatePrincipalFromPortfolioRequest(params)
2703//
2704//    err := req.Send()
2705//    if err == nil { // resp is now filled
2706//        fmt.Println(resp)
2707//    }
2708//
2709// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DisassociatePrincipalFromPortfolio
2710func (c *ServiceCatalog) DisassociatePrincipalFromPortfolioRequest(input *DisassociatePrincipalFromPortfolioInput) (req *request.Request, output *DisassociatePrincipalFromPortfolioOutput) {
2711	op := &request.Operation{
2712		Name:       opDisassociatePrincipalFromPortfolio,
2713		HTTPMethod: "POST",
2714		HTTPPath:   "/",
2715	}
2716
2717	if input == nil {
2718		input = &DisassociatePrincipalFromPortfolioInput{}
2719	}
2720
2721	output = &DisassociatePrincipalFromPortfolioOutput{}
2722	req = c.newRequest(op, input, output)
2723	return
2724}
2725
2726// DisassociatePrincipalFromPortfolio API operation for AWS Service Catalog.
2727//
2728// Disassociates a previously associated principal ARN from a specified portfolio.
2729//
2730// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2731// with awserr.Error's Code and Message methods to get detailed information about
2732// the error.
2733//
2734// See the AWS API reference guide for AWS Service Catalog's
2735// API operation DisassociatePrincipalFromPortfolio for usage and error information.
2736//
2737// Returned Error Codes:
2738//   * ErrCodeInvalidParametersException "InvalidParametersException"
2739//   One or more parameters provided to the operation are not valid.
2740//
2741//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2742//   The specified resource was not found.
2743//
2744// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DisassociatePrincipalFromPortfolio
2745func (c *ServiceCatalog) DisassociatePrincipalFromPortfolio(input *DisassociatePrincipalFromPortfolioInput) (*DisassociatePrincipalFromPortfolioOutput, error) {
2746	req, out := c.DisassociatePrincipalFromPortfolioRequest(input)
2747	return out, req.Send()
2748}
2749
2750// DisassociatePrincipalFromPortfolioWithContext is the same as DisassociatePrincipalFromPortfolio with the addition of
2751// the ability to pass a context and additional request options.
2752//
2753// See DisassociatePrincipalFromPortfolio for details on how to use this API operation.
2754//
2755// The context must be non-nil and will be used for request cancellation. If
2756// the context is nil a panic will occur. In the future the SDK may create
2757// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2758// for more information on using Contexts.
2759func (c *ServiceCatalog) DisassociatePrincipalFromPortfolioWithContext(ctx aws.Context, input *DisassociatePrincipalFromPortfolioInput, opts ...request.Option) (*DisassociatePrincipalFromPortfolioOutput, error) {
2760	req, out := c.DisassociatePrincipalFromPortfolioRequest(input)
2761	req.SetContext(ctx)
2762	req.ApplyOptions(opts...)
2763	return out, req.Send()
2764}
2765
2766const opDisassociateProductFromPortfolio = "DisassociateProductFromPortfolio"
2767
2768// DisassociateProductFromPortfolioRequest generates a "aws/request.Request" representing the
2769// client's request for the DisassociateProductFromPortfolio operation. The "output" return
2770// value will be populated with the request's response once the request completes
2771// successfuly.
2772//
2773// Use "Send" method on the returned Request to send the API call to the service.
2774// the "output" return value is not valid until after Send returns without error.
2775//
2776// See DisassociateProductFromPortfolio for more information on using the DisassociateProductFromPortfolio
2777// API call, and error handling.
2778//
2779// This method is useful when you want to inject custom logic or configuration
2780// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2781//
2782//
2783//    // Example sending a request using the DisassociateProductFromPortfolioRequest method.
2784//    req, resp := client.DisassociateProductFromPortfolioRequest(params)
2785//
2786//    err := req.Send()
2787//    if err == nil { // resp is now filled
2788//        fmt.Println(resp)
2789//    }
2790//
2791// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DisassociateProductFromPortfolio
2792func (c *ServiceCatalog) DisassociateProductFromPortfolioRequest(input *DisassociateProductFromPortfolioInput) (req *request.Request, output *DisassociateProductFromPortfolioOutput) {
2793	op := &request.Operation{
2794		Name:       opDisassociateProductFromPortfolio,
2795		HTTPMethod: "POST",
2796		HTTPPath:   "/",
2797	}
2798
2799	if input == nil {
2800		input = &DisassociateProductFromPortfolioInput{}
2801	}
2802
2803	output = &DisassociateProductFromPortfolioOutput{}
2804	req = c.newRequest(op, input, output)
2805	return
2806}
2807
2808// DisassociateProductFromPortfolio API operation for AWS Service Catalog.
2809//
2810// Disassociates the specified product from the specified portfolio.
2811//
2812// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2813// with awserr.Error's Code and Message methods to get detailed information about
2814// the error.
2815//
2816// See the AWS API reference guide for AWS Service Catalog's
2817// API operation DisassociateProductFromPortfolio for usage and error information.
2818//
2819// Returned Error Codes:
2820//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2821//   The specified resource was not found.
2822//
2823//   * ErrCodeResourceInUseException "ResourceInUseException"
2824//   A resource that is currently in use. Ensure that the resource is not in use
2825//   and retry the operation.
2826//
2827//   * ErrCodeInvalidParametersException "InvalidParametersException"
2828//   One or more parameters provided to the operation are not valid.
2829//
2830// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DisassociateProductFromPortfolio
2831func (c *ServiceCatalog) DisassociateProductFromPortfolio(input *DisassociateProductFromPortfolioInput) (*DisassociateProductFromPortfolioOutput, error) {
2832	req, out := c.DisassociateProductFromPortfolioRequest(input)
2833	return out, req.Send()
2834}
2835
2836// DisassociateProductFromPortfolioWithContext is the same as DisassociateProductFromPortfolio with the addition of
2837// the ability to pass a context and additional request options.
2838//
2839// See DisassociateProductFromPortfolio for details on how to use this API operation.
2840//
2841// The context must be non-nil and will be used for request cancellation. If
2842// the context is nil a panic will occur. In the future the SDK may create
2843// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2844// for more information on using Contexts.
2845func (c *ServiceCatalog) DisassociateProductFromPortfolioWithContext(ctx aws.Context, input *DisassociateProductFromPortfolioInput, opts ...request.Option) (*DisassociateProductFromPortfolioOutput, error) {
2846	req, out := c.DisassociateProductFromPortfolioRequest(input)
2847	req.SetContext(ctx)
2848	req.ApplyOptions(opts...)
2849	return out, req.Send()
2850}
2851
2852const opDisassociateTagOptionFromResource = "DisassociateTagOptionFromResource"
2853
2854// DisassociateTagOptionFromResourceRequest generates a "aws/request.Request" representing the
2855// client's request for the DisassociateTagOptionFromResource operation. The "output" return
2856// value will be populated with the request's response once the request completes
2857// successfuly.
2858//
2859// Use "Send" method on the returned Request to send the API call to the service.
2860// the "output" return value is not valid until after Send returns without error.
2861//
2862// See DisassociateTagOptionFromResource for more information on using the DisassociateTagOptionFromResource
2863// API call, and error handling.
2864//
2865// This method is useful when you want to inject custom logic or configuration
2866// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2867//
2868//
2869//    // Example sending a request using the DisassociateTagOptionFromResourceRequest method.
2870//    req, resp := client.DisassociateTagOptionFromResourceRequest(params)
2871//
2872//    err := req.Send()
2873//    if err == nil { // resp is now filled
2874//        fmt.Println(resp)
2875//    }
2876//
2877// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DisassociateTagOptionFromResource
2878func (c *ServiceCatalog) DisassociateTagOptionFromResourceRequest(input *DisassociateTagOptionFromResourceInput) (req *request.Request, output *DisassociateTagOptionFromResourceOutput) {
2879	op := &request.Operation{
2880		Name:       opDisassociateTagOptionFromResource,
2881		HTTPMethod: "POST",
2882		HTTPPath:   "/",
2883	}
2884
2885	if input == nil {
2886		input = &DisassociateTagOptionFromResourceInput{}
2887	}
2888
2889	output = &DisassociateTagOptionFromResourceOutput{}
2890	req = c.newRequest(op, input, output)
2891	return
2892}
2893
2894// DisassociateTagOptionFromResource API operation for AWS Service Catalog.
2895//
2896// Disassociates the specified TagOption from the specified resource.
2897//
2898// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2899// with awserr.Error's Code and Message methods to get detailed information about
2900// the error.
2901//
2902// See the AWS API reference guide for AWS Service Catalog's
2903// API operation DisassociateTagOptionFromResource for usage and error information.
2904//
2905// Returned Error Codes:
2906//   * ErrCodeTagOptionNotMigratedException "TagOptionNotMigratedException"
2907//   An operation requiring TagOptions failed because the TagOptions migration
2908//   process has not been performed for this account. Please use the AWS console
2909//   to perform the migration process before retrying the operation.
2910//
2911//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2912//   The specified resource was not found.
2913//
2914// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DisassociateTagOptionFromResource
2915func (c *ServiceCatalog) DisassociateTagOptionFromResource(input *DisassociateTagOptionFromResourceInput) (*DisassociateTagOptionFromResourceOutput, error) {
2916	req, out := c.DisassociateTagOptionFromResourceRequest(input)
2917	return out, req.Send()
2918}
2919
2920// DisassociateTagOptionFromResourceWithContext is the same as DisassociateTagOptionFromResource with the addition of
2921// the ability to pass a context and additional request options.
2922//
2923// See DisassociateTagOptionFromResource for details on how to use this API operation.
2924//
2925// The context must be non-nil and will be used for request cancellation. If
2926// the context is nil a panic will occur. In the future the SDK may create
2927// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2928// for more information on using Contexts.
2929func (c *ServiceCatalog) DisassociateTagOptionFromResourceWithContext(ctx aws.Context, input *DisassociateTagOptionFromResourceInput, opts ...request.Option) (*DisassociateTagOptionFromResourceOutput, error) {
2930	req, out := c.DisassociateTagOptionFromResourceRequest(input)
2931	req.SetContext(ctx)
2932	req.ApplyOptions(opts...)
2933	return out, req.Send()
2934}
2935
2936const opExecuteProvisionedProductPlan = "ExecuteProvisionedProductPlan"
2937
2938// ExecuteProvisionedProductPlanRequest generates a "aws/request.Request" representing the
2939// client's request for the ExecuteProvisionedProductPlan operation. The "output" return
2940// value will be populated with the request's response once the request completes
2941// successfuly.
2942//
2943// Use "Send" method on the returned Request to send the API call to the service.
2944// the "output" return value is not valid until after Send returns without error.
2945//
2946// See ExecuteProvisionedProductPlan for more information on using the ExecuteProvisionedProductPlan
2947// API call, and error handling.
2948//
2949// This method is useful when you want to inject custom logic or configuration
2950// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2951//
2952//
2953//    // Example sending a request using the ExecuteProvisionedProductPlanRequest method.
2954//    req, resp := client.ExecuteProvisionedProductPlanRequest(params)
2955//
2956//    err := req.Send()
2957//    if err == nil { // resp is now filled
2958//        fmt.Println(resp)
2959//    }
2960//
2961// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ExecuteProvisionedProductPlan
2962func (c *ServiceCatalog) ExecuteProvisionedProductPlanRequest(input *ExecuteProvisionedProductPlanInput) (req *request.Request, output *ExecuteProvisionedProductPlanOutput) {
2963	op := &request.Operation{
2964		Name:       opExecuteProvisionedProductPlan,
2965		HTTPMethod: "POST",
2966		HTTPPath:   "/",
2967	}
2968
2969	if input == nil {
2970		input = &ExecuteProvisionedProductPlanInput{}
2971	}
2972
2973	output = &ExecuteProvisionedProductPlanOutput{}
2974	req = c.newRequest(op, input, output)
2975	return
2976}
2977
2978// ExecuteProvisionedProductPlan API operation for AWS Service Catalog.
2979//
2980// Provisions or modifies a product based on the resource changes for the specified
2981// plan.
2982//
2983// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2984// with awserr.Error's Code and Message methods to get detailed information about
2985// the error.
2986//
2987// See the AWS API reference guide for AWS Service Catalog's
2988// API operation ExecuteProvisionedProductPlan for usage and error information.
2989//
2990// Returned Error Codes:
2991//   * ErrCodeInvalidParametersException "InvalidParametersException"
2992//   One or more parameters provided to the operation are not valid.
2993//
2994//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2995//   The specified resource was not found.
2996//
2997//   * ErrCodeInvalidStateException "InvalidStateException"
2998//   An attempt was made to modify a resource that is in a state that is not valid.
2999//   Check your resources to ensure that they are in valid states before retrying
3000//   the operation.
3001//
3002// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ExecuteProvisionedProductPlan
3003func (c *ServiceCatalog) ExecuteProvisionedProductPlan(input *ExecuteProvisionedProductPlanInput) (*ExecuteProvisionedProductPlanOutput, error) {
3004	req, out := c.ExecuteProvisionedProductPlanRequest(input)
3005	return out, req.Send()
3006}
3007
3008// ExecuteProvisionedProductPlanWithContext is the same as ExecuteProvisionedProductPlan with the addition of
3009// the ability to pass a context and additional request options.
3010//
3011// See ExecuteProvisionedProductPlan for details on how to use this API operation.
3012//
3013// The context must be non-nil and will be used for request cancellation. If
3014// the context is nil a panic will occur. In the future the SDK may create
3015// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3016// for more information on using Contexts.
3017func (c *ServiceCatalog) ExecuteProvisionedProductPlanWithContext(ctx aws.Context, input *ExecuteProvisionedProductPlanInput, opts ...request.Option) (*ExecuteProvisionedProductPlanOutput, error) {
3018	req, out := c.ExecuteProvisionedProductPlanRequest(input)
3019	req.SetContext(ctx)
3020	req.ApplyOptions(opts...)
3021	return out, req.Send()
3022}
3023
3024const opListAcceptedPortfolioShares = "ListAcceptedPortfolioShares"
3025
3026// ListAcceptedPortfolioSharesRequest generates a "aws/request.Request" representing the
3027// client's request for the ListAcceptedPortfolioShares operation. The "output" return
3028// value will be populated with the request's response once the request completes
3029// successfuly.
3030//
3031// Use "Send" method on the returned Request to send the API call to the service.
3032// the "output" return value is not valid until after Send returns without error.
3033//
3034// See ListAcceptedPortfolioShares for more information on using the ListAcceptedPortfolioShares
3035// API call, and error handling.
3036//
3037// This method is useful when you want to inject custom logic or configuration
3038// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3039//
3040//
3041//    // Example sending a request using the ListAcceptedPortfolioSharesRequest method.
3042//    req, resp := client.ListAcceptedPortfolioSharesRequest(params)
3043//
3044//    err := req.Send()
3045//    if err == nil { // resp is now filled
3046//        fmt.Println(resp)
3047//    }
3048//
3049// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListAcceptedPortfolioShares
3050func (c *ServiceCatalog) ListAcceptedPortfolioSharesRequest(input *ListAcceptedPortfolioSharesInput) (req *request.Request, output *ListAcceptedPortfolioSharesOutput) {
3051	op := &request.Operation{
3052		Name:       opListAcceptedPortfolioShares,
3053		HTTPMethod: "POST",
3054		HTTPPath:   "/",
3055		Paginator: &request.Paginator{
3056			InputTokens:     []string{"PageToken"},
3057			OutputTokens:    []string{"NextPageToken"},
3058			LimitToken:      "PageSize",
3059			TruncationToken: "",
3060		},
3061	}
3062
3063	if input == nil {
3064		input = &ListAcceptedPortfolioSharesInput{}
3065	}
3066
3067	output = &ListAcceptedPortfolioSharesOutput{}
3068	req = c.newRequest(op, input, output)
3069	return
3070}
3071
3072// ListAcceptedPortfolioShares API operation for AWS Service Catalog.
3073//
3074// Lists all portfolios for which sharing was accepted by this account.
3075//
3076// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3077// with awserr.Error's Code and Message methods to get detailed information about
3078// the error.
3079//
3080// See the AWS API reference guide for AWS Service Catalog's
3081// API operation ListAcceptedPortfolioShares for usage and error information.
3082//
3083// Returned Error Codes:
3084//   * ErrCodeInvalidParametersException "InvalidParametersException"
3085//   One or more parameters provided to the operation are not valid.
3086//
3087// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListAcceptedPortfolioShares
3088func (c *ServiceCatalog) ListAcceptedPortfolioShares(input *ListAcceptedPortfolioSharesInput) (*ListAcceptedPortfolioSharesOutput, error) {
3089	req, out := c.ListAcceptedPortfolioSharesRequest(input)
3090	return out, req.Send()
3091}
3092
3093// ListAcceptedPortfolioSharesWithContext is the same as ListAcceptedPortfolioShares with the addition of
3094// the ability to pass a context and additional request options.
3095//
3096// See ListAcceptedPortfolioShares for details on how to use this API operation.
3097//
3098// The context must be non-nil and will be used for request cancellation. If
3099// the context is nil a panic will occur. In the future the SDK may create
3100// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3101// for more information on using Contexts.
3102func (c *ServiceCatalog) ListAcceptedPortfolioSharesWithContext(ctx aws.Context, input *ListAcceptedPortfolioSharesInput, opts ...request.Option) (*ListAcceptedPortfolioSharesOutput, error) {
3103	req, out := c.ListAcceptedPortfolioSharesRequest(input)
3104	req.SetContext(ctx)
3105	req.ApplyOptions(opts...)
3106	return out, req.Send()
3107}
3108
3109// ListAcceptedPortfolioSharesPages iterates over the pages of a ListAcceptedPortfolioShares operation,
3110// calling the "fn" function with the response data for each page. To stop
3111// iterating, return false from the fn function.
3112//
3113// See ListAcceptedPortfolioShares method for more information on how to use this operation.
3114//
3115// Note: This operation can generate multiple requests to a service.
3116//
3117//    // Example iterating over at most 3 pages of a ListAcceptedPortfolioShares operation.
3118//    pageNum := 0
3119//    err := client.ListAcceptedPortfolioSharesPages(params,
3120//        func(page *ListAcceptedPortfolioSharesOutput, lastPage bool) bool {
3121//            pageNum++
3122//            fmt.Println(page)
3123//            return pageNum <= 3
3124//        })
3125//
3126func (c *ServiceCatalog) ListAcceptedPortfolioSharesPages(input *ListAcceptedPortfolioSharesInput, fn func(*ListAcceptedPortfolioSharesOutput, bool) bool) error {
3127	return c.ListAcceptedPortfolioSharesPagesWithContext(aws.BackgroundContext(), input, fn)
3128}
3129
3130// ListAcceptedPortfolioSharesPagesWithContext same as ListAcceptedPortfolioSharesPages except
3131// it takes a Context and allows setting request options on the pages.
3132//
3133// The context must be non-nil and will be used for request cancellation. If
3134// the context is nil a panic will occur. In the future the SDK may create
3135// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3136// for more information on using Contexts.
3137func (c *ServiceCatalog) ListAcceptedPortfolioSharesPagesWithContext(ctx aws.Context, input *ListAcceptedPortfolioSharesInput, fn func(*ListAcceptedPortfolioSharesOutput, bool) bool, opts ...request.Option) error {
3138	p := request.Pagination{
3139		NewRequest: func() (*request.Request, error) {
3140			var inCpy *ListAcceptedPortfolioSharesInput
3141			if input != nil {
3142				tmp := *input
3143				inCpy = &tmp
3144			}
3145			req, _ := c.ListAcceptedPortfolioSharesRequest(inCpy)
3146			req.SetContext(ctx)
3147			req.ApplyOptions(opts...)
3148			return req, nil
3149		},
3150	}
3151
3152	cont := true
3153	for p.Next() && cont {
3154		cont = fn(p.Page().(*ListAcceptedPortfolioSharesOutput), !p.HasNextPage())
3155	}
3156	return p.Err()
3157}
3158
3159const opListConstraintsForPortfolio = "ListConstraintsForPortfolio"
3160
3161// ListConstraintsForPortfolioRequest generates a "aws/request.Request" representing the
3162// client's request for the ListConstraintsForPortfolio operation. The "output" return
3163// value will be populated with the request's response once the request completes
3164// successfuly.
3165//
3166// Use "Send" method on the returned Request to send the API call to the service.
3167// the "output" return value is not valid until after Send returns without error.
3168//
3169// See ListConstraintsForPortfolio for more information on using the ListConstraintsForPortfolio
3170// API call, and error handling.
3171//
3172// This method is useful when you want to inject custom logic or configuration
3173// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3174//
3175//
3176//    // Example sending a request using the ListConstraintsForPortfolioRequest method.
3177//    req, resp := client.ListConstraintsForPortfolioRequest(params)
3178//
3179//    err := req.Send()
3180//    if err == nil { // resp is now filled
3181//        fmt.Println(resp)
3182//    }
3183//
3184// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListConstraintsForPortfolio
3185func (c *ServiceCatalog) ListConstraintsForPortfolioRequest(input *ListConstraintsForPortfolioInput) (req *request.Request, output *ListConstraintsForPortfolioOutput) {
3186	op := &request.Operation{
3187		Name:       opListConstraintsForPortfolio,
3188		HTTPMethod: "POST",
3189		HTTPPath:   "/",
3190		Paginator: &request.Paginator{
3191			InputTokens:     []string{"PageToken"},
3192			OutputTokens:    []string{"NextPageToken"},
3193			LimitToken:      "PageSize",
3194			TruncationToken: "",
3195		},
3196	}
3197
3198	if input == nil {
3199		input = &ListConstraintsForPortfolioInput{}
3200	}
3201
3202	output = &ListConstraintsForPortfolioOutput{}
3203	req = c.newRequest(op, input, output)
3204	return
3205}
3206
3207// ListConstraintsForPortfolio API operation for AWS Service Catalog.
3208//
3209// Lists the constraints for the specified portfolio and product.
3210//
3211// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3212// with awserr.Error's Code and Message methods to get detailed information about
3213// the error.
3214//
3215// See the AWS API reference guide for AWS Service Catalog's
3216// API operation ListConstraintsForPortfolio for usage and error information.
3217//
3218// Returned Error Codes:
3219//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3220//   The specified resource was not found.
3221//
3222//   * ErrCodeInvalidParametersException "InvalidParametersException"
3223//   One or more parameters provided to the operation are not valid.
3224//
3225// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListConstraintsForPortfolio
3226func (c *ServiceCatalog) ListConstraintsForPortfolio(input *ListConstraintsForPortfolioInput) (*ListConstraintsForPortfolioOutput, error) {
3227	req, out := c.ListConstraintsForPortfolioRequest(input)
3228	return out, req.Send()
3229}
3230
3231// ListConstraintsForPortfolioWithContext is the same as ListConstraintsForPortfolio with the addition of
3232// the ability to pass a context and additional request options.
3233//
3234// See ListConstraintsForPortfolio for details on how to use this API operation.
3235//
3236// The context must be non-nil and will be used for request cancellation. If
3237// the context is nil a panic will occur. In the future the SDK may create
3238// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3239// for more information on using Contexts.
3240func (c *ServiceCatalog) ListConstraintsForPortfolioWithContext(ctx aws.Context, input *ListConstraintsForPortfolioInput, opts ...request.Option) (*ListConstraintsForPortfolioOutput, error) {
3241	req, out := c.ListConstraintsForPortfolioRequest(input)
3242	req.SetContext(ctx)
3243	req.ApplyOptions(opts...)
3244	return out, req.Send()
3245}
3246
3247// ListConstraintsForPortfolioPages iterates over the pages of a ListConstraintsForPortfolio operation,
3248// calling the "fn" function with the response data for each page. To stop
3249// iterating, return false from the fn function.
3250//
3251// See ListConstraintsForPortfolio method for more information on how to use this operation.
3252//
3253// Note: This operation can generate multiple requests to a service.
3254//
3255//    // Example iterating over at most 3 pages of a ListConstraintsForPortfolio operation.
3256//    pageNum := 0
3257//    err := client.ListConstraintsForPortfolioPages(params,
3258//        func(page *ListConstraintsForPortfolioOutput, lastPage bool) bool {
3259//            pageNum++
3260//            fmt.Println(page)
3261//            return pageNum <= 3
3262//        })
3263//
3264func (c *ServiceCatalog) ListConstraintsForPortfolioPages(input *ListConstraintsForPortfolioInput, fn func(*ListConstraintsForPortfolioOutput, bool) bool) error {
3265	return c.ListConstraintsForPortfolioPagesWithContext(aws.BackgroundContext(), input, fn)
3266}
3267
3268// ListConstraintsForPortfolioPagesWithContext same as ListConstraintsForPortfolioPages except
3269// it takes a Context and allows setting request options on the pages.
3270//
3271// The context must be non-nil and will be used for request cancellation. If
3272// the context is nil a panic will occur. In the future the SDK may create
3273// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3274// for more information on using Contexts.
3275func (c *ServiceCatalog) ListConstraintsForPortfolioPagesWithContext(ctx aws.Context, input *ListConstraintsForPortfolioInput, fn func(*ListConstraintsForPortfolioOutput, bool) bool, opts ...request.Option) error {
3276	p := request.Pagination{
3277		NewRequest: func() (*request.Request, error) {
3278			var inCpy *ListConstraintsForPortfolioInput
3279			if input != nil {
3280				tmp := *input
3281				inCpy = &tmp
3282			}
3283			req, _ := c.ListConstraintsForPortfolioRequest(inCpy)
3284			req.SetContext(ctx)
3285			req.ApplyOptions(opts...)
3286			return req, nil
3287		},
3288	}
3289
3290	cont := true
3291	for p.Next() && cont {
3292		cont = fn(p.Page().(*ListConstraintsForPortfolioOutput), !p.HasNextPage())
3293	}
3294	return p.Err()
3295}
3296
3297const opListLaunchPaths = "ListLaunchPaths"
3298
3299// ListLaunchPathsRequest generates a "aws/request.Request" representing the
3300// client's request for the ListLaunchPaths operation. The "output" return
3301// value will be populated with the request's response once the request completes
3302// successfuly.
3303//
3304// Use "Send" method on the returned Request to send the API call to the service.
3305// the "output" return value is not valid until after Send returns without error.
3306//
3307// See ListLaunchPaths for more information on using the ListLaunchPaths
3308// API call, and error handling.
3309//
3310// This method is useful when you want to inject custom logic or configuration
3311// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3312//
3313//
3314//    // Example sending a request using the ListLaunchPathsRequest method.
3315//    req, resp := client.ListLaunchPathsRequest(params)
3316//
3317//    err := req.Send()
3318//    if err == nil { // resp is now filled
3319//        fmt.Println(resp)
3320//    }
3321//
3322// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListLaunchPaths
3323func (c *ServiceCatalog) ListLaunchPathsRequest(input *ListLaunchPathsInput) (req *request.Request, output *ListLaunchPathsOutput) {
3324	op := &request.Operation{
3325		Name:       opListLaunchPaths,
3326		HTTPMethod: "POST",
3327		HTTPPath:   "/",
3328		Paginator: &request.Paginator{
3329			InputTokens:     []string{"PageToken"},
3330			OutputTokens:    []string{"NextPageToken"},
3331			LimitToken:      "PageSize",
3332			TruncationToken: "",
3333		},
3334	}
3335
3336	if input == nil {
3337		input = &ListLaunchPathsInput{}
3338	}
3339
3340	output = &ListLaunchPathsOutput{}
3341	req = c.newRequest(op, input, output)
3342	return
3343}
3344
3345// ListLaunchPaths API operation for AWS Service Catalog.
3346//
3347// Lists the paths to the specified product. A path is how the user has access
3348// to a specified product, and is necessary when provisioning a product. A path
3349// also determines the constraints put on the product.
3350//
3351// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3352// with awserr.Error's Code and Message methods to get detailed information about
3353// the error.
3354//
3355// See the AWS API reference guide for AWS Service Catalog's
3356// API operation ListLaunchPaths for usage and error information.
3357//
3358// Returned Error Codes:
3359//   * ErrCodeInvalidParametersException "InvalidParametersException"
3360//   One or more parameters provided to the operation are not valid.
3361//
3362//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3363//   The specified resource was not found.
3364//
3365// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListLaunchPaths
3366func (c *ServiceCatalog) ListLaunchPaths(input *ListLaunchPathsInput) (*ListLaunchPathsOutput, error) {
3367	req, out := c.ListLaunchPathsRequest(input)
3368	return out, req.Send()
3369}
3370
3371// ListLaunchPathsWithContext is the same as ListLaunchPaths with the addition of
3372// the ability to pass a context and additional request options.
3373//
3374// See ListLaunchPaths for details on how to use this API operation.
3375//
3376// The context must be non-nil and will be used for request cancellation. If
3377// the context is nil a panic will occur. In the future the SDK may create
3378// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3379// for more information on using Contexts.
3380func (c *ServiceCatalog) ListLaunchPathsWithContext(ctx aws.Context, input *ListLaunchPathsInput, opts ...request.Option) (*ListLaunchPathsOutput, error) {
3381	req, out := c.ListLaunchPathsRequest(input)
3382	req.SetContext(ctx)
3383	req.ApplyOptions(opts...)
3384	return out, req.Send()
3385}
3386
3387// ListLaunchPathsPages iterates over the pages of a ListLaunchPaths operation,
3388// calling the "fn" function with the response data for each page. To stop
3389// iterating, return false from the fn function.
3390//
3391// See ListLaunchPaths method for more information on how to use this operation.
3392//
3393// Note: This operation can generate multiple requests to a service.
3394//
3395//    // Example iterating over at most 3 pages of a ListLaunchPaths operation.
3396//    pageNum := 0
3397//    err := client.ListLaunchPathsPages(params,
3398//        func(page *ListLaunchPathsOutput, lastPage bool) bool {
3399//            pageNum++
3400//            fmt.Println(page)
3401//            return pageNum <= 3
3402//        })
3403//
3404func (c *ServiceCatalog) ListLaunchPathsPages(input *ListLaunchPathsInput, fn func(*ListLaunchPathsOutput, bool) bool) error {
3405	return c.ListLaunchPathsPagesWithContext(aws.BackgroundContext(), input, fn)
3406}
3407
3408// ListLaunchPathsPagesWithContext same as ListLaunchPathsPages except
3409// it takes a Context and allows setting request options on the pages.
3410//
3411// The context must be non-nil and will be used for request cancellation. If
3412// the context is nil a panic will occur. In the future the SDK may create
3413// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3414// for more information on using Contexts.
3415func (c *ServiceCatalog) ListLaunchPathsPagesWithContext(ctx aws.Context, input *ListLaunchPathsInput, fn func(*ListLaunchPathsOutput, bool) bool, opts ...request.Option) error {
3416	p := request.Pagination{
3417		NewRequest: func() (*request.Request, error) {
3418			var inCpy *ListLaunchPathsInput
3419			if input != nil {
3420				tmp := *input
3421				inCpy = &tmp
3422			}
3423			req, _ := c.ListLaunchPathsRequest(inCpy)
3424			req.SetContext(ctx)
3425			req.ApplyOptions(opts...)
3426			return req, nil
3427		},
3428	}
3429
3430	cont := true
3431	for p.Next() && cont {
3432		cont = fn(p.Page().(*ListLaunchPathsOutput), !p.HasNextPage())
3433	}
3434	return p.Err()
3435}
3436
3437const opListPortfolioAccess = "ListPortfolioAccess"
3438
3439// ListPortfolioAccessRequest generates a "aws/request.Request" representing the
3440// client's request for the ListPortfolioAccess operation. The "output" return
3441// value will be populated with the request's response once the request completes
3442// successfuly.
3443//
3444// Use "Send" method on the returned Request to send the API call to the service.
3445// the "output" return value is not valid until after Send returns without error.
3446//
3447// See ListPortfolioAccess for more information on using the ListPortfolioAccess
3448// API call, and error handling.
3449//
3450// This method is useful when you want to inject custom logic or configuration
3451// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3452//
3453//
3454//    // Example sending a request using the ListPortfolioAccessRequest method.
3455//    req, resp := client.ListPortfolioAccessRequest(params)
3456//
3457//    err := req.Send()
3458//    if err == nil { // resp is now filled
3459//        fmt.Println(resp)
3460//    }
3461//
3462// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPortfolioAccess
3463func (c *ServiceCatalog) ListPortfolioAccessRequest(input *ListPortfolioAccessInput) (req *request.Request, output *ListPortfolioAccessOutput) {
3464	op := &request.Operation{
3465		Name:       opListPortfolioAccess,
3466		HTTPMethod: "POST",
3467		HTTPPath:   "/",
3468	}
3469
3470	if input == nil {
3471		input = &ListPortfolioAccessInput{}
3472	}
3473
3474	output = &ListPortfolioAccessOutput{}
3475	req = c.newRequest(op, input, output)
3476	return
3477}
3478
3479// ListPortfolioAccess API operation for AWS Service Catalog.
3480//
3481// Lists the account IDs that have access to the specified portfolio.
3482//
3483// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3484// with awserr.Error's Code and Message methods to get detailed information about
3485// the error.
3486//
3487// See the AWS API reference guide for AWS Service Catalog's
3488// API operation ListPortfolioAccess for usage and error information.
3489//
3490// Returned Error Codes:
3491//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3492//   The specified resource was not found.
3493//
3494// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPortfolioAccess
3495func (c *ServiceCatalog) ListPortfolioAccess(input *ListPortfolioAccessInput) (*ListPortfolioAccessOutput, error) {
3496	req, out := c.ListPortfolioAccessRequest(input)
3497	return out, req.Send()
3498}
3499
3500// ListPortfolioAccessWithContext is the same as ListPortfolioAccess with the addition of
3501// the ability to pass a context and additional request options.
3502//
3503// See ListPortfolioAccess for details on how to use this API operation.
3504//
3505// The context must be non-nil and will be used for request cancellation. If
3506// the context is nil a panic will occur. In the future the SDK may create
3507// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3508// for more information on using Contexts.
3509func (c *ServiceCatalog) ListPortfolioAccessWithContext(ctx aws.Context, input *ListPortfolioAccessInput, opts ...request.Option) (*ListPortfolioAccessOutput, error) {
3510	req, out := c.ListPortfolioAccessRequest(input)
3511	req.SetContext(ctx)
3512	req.ApplyOptions(opts...)
3513	return out, req.Send()
3514}
3515
3516const opListPortfolios = "ListPortfolios"
3517
3518// ListPortfoliosRequest generates a "aws/request.Request" representing the
3519// client's request for the ListPortfolios operation. The "output" return
3520// value will be populated with the request's response once the request completes
3521// successfuly.
3522//
3523// Use "Send" method on the returned Request to send the API call to the service.
3524// the "output" return value is not valid until after Send returns without error.
3525//
3526// See ListPortfolios for more information on using the ListPortfolios
3527// API call, and error handling.
3528//
3529// This method is useful when you want to inject custom logic or configuration
3530// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3531//
3532//
3533//    // Example sending a request using the ListPortfoliosRequest method.
3534//    req, resp := client.ListPortfoliosRequest(params)
3535//
3536//    err := req.Send()
3537//    if err == nil { // resp is now filled
3538//        fmt.Println(resp)
3539//    }
3540//
3541// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPortfolios
3542func (c *ServiceCatalog) ListPortfoliosRequest(input *ListPortfoliosInput) (req *request.Request, output *ListPortfoliosOutput) {
3543	op := &request.Operation{
3544		Name:       opListPortfolios,
3545		HTTPMethod: "POST",
3546		HTTPPath:   "/",
3547		Paginator: &request.Paginator{
3548			InputTokens:     []string{"PageToken"},
3549			OutputTokens:    []string{"NextPageToken"},
3550			LimitToken:      "PageSize",
3551			TruncationToken: "",
3552		},
3553	}
3554
3555	if input == nil {
3556		input = &ListPortfoliosInput{}
3557	}
3558
3559	output = &ListPortfoliosOutput{}
3560	req = c.newRequest(op, input, output)
3561	return
3562}
3563
3564// ListPortfolios API operation for AWS Service Catalog.
3565//
3566// Lists all portfolios in the catalog.
3567//
3568// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3569// with awserr.Error's Code and Message methods to get detailed information about
3570// the error.
3571//
3572// See the AWS API reference guide for AWS Service Catalog's
3573// API operation ListPortfolios for usage and error information.
3574//
3575// Returned Error Codes:
3576//   * ErrCodeInvalidParametersException "InvalidParametersException"
3577//   One or more parameters provided to the operation are not valid.
3578//
3579// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPortfolios
3580func (c *ServiceCatalog) ListPortfolios(input *ListPortfoliosInput) (*ListPortfoliosOutput, error) {
3581	req, out := c.ListPortfoliosRequest(input)
3582	return out, req.Send()
3583}
3584
3585// ListPortfoliosWithContext is the same as ListPortfolios with the addition of
3586// the ability to pass a context and additional request options.
3587//
3588// See ListPortfolios for details on how to use this API operation.
3589//
3590// The context must be non-nil and will be used for request cancellation. If
3591// the context is nil a panic will occur. In the future the SDK may create
3592// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3593// for more information on using Contexts.
3594func (c *ServiceCatalog) ListPortfoliosWithContext(ctx aws.Context, input *ListPortfoliosInput, opts ...request.Option) (*ListPortfoliosOutput, error) {
3595	req, out := c.ListPortfoliosRequest(input)
3596	req.SetContext(ctx)
3597	req.ApplyOptions(opts...)
3598	return out, req.Send()
3599}
3600
3601// ListPortfoliosPages iterates over the pages of a ListPortfolios operation,
3602// calling the "fn" function with the response data for each page. To stop
3603// iterating, return false from the fn function.
3604//
3605// See ListPortfolios method for more information on how to use this operation.
3606//
3607// Note: This operation can generate multiple requests to a service.
3608//
3609//    // Example iterating over at most 3 pages of a ListPortfolios operation.
3610//    pageNum := 0
3611//    err := client.ListPortfoliosPages(params,
3612//        func(page *ListPortfoliosOutput, lastPage bool) bool {
3613//            pageNum++
3614//            fmt.Println(page)
3615//            return pageNum <= 3
3616//        })
3617//
3618func (c *ServiceCatalog) ListPortfoliosPages(input *ListPortfoliosInput, fn func(*ListPortfoliosOutput, bool) bool) error {
3619	return c.ListPortfoliosPagesWithContext(aws.BackgroundContext(), input, fn)
3620}
3621
3622// ListPortfoliosPagesWithContext same as ListPortfoliosPages except
3623// it takes a Context and allows setting request options on the pages.
3624//
3625// The context must be non-nil and will be used for request cancellation. If
3626// the context is nil a panic will occur. In the future the SDK may create
3627// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3628// for more information on using Contexts.
3629func (c *ServiceCatalog) ListPortfoliosPagesWithContext(ctx aws.Context, input *ListPortfoliosInput, fn func(*ListPortfoliosOutput, bool) bool, opts ...request.Option) error {
3630	p := request.Pagination{
3631		NewRequest: func() (*request.Request, error) {
3632			var inCpy *ListPortfoliosInput
3633			if input != nil {
3634				tmp := *input
3635				inCpy = &tmp
3636			}
3637			req, _ := c.ListPortfoliosRequest(inCpy)
3638			req.SetContext(ctx)
3639			req.ApplyOptions(opts...)
3640			return req, nil
3641		},
3642	}
3643
3644	cont := true
3645	for p.Next() && cont {
3646		cont = fn(p.Page().(*ListPortfoliosOutput), !p.HasNextPage())
3647	}
3648	return p.Err()
3649}
3650
3651const opListPortfoliosForProduct = "ListPortfoliosForProduct"
3652
3653// ListPortfoliosForProductRequest generates a "aws/request.Request" representing the
3654// client's request for the ListPortfoliosForProduct operation. The "output" return
3655// value will be populated with the request's response once the request completes
3656// successfuly.
3657//
3658// Use "Send" method on the returned Request to send the API call to the service.
3659// the "output" return value is not valid until after Send returns without error.
3660//
3661// See ListPortfoliosForProduct for more information on using the ListPortfoliosForProduct
3662// API call, and error handling.
3663//
3664// This method is useful when you want to inject custom logic or configuration
3665// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3666//
3667//
3668//    // Example sending a request using the ListPortfoliosForProductRequest method.
3669//    req, resp := client.ListPortfoliosForProductRequest(params)
3670//
3671//    err := req.Send()
3672//    if err == nil { // resp is now filled
3673//        fmt.Println(resp)
3674//    }
3675//
3676// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPortfoliosForProduct
3677func (c *ServiceCatalog) ListPortfoliosForProductRequest(input *ListPortfoliosForProductInput) (req *request.Request, output *ListPortfoliosForProductOutput) {
3678	op := &request.Operation{
3679		Name:       opListPortfoliosForProduct,
3680		HTTPMethod: "POST",
3681		HTTPPath:   "/",
3682		Paginator: &request.Paginator{
3683			InputTokens:     []string{"PageToken"},
3684			OutputTokens:    []string{"NextPageToken"},
3685			LimitToken:      "PageSize",
3686			TruncationToken: "",
3687		},
3688	}
3689
3690	if input == nil {
3691		input = &ListPortfoliosForProductInput{}
3692	}
3693
3694	output = &ListPortfoliosForProductOutput{}
3695	req = c.newRequest(op, input, output)
3696	return
3697}
3698
3699// ListPortfoliosForProduct API operation for AWS Service Catalog.
3700//
3701// Lists all portfolios that the specified product is associated with.
3702//
3703// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3704// with awserr.Error's Code and Message methods to get detailed information about
3705// the error.
3706//
3707// See the AWS API reference guide for AWS Service Catalog's
3708// API operation ListPortfoliosForProduct for usage and error information.
3709//
3710// Returned Error Codes:
3711//   * ErrCodeInvalidParametersException "InvalidParametersException"
3712//   One or more parameters provided to the operation are not valid.
3713//
3714//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3715//   The specified resource was not found.
3716//
3717// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPortfoliosForProduct
3718func (c *ServiceCatalog) ListPortfoliosForProduct(input *ListPortfoliosForProductInput) (*ListPortfoliosForProductOutput, error) {
3719	req, out := c.ListPortfoliosForProductRequest(input)
3720	return out, req.Send()
3721}
3722
3723// ListPortfoliosForProductWithContext is the same as ListPortfoliosForProduct with the addition of
3724// the ability to pass a context and additional request options.
3725//
3726// See ListPortfoliosForProduct for details on how to use this API operation.
3727//
3728// The context must be non-nil and will be used for request cancellation. If
3729// the context is nil a panic will occur. In the future the SDK may create
3730// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3731// for more information on using Contexts.
3732func (c *ServiceCatalog) ListPortfoliosForProductWithContext(ctx aws.Context, input *ListPortfoliosForProductInput, opts ...request.Option) (*ListPortfoliosForProductOutput, error) {
3733	req, out := c.ListPortfoliosForProductRequest(input)
3734	req.SetContext(ctx)
3735	req.ApplyOptions(opts...)
3736	return out, req.Send()
3737}
3738
3739// ListPortfoliosForProductPages iterates over the pages of a ListPortfoliosForProduct operation,
3740// calling the "fn" function with the response data for each page. To stop
3741// iterating, return false from the fn function.
3742//
3743// See ListPortfoliosForProduct method for more information on how to use this operation.
3744//
3745// Note: This operation can generate multiple requests to a service.
3746//
3747//    // Example iterating over at most 3 pages of a ListPortfoliosForProduct operation.
3748//    pageNum := 0
3749//    err := client.ListPortfoliosForProductPages(params,
3750//        func(page *ListPortfoliosForProductOutput, lastPage bool) bool {
3751//            pageNum++
3752//            fmt.Println(page)
3753//            return pageNum <= 3
3754//        })
3755//
3756func (c *ServiceCatalog) ListPortfoliosForProductPages(input *ListPortfoliosForProductInput, fn func(*ListPortfoliosForProductOutput, bool) bool) error {
3757	return c.ListPortfoliosForProductPagesWithContext(aws.BackgroundContext(), input, fn)
3758}
3759
3760// ListPortfoliosForProductPagesWithContext same as ListPortfoliosForProductPages except
3761// it takes a Context and allows setting request options on the pages.
3762//
3763// The context must be non-nil and will be used for request cancellation. If
3764// the context is nil a panic will occur. In the future the SDK may create
3765// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3766// for more information on using Contexts.
3767func (c *ServiceCatalog) ListPortfoliosForProductPagesWithContext(ctx aws.Context, input *ListPortfoliosForProductInput, fn func(*ListPortfoliosForProductOutput, bool) bool, opts ...request.Option) error {
3768	p := request.Pagination{
3769		NewRequest: func() (*request.Request, error) {
3770			var inCpy *ListPortfoliosForProductInput
3771			if input != nil {
3772				tmp := *input
3773				inCpy = &tmp
3774			}
3775			req, _ := c.ListPortfoliosForProductRequest(inCpy)
3776			req.SetContext(ctx)
3777			req.ApplyOptions(opts...)
3778			return req, nil
3779		},
3780	}
3781
3782	cont := true
3783	for p.Next() && cont {
3784		cont = fn(p.Page().(*ListPortfoliosForProductOutput), !p.HasNextPage())
3785	}
3786	return p.Err()
3787}
3788
3789const opListPrincipalsForPortfolio = "ListPrincipalsForPortfolio"
3790
3791// ListPrincipalsForPortfolioRequest generates a "aws/request.Request" representing the
3792// client's request for the ListPrincipalsForPortfolio operation. The "output" return
3793// value will be populated with the request's response once the request completes
3794// successfuly.
3795//
3796// Use "Send" method on the returned Request to send the API call to the service.
3797// the "output" return value is not valid until after Send returns without error.
3798//
3799// See ListPrincipalsForPortfolio for more information on using the ListPrincipalsForPortfolio
3800// API call, and error handling.
3801//
3802// This method is useful when you want to inject custom logic or configuration
3803// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3804//
3805//
3806//    // Example sending a request using the ListPrincipalsForPortfolioRequest method.
3807//    req, resp := client.ListPrincipalsForPortfolioRequest(params)
3808//
3809//    err := req.Send()
3810//    if err == nil { // resp is now filled
3811//        fmt.Println(resp)
3812//    }
3813//
3814// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPrincipalsForPortfolio
3815func (c *ServiceCatalog) ListPrincipalsForPortfolioRequest(input *ListPrincipalsForPortfolioInput) (req *request.Request, output *ListPrincipalsForPortfolioOutput) {
3816	op := &request.Operation{
3817		Name:       opListPrincipalsForPortfolio,
3818		HTTPMethod: "POST",
3819		HTTPPath:   "/",
3820		Paginator: &request.Paginator{
3821			InputTokens:     []string{"PageToken"},
3822			OutputTokens:    []string{"NextPageToken"},
3823			LimitToken:      "PageSize",
3824			TruncationToken: "",
3825		},
3826	}
3827
3828	if input == nil {
3829		input = &ListPrincipalsForPortfolioInput{}
3830	}
3831
3832	output = &ListPrincipalsForPortfolioOutput{}
3833	req = c.newRequest(op, input, output)
3834	return
3835}
3836
3837// ListPrincipalsForPortfolio API operation for AWS Service Catalog.
3838//
3839// Lists all principal ARNs associated with the specified portfolio.
3840//
3841// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3842// with awserr.Error's Code and Message methods to get detailed information about
3843// the error.
3844//
3845// See the AWS API reference guide for AWS Service Catalog's
3846// API operation ListPrincipalsForPortfolio for usage and error information.
3847//
3848// Returned Error Codes:
3849//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3850//   The specified resource was not found.
3851//
3852//   * ErrCodeInvalidParametersException "InvalidParametersException"
3853//   One or more parameters provided to the operation are not valid.
3854//
3855// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPrincipalsForPortfolio
3856func (c *ServiceCatalog) ListPrincipalsForPortfolio(input *ListPrincipalsForPortfolioInput) (*ListPrincipalsForPortfolioOutput, error) {
3857	req, out := c.ListPrincipalsForPortfolioRequest(input)
3858	return out, req.Send()
3859}
3860
3861// ListPrincipalsForPortfolioWithContext is the same as ListPrincipalsForPortfolio with the addition of
3862// the ability to pass a context and additional request options.
3863//
3864// See ListPrincipalsForPortfolio for details on how to use this API operation.
3865//
3866// The context must be non-nil and will be used for request cancellation. If
3867// the context is nil a panic will occur. In the future the SDK may create
3868// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3869// for more information on using Contexts.
3870func (c *ServiceCatalog) ListPrincipalsForPortfolioWithContext(ctx aws.Context, input *ListPrincipalsForPortfolioInput, opts ...request.Option) (*ListPrincipalsForPortfolioOutput, error) {
3871	req, out := c.ListPrincipalsForPortfolioRequest(input)
3872	req.SetContext(ctx)
3873	req.ApplyOptions(opts...)
3874	return out, req.Send()
3875}
3876
3877// ListPrincipalsForPortfolioPages iterates over the pages of a ListPrincipalsForPortfolio operation,
3878// calling the "fn" function with the response data for each page. To stop
3879// iterating, return false from the fn function.
3880//
3881// See ListPrincipalsForPortfolio method for more information on how to use this operation.
3882//
3883// Note: This operation can generate multiple requests to a service.
3884//
3885//    // Example iterating over at most 3 pages of a ListPrincipalsForPortfolio operation.
3886//    pageNum := 0
3887//    err := client.ListPrincipalsForPortfolioPages(params,
3888//        func(page *ListPrincipalsForPortfolioOutput, lastPage bool) bool {
3889//            pageNum++
3890//            fmt.Println(page)
3891//            return pageNum <= 3
3892//        })
3893//
3894func (c *ServiceCatalog) ListPrincipalsForPortfolioPages(input *ListPrincipalsForPortfolioInput, fn func(*ListPrincipalsForPortfolioOutput, bool) bool) error {
3895	return c.ListPrincipalsForPortfolioPagesWithContext(aws.BackgroundContext(), input, fn)
3896}
3897
3898// ListPrincipalsForPortfolioPagesWithContext same as ListPrincipalsForPortfolioPages except
3899// it takes a Context and allows setting request options on the pages.
3900//
3901// The context must be non-nil and will be used for request cancellation. If
3902// the context is nil a panic will occur. In the future the SDK may create
3903// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3904// for more information on using Contexts.
3905func (c *ServiceCatalog) ListPrincipalsForPortfolioPagesWithContext(ctx aws.Context, input *ListPrincipalsForPortfolioInput, fn func(*ListPrincipalsForPortfolioOutput, bool) bool, opts ...request.Option) error {
3906	p := request.Pagination{
3907		NewRequest: func() (*request.Request, error) {
3908			var inCpy *ListPrincipalsForPortfolioInput
3909			if input != nil {
3910				tmp := *input
3911				inCpy = &tmp
3912			}
3913			req, _ := c.ListPrincipalsForPortfolioRequest(inCpy)
3914			req.SetContext(ctx)
3915			req.ApplyOptions(opts...)
3916			return req, nil
3917		},
3918	}
3919
3920	cont := true
3921	for p.Next() && cont {
3922		cont = fn(p.Page().(*ListPrincipalsForPortfolioOutput), !p.HasNextPage())
3923	}
3924	return p.Err()
3925}
3926
3927const opListProvisionedProductPlans = "ListProvisionedProductPlans"
3928
3929// ListProvisionedProductPlansRequest generates a "aws/request.Request" representing the
3930// client's request for the ListProvisionedProductPlans operation. The "output" return
3931// value will be populated with the request's response once the request completes
3932// successfuly.
3933//
3934// Use "Send" method on the returned Request to send the API call to the service.
3935// the "output" return value is not valid until after Send returns without error.
3936//
3937// See ListProvisionedProductPlans for more information on using the ListProvisionedProductPlans
3938// API call, and error handling.
3939//
3940// This method is useful when you want to inject custom logic or configuration
3941// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3942//
3943//
3944//    // Example sending a request using the ListProvisionedProductPlansRequest method.
3945//    req, resp := client.ListProvisionedProductPlansRequest(params)
3946//
3947//    err := req.Send()
3948//    if err == nil { // resp is now filled
3949//        fmt.Println(resp)
3950//    }
3951//
3952// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListProvisionedProductPlans
3953func (c *ServiceCatalog) ListProvisionedProductPlansRequest(input *ListProvisionedProductPlansInput) (req *request.Request, output *ListProvisionedProductPlansOutput) {
3954	op := &request.Operation{
3955		Name:       opListProvisionedProductPlans,
3956		HTTPMethod: "POST",
3957		HTTPPath:   "/",
3958	}
3959
3960	if input == nil {
3961		input = &ListProvisionedProductPlansInput{}
3962	}
3963
3964	output = &ListProvisionedProductPlansOutput{}
3965	req = c.newRequest(op, input, output)
3966	return
3967}
3968
3969// ListProvisionedProductPlans API operation for AWS Service Catalog.
3970//
3971// Lists the plans for the specified provisioned product or all plans to which
3972// the user has access.
3973//
3974// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3975// with awserr.Error's Code and Message methods to get detailed information about
3976// the error.
3977//
3978// See the AWS API reference guide for AWS Service Catalog's
3979// API operation ListProvisionedProductPlans for usage and error information.
3980//
3981// Returned Error Codes:
3982//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3983//   The specified resource was not found.
3984//
3985//   * ErrCodeInvalidParametersException "InvalidParametersException"
3986//   One or more parameters provided to the operation are not valid.
3987//
3988// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListProvisionedProductPlans
3989func (c *ServiceCatalog) ListProvisionedProductPlans(input *ListProvisionedProductPlansInput) (*ListProvisionedProductPlansOutput, error) {
3990	req, out := c.ListProvisionedProductPlansRequest(input)
3991	return out, req.Send()
3992}
3993
3994// ListProvisionedProductPlansWithContext is the same as ListProvisionedProductPlans with the addition of
3995// the ability to pass a context and additional request options.
3996//
3997// See ListProvisionedProductPlans for details on how to use this API operation.
3998//
3999// The context must be non-nil and will be used for request cancellation. If
4000// the context is nil a panic will occur. In the future the SDK may create
4001// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4002// for more information on using Contexts.
4003func (c *ServiceCatalog) ListProvisionedProductPlansWithContext(ctx aws.Context, input *ListProvisionedProductPlansInput, opts ...request.Option) (*ListProvisionedProductPlansOutput, error) {
4004	req, out := c.ListProvisionedProductPlansRequest(input)
4005	req.SetContext(ctx)
4006	req.ApplyOptions(opts...)
4007	return out, req.Send()
4008}
4009
4010const opListProvisioningArtifacts = "ListProvisioningArtifacts"
4011
4012// ListProvisioningArtifactsRequest generates a "aws/request.Request" representing the
4013// client's request for the ListProvisioningArtifacts operation. The "output" return
4014// value will be populated with the request's response once the request completes
4015// successfuly.
4016//
4017// Use "Send" method on the returned Request to send the API call to the service.
4018// the "output" return value is not valid until after Send returns without error.
4019//
4020// See ListProvisioningArtifacts for more information on using the ListProvisioningArtifacts
4021// API call, and error handling.
4022//
4023// This method is useful when you want to inject custom logic or configuration
4024// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4025//
4026//
4027//    // Example sending a request using the ListProvisioningArtifactsRequest method.
4028//    req, resp := client.ListProvisioningArtifactsRequest(params)
4029//
4030//    err := req.Send()
4031//    if err == nil { // resp is now filled
4032//        fmt.Println(resp)
4033//    }
4034//
4035// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListProvisioningArtifacts
4036func (c *ServiceCatalog) ListProvisioningArtifactsRequest(input *ListProvisioningArtifactsInput) (req *request.Request, output *ListProvisioningArtifactsOutput) {
4037	op := &request.Operation{
4038		Name:       opListProvisioningArtifacts,
4039		HTTPMethod: "POST",
4040		HTTPPath:   "/",
4041	}
4042
4043	if input == nil {
4044		input = &ListProvisioningArtifactsInput{}
4045	}
4046
4047	output = &ListProvisioningArtifactsOutput{}
4048	req = c.newRequest(op, input, output)
4049	return
4050}
4051
4052// ListProvisioningArtifacts API operation for AWS Service Catalog.
4053//
4054// Lists all provisioning artifacts (also known as versions) for the specified
4055// product.
4056//
4057// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4058// with awserr.Error's Code and Message methods to get detailed information about
4059// the error.
4060//
4061// See the AWS API reference guide for AWS Service Catalog's
4062// API operation ListProvisioningArtifacts for usage and error information.
4063//
4064// Returned Error Codes:
4065//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4066//   The specified resource was not found.
4067//
4068//   * ErrCodeInvalidParametersException "InvalidParametersException"
4069//   One or more parameters provided to the operation are not valid.
4070//
4071// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListProvisioningArtifacts
4072func (c *ServiceCatalog) ListProvisioningArtifacts(input *ListProvisioningArtifactsInput) (*ListProvisioningArtifactsOutput, error) {
4073	req, out := c.ListProvisioningArtifactsRequest(input)
4074	return out, req.Send()
4075}
4076
4077// ListProvisioningArtifactsWithContext is the same as ListProvisioningArtifacts with the addition of
4078// the ability to pass a context and additional request options.
4079//
4080// See ListProvisioningArtifacts for details on how to use this API operation.
4081//
4082// The context must be non-nil and will be used for request cancellation. If
4083// the context is nil a panic will occur. In the future the SDK may create
4084// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4085// for more information on using Contexts.
4086func (c *ServiceCatalog) ListProvisioningArtifactsWithContext(ctx aws.Context, input *ListProvisioningArtifactsInput, opts ...request.Option) (*ListProvisioningArtifactsOutput, error) {
4087	req, out := c.ListProvisioningArtifactsRequest(input)
4088	req.SetContext(ctx)
4089	req.ApplyOptions(opts...)
4090	return out, req.Send()
4091}
4092
4093const opListRecordHistory = "ListRecordHistory"
4094
4095// ListRecordHistoryRequest generates a "aws/request.Request" representing the
4096// client's request for the ListRecordHistory operation. The "output" return
4097// value will be populated with the request's response once the request completes
4098// successfuly.
4099//
4100// Use "Send" method on the returned Request to send the API call to the service.
4101// the "output" return value is not valid until after Send returns without error.
4102//
4103// See ListRecordHistory for more information on using the ListRecordHistory
4104// API call, and error handling.
4105//
4106// This method is useful when you want to inject custom logic or configuration
4107// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4108//
4109//
4110//    // Example sending a request using the ListRecordHistoryRequest method.
4111//    req, resp := client.ListRecordHistoryRequest(params)
4112//
4113//    err := req.Send()
4114//    if err == nil { // resp is now filled
4115//        fmt.Println(resp)
4116//    }
4117//
4118// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListRecordHistory
4119func (c *ServiceCatalog) ListRecordHistoryRequest(input *ListRecordHistoryInput) (req *request.Request, output *ListRecordHistoryOutput) {
4120	op := &request.Operation{
4121		Name:       opListRecordHistory,
4122		HTTPMethod: "POST",
4123		HTTPPath:   "/",
4124	}
4125
4126	if input == nil {
4127		input = &ListRecordHistoryInput{}
4128	}
4129
4130	output = &ListRecordHistoryOutput{}
4131	req = c.newRequest(op, input, output)
4132	return
4133}
4134
4135// ListRecordHistory API operation for AWS Service Catalog.
4136//
4137// Lists the specified requests or all performed requests.
4138//
4139// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4140// with awserr.Error's Code and Message methods to get detailed information about
4141// the error.
4142//
4143// See the AWS API reference guide for AWS Service Catalog's
4144// API operation ListRecordHistory for usage and error information.
4145//
4146// Returned Error Codes:
4147//   * ErrCodeInvalidParametersException "InvalidParametersException"
4148//   One or more parameters provided to the operation are not valid.
4149//
4150// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListRecordHistory
4151func (c *ServiceCatalog) ListRecordHistory(input *ListRecordHistoryInput) (*ListRecordHistoryOutput, error) {
4152	req, out := c.ListRecordHistoryRequest(input)
4153	return out, req.Send()
4154}
4155
4156// ListRecordHistoryWithContext is the same as ListRecordHistory with the addition of
4157// the ability to pass a context and additional request options.
4158//
4159// See ListRecordHistory for details on how to use this API operation.
4160//
4161// The context must be non-nil and will be used for request cancellation. If
4162// the context is nil a panic will occur. In the future the SDK may create
4163// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4164// for more information on using Contexts.
4165func (c *ServiceCatalog) ListRecordHistoryWithContext(ctx aws.Context, input *ListRecordHistoryInput, opts ...request.Option) (*ListRecordHistoryOutput, error) {
4166	req, out := c.ListRecordHistoryRequest(input)
4167	req.SetContext(ctx)
4168	req.ApplyOptions(opts...)
4169	return out, req.Send()
4170}
4171
4172const opListResourcesForTagOption = "ListResourcesForTagOption"
4173
4174// ListResourcesForTagOptionRequest generates a "aws/request.Request" representing the
4175// client's request for the ListResourcesForTagOption operation. The "output" return
4176// value will be populated with the request's response once the request completes
4177// successfuly.
4178//
4179// Use "Send" method on the returned Request to send the API call to the service.
4180// the "output" return value is not valid until after Send returns without error.
4181//
4182// See ListResourcesForTagOption for more information on using the ListResourcesForTagOption
4183// API call, and error handling.
4184//
4185// This method is useful when you want to inject custom logic or configuration
4186// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4187//
4188//
4189//    // Example sending a request using the ListResourcesForTagOptionRequest method.
4190//    req, resp := client.ListResourcesForTagOptionRequest(params)
4191//
4192//    err := req.Send()
4193//    if err == nil { // resp is now filled
4194//        fmt.Println(resp)
4195//    }
4196//
4197// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListResourcesForTagOption
4198func (c *ServiceCatalog) ListResourcesForTagOptionRequest(input *ListResourcesForTagOptionInput) (req *request.Request, output *ListResourcesForTagOptionOutput) {
4199	op := &request.Operation{
4200		Name:       opListResourcesForTagOption,
4201		HTTPMethod: "POST",
4202		HTTPPath:   "/",
4203		Paginator: &request.Paginator{
4204			InputTokens:     []string{"PageToken"},
4205			OutputTokens:    []string{"PageToken"},
4206			LimitToken:      "PageSize",
4207			TruncationToken: "",
4208		},
4209	}
4210
4211	if input == nil {
4212		input = &ListResourcesForTagOptionInput{}
4213	}
4214
4215	output = &ListResourcesForTagOptionOutput{}
4216	req = c.newRequest(op, input, output)
4217	return
4218}
4219
4220// ListResourcesForTagOption API operation for AWS Service Catalog.
4221//
4222// Lists the resources associated with the specified TagOption.
4223//
4224// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4225// with awserr.Error's Code and Message methods to get detailed information about
4226// the error.
4227//
4228// See the AWS API reference guide for AWS Service Catalog's
4229// API operation ListResourcesForTagOption for usage and error information.
4230//
4231// Returned Error Codes:
4232//   * ErrCodeTagOptionNotMigratedException "TagOptionNotMigratedException"
4233//   An operation requiring TagOptions failed because the TagOptions migration
4234//   process has not been performed for this account. Please use the AWS console
4235//   to perform the migration process before retrying the operation.
4236//
4237//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4238//   The specified resource was not found.
4239//
4240//   * ErrCodeInvalidParametersException "InvalidParametersException"
4241//   One or more parameters provided to the operation are not valid.
4242//
4243// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListResourcesForTagOption
4244func (c *ServiceCatalog) ListResourcesForTagOption(input *ListResourcesForTagOptionInput) (*ListResourcesForTagOptionOutput, error) {
4245	req, out := c.ListResourcesForTagOptionRequest(input)
4246	return out, req.Send()
4247}
4248
4249// ListResourcesForTagOptionWithContext is the same as ListResourcesForTagOption with the addition of
4250// the ability to pass a context and additional request options.
4251//
4252// See ListResourcesForTagOption for details on how to use this API operation.
4253//
4254// The context must be non-nil and will be used for request cancellation. If
4255// the context is nil a panic will occur. In the future the SDK may create
4256// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4257// for more information on using Contexts.
4258func (c *ServiceCatalog) ListResourcesForTagOptionWithContext(ctx aws.Context, input *ListResourcesForTagOptionInput, opts ...request.Option) (*ListResourcesForTagOptionOutput, error) {
4259	req, out := c.ListResourcesForTagOptionRequest(input)
4260	req.SetContext(ctx)
4261	req.ApplyOptions(opts...)
4262	return out, req.Send()
4263}
4264
4265// ListResourcesForTagOptionPages iterates over the pages of a ListResourcesForTagOption operation,
4266// calling the "fn" function with the response data for each page. To stop
4267// iterating, return false from the fn function.
4268//
4269// See ListResourcesForTagOption method for more information on how to use this operation.
4270//
4271// Note: This operation can generate multiple requests to a service.
4272//
4273//    // Example iterating over at most 3 pages of a ListResourcesForTagOption operation.
4274//    pageNum := 0
4275//    err := client.ListResourcesForTagOptionPages(params,
4276//        func(page *ListResourcesForTagOptionOutput, lastPage bool) bool {
4277//            pageNum++
4278//            fmt.Println(page)
4279//            return pageNum <= 3
4280//        })
4281//
4282func (c *ServiceCatalog) ListResourcesForTagOptionPages(input *ListResourcesForTagOptionInput, fn func(*ListResourcesForTagOptionOutput, bool) bool) error {
4283	return c.ListResourcesForTagOptionPagesWithContext(aws.BackgroundContext(), input, fn)
4284}
4285
4286// ListResourcesForTagOptionPagesWithContext same as ListResourcesForTagOptionPages except
4287// it takes a Context and allows setting request options on the pages.
4288//
4289// The context must be non-nil and will be used for request cancellation. If
4290// the context is nil a panic will occur. In the future the SDK may create
4291// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4292// for more information on using Contexts.
4293func (c *ServiceCatalog) ListResourcesForTagOptionPagesWithContext(ctx aws.Context, input *ListResourcesForTagOptionInput, fn func(*ListResourcesForTagOptionOutput, bool) bool, opts ...request.Option) error {
4294	p := request.Pagination{
4295		NewRequest: func() (*request.Request, error) {
4296			var inCpy *ListResourcesForTagOptionInput
4297			if input != nil {
4298				tmp := *input
4299				inCpy = &tmp
4300			}
4301			req, _ := c.ListResourcesForTagOptionRequest(inCpy)
4302			req.SetContext(ctx)
4303			req.ApplyOptions(opts...)
4304			return req, nil
4305		},
4306	}
4307
4308	cont := true
4309	for p.Next() && cont {
4310		cont = fn(p.Page().(*ListResourcesForTagOptionOutput), !p.HasNextPage())
4311	}
4312	return p.Err()
4313}
4314
4315const opListTagOptions = "ListTagOptions"
4316
4317// ListTagOptionsRequest generates a "aws/request.Request" representing the
4318// client's request for the ListTagOptions operation. The "output" return
4319// value will be populated with the request's response once the request completes
4320// successfuly.
4321//
4322// Use "Send" method on the returned Request to send the API call to the service.
4323// the "output" return value is not valid until after Send returns without error.
4324//
4325// See ListTagOptions for more information on using the ListTagOptions
4326// API call, and error handling.
4327//
4328// This method is useful when you want to inject custom logic or configuration
4329// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4330//
4331//
4332//    // Example sending a request using the ListTagOptionsRequest method.
4333//    req, resp := client.ListTagOptionsRequest(params)
4334//
4335//    err := req.Send()
4336//    if err == nil { // resp is now filled
4337//        fmt.Println(resp)
4338//    }
4339//
4340// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListTagOptions
4341func (c *ServiceCatalog) ListTagOptionsRequest(input *ListTagOptionsInput) (req *request.Request, output *ListTagOptionsOutput) {
4342	op := &request.Operation{
4343		Name:       opListTagOptions,
4344		HTTPMethod: "POST",
4345		HTTPPath:   "/",
4346		Paginator: &request.Paginator{
4347			InputTokens:     []string{"PageToken"},
4348			OutputTokens:    []string{"PageToken"},
4349			LimitToken:      "PageSize",
4350			TruncationToken: "",
4351		},
4352	}
4353
4354	if input == nil {
4355		input = &ListTagOptionsInput{}
4356	}
4357
4358	output = &ListTagOptionsOutput{}
4359	req = c.newRequest(op, input, output)
4360	return
4361}
4362
4363// ListTagOptions API operation for AWS Service Catalog.
4364//
4365// Lists the specified TagOptions or all TagOptions.
4366//
4367// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4368// with awserr.Error's Code and Message methods to get detailed information about
4369// the error.
4370//
4371// See the AWS API reference guide for AWS Service Catalog's
4372// API operation ListTagOptions for usage and error information.
4373//
4374// Returned Error Codes:
4375//   * ErrCodeTagOptionNotMigratedException "TagOptionNotMigratedException"
4376//   An operation requiring TagOptions failed because the TagOptions migration
4377//   process has not been performed for this account. Please use the AWS console
4378//   to perform the migration process before retrying the operation.
4379//
4380//   * ErrCodeInvalidParametersException "InvalidParametersException"
4381//   One or more parameters provided to the operation are not valid.
4382//
4383// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListTagOptions
4384func (c *ServiceCatalog) ListTagOptions(input *ListTagOptionsInput) (*ListTagOptionsOutput, error) {
4385	req, out := c.ListTagOptionsRequest(input)
4386	return out, req.Send()
4387}
4388
4389// ListTagOptionsWithContext is the same as ListTagOptions with the addition of
4390// the ability to pass a context and additional request options.
4391//
4392// See ListTagOptions for details on how to use this API operation.
4393//
4394// The context must be non-nil and will be used for request cancellation. If
4395// the context is nil a panic will occur. In the future the SDK may create
4396// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4397// for more information on using Contexts.
4398func (c *ServiceCatalog) ListTagOptionsWithContext(ctx aws.Context, input *ListTagOptionsInput, opts ...request.Option) (*ListTagOptionsOutput, error) {
4399	req, out := c.ListTagOptionsRequest(input)
4400	req.SetContext(ctx)
4401	req.ApplyOptions(opts...)
4402	return out, req.Send()
4403}
4404
4405// ListTagOptionsPages iterates over the pages of a ListTagOptions operation,
4406// calling the "fn" function with the response data for each page. To stop
4407// iterating, return false from the fn function.
4408//
4409// See ListTagOptions method for more information on how to use this operation.
4410//
4411// Note: This operation can generate multiple requests to a service.
4412//
4413//    // Example iterating over at most 3 pages of a ListTagOptions operation.
4414//    pageNum := 0
4415//    err := client.ListTagOptionsPages(params,
4416//        func(page *ListTagOptionsOutput, lastPage bool) bool {
4417//            pageNum++
4418//            fmt.Println(page)
4419//            return pageNum <= 3
4420//        })
4421//
4422func (c *ServiceCatalog) ListTagOptionsPages(input *ListTagOptionsInput, fn func(*ListTagOptionsOutput, bool) bool) error {
4423	return c.ListTagOptionsPagesWithContext(aws.BackgroundContext(), input, fn)
4424}
4425
4426// ListTagOptionsPagesWithContext same as ListTagOptionsPages except
4427// it takes a Context and allows setting request options on the pages.
4428//
4429// The context must be non-nil and will be used for request cancellation. If
4430// the context is nil a panic will occur. In the future the SDK may create
4431// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4432// for more information on using Contexts.
4433func (c *ServiceCatalog) ListTagOptionsPagesWithContext(ctx aws.Context, input *ListTagOptionsInput, fn func(*ListTagOptionsOutput, bool) bool, opts ...request.Option) error {
4434	p := request.Pagination{
4435		NewRequest: func() (*request.Request, error) {
4436			var inCpy *ListTagOptionsInput
4437			if input != nil {
4438				tmp := *input
4439				inCpy = &tmp
4440			}
4441			req, _ := c.ListTagOptionsRequest(inCpy)
4442			req.SetContext(ctx)
4443			req.ApplyOptions(opts...)
4444			return req, nil
4445		},
4446	}
4447
4448	cont := true
4449	for p.Next() && cont {
4450		cont = fn(p.Page().(*ListTagOptionsOutput), !p.HasNextPage())
4451	}
4452	return p.Err()
4453}
4454
4455const opProvisionProduct = "ProvisionProduct"
4456
4457// ProvisionProductRequest generates a "aws/request.Request" representing the
4458// client's request for the ProvisionProduct operation. The "output" return
4459// value will be populated with the request's response once the request completes
4460// successfuly.
4461//
4462// Use "Send" method on the returned Request to send the API call to the service.
4463// the "output" return value is not valid until after Send returns without error.
4464//
4465// See ProvisionProduct for more information on using the ProvisionProduct
4466// API call, and error handling.
4467//
4468// This method is useful when you want to inject custom logic or configuration
4469// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4470//
4471//
4472//    // Example sending a request using the ProvisionProductRequest method.
4473//    req, resp := client.ProvisionProductRequest(params)
4474//
4475//    err := req.Send()
4476//    if err == nil { // resp is now filled
4477//        fmt.Println(resp)
4478//    }
4479//
4480// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ProvisionProduct
4481func (c *ServiceCatalog) ProvisionProductRequest(input *ProvisionProductInput) (req *request.Request, output *ProvisionProductOutput) {
4482	op := &request.Operation{
4483		Name:       opProvisionProduct,
4484		HTTPMethod: "POST",
4485		HTTPPath:   "/",
4486	}
4487
4488	if input == nil {
4489		input = &ProvisionProductInput{}
4490	}
4491
4492	output = &ProvisionProductOutput{}
4493	req = c.newRequest(op, input, output)
4494	return
4495}
4496
4497// ProvisionProduct API operation for AWS Service Catalog.
4498//
4499// Provisions the specified product.
4500//
4501// A provisioned product is a resourced instance of a product. For example,
4502// provisioning a product based on a CloudFormation template launches a CloudFormation
4503// stack and its underlying resources. You can check the status of this request
4504// using DescribeRecord.
4505//
4506// If the request contains a tag key with an empty list of values, there is
4507// a tag conflict for that key. Do not include conflicted keys as tags, or this
4508// causes the error "Parameter validation failed: Missing required parameter
4509// in Tags[N]:Value".
4510//
4511// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4512// with awserr.Error's Code and Message methods to get detailed information about
4513// the error.
4514//
4515// See the AWS API reference guide for AWS Service Catalog's
4516// API operation ProvisionProduct for usage and error information.
4517//
4518// Returned Error Codes:
4519//   * ErrCodeInvalidParametersException "InvalidParametersException"
4520//   One or more parameters provided to the operation are not valid.
4521//
4522//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4523//   The specified resource was not found.
4524//
4525//   * ErrCodeDuplicateResourceException "DuplicateResourceException"
4526//   The specified resource is a duplicate.
4527//
4528// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ProvisionProduct
4529func (c *ServiceCatalog) ProvisionProduct(input *ProvisionProductInput) (*ProvisionProductOutput, error) {
4530	req, out := c.ProvisionProductRequest(input)
4531	return out, req.Send()
4532}
4533
4534// ProvisionProductWithContext is the same as ProvisionProduct with the addition of
4535// the ability to pass a context and additional request options.
4536//
4537// See ProvisionProduct for details on how to use this API operation.
4538//
4539// The context must be non-nil and will be used for request cancellation. If
4540// the context is nil a panic will occur. In the future the SDK may create
4541// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4542// for more information on using Contexts.
4543func (c *ServiceCatalog) ProvisionProductWithContext(ctx aws.Context, input *ProvisionProductInput, opts ...request.Option) (*ProvisionProductOutput, error) {
4544	req, out := c.ProvisionProductRequest(input)
4545	req.SetContext(ctx)
4546	req.ApplyOptions(opts...)
4547	return out, req.Send()
4548}
4549
4550const opRejectPortfolioShare = "RejectPortfolioShare"
4551
4552// RejectPortfolioShareRequest generates a "aws/request.Request" representing the
4553// client's request for the RejectPortfolioShare operation. The "output" return
4554// value will be populated with the request's response once the request completes
4555// successfuly.
4556//
4557// Use "Send" method on the returned Request to send the API call to the service.
4558// the "output" return value is not valid until after Send returns without error.
4559//
4560// See RejectPortfolioShare for more information on using the RejectPortfolioShare
4561// API call, and error handling.
4562//
4563// This method is useful when you want to inject custom logic or configuration
4564// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4565//
4566//
4567//    // Example sending a request using the RejectPortfolioShareRequest method.
4568//    req, resp := client.RejectPortfolioShareRequest(params)
4569//
4570//    err := req.Send()
4571//    if err == nil { // resp is now filled
4572//        fmt.Println(resp)
4573//    }
4574//
4575// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/RejectPortfolioShare
4576func (c *ServiceCatalog) RejectPortfolioShareRequest(input *RejectPortfolioShareInput) (req *request.Request, output *RejectPortfolioShareOutput) {
4577	op := &request.Operation{
4578		Name:       opRejectPortfolioShare,
4579		HTTPMethod: "POST",
4580		HTTPPath:   "/",
4581	}
4582
4583	if input == nil {
4584		input = &RejectPortfolioShareInput{}
4585	}
4586
4587	output = &RejectPortfolioShareOutput{}
4588	req = c.newRequest(op, input, output)
4589	return
4590}
4591
4592// RejectPortfolioShare API operation for AWS Service Catalog.
4593//
4594// Rejects an offer to share the specified portfolio.
4595//
4596// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4597// with awserr.Error's Code and Message methods to get detailed information about
4598// the error.
4599//
4600// See the AWS API reference guide for AWS Service Catalog's
4601// API operation RejectPortfolioShare for usage and error information.
4602//
4603// Returned Error Codes:
4604//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4605//   The specified resource was not found.
4606//
4607// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/RejectPortfolioShare
4608func (c *ServiceCatalog) RejectPortfolioShare(input *RejectPortfolioShareInput) (*RejectPortfolioShareOutput, error) {
4609	req, out := c.RejectPortfolioShareRequest(input)
4610	return out, req.Send()
4611}
4612
4613// RejectPortfolioShareWithContext is the same as RejectPortfolioShare with the addition of
4614// the ability to pass a context and additional request options.
4615//
4616// See RejectPortfolioShare for details on how to use this API operation.
4617//
4618// The context must be non-nil and will be used for request cancellation. If
4619// the context is nil a panic will occur. In the future the SDK may create
4620// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4621// for more information on using Contexts.
4622func (c *ServiceCatalog) RejectPortfolioShareWithContext(ctx aws.Context, input *RejectPortfolioShareInput, opts ...request.Option) (*RejectPortfolioShareOutput, error) {
4623	req, out := c.RejectPortfolioShareRequest(input)
4624	req.SetContext(ctx)
4625	req.ApplyOptions(opts...)
4626	return out, req.Send()
4627}
4628
4629const opScanProvisionedProducts = "ScanProvisionedProducts"
4630
4631// ScanProvisionedProductsRequest generates a "aws/request.Request" representing the
4632// client's request for the ScanProvisionedProducts operation. The "output" return
4633// value will be populated with the request's response once the request completes
4634// successfuly.
4635//
4636// Use "Send" method on the returned Request to send the API call to the service.
4637// the "output" return value is not valid until after Send returns without error.
4638//
4639// See ScanProvisionedProducts for more information on using the ScanProvisionedProducts
4640// API call, and error handling.
4641//
4642// This method is useful when you want to inject custom logic or configuration
4643// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4644//
4645//
4646//    // Example sending a request using the ScanProvisionedProductsRequest method.
4647//    req, resp := client.ScanProvisionedProductsRequest(params)
4648//
4649//    err := req.Send()
4650//    if err == nil { // resp is now filled
4651//        fmt.Println(resp)
4652//    }
4653//
4654// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ScanProvisionedProducts
4655func (c *ServiceCatalog) ScanProvisionedProductsRequest(input *ScanProvisionedProductsInput) (req *request.Request, output *ScanProvisionedProductsOutput) {
4656	op := &request.Operation{
4657		Name:       opScanProvisionedProducts,
4658		HTTPMethod: "POST",
4659		HTTPPath:   "/",
4660	}
4661
4662	if input == nil {
4663		input = &ScanProvisionedProductsInput{}
4664	}
4665
4666	output = &ScanProvisionedProductsOutput{}
4667	req = c.newRequest(op, input, output)
4668	return
4669}
4670
4671// ScanProvisionedProducts API operation for AWS Service Catalog.
4672//
4673// Lists the provisioned products that are available (not terminated).
4674//
4675// To use additional filtering, see SearchProvisionedProducts.
4676//
4677// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4678// with awserr.Error's Code and Message methods to get detailed information about
4679// the error.
4680//
4681// See the AWS API reference guide for AWS Service Catalog's
4682// API operation ScanProvisionedProducts for usage and error information.
4683//
4684// Returned Error Codes:
4685//   * ErrCodeInvalidParametersException "InvalidParametersException"
4686//   One or more parameters provided to the operation are not valid.
4687//
4688// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ScanProvisionedProducts
4689func (c *ServiceCatalog) ScanProvisionedProducts(input *ScanProvisionedProductsInput) (*ScanProvisionedProductsOutput, error) {
4690	req, out := c.ScanProvisionedProductsRequest(input)
4691	return out, req.Send()
4692}
4693
4694// ScanProvisionedProductsWithContext is the same as ScanProvisionedProducts with the addition of
4695// the ability to pass a context and additional request options.
4696//
4697// See ScanProvisionedProducts for details on how to use this API operation.
4698//
4699// The context must be non-nil and will be used for request cancellation. If
4700// the context is nil a panic will occur. In the future the SDK may create
4701// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4702// for more information on using Contexts.
4703func (c *ServiceCatalog) ScanProvisionedProductsWithContext(ctx aws.Context, input *ScanProvisionedProductsInput, opts ...request.Option) (*ScanProvisionedProductsOutput, error) {
4704	req, out := c.ScanProvisionedProductsRequest(input)
4705	req.SetContext(ctx)
4706	req.ApplyOptions(opts...)
4707	return out, req.Send()
4708}
4709
4710const opSearchProducts = "SearchProducts"
4711
4712// SearchProductsRequest generates a "aws/request.Request" representing the
4713// client's request for the SearchProducts operation. The "output" return
4714// value will be populated with the request's response once the request completes
4715// successfuly.
4716//
4717// Use "Send" method on the returned Request to send the API call to the service.
4718// the "output" return value is not valid until after Send returns without error.
4719//
4720// See SearchProducts for more information on using the SearchProducts
4721// API call, and error handling.
4722//
4723// This method is useful when you want to inject custom logic or configuration
4724// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4725//
4726//
4727//    // Example sending a request using the SearchProductsRequest method.
4728//    req, resp := client.SearchProductsRequest(params)
4729//
4730//    err := req.Send()
4731//    if err == nil { // resp is now filled
4732//        fmt.Println(resp)
4733//    }
4734//
4735// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/SearchProducts
4736func (c *ServiceCatalog) SearchProductsRequest(input *SearchProductsInput) (req *request.Request, output *SearchProductsOutput) {
4737	op := &request.Operation{
4738		Name:       opSearchProducts,
4739		HTTPMethod: "POST",
4740		HTTPPath:   "/",
4741		Paginator: &request.Paginator{
4742			InputTokens:     []string{"PageToken"},
4743			OutputTokens:    []string{"NextPageToken"},
4744			LimitToken:      "PageSize",
4745			TruncationToken: "",
4746		},
4747	}
4748
4749	if input == nil {
4750		input = &SearchProductsInput{}
4751	}
4752
4753	output = &SearchProductsOutput{}
4754	req = c.newRequest(op, input, output)
4755	return
4756}
4757
4758// SearchProducts API operation for AWS Service Catalog.
4759//
4760// Gets information about the products to which the caller has access.
4761//
4762// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4763// with awserr.Error's Code and Message methods to get detailed information about
4764// the error.
4765//
4766// See the AWS API reference guide for AWS Service Catalog's
4767// API operation SearchProducts for usage and error information.
4768//
4769// Returned Error Codes:
4770//   * ErrCodeInvalidParametersException "InvalidParametersException"
4771//   One or more parameters provided to the operation are not valid.
4772//
4773// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/SearchProducts
4774func (c *ServiceCatalog) SearchProducts(input *SearchProductsInput) (*SearchProductsOutput, error) {
4775	req, out := c.SearchProductsRequest(input)
4776	return out, req.Send()
4777}
4778
4779// SearchProductsWithContext is the same as SearchProducts with the addition of
4780// the ability to pass a context and additional request options.
4781//
4782// See SearchProducts for details on how to use this API operation.
4783//
4784// The context must be non-nil and will be used for request cancellation. If
4785// the context is nil a panic will occur. In the future the SDK may create
4786// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4787// for more information on using Contexts.
4788func (c *ServiceCatalog) SearchProductsWithContext(ctx aws.Context, input *SearchProductsInput, opts ...request.Option) (*SearchProductsOutput, error) {
4789	req, out := c.SearchProductsRequest(input)
4790	req.SetContext(ctx)
4791	req.ApplyOptions(opts...)
4792	return out, req.Send()
4793}
4794
4795// SearchProductsPages iterates over the pages of a SearchProducts operation,
4796// calling the "fn" function with the response data for each page. To stop
4797// iterating, return false from the fn function.
4798//
4799// See SearchProducts method for more information on how to use this operation.
4800//
4801// Note: This operation can generate multiple requests to a service.
4802//
4803//    // Example iterating over at most 3 pages of a SearchProducts operation.
4804//    pageNum := 0
4805//    err := client.SearchProductsPages(params,
4806//        func(page *SearchProductsOutput, lastPage bool) bool {
4807//            pageNum++
4808//            fmt.Println(page)
4809//            return pageNum <= 3
4810//        })
4811//
4812func (c *ServiceCatalog) SearchProductsPages(input *SearchProductsInput, fn func(*SearchProductsOutput, bool) bool) error {
4813	return c.SearchProductsPagesWithContext(aws.BackgroundContext(), input, fn)
4814}
4815
4816// SearchProductsPagesWithContext same as SearchProductsPages except
4817// it takes a Context and allows setting request options on the pages.
4818//
4819// The context must be non-nil and will be used for request cancellation. If
4820// the context is nil a panic will occur. In the future the SDK may create
4821// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4822// for more information on using Contexts.
4823func (c *ServiceCatalog) SearchProductsPagesWithContext(ctx aws.Context, input *SearchProductsInput, fn func(*SearchProductsOutput, bool) bool, opts ...request.Option) error {
4824	p := request.Pagination{
4825		NewRequest: func() (*request.Request, error) {
4826			var inCpy *SearchProductsInput
4827			if input != nil {
4828				tmp := *input
4829				inCpy = &tmp
4830			}
4831			req, _ := c.SearchProductsRequest(inCpy)
4832			req.SetContext(ctx)
4833			req.ApplyOptions(opts...)
4834			return req, nil
4835		},
4836	}
4837
4838	cont := true
4839	for p.Next() && cont {
4840		cont = fn(p.Page().(*SearchProductsOutput), !p.HasNextPage())
4841	}
4842	return p.Err()
4843}
4844
4845const opSearchProductsAsAdmin = "SearchProductsAsAdmin"
4846
4847// SearchProductsAsAdminRequest generates a "aws/request.Request" representing the
4848// client's request for the SearchProductsAsAdmin operation. The "output" return
4849// value will be populated with the request's response once the request completes
4850// successfuly.
4851//
4852// Use "Send" method on the returned Request to send the API call to the service.
4853// the "output" return value is not valid until after Send returns without error.
4854//
4855// See SearchProductsAsAdmin for more information on using the SearchProductsAsAdmin
4856// API call, and error handling.
4857//
4858// This method is useful when you want to inject custom logic or configuration
4859// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4860//
4861//
4862//    // Example sending a request using the SearchProductsAsAdminRequest method.
4863//    req, resp := client.SearchProductsAsAdminRequest(params)
4864//
4865//    err := req.Send()
4866//    if err == nil { // resp is now filled
4867//        fmt.Println(resp)
4868//    }
4869//
4870// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/SearchProductsAsAdmin
4871func (c *ServiceCatalog) SearchProductsAsAdminRequest(input *SearchProductsAsAdminInput) (req *request.Request, output *SearchProductsAsAdminOutput) {
4872	op := &request.Operation{
4873		Name:       opSearchProductsAsAdmin,
4874		HTTPMethod: "POST",
4875		HTTPPath:   "/",
4876		Paginator: &request.Paginator{
4877			InputTokens:     []string{"PageToken"},
4878			OutputTokens:    []string{"NextPageToken"},
4879			LimitToken:      "PageSize",
4880			TruncationToken: "",
4881		},
4882	}
4883
4884	if input == nil {
4885		input = &SearchProductsAsAdminInput{}
4886	}
4887
4888	output = &SearchProductsAsAdminOutput{}
4889	req = c.newRequest(op, input, output)
4890	return
4891}
4892
4893// SearchProductsAsAdmin API operation for AWS Service Catalog.
4894//
4895// Gets information about the products for the specified portfolio or all products.
4896//
4897// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4898// with awserr.Error's Code and Message methods to get detailed information about
4899// the error.
4900//
4901// See the AWS API reference guide for AWS Service Catalog's
4902// API operation SearchProductsAsAdmin for usage and error information.
4903//
4904// Returned Error Codes:
4905//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4906//   The specified resource was not found.
4907//
4908//   * ErrCodeInvalidParametersException "InvalidParametersException"
4909//   One or more parameters provided to the operation are not valid.
4910//
4911// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/SearchProductsAsAdmin
4912func (c *ServiceCatalog) SearchProductsAsAdmin(input *SearchProductsAsAdminInput) (*SearchProductsAsAdminOutput, error) {
4913	req, out := c.SearchProductsAsAdminRequest(input)
4914	return out, req.Send()
4915}
4916
4917// SearchProductsAsAdminWithContext is the same as SearchProductsAsAdmin with the addition of
4918// the ability to pass a context and additional request options.
4919//
4920// See SearchProductsAsAdmin for details on how to use this API operation.
4921//
4922// The context must be non-nil and will be used for request cancellation. If
4923// the context is nil a panic will occur. In the future the SDK may create
4924// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4925// for more information on using Contexts.
4926func (c *ServiceCatalog) SearchProductsAsAdminWithContext(ctx aws.Context, input *SearchProductsAsAdminInput, opts ...request.Option) (*SearchProductsAsAdminOutput, error) {
4927	req, out := c.SearchProductsAsAdminRequest(input)
4928	req.SetContext(ctx)
4929	req.ApplyOptions(opts...)
4930	return out, req.Send()
4931}
4932
4933// SearchProductsAsAdminPages iterates over the pages of a SearchProductsAsAdmin operation,
4934// calling the "fn" function with the response data for each page. To stop
4935// iterating, return false from the fn function.
4936//
4937// See SearchProductsAsAdmin method for more information on how to use this operation.
4938//
4939// Note: This operation can generate multiple requests to a service.
4940//
4941//    // Example iterating over at most 3 pages of a SearchProductsAsAdmin operation.
4942//    pageNum := 0
4943//    err := client.SearchProductsAsAdminPages(params,
4944//        func(page *SearchProductsAsAdminOutput, lastPage bool) bool {
4945//            pageNum++
4946//            fmt.Println(page)
4947//            return pageNum <= 3
4948//        })
4949//
4950func (c *ServiceCatalog) SearchProductsAsAdminPages(input *SearchProductsAsAdminInput, fn func(*SearchProductsAsAdminOutput, bool) bool) error {
4951	return c.SearchProductsAsAdminPagesWithContext(aws.BackgroundContext(), input, fn)
4952}
4953
4954// SearchProductsAsAdminPagesWithContext same as SearchProductsAsAdminPages except
4955// it takes a Context and allows setting request options on the pages.
4956//
4957// The context must be non-nil and will be used for request cancellation. If
4958// the context is nil a panic will occur. In the future the SDK may create
4959// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4960// for more information on using Contexts.
4961func (c *ServiceCatalog) SearchProductsAsAdminPagesWithContext(ctx aws.Context, input *SearchProductsAsAdminInput, fn func(*SearchProductsAsAdminOutput, bool) bool, opts ...request.Option) error {
4962	p := request.Pagination{
4963		NewRequest: func() (*request.Request, error) {
4964			var inCpy *SearchProductsAsAdminInput
4965			if input != nil {
4966				tmp := *input
4967				inCpy = &tmp
4968			}
4969			req, _ := c.SearchProductsAsAdminRequest(inCpy)
4970			req.SetContext(ctx)
4971			req.ApplyOptions(opts...)
4972			return req, nil
4973		},
4974	}
4975
4976	cont := true
4977	for p.Next() && cont {
4978		cont = fn(p.Page().(*SearchProductsAsAdminOutput), !p.HasNextPage())
4979	}
4980	return p.Err()
4981}
4982
4983const opSearchProvisionedProducts = "SearchProvisionedProducts"
4984
4985// SearchProvisionedProductsRequest generates a "aws/request.Request" representing the
4986// client's request for the SearchProvisionedProducts operation. The "output" return
4987// value will be populated with the request's response once the request completes
4988// successfuly.
4989//
4990// Use "Send" method on the returned Request to send the API call to the service.
4991// the "output" return value is not valid until after Send returns without error.
4992//
4993// See SearchProvisionedProducts for more information on using the SearchProvisionedProducts
4994// API call, and error handling.
4995//
4996// This method is useful when you want to inject custom logic or configuration
4997// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4998//
4999//
5000//    // Example sending a request using the SearchProvisionedProductsRequest method.
5001//    req, resp := client.SearchProvisionedProductsRequest(params)
5002//
5003//    err := req.Send()
5004//    if err == nil { // resp is now filled
5005//        fmt.Println(resp)
5006//    }
5007//
5008// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/SearchProvisionedProducts
5009func (c *ServiceCatalog) SearchProvisionedProductsRequest(input *SearchProvisionedProductsInput) (req *request.Request, output *SearchProvisionedProductsOutput) {
5010	op := &request.Operation{
5011		Name:       opSearchProvisionedProducts,
5012		HTTPMethod: "POST",
5013		HTTPPath:   "/",
5014		Paginator: &request.Paginator{
5015			InputTokens:     []string{"PageToken"},
5016			OutputTokens:    []string{"NextPageToken"},
5017			LimitToken:      "PageSize",
5018			TruncationToken: "",
5019		},
5020	}
5021
5022	if input == nil {
5023		input = &SearchProvisionedProductsInput{}
5024	}
5025
5026	output = &SearchProvisionedProductsOutput{}
5027	req = c.newRequest(op, input, output)
5028	return
5029}
5030
5031// SearchProvisionedProducts API operation for AWS Service Catalog.
5032//
5033// Gets information about the provisioned products that meet the specified criteria.
5034//
5035// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5036// with awserr.Error's Code and Message methods to get detailed information about
5037// the error.
5038//
5039// See the AWS API reference guide for AWS Service Catalog's
5040// API operation SearchProvisionedProducts for usage and error information.
5041//
5042// Returned Error Codes:
5043//   * ErrCodeInvalidParametersException "InvalidParametersException"
5044//   One or more parameters provided to the operation are not valid.
5045//
5046// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/SearchProvisionedProducts
5047func (c *ServiceCatalog) SearchProvisionedProducts(input *SearchProvisionedProductsInput) (*SearchProvisionedProductsOutput, error) {
5048	req, out := c.SearchProvisionedProductsRequest(input)
5049	return out, req.Send()
5050}
5051
5052// SearchProvisionedProductsWithContext is the same as SearchProvisionedProducts with the addition of
5053// the ability to pass a context and additional request options.
5054//
5055// See SearchProvisionedProducts for details on how to use this API operation.
5056//
5057// The context must be non-nil and will be used for request cancellation. If
5058// the context is nil a panic will occur. In the future the SDK may create
5059// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5060// for more information on using Contexts.
5061func (c *ServiceCatalog) SearchProvisionedProductsWithContext(ctx aws.Context, input *SearchProvisionedProductsInput, opts ...request.Option) (*SearchProvisionedProductsOutput, error) {
5062	req, out := c.SearchProvisionedProductsRequest(input)
5063	req.SetContext(ctx)
5064	req.ApplyOptions(opts...)
5065	return out, req.Send()
5066}
5067
5068// SearchProvisionedProductsPages iterates over the pages of a SearchProvisionedProducts operation,
5069// calling the "fn" function with the response data for each page. To stop
5070// iterating, return false from the fn function.
5071//
5072// See SearchProvisionedProducts method for more information on how to use this operation.
5073//
5074// Note: This operation can generate multiple requests to a service.
5075//
5076//    // Example iterating over at most 3 pages of a SearchProvisionedProducts operation.
5077//    pageNum := 0
5078//    err := client.SearchProvisionedProductsPages(params,
5079//        func(page *SearchProvisionedProductsOutput, lastPage bool) bool {
5080//            pageNum++
5081//            fmt.Println(page)
5082//            return pageNum <= 3
5083//        })
5084//
5085func (c *ServiceCatalog) SearchProvisionedProductsPages(input *SearchProvisionedProductsInput, fn func(*SearchProvisionedProductsOutput, bool) bool) error {
5086	return c.SearchProvisionedProductsPagesWithContext(aws.BackgroundContext(), input, fn)
5087}
5088
5089// SearchProvisionedProductsPagesWithContext same as SearchProvisionedProductsPages except
5090// it takes a Context and allows setting request options on the pages.
5091//
5092// The context must be non-nil and will be used for request cancellation. If
5093// the context is nil a panic will occur. In the future the SDK may create
5094// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5095// for more information on using Contexts.
5096func (c *ServiceCatalog) SearchProvisionedProductsPagesWithContext(ctx aws.Context, input *SearchProvisionedProductsInput, fn func(*SearchProvisionedProductsOutput, bool) bool, opts ...request.Option) error {
5097	p := request.Pagination{
5098		NewRequest: func() (*request.Request, error) {
5099			var inCpy *SearchProvisionedProductsInput
5100			if input != nil {
5101				tmp := *input
5102				inCpy = &tmp
5103			}
5104			req, _ := c.SearchProvisionedProductsRequest(inCpy)
5105			req.SetContext(ctx)
5106			req.ApplyOptions(opts...)
5107			return req, nil
5108		},
5109	}
5110
5111	cont := true
5112	for p.Next() && cont {
5113		cont = fn(p.Page().(*SearchProvisionedProductsOutput), !p.HasNextPage())
5114	}
5115	return p.Err()
5116}
5117
5118const opTerminateProvisionedProduct = "TerminateProvisionedProduct"
5119
5120// TerminateProvisionedProductRequest generates a "aws/request.Request" representing the
5121// client's request for the TerminateProvisionedProduct operation. The "output" return
5122// value will be populated with the request's response once the request completes
5123// successfuly.
5124//
5125// Use "Send" method on the returned Request to send the API call to the service.
5126// the "output" return value is not valid until after Send returns without error.
5127//
5128// See TerminateProvisionedProduct for more information on using the TerminateProvisionedProduct
5129// API call, and error handling.
5130//
5131// This method is useful when you want to inject custom logic or configuration
5132// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5133//
5134//
5135//    // Example sending a request using the TerminateProvisionedProductRequest method.
5136//    req, resp := client.TerminateProvisionedProductRequest(params)
5137//
5138//    err := req.Send()
5139//    if err == nil { // resp is now filled
5140//        fmt.Println(resp)
5141//    }
5142//
5143// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/TerminateProvisionedProduct
5144func (c *ServiceCatalog) TerminateProvisionedProductRequest(input *TerminateProvisionedProductInput) (req *request.Request, output *TerminateProvisionedProductOutput) {
5145	op := &request.Operation{
5146		Name:       opTerminateProvisionedProduct,
5147		HTTPMethod: "POST",
5148		HTTPPath:   "/",
5149	}
5150
5151	if input == nil {
5152		input = &TerminateProvisionedProductInput{}
5153	}
5154
5155	output = &TerminateProvisionedProductOutput{}
5156	req = c.newRequest(op, input, output)
5157	return
5158}
5159
5160// TerminateProvisionedProduct API operation for AWS Service Catalog.
5161//
5162// Terminates the specified provisioned product.
5163//
5164// This operation does not delete any records associated with the provisioned
5165// product.
5166//
5167// You can check the status of this request using DescribeRecord.
5168//
5169// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5170// with awserr.Error's Code and Message methods to get detailed information about
5171// the error.
5172//
5173// See the AWS API reference guide for AWS Service Catalog's
5174// API operation TerminateProvisionedProduct for usage and error information.
5175//
5176// Returned Error Codes:
5177//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5178//   The specified resource was not found.
5179//
5180// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/TerminateProvisionedProduct
5181func (c *ServiceCatalog) TerminateProvisionedProduct(input *TerminateProvisionedProductInput) (*TerminateProvisionedProductOutput, error) {
5182	req, out := c.TerminateProvisionedProductRequest(input)
5183	return out, req.Send()
5184}
5185
5186// TerminateProvisionedProductWithContext is the same as TerminateProvisionedProduct with the addition of
5187// the ability to pass a context and additional request options.
5188//
5189// See TerminateProvisionedProduct for details on how to use this API operation.
5190//
5191// The context must be non-nil and will be used for request cancellation. If
5192// the context is nil a panic will occur. In the future the SDK may create
5193// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5194// for more information on using Contexts.
5195func (c *ServiceCatalog) TerminateProvisionedProductWithContext(ctx aws.Context, input *TerminateProvisionedProductInput, opts ...request.Option) (*TerminateProvisionedProductOutput, error) {
5196	req, out := c.TerminateProvisionedProductRequest(input)
5197	req.SetContext(ctx)
5198	req.ApplyOptions(opts...)
5199	return out, req.Send()
5200}
5201
5202const opUpdateConstraint = "UpdateConstraint"
5203
5204// UpdateConstraintRequest generates a "aws/request.Request" representing the
5205// client's request for the UpdateConstraint operation. The "output" return
5206// value will be populated with the request's response once the request completes
5207// successfuly.
5208//
5209// Use "Send" method on the returned Request to send the API call to the service.
5210// the "output" return value is not valid until after Send returns without error.
5211//
5212// See UpdateConstraint for more information on using the UpdateConstraint
5213// API call, and error handling.
5214//
5215// This method is useful when you want to inject custom logic or configuration
5216// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5217//
5218//
5219//    // Example sending a request using the UpdateConstraintRequest method.
5220//    req, resp := client.UpdateConstraintRequest(params)
5221//
5222//    err := req.Send()
5223//    if err == nil { // resp is now filled
5224//        fmt.Println(resp)
5225//    }
5226//
5227// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateConstraint
5228func (c *ServiceCatalog) UpdateConstraintRequest(input *UpdateConstraintInput) (req *request.Request, output *UpdateConstraintOutput) {
5229	op := &request.Operation{
5230		Name:       opUpdateConstraint,
5231		HTTPMethod: "POST",
5232		HTTPPath:   "/",
5233	}
5234
5235	if input == nil {
5236		input = &UpdateConstraintInput{}
5237	}
5238
5239	output = &UpdateConstraintOutput{}
5240	req = c.newRequest(op, input, output)
5241	return
5242}
5243
5244// UpdateConstraint API operation for AWS Service Catalog.
5245//
5246// Updates the specified constraint.
5247//
5248// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5249// with awserr.Error's Code and Message methods to get detailed information about
5250// the error.
5251//
5252// See the AWS API reference guide for AWS Service Catalog's
5253// API operation UpdateConstraint for usage and error information.
5254//
5255// Returned Error Codes:
5256//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5257//   The specified resource was not found.
5258//
5259//   * ErrCodeInvalidParametersException "InvalidParametersException"
5260//   One or more parameters provided to the operation are not valid.
5261//
5262// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateConstraint
5263func (c *ServiceCatalog) UpdateConstraint(input *UpdateConstraintInput) (*UpdateConstraintOutput, error) {
5264	req, out := c.UpdateConstraintRequest(input)
5265	return out, req.Send()
5266}
5267
5268// UpdateConstraintWithContext is the same as UpdateConstraint with the addition of
5269// the ability to pass a context and additional request options.
5270//
5271// See UpdateConstraint for details on how to use this API operation.
5272//
5273// The context must be non-nil and will be used for request cancellation. If
5274// the context is nil a panic will occur. In the future the SDK may create
5275// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5276// for more information on using Contexts.
5277func (c *ServiceCatalog) UpdateConstraintWithContext(ctx aws.Context, input *UpdateConstraintInput, opts ...request.Option) (*UpdateConstraintOutput, error) {
5278	req, out := c.UpdateConstraintRequest(input)
5279	req.SetContext(ctx)
5280	req.ApplyOptions(opts...)
5281	return out, req.Send()
5282}
5283
5284const opUpdatePortfolio = "UpdatePortfolio"
5285
5286// UpdatePortfolioRequest generates a "aws/request.Request" representing the
5287// client's request for the UpdatePortfolio operation. The "output" return
5288// value will be populated with the request's response once the request completes
5289// successfuly.
5290//
5291// Use "Send" method on the returned Request to send the API call to the service.
5292// the "output" return value is not valid until after Send returns without error.
5293//
5294// See UpdatePortfolio for more information on using the UpdatePortfolio
5295// API call, and error handling.
5296//
5297// This method is useful when you want to inject custom logic or configuration
5298// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5299//
5300//
5301//    // Example sending a request using the UpdatePortfolioRequest method.
5302//    req, resp := client.UpdatePortfolioRequest(params)
5303//
5304//    err := req.Send()
5305//    if err == nil { // resp is now filled
5306//        fmt.Println(resp)
5307//    }
5308//
5309// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdatePortfolio
5310func (c *ServiceCatalog) UpdatePortfolioRequest(input *UpdatePortfolioInput) (req *request.Request, output *UpdatePortfolioOutput) {
5311	op := &request.Operation{
5312		Name:       opUpdatePortfolio,
5313		HTTPMethod: "POST",
5314		HTTPPath:   "/",
5315	}
5316
5317	if input == nil {
5318		input = &UpdatePortfolioInput{}
5319	}
5320
5321	output = &UpdatePortfolioOutput{}
5322	req = c.newRequest(op, input, output)
5323	return
5324}
5325
5326// UpdatePortfolio API operation for AWS Service Catalog.
5327//
5328// Updates the specified portfolio.
5329//
5330// You cannot update a product that was shared with you.
5331//
5332// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5333// with awserr.Error's Code and Message methods to get detailed information about
5334// the error.
5335//
5336// See the AWS API reference guide for AWS Service Catalog's
5337// API operation UpdatePortfolio for usage and error information.
5338//
5339// Returned Error Codes:
5340//   * ErrCodeInvalidParametersException "InvalidParametersException"
5341//   One or more parameters provided to the operation are not valid.
5342//
5343//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5344//   The specified resource was not found.
5345//
5346//   * ErrCodeLimitExceededException "LimitExceededException"
5347//   The current limits of the service would have been exceeded by this operation.
5348//   Decrease your resource use or increase your service limits and retry the
5349//   operation.
5350//
5351//   * ErrCodeTagOptionNotMigratedException "TagOptionNotMigratedException"
5352//   An operation requiring TagOptions failed because the TagOptions migration
5353//   process has not been performed for this account. Please use the AWS console
5354//   to perform the migration process before retrying the operation.
5355//
5356// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdatePortfolio
5357func (c *ServiceCatalog) UpdatePortfolio(input *UpdatePortfolioInput) (*UpdatePortfolioOutput, error) {
5358	req, out := c.UpdatePortfolioRequest(input)
5359	return out, req.Send()
5360}
5361
5362// UpdatePortfolioWithContext is the same as UpdatePortfolio with the addition of
5363// the ability to pass a context and additional request options.
5364//
5365// See UpdatePortfolio for details on how to use this API operation.
5366//
5367// The context must be non-nil and will be used for request cancellation. If
5368// the context is nil a panic will occur. In the future the SDK may create
5369// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5370// for more information on using Contexts.
5371func (c *ServiceCatalog) UpdatePortfolioWithContext(ctx aws.Context, input *UpdatePortfolioInput, opts ...request.Option) (*UpdatePortfolioOutput, error) {
5372	req, out := c.UpdatePortfolioRequest(input)
5373	req.SetContext(ctx)
5374	req.ApplyOptions(opts...)
5375	return out, req.Send()
5376}
5377
5378const opUpdateProduct = "UpdateProduct"
5379
5380// UpdateProductRequest generates a "aws/request.Request" representing the
5381// client's request for the UpdateProduct operation. The "output" return
5382// value will be populated with the request's response once the request completes
5383// successfuly.
5384//
5385// Use "Send" method on the returned Request to send the API call to the service.
5386// the "output" return value is not valid until after Send returns without error.
5387//
5388// See UpdateProduct for more information on using the UpdateProduct
5389// API call, and error handling.
5390//
5391// This method is useful when you want to inject custom logic or configuration
5392// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5393//
5394//
5395//    // Example sending a request using the UpdateProductRequest method.
5396//    req, resp := client.UpdateProductRequest(params)
5397//
5398//    err := req.Send()
5399//    if err == nil { // resp is now filled
5400//        fmt.Println(resp)
5401//    }
5402//
5403// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateProduct
5404func (c *ServiceCatalog) UpdateProductRequest(input *UpdateProductInput) (req *request.Request, output *UpdateProductOutput) {
5405	op := &request.Operation{
5406		Name:       opUpdateProduct,
5407		HTTPMethod: "POST",
5408		HTTPPath:   "/",
5409	}
5410
5411	if input == nil {
5412		input = &UpdateProductInput{}
5413	}
5414
5415	output = &UpdateProductOutput{}
5416	req = c.newRequest(op, input, output)
5417	return
5418}
5419
5420// UpdateProduct API operation for AWS Service Catalog.
5421//
5422// Updates the specified product.
5423//
5424// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5425// with awserr.Error's Code and Message methods to get detailed information about
5426// the error.
5427//
5428// See the AWS API reference guide for AWS Service Catalog's
5429// API operation UpdateProduct for usage and error information.
5430//
5431// Returned Error Codes:
5432//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5433//   The specified resource was not found.
5434//
5435//   * ErrCodeInvalidParametersException "InvalidParametersException"
5436//   One or more parameters provided to the operation are not valid.
5437//
5438//   * ErrCodeTagOptionNotMigratedException "TagOptionNotMigratedException"
5439//   An operation requiring TagOptions failed because the TagOptions migration
5440//   process has not been performed for this account. Please use the AWS console
5441//   to perform the migration process before retrying the operation.
5442//
5443// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateProduct
5444func (c *ServiceCatalog) UpdateProduct(input *UpdateProductInput) (*UpdateProductOutput, error) {
5445	req, out := c.UpdateProductRequest(input)
5446	return out, req.Send()
5447}
5448
5449// UpdateProductWithContext is the same as UpdateProduct with the addition of
5450// the ability to pass a context and additional request options.
5451//
5452// See UpdateProduct for details on how to use this API operation.
5453//
5454// The context must be non-nil and will be used for request cancellation. If
5455// the context is nil a panic will occur. In the future the SDK may create
5456// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5457// for more information on using Contexts.
5458func (c *ServiceCatalog) UpdateProductWithContext(ctx aws.Context, input *UpdateProductInput, opts ...request.Option) (*UpdateProductOutput, error) {
5459	req, out := c.UpdateProductRequest(input)
5460	req.SetContext(ctx)
5461	req.ApplyOptions(opts...)
5462	return out, req.Send()
5463}
5464
5465const opUpdateProvisionedProduct = "UpdateProvisionedProduct"
5466
5467// UpdateProvisionedProductRequest generates a "aws/request.Request" representing the
5468// client's request for the UpdateProvisionedProduct operation. The "output" return
5469// value will be populated with the request's response once the request completes
5470// successfuly.
5471//
5472// Use "Send" method on the returned Request to send the API call to the service.
5473// the "output" return value is not valid until after Send returns without error.
5474//
5475// See UpdateProvisionedProduct for more information on using the UpdateProvisionedProduct
5476// API call, and error handling.
5477//
5478// This method is useful when you want to inject custom logic or configuration
5479// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5480//
5481//
5482//    // Example sending a request using the UpdateProvisionedProductRequest method.
5483//    req, resp := client.UpdateProvisionedProductRequest(params)
5484//
5485//    err := req.Send()
5486//    if err == nil { // resp is now filled
5487//        fmt.Println(resp)
5488//    }
5489//
5490// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateProvisionedProduct
5491func (c *ServiceCatalog) UpdateProvisionedProductRequest(input *UpdateProvisionedProductInput) (req *request.Request, output *UpdateProvisionedProductOutput) {
5492	op := &request.Operation{
5493		Name:       opUpdateProvisionedProduct,
5494		HTTPMethod: "POST",
5495		HTTPPath:   "/",
5496	}
5497
5498	if input == nil {
5499		input = &UpdateProvisionedProductInput{}
5500	}
5501
5502	output = &UpdateProvisionedProductOutput{}
5503	req = c.newRequest(op, input, output)
5504	return
5505}
5506
5507// UpdateProvisionedProduct API operation for AWS Service Catalog.
5508//
5509// Requests updates to the configuration of the specified provisioned product.
5510//
5511// If there are tags associated with the object, they cannot be updated or added.
5512// Depending on the specific updates requested, this operation can update with
5513// no interruption, with some interruption, or replace the provisioned product
5514// entirely.
5515//
5516// You can check the status of this request using DescribeRecord.
5517//
5518// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5519// with awserr.Error's Code and Message methods to get detailed information about
5520// the error.
5521//
5522// See the AWS API reference guide for AWS Service Catalog's
5523// API operation UpdateProvisionedProduct for usage and error information.
5524//
5525// Returned Error Codes:
5526//   * ErrCodeInvalidParametersException "InvalidParametersException"
5527//   One or more parameters provided to the operation are not valid.
5528//
5529//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5530//   The specified resource was not found.
5531//
5532// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateProvisionedProduct
5533func (c *ServiceCatalog) UpdateProvisionedProduct(input *UpdateProvisionedProductInput) (*UpdateProvisionedProductOutput, error) {
5534	req, out := c.UpdateProvisionedProductRequest(input)
5535	return out, req.Send()
5536}
5537
5538// UpdateProvisionedProductWithContext is the same as UpdateProvisionedProduct with the addition of
5539// the ability to pass a context and additional request options.
5540//
5541// See UpdateProvisionedProduct for details on how to use this API operation.
5542//
5543// The context must be non-nil and will be used for request cancellation. If
5544// the context is nil a panic will occur. In the future the SDK may create
5545// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5546// for more information on using Contexts.
5547func (c *ServiceCatalog) UpdateProvisionedProductWithContext(ctx aws.Context, input *UpdateProvisionedProductInput, opts ...request.Option) (*UpdateProvisionedProductOutput, error) {
5548	req, out := c.UpdateProvisionedProductRequest(input)
5549	req.SetContext(ctx)
5550	req.ApplyOptions(opts...)
5551	return out, req.Send()
5552}
5553
5554const opUpdateProvisioningArtifact = "UpdateProvisioningArtifact"
5555
5556// UpdateProvisioningArtifactRequest generates a "aws/request.Request" representing the
5557// client's request for the UpdateProvisioningArtifact operation. The "output" return
5558// value will be populated with the request's response once the request completes
5559// successfuly.
5560//
5561// Use "Send" method on the returned Request to send the API call to the service.
5562// the "output" return value is not valid until after Send returns without error.
5563//
5564// See UpdateProvisioningArtifact for more information on using the UpdateProvisioningArtifact
5565// API call, and error handling.
5566//
5567// This method is useful when you want to inject custom logic or configuration
5568// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5569//
5570//
5571//    // Example sending a request using the UpdateProvisioningArtifactRequest method.
5572//    req, resp := client.UpdateProvisioningArtifactRequest(params)
5573//
5574//    err := req.Send()
5575//    if err == nil { // resp is now filled
5576//        fmt.Println(resp)
5577//    }
5578//
5579// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateProvisioningArtifact
5580func (c *ServiceCatalog) UpdateProvisioningArtifactRequest(input *UpdateProvisioningArtifactInput) (req *request.Request, output *UpdateProvisioningArtifactOutput) {
5581	op := &request.Operation{
5582		Name:       opUpdateProvisioningArtifact,
5583		HTTPMethod: "POST",
5584		HTTPPath:   "/",
5585	}
5586
5587	if input == nil {
5588		input = &UpdateProvisioningArtifactInput{}
5589	}
5590
5591	output = &UpdateProvisioningArtifactOutput{}
5592	req = c.newRequest(op, input, output)
5593	return
5594}
5595
5596// UpdateProvisioningArtifact API operation for AWS Service Catalog.
5597//
5598// Updates the specified provisioning artifact (also known as a version) for
5599// the specified product.
5600//
5601// You cannot update a provisioning artifact for a product that was shared with
5602// you.
5603//
5604// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5605// with awserr.Error's Code and Message methods to get detailed information about
5606// the error.
5607//
5608// See the AWS API reference guide for AWS Service Catalog's
5609// API operation UpdateProvisioningArtifact for usage and error information.
5610//
5611// Returned Error Codes:
5612//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5613//   The specified resource was not found.
5614//
5615//   * ErrCodeInvalidParametersException "InvalidParametersException"
5616//   One or more parameters provided to the operation are not valid.
5617//
5618// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateProvisioningArtifact
5619func (c *ServiceCatalog) UpdateProvisioningArtifact(input *UpdateProvisioningArtifactInput) (*UpdateProvisioningArtifactOutput, error) {
5620	req, out := c.UpdateProvisioningArtifactRequest(input)
5621	return out, req.Send()
5622}
5623
5624// UpdateProvisioningArtifactWithContext is the same as UpdateProvisioningArtifact with the addition of
5625// the ability to pass a context and additional request options.
5626//
5627// See UpdateProvisioningArtifact for details on how to use this API operation.
5628//
5629// The context must be non-nil and will be used for request cancellation. If
5630// the context is nil a panic will occur. In the future the SDK may create
5631// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5632// for more information on using Contexts.
5633func (c *ServiceCatalog) UpdateProvisioningArtifactWithContext(ctx aws.Context, input *UpdateProvisioningArtifactInput, opts ...request.Option) (*UpdateProvisioningArtifactOutput, error) {
5634	req, out := c.UpdateProvisioningArtifactRequest(input)
5635	req.SetContext(ctx)
5636	req.ApplyOptions(opts...)
5637	return out, req.Send()
5638}
5639
5640const opUpdateTagOption = "UpdateTagOption"
5641
5642// UpdateTagOptionRequest generates a "aws/request.Request" representing the
5643// client's request for the UpdateTagOption operation. The "output" return
5644// value will be populated with the request's response once the request completes
5645// successfuly.
5646//
5647// Use "Send" method on the returned Request to send the API call to the service.
5648// the "output" return value is not valid until after Send returns without error.
5649//
5650// See UpdateTagOption for more information on using the UpdateTagOption
5651// API call, and error handling.
5652//
5653// This method is useful when you want to inject custom logic or configuration
5654// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5655//
5656//
5657//    // Example sending a request using the UpdateTagOptionRequest method.
5658//    req, resp := client.UpdateTagOptionRequest(params)
5659//
5660//    err := req.Send()
5661//    if err == nil { // resp is now filled
5662//        fmt.Println(resp)
5663//    }
5664//
5665// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateTagOption
5666func (c *ServiceCatalog) UpdateTagOptionRequest(input *UpdateTagOptionInput) (req *request.Request, output *UpdateTagOptionOutput) {
5667	op := &request.Operation{
5668		Name:       opUpdateTagOption,
5669		HTTPMethod: "POST",
5670		HTTPPath:   "/",
5671	}
5672
5673	if input == nil {
5674		input = &UpdateTagOptionInput{}
5675	}
5676
5677	output = &UpdateTagOptionOutput{}
5678	req = c.newRequest(op, input, output)
5679	return
5680}
5681
5682// UpdateTagOption API operation for AWS Service Catalog.
5683//
5684// Updates the specified TagOption.
5685//
5686// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5687// with awserr.Error's Code and Message methods to get detailed information about
5688// the error.
5689//
5690// See the AWS API reference guide for AWS Service Catalog's
5691// API operation UpdateTagOption for usage and error information.
5692//
5693// Returned Error Codes:
5694//   * ErrCodeTagOptionNotMigratedException "TagOptionNotMigratedException"
5695//   An operation requiring TagOptions failed because the TagOptions migration
5696//   process has not been performed for this account. Please use the AWS console
5697//   to perform the migration process before retrying the operation.
5698//
5699//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
5700//   The specified resource was not found.
5701//
5702//   * ErrCodeDuplicateResourceException "DuplicateResourceException"
5703//   The specified resource is a duplicate.
5704//
5705//   * ErrCodeInvalidParametersException "InvalidParametersException"
5706//   One or more parameters provided to the operation are not valid.
5707//
5708// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateTagOption
5709func (c *ServiceCatalog) UpdateTagOption(input *UpdateTagOptionInput) (*UpdateTagOptionOutput, error) {
5710	req, out := c.UpdateTagOptionRequest(input)
5711	return out, req.Send()
5712}
5713
5714// UpdateTagOptionWithContext is the same as UpdateTagOption with the addition of
5715// the ability to pass a context and additional request options.
5716//
5717// See UpdateTagOption for details on how to use this API operation.
5718//
5719// The context must be non-nil and will be used for request cancellation. If
5720// the context is nil a panic will occur. In the future the SDK may create
5721// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5722// for more information on using Contexts.
5723func (c *ServiceCatalog) UpdateTagOptionWithContext(ctx aws.Context, input *UpdateTagOptionInput, opts ...request.Option) (*UpdateTagOptionOutput, error) {
5724	req, out := c.UpdateTagOptionRequest(input)
5725	req.SetContext(ctx)
5726	req.ApplyOptions(opts...)
5727	return out, req.Send()
5728}
5729
5730type AcceptPortfolioShareInput struct {
5731	_ struct{} `type:"structure"`
5732
5733	// The language code.
5734	//
5735	//    * en - English (default)
5736	//
5737	//    * jp - Japanese
5738	//
5739	//    * zh - Chinese
5740	AcceptLanguage *string `type:"string"`
5741
5742	// The portfolio identifier.
5743	//
5744	// PortfolioId is a required field
5745	PortfolioId *string `min:"1" type:"string" required:"true"`
5746}
5747
5748// String returns the string representation
5749func (s AcceptPortfolioShareInput) String() string {
5750	return awsutil.Prettify(s)
5751}
5752
5753// GoString returns the string representation
5754func (s AcceptPortfolioShareInput) GoString() string {
5755	return s.String()
5756}
5757
5758// Validate inspects the fields of the type to determine if they are valid.
5759func (s *AcceptPortfolioShareInput) Validate() error {
5760	invalidParams := request.ErrInvalidParams{Context: "AcceptPortfolioShareInput"}
5761	if s.PortfolioId == nil {
5762		invalidParams.Add(request.NewErrParamRequired("PortfolioId"))
5763	}
5764	if s.PortfolioId != nil && len(*s.PortfolioId) < 1 {
5765		invalidParams.Add(request.NewErrParamMinLen("PortfolioId", 1))
5766	}
5767
5768	if invalidParams.Len() > 0 {
5769		return invalidParams
5770	}
5771	return nil
5772}
5773
5774// SetAcceptLanguage sets the AcceptLanguage field's value.
5775func (s *AcceptPortfolioShareInput) SetAcceptLanguage(v string) *AcceptPortfolioShareInput {
5776	s.AcceptLanguage = &v
5777	return s
5778}
5779
5780// SetPortfolioId sets the PortfolioId field's value.
5781func (s *AcceptPortfolioShareInput) SetPortfolioId(v string) *AcceptPortfolioShareInput {
5782	s.PortfolioId = &v
5783	return s
5784}
5785
5786type AcceptPortfolioShareOutput struct {
5787	_ struct{} `type:"structure"`
5788}
5789
5790// String returns the string representation
5791func (s AcceptPortfolioShareOutput) String() string {
5792	return awsutil.Prettify(s)
5793}
5794
5795// GoString returns the string representation
5796func (s AcceptPortfolioShareOutput) GoString() string {
5797	return s.String()
5798}
5799
5800// The access level to use to filter results.
5801type AccessLevelFilter struct {
5802	_ struct{} `type:"structure"`
5803
5804	// The access level.
5805	//
5806	//    * Account - Filter results based on the account.
5807	//
5808	//    * Role - Filter results based on the federated role of the specified user.
5809	//
5810	//    * User - Filter results based on the specified user.
5811	Key *string `type:"string" enum:"AccessLevelFilterKey"`
5812
5813	// The user to which the access level applies. The only supported value is Self.
5814	Value *string `type:"string"`
5815}
5816
5817// String returns the string representation
5818func (s AccessLevelFilter) String() string {
5819	return awsutil.Prettify(s)
5820}
5821
5822// GoString returns the string representation
5823func (s AccessLevelFilter) GoString() string {
5824	return s.String()
5825}
5826
5827// SetKey sets the Key field's value.
5828func (s *AccessLevelFilter) SetKey(v string) *AccessLevelFilter {
5829	s.Key = &v
5830	return s
5831}
5832
5833// SetValue sets the Value field's value.
5834func (s *AccessLevelFilter) SetValue(v string) *AccessLevelFilter {
5835	s.Value = &v
5836	return s
5837}
5838
5839type AssociatePrincipalWithPortfolioInput struct {
5840	_ struct{} `type:"structure"`
5841
5842	// The language code.
5843	//
5844	//    * en - English (default)
5845	//
5846	//    * jp - Japanese
5847	//
5848	//    * zh - Chinese
5849	AcceptLanguage *string `type:"string"`
5850
5851	// The portfolio identifier.
5852	//
5853	// PortfolioId is a required field
5854	PortfolioId *string `min:"1" type:"string" required:"true"`
5855
5856	// The ARN of the principal (IAM user, role, or group).
5857	//
5858	// PrincipalARN is a required field
5859	PrincipalARN *string `min:"1" type:"string" required:"true"`
5860
5861	// The principal type. The supported value is IAM.
5862	//
5863	// PrincipalType is a required field
5864	PrincipalType *string `type:"string" required:"true" enum:"PrincipalType"`
5865}
5866
5867// String returns the string representation
5868func (s AssociatePrincipalWithPortfolioInput) String() string {
5869	return awsutil.Prettify(s)
5870}
5871
5872// GoString returns the string representation
5873func (s AssociatePrincipalWithPortfolioInput) GoString() string {
5874	return s.String()
5875}
5876
5877// Validate inspects the fields of the type to determine if they are valid.
5878func (s *AssociatePrincipalWithPortfolioInput) Validate() error {
5879	invalidParams := request.ErrInvalidParams{Context: "AssociatePrincipalWithPortfolioInput"}
5880	if s.PortfolioId == nil {
5881		invalidParams.Add(request.NewErrParamRequired("PortfolioId"))
5882	}
5883	if s.PortfolioId != nil && len(*s.PortfolioId) < 1 {
5884		invalidParams.Add(request.NewErrParamMinLen("PortfolioId", 1))
5885	}
5886	if s.PrincipalARN == nil {
5887		invalidParams.Add(request.NewErrParamRequired("PrincipalARN"))
5888	}
5889	if s.PrincipalARN != nil && len(*s.PrincipalARN) < 1 {
5890		invalidParams.Add(request.NewErrParamMinLen("PrincipalARN", 1))
5891	}
5892	if s.PrincipalType == nil {
5893		invalidParams.Add(request.NewErrParamRequired("PrincipalType"))
5894	}
5895
5896	if invalidParams.Len() > 0 {
5897		return invalidParams
5898	}
5899	return nil
5900}
5901
5902// SetAcceptLanguage sets the AcceptLanguage field's value.
5903func (s *AssociatePrincipalWithPortfolioInput) SetAcceptLanguage(v string) *AssociatePrincipalWithPortfolioInput {
5904	s.AcceptLanguage = &v
5905	return s
5906}
5907
5908// SetPortfolioId sets the PortfolioId field's value.
5909func (s *AssociatePrincipalWithPortfolioInput) SetPortfolioId(v string) *AssociatePrincipalWithPortfolioInput {
5910	s.PortfolioId = &v
5911	return s
5912}
5913
5914// SetPrincipalARN sets the PrincipalARN field's value.
5915func (s *AssociatePrincipalWithPortfolioInput) SetPrincipalARN(v string) *AssociatePrincipalWithPortfolioInput {
5916	s.PrincipalARN = &v
5917	return s
5918}
5919
5920// SetPrincipalType sets the PrincipalType field's value.
5921func (s *AssociatePrincipalWithPortfolioInput) SetPrincipalType(v string) *AssociatePrincipalWithPortfolioInput {
5922	s.PrincipalType = &v
5923	return s
5924}
5925
5926type AssociatePrincipalWithPortfolioOutput struct {
5927	_ struct{} `type:"structure"`
5928}
5929
5930// String returns the string representation
5931func (s AssociatePrincipalWithPortfolioOutput) String() string {
5932	return awsutil.Prettify(s)
5933}
5934
5935// GoString returns the string representation
5936func (s AssociatePrincipalWithPortfolioOutput) GoString() string {
5937	return s.String()
5938}
5939
5940type AssociateProductWithPortfolioInput struct {
5941	_ struct{} `type:"structure"`
5942
5943	// The language code.
5944	//
5945	//    * en - English (default)
5946	//
5947	//    * jp - Japanese
5948	//
5949	//    * zh - Chinese
5950	AcceptLanguage *string `type:"string"`
5951
5952	// The portfolio identifier.
5953	//
5954	// PortfolioId is a required field
5955	PortfolioId *string `min:"1" type:"string" required:"true"`
5956
5957	// The product identifier.
5958	//
5959	// ProductId is a required field
5960	ProductId *string `min:"1" type:"string" required:"true"`
5961
5962	// The identifier of the source portfolio.
5963	SourcePortfolioId *string `min:"1" type:"string"`
5964}
5965
5966// String returns the string representation
5967func (s AssociateProductWithPortfolioInput) String() string {
5968	return awsutil.Prettify(s)
5969}
5970
5971// GoString returns the string representation
5972func (s AssociateProductWithPortfolioInput) GoString() string {
5973	return s.String()
5974}
5975
5976// Validate inspects the fields of the type to determine if they are valid.
5977func (s *AssociateProductWithPortfolioInput) Validate() error {
5978	invalidParams := request.ErrInvalidParams{Context: "AssociateProductWithPortfolioInput"}
5979	if s.PortfolioId == nil {
5980		invalidParams.Add(request.NewErrParamRequired("PortfolioId"))
5981	}
5982	if s.PortfolioId != nil && len(*s.PortfolioId) < 1 {
5983		invalidParams.Add(request.NewErrParamMinLen("PortfolioId", 1))
5984	}
5985	if s.ProductId == nil {
5986		invalidParams.Add(request.NewErrParamRequired("ProductId"))
5987	}
5988	if s.ProductId != nil && len(*s.ProductId) < 1 {
5989		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
5990	}
5991	if s.SourcePortfolioId != nil && len(*s.SourcePortfolioId) < 1 {
5992		invalidParams.Add(request.NewErrParamMinLen("SourcePortfolioId", 1))
5993	}
5994
5995	if invalidParams.Len() > 0 {
5996		return invalidParams
5997	}
5998	return nil
5999}
6000
6001// SetAcceptLanguage sets the AcceptLanguage field's value.
6002func (s *AssociateProductWithPortfolioInput) SetAcceptLanguage(v string) *AssociateProductWithPortfolioInput {
6003	s.AcceptLanguage = &v
6004	return s
6005}
6006
6007// SetPortfolioId sets the PortfolioId field's value.
6008func (s *AssociateProductWithPortfolioInput) SetPortfolioId(v string) *AssociateProductWithPortfolioInput {
6009	s.PortfolioId = &v
6010	return s
6011}
6012
6013// SetProductId sets the ProductId field's value.
6014func (s *AssociateProductWithPortfolioInput) SetProductId(v string) *AssociateProductWithPortfolioInput {
6015	s.ProductId = &v
6016	return s
6017}
6018
6019// SetSourcePortfolioId sets the SourcePortfolioId field's value.
6020func (s *AssociateProductWithPortfolioInput) SetSourcePortfolioId(v string) *AssociateProductWithPortfolioInput {
6021	s.SourcePortfolioId = &v
6022	return s
6023}
6024
6025type AssociateProductWithPortfolioOutput struct {
6026	_ struct{} `type:"structure"`
6027}
6028
6029// String returns the string representation
6030func (s AssociateProductWithPortfolioOutput) String() string {
6031	return awsutil.Prettify(s)
6032}
6033
6034// GoString returns the string representation
6035func (s AssociateProductWithPortfolioOutput) GoString() string {
6036	return s.String()
6037}
6038
6039type AssociateTagOptionWithResourceInput struct {
6040	_ struct{} `type:"structure"`
6041
6042	// The resource identifier.
6043	//
6044	// ResourceId is a required field
6045	ResourceId *string `type:"string" required:"true"`
6046
6047	// The TagOption identifier.
6048	//
6049	// TagOptionId is a required field
6050	TagOptionId *string `min:"1" type:"string" required:"true"`
6051}
6052
6053// String returns the string representation
6054func (s AssociateTagOptionWithResourceInput) String() string {
6055	return awsutil.Prettify(s)
6056}
6057
6058// GoString returns the string representation
6059func (s AssociateTagOptionWithResourceInput) GoString() string {
6060	return s.String()
6061}
6062
6063// Validate inspects the fields of the type to determine if they are valid.
6064func (s *AssociateTagOptionWithResourceInput) Validate() error {
6065	invalidParams := request.ErrInvalidParams{Context: "AssociateTagOptionWithResourceInput"}
6066	if s.ResourceId == nil {
6067		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6068	}
6069	if s.TagOptionId == nil {
6070		invalidParams.Add(request.NewErrParamRequired("TagOptionId"))
6071	}
6072	if s.TagOptionId != nil && len(*s.TagOptionId) < 1 {
6073		invalidParams.Add(request.NewErrParamMinLen("TagOptionId", 1))
6074	}
6075
6076	if invalidParams.Len() > 0 {
6077		return invalidParams
6078	}
6079	return nil
6080}
6081
6082// SetResourceId sets the ResourceId field's value.
6083func (s *AssociateTagOptionWithResourceInput) SetResourceId(v string) *AssociateTagOptionWithResourceInput {
6084	s.ResourceId = &v
6085	return s
6086}
6087
6088// SetTagOptionId sets the TagOptionId field's value.
6089func (s *AssociateTagOptionWithResourceInput) SetTagOptionId(v string) *AssociateTagOptionWithResourceInput {
6090	s.TagOptionId = &v
6091	return s
6092}
6093
6094type AssociateTagOptionWithResourceOutput struct {
6095	_ struct{} `type:"structure"`
6096}
6097
6098// String returns the string representation
6099func (s AssociateTagOptionWithResourceOutput) String() string {
6100	return awsutil.Prettify(s)
6101}
6102
6103// GoString returns the string representation
6104func (s AssociateTagOptionWithResourceOutput) GoString() string {
6105	return s.String()
6106}
6107
6108// Information about a CloudWatch dashboard.
6109type CloudWatchDashboard struct {
6110	_ struct{} `type:"structure"`
6111
6112	// The name of the CloudWatch dashboard.
6113	Name *string `type:"string"`
6114}
6115
6116// String returns the string representation
6117func (s CloudWatchDashboard) String() string {
6118	return awsutil.Prettify(s)
6119}
6120
6121// GoString returns the string representation
6122func (s CloudWatchDashboard) GoString() string {
6123	return s.String()
6124}
6125
6126// SetName sets the Name field's value.
6127func (s *CloudWatchDashboard) SetName(v string) *CloudWatchDashboard {
6128	s.Name = &v
6129	return s
6130}
6131
6132// Information about a constraint.
6133type ConstraintDetail struct {
6134	_ struct{} `type:"structure"`
6135
6136	// The identifier of the constraint.
6137	ConstraintId *string `min:"1" type:"string"`
6138
6139	// The description of the constraint.
6140	Description *string `type:"string"`
6141
6142	// The owner of the constraint.
6143	Owner *string `type:"string"`
6144
6145	// The type of constraint.
6146	//
6147	//    * LAUNCH
6148	//
6149	//    * NOTIFICATION
6150	//
6151	//    * TEMPLATE
6152	Type *string `min:"1" type:"string"`
6153}
6154
6155// String returns the string representation
6156func (s ConstraintDetail) String() string {
6157	return awsutil.Prettify(s)
6158}
6159
6160// GoString returns the string representation
6161func (s ConstraintDetail) GoString() string {
6162	return s.String()
6163}
6164
6165// SetConstraintId sets the ConstraintId field's value.
6166func (s *ConstraintDetail) SetConstraintId(v string) *ConstraintDetail {
6167	s.ConstraintId = &v
6168	return s
6169}
6170
6171// SetDescription sets the Description field's value.
6172func (s *ConstraintDetail) SetDescription(v string) *ConstraintDetail {
6173	s.Description = &v
6174	return s
6175}
6176
6177// SetOwner sets the Owner field's value.
6178func (s *ConstraintDetail) SetOwner(v string) *ConstraintDetail {
6179	s.Owner = &v
6180	return s
6181}
6182
6183// SetType sets the Type field's value.
6184func (s *ConstraintDetail) SetType(v string) *ConstraintDetail {
6185	s.Type = &v
6186	return s
6187}
6188
6189// Summary information about a constraint.
6190type ConstraintSummary struct {
6191	_ struct{} `type:"structure"`
6192
6193	// The description of the constraint.
6194	Description *string `type:"string"`
6195
6196	// The type of constraint.
6197	//
6198	//    * LAUNCH
6199	//
6200	//    * NOTIFICATION
6201	//
6202	//    * TEMPLATE
6203	Type *string `min:"1" type:"string"`
6204}
6205
6206// String returns the string representation
6207func (s ConstraintSummary) String() string {
6208	return awsutil.Prettify(s)
6209}
6210
6211// GoString returns the string representation
6212func (s ConstraintSummary) GoString() string {
6213	return s.String()
6214}
6215
6216// SetDescription sets the Description field's value.
6217func (s *ConstraintSummary) SetDescription(v string) *ConstraintSummary {
6218	s.Description = &v
6219	return s
6220}
6221
6222// SetType sets the Type field's value.
6223func (s *ConstraintSummary) SetType(v string) *ConstraintSummary {
6224	s.Type = &v
6225	return s
6226}
6227
6228type CopyProductInput struct {
6229	_ struct{} `type:"structure"`
6230
6231	// The language code.
6232	//
6233	//    * en - English (default)
6234	//
6235	//    * jp - Japanese
6236	//
6237	//    * zh - Chinese
6238	AcceptLanguage *string `type:"string"`
6239
6240	// The copy options. If the value is CopyTags, the tags from the source product
6241	// are copied to the target product.
6242	CopyOptions []*string `type:"list"`
6243
6244	// A unique identifier that you provide to ensure idempotency. If multiple requests
6245	// differ only by the idempotency token, the same response is returned for each
6246	// repeated request.
6247	//
6248	// IdempotencyToken is a required field
6249	IdempotencyToken *string `min:"1" type:"string" required:"true" idempotencyToken:"true"`
6250
6251	// The Amazon Resource Name (ARN) of the source product.
6252	//
6253	// SourceProductArn is a required field
6254	SourceProductArn *string `min:"1" type:"string" required:"true"`
6255
6256	// The identifiers of the provisioning artifacts (also known as versions) of
6257	// the product to copy. By default, all provisioning artifacts are copied.
6258	SourceProvisioningArtifactIdentifiers []map[string]*string `type:"list"`
6259
6260	// The identifier of the target product. By default, a new product is created.
6261	TargetProductId *string `min:"1" type:"string"`
6262
6263	// A name for the target product. The default is the name of the source product.
6264	TargetProductName *string `type:"string"`
6265}
6266
6267// String returns the string representation
6268func (s CopyProductInput) String() string {
6269	return awsutil.Prettify(s)
6270}
6271
6272// GoString returns the string representation
6273func (s CopyProductInput) GoString() string {
6274	return s.String()
6275}
6276
6277// Validate inspects the fields of the type to determine if they are valid.
6278func (s *CopyProductInput) Validate() error {
6279	invalidParams := request.ErrInvalidParams{Context: "CopyProductInput"}
6280	if s.IdempotencyToken == nil {
6281		invalidParams.Add(request.NewErrParamRequired("IdempotencyToken"))
6282	}
6283	if s.IdempotencyToken != nil && len(*s.IdempotencyToken) < 1 {
6284		invalidParams.Add(request.NewErrParamMinLen("IdempotencyToken", 1))
6285	}
6286	if s.SourceProductArn == nil {
6287		invalidParams.Add(request.NewErrParamRequired("SourceProductArn"))
6288	}
6289	if s.SourceProductArn != nil && len(*s.SourceProductArn) < 1 {
6290		invalidParams.Add(request.NewErrParamMinLen("SourceProductArn", 1))
6291	}
6292	if s.TargetProductId != nil && len(*s.TargetProductId) < 1 {
6293		invalidParams.Add(request.NewErrParamMinLen("TargetProductId", 1))
6294	}
6295
6296	if invalidParams.Len() > 0 {
6297		return invalidParams
6298	}
6299	return nil
6300}
6301
6302// SetAcceptLanguage sets the AcceptLanguage field's value.
6303func (s *CopyProductInput) SetAcceptLanguage(v string) *CopyProductInput {
6304	s.AcceptLanguage = &v
6305	return s
6306}
6307
6308// SetCopyOptions sets the CopyOptions field's value.
6309func (s *CopyProductInput) SetCopyOptions(v []*string) *CopyProductInput {
6310	s.CopyOptions = v
6311	return s
6312}
6313
6314// SetIdempotencyToken sets the IdempotencyToken field's value.
6315func (s *CopyProductInput) SetIdempotencyToken(v string) *CopyProductInput {
6316	s.IdempotencyToken = &v
6317	return s
6318}
6319
6320// SetSourceProductArn sets the SourceProductArn field's value.
6321func (s *CopyProductInput) SetSourceProductArn(v string) *CopyProductInput {
6322	s.SourceProductArn = &v
6323	return s
6324}
6325
6326// SetSourceProvisioningArtifactIdentifiers sets the SourceProvisioningArtifactIdentifiers field's value.
6327func (s *CopyProductInput) SetSourceProvisioningArtifactIdentifiers(v []map[string]*string) *CopyProductInput {
6328	s.SourceProvisioningArtifactIdentifiers = v
6329	return s
6330}
6331
6332// SetTargetProductId sets the TargetProductId field's value.
6333func (s *CopyProductInput) SetTargetProductId(v string) *CopyProductInput {
6334	s.TargetProductId = &v
6335	return s
6336}
6337
6338// SetTargetProductName sets the TargetProductName field's value.
6339func (s *CopyProductInput) SetTargetProductName(v string) *CopyProductInput {
6340	s.TargetProductName = &v
6341	return s
6342}
6343
6344type CopyProductOutput struct {
6345	_ struct{} `type:"structure"`
6346
6347	// The token to use to track the progress of the operation.
6348	CopyProductToken *string `min:"1" type:"string"`
6349}
6350
6351// String returns the string representation
6352func (s CopyProductOutput) String() string {
6353	return awsutil.Prettify(s)
6354}
6355
6356// GoString returns the string representation
6357func (s CopyProductOutput) GoString() string {
6358	return s.String()
6359}
6360
6361// SetCopyProductToken sets the CopyProductToken field's value.
6362func (s *CopyProductOutput) SetCopyProductToken(v string) *CopyProductOutput {
6363	s.CopyProductToken = &v
6364	return s
6365}
6366
6367type CreateConstraintInput struct {
6368	_ struct{} `type:"structure"`
6369
6370	// The language code.
6371	//
6372	//    * en - English (default)
6373	//
6374	//    * jp - Japanese
6375	//
6376	//    * zh - Chinese
6377	AcceptLanguage *string `type:"string"`
6378
6379	// The description of the constraint.
6380	Description *string `type:"string"`
6381
6382	// A unique identifier that you provide to ensure idempotency. If multiple requests
6383	// differ only by the idempotency token, the same response is returned for each
6384	// repeated request.
6385	//
6386	// IdempotencyToken is a required field
6387	IdempotencyToken *string `min:"1" type:"string" required:"true" idempotencyToken:"true"`
6388
6389	// The constraint parameters, in JSON format. The syntax depends on the constraint
6390	// type as follows:
6391	//
6392	// LAUNCHSpecify the RoleArn property as follows:
6393	//
6394	// \"RoleArn\" : \"arn:aws:iam::123456789012:role/LaunchRole\"
6395	//
6396	// NOTIFICATIONSpecify the NotificationArns property as follows:
6397	//
6398	// \"NotificationArns\" : [\"arn:aws:sns:us-east-1:123456789012:Topic\"]
6399	//
6400	// TEMPLATESpecify the Rules property. For more information, see Template Constraint
6401	// Rules (http://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html).
6402	//
6403	// Parameters is a required field
6404	Parameters *string `type:"string" required:"true"`
6405
6406	// The portfolio identifier.
6407	//
6408	// PortfolioId is a required field
6409	PortfolioId *string `min:"1" type:"string" required:"true"`
6410
6411	// The product identifier.
6412	//
6413	// ProductId is a required field
6414	ProductId *string `min:"1" type:"string" required:"true"`
6415
6416	// The type of constraint.
6417	//
6418	//    * LAUNCH
6419	//
6420	//    * NOTIFICATION
6421	//
6422	//    * TEMPLATE
6423	//
6424	// Type is a required field
6425	Type *string `min:"1" type:"string" required:"true"`
6426}
6427
6428// String returns the string representation
6429func (s CreateConstraintInput) String() string {
6430	return awsutil.Prettify(s)
6431}
6432
6433// GoString returns the string representation
6434func (s CreateConstraintInput) GoString() string {
6435	return s.String()
6436}
6437
6438// Validate inspects the fields of the type to determine if they are valid.
6439func (s *CreateConstraintInput) Validate() error {
6440	invalidParams := request.ErrInvalidParams{Context: "CreateConstraintInput"}
6441	if s.IdempotencyToken == nil {
6442		invalidParams.Add(request.NewErrParamRequired("IdempotencyToken"))
6443	}
6444	if s.IdempotencyToken != nil && len(*s.IdempotencyToken) < 1 {
6445		invalidParams.Add(request.NewErrParamMinLen("IdempotencyToken", 1))
6446	}
6447	if s.Parameters == nil {
6448		invalidParams.Add(request.NewErrParamRequired("Parameters"))
6449	}
6450	if s.PortfolioId == nil {
6451		invalidParams.Add(request.NewErrParamRequired("PortfolioId"))
6452	}
6453	if s.PortfolioId != nil && len(*s.PortfolioId) < 1 {
6454		invalidParams.Add(request.NewErrParamMinLen("PortfolioId", 1))
6455	}
6456	if s.ProductId == nil {
6457		invalidParams.Add(request.NewErrParamRequired("ProductId"))
6458	}
6459	if s.ProductId != nil && len(*s.ProductId) < 1 {
6460		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
6461	}
6462	if s.Type == nil {
6463		invalidParams.Add(request.NewErrParamRequired("Type"))
6464	}
6465	if s.Type != nil && len(*s.Type) < 1 {
6466		invalidParams.Add(request.NewErrParamMinLen("Type", 1))
6467	}
6468
6469	if invalidParams.Len() > 0 {
6470		return invalidParams
6471	}
6472	return nil
6473}
6474
6475// SetAcceptLanguage sets the AcceptLanguage field's value.
6476func (s *CreateConstraintInput) SetAcceptLanguage(v string) *CreateConstraintInput {
6477	s.AcceptLanguage = &v
6478	return s
6479}
6480
6481// SetDescription sets the Description field's value.
6482func (s *CreateConstraintInput) SetDescription(v string) *CreateConstraintInput {
6483	s.Description = &v
6484	return s
6485}
6486
6487// SetIdempotencyToken sets the IdempotencyToken field's value.
6488func (s *CreateConstraintInput) SetIdempotencyToken(v string) *CreateConstraintInput {
6489	s.IdempotencyToken = &v
6490	return s
6491}
6492
6493// SetParameters sets the Parameters field's value.
6494func (s *CreateConstraintInput) SetParameters(v string) *CreateConstraintInput {
6495	s.Parameters = &v
6496	return s
6497}
6498
6499// SetPortfolioId sets the PortfolioId field's value.
6500func (s *CreateConstraintInput) SetPortfolioId(v string) *CreateConstraintInput {
6501	s.PortfolioId = &v
6502	return s
6503}
6504
6505// SetProductId sets the ProductId field's value.
6506func (s *CreateConstraintInput) SetProductId(v string) *CreateConstraintInput {
6507	s.ProductId = &v
6508	return s
6509}
6510
6511// SetType sets the Type field's value.
6512func (s *CreateConstraintInput) SetType(v string) *CreateConstraintInput {
6513	s.Type = &v
6514	return s
6515}
6516
6517type CreateConstraintOutput struct {
6518	_ struct{} `type:"structure"`
6519
6520	// Information about the constraint.
6521	ConstraintDetail *ConstraintDetail `type:"structure"`
6522
6523	// The constraint parameters.
6524	ConstraintParameters *string `type:"string"`
6525
6526	// The status of the current request.
6527	Status *string `type:"string" enum:"Status"`
6528}
6529
6530// String returns the string representation
6531func (s CreateConstraintOutput) String() string {
6532	return awsutil.Prettify(s)
6533}
6534
6535// GoString returns the string representation
6536func (s CreateConstraintOutput) GoString() string {
6537	return s.String()
6538}
6539
6540// SetConstraintDetail sets the ConstraintDetail field's value.
6541func (s *CreateConstraintOutput) SetConstraintDetail(v *ConstraintDetail) *CreateConstraintOutput {
6542	s.ConstraintDetail = v
6543	return s
6544}
6545
6546// SetConstraintParameters sets the ConstraintParameters field's value.
6547func (s *CreateConstraintOutput) SetConstraintParameters(v string) *CreateConstraintOutput {
6548	s.ConstraintParameters = &v
6549	return s
6550}
6551
6552// SetStatus sets the Status field's value.
6553func (s *CreateConstraintOutput) SetStatus(v string) *CreateConstraintOutput {
6554	s.Status = &v
6555	return s
6556}
6557
6558type CreatePortfolioInput struct {
6559	_ struct{} `type:"structure"`
6560
6561	// The language code.
6562	//
6563	//    * en - English (default)
6564	//
6565	//    * jp - Japanese
6566	//
6567	//    * zh - Chinese
6568	AcceptLanguage *string `type:"string"`
6569
6570	// The description of the portfolio.
6571	Description *string `type:"string"`
6572
6573	// The name to use for display purposes.
6574	//
6575	// DisplayName is a required field
6576	DisplayName *string `min:"1" type:"string" required:"true"`
6577
6578	// A unique identifier that you provide to ensure idempotency. If multiple requests
6579	// differ only by the idempotency token, the same response is returned for each
6580	// repeated request.
6581	//
6582	// IdempotencyToken is a required field
6583	IdempotencyToken *string `min:"1" type:"string" required:"true" idempotencyToken:"true"`
6584
6585	// The name of the portfolio provider.
6586	//
6587	// ProviderName is a required field
6588	ProviderName *string `min:"1" type:"string" required:"true"`
6589
6590	// One or more tags.
6591	Tags []*Tag `type:"list"`
6592}
6593
6594// String returns the string representation
6595func (s CreatePortfolioInput) String() string {
6596	return awsutil.Prettify(s)
6597}
6598
6599// GoString returns the string representation
6600func (s CreatePortfolioInput) GoString() string {
6601	return s.String()
6602}
6603
6604// Validate inspects the fields of the type to determine if they are valid.
6605func (s *CreatePortfolioInput) Validate() error {
6606	invalidParams := request.ErrInvalidParams{Context: "CreatePortfolioInput"}
6607	if s.DisplayName == nil {
6608		invalidParams.Add(request.NewErrParamRequired("DisplayName"))
6609	}
6610	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
6611		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
6612	}
6613	if s.IdempotencyToken == nil {
6614		invalidParams.Add(request.NewErrParamRequired("IdempotencyToken"))
6615	}
6616	if s.IdempotencyToken != nil && len(*s.IdempotencyToken) < 1 {
6617		invalidParams.Add(request.NewErrParamMinLen("IdempotencyToken", 1))
6618	}
6619	if s.ProviderName == nil {
6620		invalidParams.Add(request.NewErrParamRequired("ProviderName"))
6621	}
6622	if s.ProviderName != nil && len(*s.ProviderName) < 1 {
6623		invalidParams.Add(request.NewErrParamMinLen("ProviderName", 1))
6624	}
6625	if s.Tags != nil {
6626		for i, v := range s.Tags {
6627			if v == nil {
6628				continue
6629			}
6630			if err := v.Validate(); err != nil {
6631				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6632			}
6633		}
6634	}
6635
6636	if invalidParams.Len() > 0 {
6637		return invalidParams
6638	}
6639	return nil
6640}
6641
6642// SetAcceptLanguage sets the AcceptLanguage field's value.
6643func (s *CreatePortfolioInput) SetAcceptLanguage(v string) *CreatePortfolioInput {
6644	s.AcceptLanguage = &v
6645	return s
6646}
6647
6648// SetDescription sets the Description field's value.
6649func (s *CreatePortfolioInput) SetDescription(v string) *CreatePortfolioInput {
6650	s.Description = &v
6651	return s
6652}
6653
6654// SetDisplayName sets the DisplayName field's value.
6655func (s *CreatePortfolioInput) SetDisplayName(v string) *CreatePortfolioInput {
6656	s.DisplayName = &v
6657	return s
6658}
6659
6660// SetIdempotencyToken sets the IdempotencyToken field's value.
6661func (s *CreatePortfolioInput) SetIdempotencyToken(v string) *CreatePortfolioInput {
6662	s.IdempotencyToken = &v
6663	return s
6664}
6665
6666// SetProviderName sets the ProviderName field's value.
6667func (s *CreatePortfolioInput) SetProviderName(v string) *CreatePortfolioInput {
6668	s.ProviderName = &v
6669	return s
6670}
6671
6672// SetTags sets the Tags field's value.
6673func (s *CreatePortfolioInput) SetTags(v []*Tag) *CreatePortfolioInput {
6674	s.Tags = v
6675	return s
6676}
6677
6678type CreatePortfolioOutput struct {
6679	_ struct{} `type:"structure"`
6680
6681	// Information about the portfolio.
6682	PortfolioDetail *PortfolioDetail `type:"structure"`
6683
6684	// Information about the tags associated with the portfolio.
6685	Tags []*Tag `type:"list"`
6686}
6687
6688// String returns the string representation
6689func (s CreatePortfolioOutput) String() string {
6690	return awsutil.Prettify(s)
6691}
6692
6693// GoString returns the string representation
6694func (s CreatePortfolioOutput) GoString() string {
6695	return s.String()
6696}
6697
6698// SetPortfolioDetail sets the PortfolioDetail field's value.
6699func (s *CreatePortfolioOutput) SetPortfolioDetail(v *PortfolioDetail) *CreatePortfolioOutput {
6700	s.PortfolioDetail = v
6701	return s
6702}
6703
6704// SetTags sets the Tags field's value.
6705func (s *CreatePortfolioOutput) SetTags(v []*Tag) *CreatePortfolioOutput {
6706	s.Tags = v
6707	return s
6708}
6709
6710type CreatePortfolioShareInput struct {
6711	_ struct{} `type:"structure"`
6712
6713	// The language code.
6714	//
6715	//    * en - English (default)
6716	//
6717	//    * jp - Japanese
6718	//
6719	//    * zh - Chinese
6720	AcceptLanguage *string `type:"string"`
6721
6722	// The AWS account ID.
6723	//
6724	// AccountId is a required field
6725	AccountId *string `type:"string" required:"true"`
6726
6727	// The portfolio identifier.
6728	//
6729	// PortfolioId is a required field
6730	PortfolioId *string `min:"1" type:"string" required:"true"`
6731}
6732
6733// String returns the string representation
6734func (s CreatePortfolioShareInput) String() string {
6735	return awsutil.Prettify(s)
6736}
6737
6738// GoString returns the string representation
6739func (s CreatePortfolioShareInput) GoString() string {
6740	return s.String()
6741}
6742
6743// Validate inspects the fields of the type to determine if they are valid.
6744func (s *CreatePortfolioShareInput) Validate() error {
6745	invalidParams := request.ErrInvalidParams{Context: "CreatePortfolioShareInput"}
6746	if s.AccountId == nil {
6747		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6748	}
6749	if s.PortfolioId == nil {
6750		invalidParams.Add(request.NewErrParamRequired("PortfolioId"))
6751	}
6752	if s.PortfolioId != nil && len(*s.PortfolioId) < 1 {
6753		invalidParams.Add(request.NewErrParamMinLen("PortfolioId", 1))
6754	}
6755
6756	if invalidParams.Len() > 0 {
6757		return invalidParams
6758	}
6759	return nil
6760}
6761
6762// SetAcceptLanguage sets the AcceptLanguage field's value.
6763func (s *CreatePortfolioShareInput) SetAcceptLanguage(v string) *CreatePortfolioShareInput {
6764	s.AcceptLanguage = &v
6765	return s
6766}
6767
6768// SetAccountId sets the AccountId field's value.
6769func (s *CreatePortfolioShareInput) SetAccountId(v string) *CreatePortfolioShareInput {
6770	s.AccountId = &v
6771	return s
6772}
6773
6774// SetPortfolioId sets the PortfolioId field's value.
6775func (s *CreatePortfolioShareInput) SetPortfolioId(v string) *CreatePortfolioShareInput {
6776	s.PortfolioId = &v
6777	return s
6778}
6779
6780type CreatePortfolioShareOutput struct {
6781	_ struct{} `type:"structure"`
6782}
6783
6784// String returns the string representation
6785func (s CreatePortfolioShareOutput) String() string {
6786	return awsutil.Prettify(s)
6787}
6788
6789// GoString returns the string representation
6790func (s CreatePortfolioShareOutput) GoString() string {
6791	return s.String()
6792}
6793
6794type CreateProductInput struct {
6795	_ struct{} `type:"structure"`
6796
6797	// The language code.
6798	//
6799	//    * en - English (default)
6800	//
6801	//    * jp - Japanese
6802	//
6803	//    * zh - Chinese
6804	AcceptLanguage *string `type:"string"`
6805
6806	// The description of the product.
6807	Description *string `type:"string"`
6808
6809	// The distributor of the product.
6810	Distributor *string `type:"string"`
6811
6812	// A unique identifier that you provide to ensure idempotency. If multiple requests
6813	// differ only by the idempotency token, the same response is returned for each
6814	// repeated request.
6815	//
6816	// IdempotencyToken is a required field
6817	IdempotencyToken *string `min:"1" type:"string" required:"true" idempotencyToken:"true"`
6818
6819	// The name of the product.
6820	//
6821	// Name is a required field
6822	Name *string `type:"string" required:"true"`
6823
6824	// The owner of the product.
6825	//
6826	// Owner is a required field
6827	Owner *string `type:"string" required:"true"`
6828
6829	// The type of product.
6830	//
6831	// ProductType is a required field
6832	ProductType *string `type:"string" required:"true" enum:"ProductType"`
6833
6834	// The configuration of the provisioning artifact.
6835	//
6836	// ProvisioningArtifactParameters is a required field
6837	ProvisioningArtifactParameters *ProvisioningArtifactProperties `type:"structure" required:"true"`
6838
6839	// The support information about the product.
6840	SupportDescription *string `type:"string"`
6841
6842	// The contact email for product support.
6843	SupportEmail *string `type:"string"`
6844
6845	// The contact URL for product support.
6846	SupportUrl *string `type:"string"`
6847
6848	// One or more tags.
6849	Tags []*Tag `type:"list"`
6850}
6851
6852// String returns the string representation
6853func (s CreateProductInput) String() string {
6854	return awsutil.Prettify(s)
6855}
6856
6857// GoString returns the string representation
6858func (s CreateProductInput) GoString() string {
6859	return s.String()
6860}
6861
6862// Validate inspects the fields of the type to determine if they are valid.
6863func (s *CreateProductInput) Validate() error {
6864	invalidParams := request.ErrInvalidParams{Context: "CreateProductInput"}
6865	if s.IdempotencyToken == nil {
6866		invalidParams.Add(request.NewErrParamRequired("IdempotencyToken"))
6867	}
6868	if s.IdempotencyToken != nil && len(*s.IdempotencyToken) < 1 {
6869		invalidParams.Add(request.NewErrParamMinLen("IdempotencyToken", 1))
6870	}
6871	if s.Name == nil {
6872		invalidParams.Add(request.NewErrParamRequired("Name"))
6873	}
6874	if s.Owner == nil {
6875		invalidParams.Add(request.NewErrParamRequired("Owner"))
6876	}
6877	if s.ProductType == nil {
6878		invalidParams.Add(request.NewErrParamRequired("ProductType"))
6879	}
6880	if s.ProvisioningArtifactParameters == nil {
6881		invalidParams.Add(request.NewErrParamRequired("ProvisioningArtifactParameters"))
6882	}
6883	if s.ProvisioningArtifactParameters != nil {
6884		if err := s.ProvisioningArtifactParameters.Validate(); err != nil {
6885			invalidParams.AddNested("ProvisioningArtifactParameters", err.(request.ErrInvalidParams))
6886		}
6887	}
6888	if s.Tags != nil {
6889		for i, v := range s.Tags {
6890			if v == nil {
6891				continue
6892			}
6893			if err := v.Validate(); err != nil {
6894				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6895			}
6896		}
6897	}
6898
6899	if invalidParams.Len() > 0 {
6900		return invalidParams
6901	}
6902	return nil
6903}
6904
6905// SetAcceptLanguage sets the AcceptLanguage field's value.
6906func (s *CreateProductInput) SetAcceptLanguage(v string) *CreateProductInput {
6907	s.AcceptLanguage = &v
6908	return s
6909}
6910
6911// SetDescription sets the Description field's value.
6912func (s *CreateProductInput) SetDescription(v string) *CreateProductInput {
6913	s.Description = &v
6914	return s
6915}
6916
6917// SetDistributor sets the Distributor field's value.
6918func (s *CreateProductInput) SetDistributor(v string) *CreateProductInput {
6919	s.Distributor = &v
6920	return s
6921}
6922
6923// SetIdempotencyToken sets the IdempotencyToken field's value.
6924func (s *CreateProductInput) SetIdempotencyToken(v string) *CreateProductInput {
6925	s.IdempotencyToken = &v
6926	return s
6927}
6928
6929// SetName sets the Name field's value.
6930func (s *CreateProductInput) SetName(v string) *CreateProductInput {
6931	s.Name = &v
6932	return s
6933}
6934
6935// SetOwner sets the Owner field's value.
6936func (s *CreateProductInput) SetOwner(v string) *CreateProductInput {
6937	s.Owner = &v
6938	return s
6939}
6940
6941// SetProductType sets the ProductType field's value.
6942func (s *CreateProductInput) SetProductType(v string) *CreateProductInput {
6943	s.ProductType = &v
6944	return s
6945}
6946
6947// SetProvisioningArtifactParameters sets the ProvisioningArtifactParameters field's value.
6948func (s *CreateProductInput) SetProvisioningArtifactParameters(v *ProvisioningArtifactProperties) *CreateProductInput {
6949	s.ProvisioningArtifactParameters = v
6950	return s
6951}
6952
6953// SetSupportDescription sets the SupportDescription field's value.
6954func (s *CreateProductInput) SetSupportDescription(v string) *CreateProductInput {
6955	s.SupportDescription = &v
6956	return s
6957}
6958
6959// SetSupportEmail sets the SupportEmail field's value.
6960func (s *CreateProductInput) SetSupportEmail(v string) *CreateProductInput {
6961	s.SupportEmail = &v
6962	return s
6963}
6964
6965// SetSupportUrl sets the SupportUrl field's value.
6966func (s *CreateProductInput) SetSupportUrl(v string) *CreateProductInput {
6967	s.SupportUrl = &v
6968	return s
6969}
6970
6971// SetTags sets the Tags field's value.
6972func (s *CreateProductInput) SetTags(v []*Tag) *CreateProductInput {
6973	s.Tags = v
6974	return s
6975}
6976
6977type CreateProductOutput struct {
6978	_ struct{} `type:"structure"`
6979
6980	// Information about the product view.
6981	ProductViewDetail *ProductViewDetail `type:"structure"`
6982
6983	// Information about the provisioning artifact.
6984	ProvisioningArtifactDetail *ProvisioningArtifactDetail `type:"structure"`
6985
6986	// Information about the tags associated with the product.
6987	Tags []*Tag `type:"list"`
6988}
6989
6990// String returns the string representation
6991func (s CreateProductOutput) String() string {
6992	return awsutil.Prettify(s)
6993}
6994
6995// GoString returns the string representation
6996func (s CreateProductOutput) GoString() string {
6997	return s.String()
6998}
6999
7000// SetProductViewDetail sets the ProductViewDetail field's value.
7001func (s *CreateProductOutput) SetProductViewDetail(v *ProductViewDetail) *CreateProductOutput {
7002	s.ProductViewDetail = v
7003	return s
7004}
7005
7006// SetProvisioningArtifactDetail sets the ProvisioningArtifactDetail field's value.
7007func (s *CreateProductOutput) SetProvisioningArtifactDetail(v *ProvisioningArtifactDetail) *CreateProductOutput {
7008	s.ProvisioningArtifactDetail = v
7009	return s
7010}
7011
7012// SetTags sets the Tags field's value.
7013func (s *CreateProductOutput) SetTags(v []*Tag) *CreateProductOutput {
7014	s.Tags = v
7015	return s
7016}
7017
7018type CreateProvisionedProductPlanInput struct {
7019	_ struct{} `type:"structure"`
7020
7021	// The language code.
7022	//
7023	//    * en - English (default)
7024	//
7025	//    * jp - Japanese
7026	//
7027	//    * zh - Chinese
7028	AcceptLanguage *string `type:"string"`
7029
7030	// A unique identifier that you provide to ensure idempotency. If multiple requests
7031	// differ only by the idempotency token, the same response is returned for each
7032	// repeated request.
7033	//
7034	// IdempotencyToken is a required field
7035	IdempotencyToken *string `min:"1" type:"string" required:"true" idempotencyToken:"true"`
7036
7037	// Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related
7038	// events.
7039	NotificationArns []*string `type:"list"`
7040
7041	// The path identifier of the product. This value is optional if the product
7042	// has a default path, and required if the product has more than one path. To
7043	// list the paths for a product, use ListLaunchPaths.
7044	PathId *string `min:"1" type:"string"`
7045
7046	// The name of the plan.
7047	//
7048	// PlanName is a required field
7049	PlanName *string `type:"string" required:"true"`
7050
7051	// The plan type.
7052	//
7053	// PlanType is a required field
7054	PlanType *string `type:"string" required:"true" enum:"ProvisionedProductPlanType"`
7055
7056	// The product identifier.
7057	//
7058	// ProductId is a required field
7059	ProductId *string `min:"1" type:"string" required:"true"`
7060
7061	// A user-friendly name for the provisioned product. This value must be unique
7062	// for the AWS account and cannot be updated after the product is provisioned.
7063	//
7064	// ProvisionedProductName is a required field
7065	ProvisionedProductName *string `min:"1" type:"string" required:"true"`
7066
7067	// The identifier of the provisioning artifact.
7068	//
7069	// ProvisioningArtifactId is a required field
7070	ProvisioningArtifactId *string `min:"1" type:"string" required:"true"`
7071
7072	// Parameters specified by the administrator that are required for provisioning
7073	// the product.
7074	ProvisioningParameters []*UpdateProvisioningParameter `type:"list"`
7075
7076	// One or more tags.
7077	Tags []*Tag `type:"list"`
7078}
7079
7080// String returns the string representation
7081func (s CreateProvisionedProductPlanInput) String() string {
7082	return awsutil.Prettify(s)
7083}
7084
7085// GoString returns the string representation
7086func (s CreateProvisionedProductPlanInput) GoString() string {
7087	return s.String()
7088}
7089
7090// Validate inspects the fields of the type to determine if they are valid.
7091func (s *CreateProvisionedProductPlanInput) Validate() error {
7092	invalidParams := request.ErrInvalidParams{Context: "CreateProvisionedProductPlanInput"}
7093	if s.IdempotencyToken == nil {
7094		invalidParams.Add(request.NewErrParamRequired("IdempotencyToken"))
7095	}
7096	if s.IdempotencyToken != nil && len(*s.IdempotencyToken) < 1 {
7097		invalidParams.Add(request.NewErrParamMinLen("IdempotencyToken", 1))
7098	}
7099	if s.PathId != nil && len(*s.PathId) < 1 {
7100		invalidParams.Add(request.NewErrParamMinLen("PathId", 1))
7101	}
7102	if s.PlanName == nil {
7103		invalidParams.Add(request.NewErrParamRequired("PlanName"))
7104	}
7105	if s.PlanType == nil {
7106		invalidParams.Add(request.NewErrParamRequired("PlanType"))
7107	}
7108	if s.ProductId == nil {
7109		invalidParams.Add(request.NewErrParamRequired("ProductId"))
7110	}
7111	if s.ProductId != nil && len(*s.ProductId) < 1 {
7112		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
7113	}
7114	if s.ProvisionedProductName == nil {
7115		invalidParams.Add(request.NewErrParamRequired("ProvisionedProductName"))
7116	}
7117	if s.ProvisionedProductName != nil && len(*s.ProvisionedProductName) < 1 {
7118		invalidParams.Add(request.NewErrParamMinLen("ProvisionedProductName", 1))
7119	}
7120	if s.ProvisioningArtifactId == nil {
7121		invalidParams.Add(request.NewErrParamRequired("ProvisioningArtifactId"))
7122	}
7123	if s.ProvisioningArtifactId != nil && len(*s.ProvisioningArtifactId) < 1 {
7124		invalidParams.Add(request.NewErrParamMinLen("ProvisioningArtifactId", 1))
7125	}
7126	if s.ProvisioningParameters != nil {
7127		for i, v := range s.ProvisioningParameters {
7128			if v == nil {
7129				continue
7130			}
7131			if err := v.Validate(); err != nil {
7132				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ProvisioningParameters", i), err.(request.ErrInvalidParams))
7133			}
7134		}
7135	}
7136	if s.Tags != nil {
7137		for i, v := range s.Tags {
7138			if v == nil {
7139				continue
7140			}
7141			if err := v.Validate(); err != nil {
7142				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7143			}
7144		}
7145	}
7146
7147	if invalidParams.Len() > 0 {
7148		return invalidParams
7149	}
7150	return nil
7151}
7152
7153// SetAcceptLanguage sets the AcceptLanguage field's value.
7154func (s *CreateProvisionedProductPlanInput) SetAcceptLanguage(v string) *CreateProvisionedProductPlanInput {
7155	s.AcceptLanguage = &v
7156	return s
7157}
7158
7159// SetIdempotencyToken sets the IdempotencyToken field's value.
7160func (s *CreateProvisionedProductPlanInput) SetIdempotencyToken(v string) *CreateProvisionedProductPlanInput {
7161	s.IdempotencyToken = &v
7162	return s
7163}
7164
7165// SetNotificationArns sets the NotificationArns field's value.
7166func (s *CreateProvisionedProductPlanInput) SetNotificationArns(v []*string) *CreateProvisionedProductPlanInput {
7167	s.NotificationArns = v
7168	return s
7169}
7170
7171// SetPathId sets the PathId field's value.
7172func (s *CreateProvisionedProductPlanInput) SetPathId(v string) *CreateProvisionedProductPlanInput {
7173	s.PathId = &v
7174	return s
7175}
7176
7177// SetPlanName sets the PlanName field's value.
7178func (s *CreateProvisionedProductPlanInput) SetPlanName(v string) *CreateProvisionedProductPlanInput {
7179	s.PlanName = &v
7180	return s
7181}
7182
7183// SetPlanType sets the PlanType field's value.
7184func (s *CreateProvisionedProductPlanInput) SetPlanType(v string) *CreateProvisionedProductPlanInput {
7185	s.PlanType = &v
7186	return s
7187}
7188
7189// SetProductId sets the ProductId field's value.
7190func (s *CreateProvisionedProductPlanInput) SetProductId(v string) *CreateProvisionedProductPlanInput {
7191	s.ProductId = &v
7192	return s
7193}
7194
7195// SetProvisionedProductName sets the ProvisionedProductName field's value.
7196func (s *CreateProvisionedProductPlanInput) SetProvisionedProductName(v string) *CreateProvisionedProductPlanInput {
7197	s.ProvisionedProductName = &v
7198	return s
7199}
7200
7201// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value.
7202func (s *CreateProvisionedProductPlanInput) SetProvisioningArtifactId(v string) *CreateProvisionedProductPlanInput {
7203	s.ProvisioningArtifactId = &v
7204	return s
7205}
7206
7207// SetProvisioningParameters sets the ProvisioningParameters field's value.
7208func (s *CreateProvisionedProductPlanInput) SetProvisioningParameters(v []*UpdateProvisioningParameter) *CreateProvisionedProductPlanInput {
7209	s.ProvisioningParameters = v
7210	return s
7211}
7212
7213// SetTags sets the Tags field's value.
7214func (s *CreateProvisionedProductPlanInput) SetTags(v []*Tag) *CreateProvisionedProductPlanInput {
7215	s.Tags = v
7216	return s
7217}
7218
7219type CreateProvisionedProductPlanOutput struct {
7220	_ struct{} `type:"structure"`
7221
7222	// The plan identifier.
7223	PlanId *string `min:"1" type:"string"`
7224
7225	// The name of the plan.
7226	PlanName *string `type:"string"`
7227
7228	// The product identifier.
7229	ProvisionProductId *string `min:"1" type:"string"`
7230
7231	// The user-friendly name of the provisioned product.
7232	ProvisionedProductName *string `min:"1" type:"string"`
7233
7234	// The identifier of the provisioning artifact.
7235	ProvisioningArtifactId *string `min:"1" type:"string"`
7236}
7237
7238// String returns the string representation
7239func (s CreateProvisionedProductPlanOutput) String() string {
7240	return awsutil.Prettify(s)
7241}
7242
7243// GoString returns the string representation
7244func (s CreateProvisionedProductPlanOutput) GoString() string {
7245	return s.String()
7246}
7247
7248// SetPlanId sets the PlanId field's value.
7249func (s *CreateProvisionedProductPlanOutput) SetPlanId(v string) *CreateProvisionedProductPlanOutput {
7250	s.PlanId = &v
7251	return s
7252}
7253
7254// SetPlanName sets the PlanName field's value.
7255func (s *CreateProvisionedProductPlanOutput) SetPlanName(v string) *CreateProvisionedProductPlanOutput {
7256	s.PlanName = &v
7257	return s
7258}
7259
7260// SetProvisionProductId sets the ProvisionProductId field's value.
7261func (s *CreateProvisionedProductPlanOutput) SetProvisionProductId(v string) *CreateProvisionedProductPlanOutput {
7262	s.ProvisionProductId = &v
7263	return s
7264}
7265
7266// SetProvisionedProductName sets the ProvisionedProductName field's value.
7267func (s *CreateProvisionedProductPlanOutput) SetProvisionedProductName(v string) *CreateProvisionedProductPlanOutput {
7268	s.ProvisionedProductName = &v
7269	return s
7270}
7271
7272// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value.
7273func (s *CreateProvisionedProductPlanOutput) SetProvisioningArtifactId(v string) *CreateProvisionedProductPlanOutput {
7274	s.ProvisioningArtifactId = &v
7275	return s
7276}
7277
7278type CreateProvisioningArtifactInput struct {
7279	_ struct{} `type:"structure"`
7280
7281	// The language code.
7282	//
7283	//    * en - English (default)
7284	//
7285	//    * jp - Japanese
7286	//
7287	//    * zh - Chinese
7288	AcceptLanguage *string `type:"string"`
7289
7290	// A unique identifier that you provide to ensure idempotency. If multiple requests
7291	// differ only by the idempotency token, the same response is returned for each
7292	// repeated request.
7293	//
7294	// IdempotencyToken is a required field
7295	IdempotencyToken *string `min:"1" type:"string" required:"true" idempotencyToken:"true"`
7296
7297	// The configuration for the provisioning artifact.
7298	//
7299	// Parameters is a required field
7300	Parameters *ProvisioningArtifactProperties `type:"structure" required:"true"`
7301
7302	// The product identifier.
7303	//
7304	// ProductId is a required field
7305	ProductId *string `min:"1" type:"string" required:"true"`
7306}
7307
7308// String returns the string representation
7309func (s CreateProvisioningArtifactInput) String() string {
7310	return awsutil.Prettify(s)
7311}
7312
7313// GoString returns the string representation
7314func (s CreateProvisioningArtifactInput) GoString() string {
7315	return s.String()
7316}
7317
7318// Validate inspects the fields of the type to determine if they are valid.
7319func (s *CreateProvisioningArtifactInput) Validate() error {
7320	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningArtifactInput"}
7321	if s.IdempotencyToken == nil {
7322		invalidParams.Add(request.NewErrParamRequired("IdempotencyToken"))
7323	}
7324	if s.IdempotencyToken != nil && len(*s.IdempotencyToken) < 1 {
7325		invalidParams.Add(request.NewErrParamMinLen("IdempotencyToken", 1))
7326	}
7327	if s.Parameters == nil {
7328		invalidParams.Add(request.NewErrParamRequired("Parameters"))
7329	}
7330	if s.ProductId == nil {
7331		invalidParams.Add(request.NewErrParamRequired("ProductId"))
7332	}
7333	if s.ProductId != nil && len(*s.ProductId) < 1 {
7334		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
7335	}
7336	if s.Parameters != nil {
7337		if err := s.Parameters.Validate(); err != nil {
7338			invalidParams.AddNested("Parameters", err.(request.ErrInvalidParams))
7339		}
7340	}
7341
7342	if invalidParams.Len() > 0 {
7343		return invalidParams
7344	}
7345	return nil
7346}
7347
7348// SetAcceptLanguage sets the AcceptLanguage field's value.
7349func (s *CreateProvisioningArtifactInput) SetAcceptLanguage(v string) *CreateProvisioningArtifactInput {
7350	s.AcceptLanguage = &v
7351	return s
7352}
7353
7354// SetIdempotencyToken sets the IdempotencyToken field's value.
7355func (s *CreateProvisioningArtifactInput) SetIdempotencyToken(v string) *CreateProvisioningArtifactInput {
7356	s.IdempotencyToken = &v
7357	return s
7358}
7359
7360// SetParameters sets the Parameters field's value.
7361func (s *CreateProvisioningArtifactInput) SetParameters(v *ProvisioningArtifactProperties) *CreateProvisioningArtifactInput {
7362	s.Parameters = v
7363	return s
7364}
7365
7366// SetProductId sets the ProductId field's value.
7367func (s *CreateProvisioningArtifactInput) SetProductId(v string) *CreateProvisioningArtifactInput {
7368	s.ProductId = &v
7369	return s
7370}
7371
7372type CreateProvisioningArtifactOutput struct {
7373	_ struct{} `type:"structure"`
7374
7375	// The URL of the CloudFormation template in Amazon S3, in JSON format.
7376	Info map[string]*string `min:"1" type:"map"`
7377
7378	// Information about the provisioning artifact.
7379	ProvisioningArtifactDetail *ProvisioningArtifactDetail `type:"structure"`
7380
7381	// The status of the current request.
7382	Status *string `type:"string" enum:"Status"`
7383}
7384
7385// String returns the string representation
7386func (s CreateProvisioningArtifactOutput) String() string {
7387	return awsutil.Prettify(s)
7388}
7389
7390// GoString returns the string representation
7391func (s CreateProvisioningArtifactOutput) GoString() string {
7392	return s.String()
7393}
7394
7395// SetInfo sets the Info field's value.
7396func (s *CreateProvisioningArtifactOutput) SetInfo(v map[string]*string) *CreateProvisioningArtifactOutput {
7397	s.Info = v
7398	return s
7399}
7400
7401// SetProvisioningArtifactDetail sets the ProvisioningArtifactDetail field's value.
7402func (s *CreateProvisioningArtifactOutput) SetProvisioningArtifactDetail(v *ProvisioningArtifactDetail) *CreateProvisioningArtifactOutput {
7403	s.ProvisioningArtifactDetail = v
7404	return s
7405}
7406
7407// SetStatus sets the Status field's value.
7408func (s *CreateProvisioningArtifactOutput) SetStatus(v string) *CreateProvisioningArtifactOutput {
7409	s.Status = &v
7410	return s
7411}
7412
7413type CreateTagOptionInput struct {
7414	_ struct{} `type:"structure"`
7415
7416	// The TagOption key.
7417	//
7418	// Key is a required field
7419	Key *string `min:"1" type:"string" required:"true"`
7420
7421	// The TagOption value.
7422	//
7423	// Value is a required field
7424	Value *string `min:"1" type:"string" required:"true"`
7425}
7426
7427// String returns the string representation
7428func (s CreateTagOptionInput) String() string {
7429	return awsutil.Prettify(s)
7430}
7431
7432// GoString returns the string representation
7433func (s CreateTagOptionInput) GoString() string {
7434	return s.String()
7435}
7436
7437// Validate inspects the fields of the type to determine if they are valid.
7438func (s *CreateTagOptionInput) Validate() error {
7439	invalidParams := request.ErrInvalidParams{Context: "CreateTagOptionInput"}
7440	if s.Key == nil {
7441		invalidParams.Add(request.NewErrParamRequired("Key"))
7442	}
7443	if s.Key != nil && len(*s.Key) < 1 {
7444		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
7445	}
7446	if s.Value == nil {
7447		invalidParams.Add(request.NewErrParamRequired("Value"))
7448	}
7449	if s.Value != nil && len(*s.Value) < 1 {
7450		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
7451	}
7452
7453	if invalidParams.Len() > 0 {
7454		return invalidParams
7455	}
7456	return nil
7457}
7458
7459// SetKey sets the Key field's value.
7460func (s *CreateTagOptionInput) SetKey(v string) *CreateTagOptionInput {
7461	s.Key = &v
7462	return s
7463}
7464
7465// SetValue sets the Value field's value.
7466func (s *CreateTagOptionInput) SetValue(v string) *CreateTagOptionInput {
7467	s.Value = &v
7468	return s
7469}
7470
7471type CreateTagOptionOutput struct {
7472	_ struct{} `type:"structure"`
7473
7474	// Information about the TagOption.
7475	TagOptionDetail *TagOptionDetail `type:"structure"`
7476}
7477
7478// String returns the string representation
7479func (s CreateTagOptionOutput) String() string {
7480	return awsutil.Prettify(s)
7481}
7482
7483// GoString returns the string representation
7484func (s CreateTagOptionOutput) GoString() string {
7485	return s.String()
7486}
7487
7488// SetTagOptionDetail sets the TagOptionDetail field's value.
7489func (s *CreateTagOptionOutput) SetTagOptionDetail(v *TagOptionDetail) *CreateTagOptionOutput {
7490	s.TagOptionDetail = v
7491	return s
7492}
7493
7494type DeleteConstraintInput struct {
7495	_ struct{} `type:"structure"`
7496
7497	// The language code.
7498	//
7499	//    * en - English (default)
7500	//
7501	//    * jp - Japanese
7502	//
7503	//    * zh - Chinese
7504	AcceptLanguage *string `type:"string"`
7505
7506	// The identifier of the constraint.
7507	//
7508	// Id is a required field
7509	Id *string `min:"1" type:"string" required:"true"`
7510}
7511
7512// String returns the string representation
7513func (s DeleteConstraintInput) String() string {
7514	return awsutil.Prettify(s)
7515}
7516
7517// GoString returns the string representation
7518func (s DeleteConstraintInput) GoString() string {
7519	return s.String()
7520}
7521
7522// Validate inspects the fields of the type to determine if they are valid.
7523func (s *DeleteConstraintInput) Validate() error {
7524	invalidParams := request.ErrInvalidParams{Context: "DeleteConstraintInput"}
7525	if s.Id == nil {
7526		invalidParams.Add(request.NewErrParamRequired("Id"))
7527	}
7528	if s.Id != nil && len(*s.Id) < 1 {
7529		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
7530	}
7531
7532	if invalidParams.Len() > 0 {
7533		return invalidParams
7534	}
7535	return nil
7536}
7537
7538// SetAcceptLanguage sets the AcceptLanguage field's value.
7539func (s *DeleteConstraintInput) SetAcceptLanguage(v string) *DeleteConstraintInput {
7540	s.AcceptLanguage = &v
7541	return s
7542}
7543
7544// SetId sets the Id field's value.
7545func (s *DeleteConstraintInput) SetId(v string) *DeleteConstraintInput {
7546	s.Id = &v
7547	return s
7548}
7549
7550type DeleteConstraintOutput struct {
7551	_ struct{} `type:"structure"`
7552}
7553
7554// String returns the string representation
7555func (s DeleteConstraintOutput) String() string {
7556	return awsutil.Prettify(s)
7557}
7558
7559// GoString returns the string representation
7560func (s DeleteConstraintOutput) GoString() string {
7561	return s.String()
7562}
7563
7564type DeletePortfolioInput struct {
7565	_ struct{} `type:"structure"`
7566
7567	// The language code.
7568	//
7569	//    * en - English (default)
7570	//
7571	//    * jp - Japanese
7572	//
7573	//    * zh - Chinese
7574	AcceptLanguage *string `type:"string"`
7575
7576	// The portfolio identifier.
7577	//
7578	// Id is a required field
7579	Id *string `min:"1" type:"string" required:"true"`
7580}
7581
7582// String returns the string representation
7583func (s DeletePortfolioInput) String() string {
7584	return awsutil.Prettify(s)
7585}
7586
7587// GoString returns the string representation
7588func (s DeletePortfolioInput) GoString() string {
7589	return s.String()
7590}
7591
7592// Validate inspects the fields of the type to determine if they are valid.
7593func (s *DeletePortfolioInput) Validate() error {
7594	invalidParams := request.ErrInvalidParams{Context: "DeletePortfolioInput"}
7595	if s.Id == nil {
7596		invalidParams.Add(request.NewErrParamRequired("Id"))
7597	}
7598	if s.Id != nil && len(*s.Id) < 1 {
7599		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
7600	}
7601
7602	if invalidParams.Len() > 0 {
7603		return invalidParams
7604	}
7605	return nil
7606}
7607
7608// SetAcceptLanguage sets the AcceptLanguage field's value.
7609func (s *DeletePortfolioInput) SetAcceptLanguage(v string) *DeletePortfolioInput {
7610	s.AcceptLanguage = &v
7611	return s
7612}
7613
7614// SetId sets the Id field's value.
7615func (s *DeletePortfolioInput) SetId(v string) *DeletePortfolioInput {
7616	s.Id = &v
7617	return s
7618}
7619
7620type DeletePortfolioOutput struct {
7621	_ struct{} `type:"structure"`
7622}
7623
7624// String returns the string representation
7625func (s DeletePortfolioOutput) String() string {
7626	return awsutil.Prettify(s)
7627}
7628
7629// GoString returns the string representation
7630func (s DeletePortfolioOutput) GoString() string {
7631	return s.String()
7632}
7633
7634type DeletePortfolioShareInput struct {
7635	_ struct{} `type:"structure"`
7636
7637	// The language code.
7638	//
7639	//    * en - English (default)
7640	//
7641	//    * jp - Japanese
7642	//
7643	//    * zh - Chinese
7644	AcceptLanguage *string `type:"string"`
7645
7646	// The AWS account ID.
7647	//
7648	// AccountId is a required field
7649	AccountId *string `type:"string" required:"true"`
7650
7651	// The portfolio identifier.
7652	//
7653	// PortfolioId is a required field
7654	PortfolioId *string `min:"1" type:"string" required:"true"`
7655}
7656
7657// String returns the string representation
7658func (s DeletePortfolioShareInput) String() string {
7659	return awsutil.Prettify(s)
7660}
7661
7662// GoString returns the string representation
7663func (s DeletePortfolioShareInput) GoString() string {
7664	return s.String()
7665}
7666
7667// Validate inspects the fields of the type to determine if they are valid.
7668func (s *DeletePortfolioShareInput) Validate() error {
7669	invalidParams := request.ErrInvalidParams{Context: "DeletePortfolioShareInput"}
7670	if s.AccountId == nil {
7671		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7672	}
7673	if s.PortfolioId == nil {
7674		invalidParams.Add(request.NewErrParamRequired("PortfolioId"))
7675	}
7676	if s.PortfolioId != nil && len(*s.PortfolioId) < 1 {
7677		invalidParams.Add(request.NewErrParamMinLen("PortfolioId", 1))
7678	}
7679
7680	if invalidParams.Len() > 0 {
7681		return invalidParams
7682	}
7683	return nil
7684}
7685
7686// SetAcceptLanguage sets the AcceptLanguage field's value.
7687func (s *DeletePortfolioShareInput) SetAcceptLanguage(v string) *DeletePortfolioShareInput {
7688	s.AcceptLanguage = &v
7689	return s
7690}
7691
7692// SetAccountId sets the AccountId field's value.
7693func (s *DeletePortfolioShareInput) SetAccountId(v string) *DeletePortfolioShareInput {
7694	s.AccountId = &v
7695	return s
7696}
7697
7698// SetPortfolioId sets the PortfolioId field's value.
7699func (s *DeletePortfolioShareInput) SetPortfolioId(v string) *DeletePortfolioShareInput {
7700	s.PortfolioId = &v
7701	return s
7702}
7703
7704type DeletePortfolioShareOutput struct {
7705	_ struct{} `type:"structure"`
7706}
7707
7708// String returns the string representation
7709func (s DeletePortfolioShareOutput) String() string {
7710	return awsutil.Prettify(s)
7711}
7712
7713// GoString returns the string representation
7714func (s DeletePortfolioShareOutput) GoString() string {
7715	return s.String()
7716}
7717
7718type DeleteProductInput struct {
7719	_ struct{} `type:"structure"`
7720
7721	// The language code.
7722	//
7723	//    * en - English (default)
7724	//
7725	//    * jp - Japanese
7726	//
7727	//    * zh - Chinese
7728	AcceptLanguage *string `type:"string"`
7729
7730	// The product identifier.
7731	//
7732	// Id is a required field
7733	Id *string `min:"1" type:"string" required:"true"`
7734}
7735
7736// String returns the string representation
7737func (s DeleteProductInput) String() string {
7738	return awsutil.Prettify(s)
7739}
7740
7741// GoString returns the string representation
7742func (s DeleteProductInput) GoString() string {
7743	return s.String()
7744}
7745
7746// Validate inspects the fields of the type to determine if they are valid.
7747func (s *DeleteProductInput) Validate() error {
7748	invalidParams := request.ErrInvalidParams{Context: "DeleteProductInput"}
7749	if s.Id == nil {
7750		invalidParams.Add(request.NewErrParamRequired("Id"))
7751	}
7752	if s.Id != nil && len(*s.Id) < 1 {
7753		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
7754	}
7755
7756	if invalidParams.Len() > 0 {
7757		return invalidParams
7758	}
7759	return nil
7760}
7761
7762// SetAcceptLanguage sets the AcceptLanguage field's value.
7763func (s *DeleteProductInput) SetAcceptLanguage(v string) *DeleteProductInput {
7764	s.AcceptLanguage = &v
7765	return s
7766}
7767
7768// SetId sets the Id field's value.
7769func (s *DeleteProductInput) SetId(v string) *DeleteProductInput {
7770	s.Id = &v
7771	return s
7772}
7773
7774type DeleteProductOutput struct {
7775	_ struct{} `type:"structure"`
7776}
7777
7778// String returns the string representation
7779func (s DeleteProductOutput) String() string {
7780	return awsutil.Prettify(s)
7781}
7782
7783// GoString returns the string representation
7784func (s DeleteProductOutput) GoString() string {
7785	return s.String()
7786}
7787
7788type DeleteProvisionedProductPlanInput struct {
7789	_ struct{} `type:"structure"`
7790
7791	// The language code.
7792	//
7793	//    * en - English (default)
7794	//
7795	//    * jp - Japanese
7796	//
7797	//    * zh - Chinese
7798	AcceptLanguage *string `type:"string"`
7799
7800	// If set to true, AWS Service Catalog stops managing the specified provisioned
7801	// product even if it cannot delete the underlying resources.
7802	IgnoreErrors *bool `type:"boolean"`
7803
7804	// The plan identifier.
7805	//
7806	// PlanId is a required field
7807	PlanId *string `min:"1" type:"string" required:"true"`
7808}
7809
7810// String returns the string representation
7811func (s DeleteProvisionedProductPlanInput) String() string {
7812	return awsutil.Prettify(s)
7813}
7814
7815// GoString returns the string representation
7816func (s DeleteProvisionedProductPlanInput) GoString() string {
7817	return s.String()
7818}
7819
7820// Validate inspects the fields of the type to determine if they are valid.
7821func (s *DeleteProvisionedProductPlanInput) Validate() error {
7822	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisionedProductPlanInput"}
7823	if s.PlanId == nil {
7824		invalidParams.Add(request.NewErrParamRequired("PlanId"))
7825	}
7826	if s.PlanId != nil && len(*s.PlanId) < 1 {
7827		invalidParams.Add(request.NewErrParamMinLen("PlanId", 1))
7828	}
7829
7830	if invalidParams.Len() > 0 {
7831		return invalidParams
7832	}
7833	return nil
7834}
7835
7836// SetAcceptLanguage sets the AcceptLanguage field's value.
7837func (s *DeleteProvisionedProductPlanInput) SetAcceptLanguage(v string) *DeleteProvisionedProductPlanInput {
7838	s.AcceptLanguage = &v
7839	return s
7840}
7841
7842// SetIgnoreErrors sets the IgnoreErrors field's value.
7843func (s *DeleteProvisionedProductPlanInput) SetIgnoreErrors(v bool) *DeleteProvisionedProductPlanInput {
7844	s.IgnoreErrors = &v
7845	return s
7846}
7847
7848// SetPlanId sets the PlanId field's value.
7849func (s *DeleteProvisionedProductPlanInput) SetPlanId(v string) *DeleteProvisionedProductPlanInput {
7850	s.PlanId = &v
7851	return s
7852}
7853
7854type DeleteProvisionedProductPlanOutput struct {
7855	_ struct{} `type:"structure"`
7856}
7857
7858// String returns the string representation
7859func (s DeleteProvisionedProductPlanOutput) String() string {
7860	return awsutil.Prettify(s)
7861}
7862
7863// GoString returns the string representation
7864func (s DeleteProvisionedProductPlanOutput) GoString() string {
7865	return s.String()
7866}
7867
7868type DeleteProvisioningArtifactInput struct {
7869	_ struct{} `type:"structure"`
7870
7871	// The language code.
7872	//
7873	//    * en - English (default)
7874	//
7875	//    * jp - Japanese
7876	//
7877	//    * zh - Chinese
7878	AcceptLanguage *string `type:"string"`
7879
7880	// The product identifier.
7881	//
7882	// ProductId is a required field
7883	ProductId *string `min:"1" type:"string" required:"true"`
7884
7885	// The identifier of the provisioning artifact.
7886	//
7887	// ProvisioningArtifactId is a required field
7888	ProvisioningArtifactId *string `min:"1" type:"string" required:"true"`
7889}
7890
7891// String returns the string representation
7892func (s DeleteProvisioningArtifactInput) String() string {
7893	return awsutil.Prettify(s)
7894}
7895
7896// GoString returns the string representation
7897func (s DeleteProvisioningArtifactInput) GoString() string {
7898	return s.String()
7899}
7900
7901// Validate inspects the fields of the type to determine if they are valid.
7902func (s *DeleteProvisioningArtifactInput) Validate() error {
7903	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisioningArtifactInput"}
7904	if s.ProductId == nil {
7905		invalidParams.Add(request.NewErrParamRequired("ProductId"))
7906	}
7907	if s.ProductId != nil && len(*s.ProductId) < 1 {
7908		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
7909	}
7910	if s.ProvisioningArtifactId == nil {
7911		invalidParams.Add(request.NewErrParamRequired("ProvisioningArtifactId"))
7912	}
7913	if s.ProvisioningArtifactId != nil && len(*s.ProvisioningArtifactId) < 1 {
7914		invalidParams.Add(request.NewErrParamMinLen("ProvisioningArtifactId", 1))
7915	}
7916
7917	if invalidParams.Len() > 0 {
7918		return invalidParams
7919	}
7920	return nil
7921}
7922
7923// SetAcceptLanguage sets the AcceptLanguage field's value.
7924func (s *DeleteProvisioningArtifactInput) SetAcceptLanguage(v string) *DeleteProvisioningArtifactInput {
7925	s.AcceptLanguage = &v
7926	return s
7927}
7928
7929// SetProductId sets the ProductId field's value.
7930func (s *DeleteProvisioningArtifactInput) SetProductId(v string) *DeleteProvisioningArtifactInput {
7931	s.ProductId = &v
7932	return s
7933}
7934
7935// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value.
7936func (s *DeleteProvisioningArtifactInput) SetProvisioningArtifactId(v string) *DeleteProvisioningArtifactInput {
7937	s.ProvisioningArtifactId = &v
7938	return s
7939}
7940
7941type DeleteProvisioningArtifactOutput struct {
7942	_ struct{} `type:"structure"`
7943}
7944
7945// String returns the string representation
7946func (s DeleteProvisioningArtifactOutput) String() string {
7947	return awsutil.Prettify(s)
7948}
7949
7950// GoString returns the string representation
7951func (s DeleteProvisioningArtifactOutput) GoString() string {
7952	return s.String()
7953}
7954
7955type DeleteTagOptionInput struct {
7956	_ struct{} `type:"structure"`
7957
7958	// The TagOption identifier.
7959	//
7960	// Id is a required field
7961	Id *string `min:"1" type:"string" required:"true"`
7962}
7963
7964// String returns the string representation
7965func (s DeleteTagOptionInput) String() string {
7966	return awsutil.Prettify(s)
7967}
7968
7969// GoString returns the string representation
7970func (s DeleteTagOptionInput) GoString() string {
7971	return s.String()
7972}
7973
7974// Validate inspects the fields of the type to determine if they are valid.
7975func (s *DeleteTagOptionInput) Validate() error {
7976	invalidParams := request.ErrInvalidParams{Context: "DeleteTagOptionInput"}
7977	if s.Id == nil {
7978		invalidParams.Add(request.NewErrParamRequired("Id"))
7979	}
7980	if s.Id != nil && len(*s.Id) < 1 {
7981		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
7982	}
7983
7984	if invalidParams.Len() > 0 {
7985		return invalidParams
7986	}
7987	return nil
7988}
7989
7990// SetId sets the Id field's value.
7991func (s *DeleteTagOptionInput) SetId(v string) *DeleteTagOptionInput {
7992	s.Id = &v
7993	return s
7994}
7995
7996type DeleteTagOptionOutput struct {
7997	_ struct{} `type:"structure"`
7998}
7999
8000// String returns the string representation
8001func (s DeleteTagOptionOutput) String() string {
8002	return awsutil.Prettify(s)
8003}
8004
8005// GoString returns the string representation
8006func (s DeleteTagOptionOutput) GoString() string {
8007	return s.String()
8008}
8009
8010type DescribeConstraintInput struct {
8011	_ struct{} `type:"structure"`
8012
8013	// The language code.
8014	//
8015	//    * en - English (default)
8016	//
8017	//    * jp - Japanese
8018	//
8019	//    * zh - Chinese
8020	AcceptLanguage *string `type:"string"`
8021
8022	// The identifier of the constraint.
8023	//
8024	// Id is a required field
8025	Id *string `min:"1" type:"string" required:"true"`
8026}
8027
8028// String returns the string representation
8029func (s DescribeConstraintInput) String() string {
8030	return awsutil.Prettify(s)
8031}
8032
8033// GoString returns the string representation
8034func (s DescribeConstraintInput) GoString() string {
8035	return s.String()
8036}
8037
8038// Validate inspects the fields of the type to determine if they are valid.
8039func (s *DescribeConstraintInput) Validate() error {
8040	invalidParams := request.ErrInvalidParams{Context: "DescribeConstraintInput"}
8041	if s.Id == nil {
8042		invalidParams.Add(request.NewErrParamRequired("Id"))
8043	}
8044	if s.Id != nil && len(*s.Id) < 1 {
8045		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8046	}
8047
8048	if invalidParams.Len() > 0 {
8049		return invalidParams
8050	}
8051	return nil
8052}
8053
8054// SetAcceptLanguage sets the AcceptLanguage field's value.
8055func (s *DescribeConstraintInput) SetAcceptLanguage(v string) *DescribeConstraintInput {
8056	s.AcceptLanguage = &v
8057	return s
8058}
8059
8060// SetId sets the Id field's value.
8061func (s *DescribeConstraintInput) SetId(v string) *DescribeConstraintInput {
8062	s.Id = &v
8063	return s
8064}
8065
8066type DescribeConstraintOutput struct {
8067	_ struct{} `type:"structure"`
8068
8069	// Information about the constraint.
8070	ConstraintDetail *ConstraintDetail `type:"structure"`
8071
8072	// The constraint parameters.
8073	ConstraintParameters *string `type:"string"`
8074
8075	// The status of the current request.
8076	Status *string `type:"string" enum:"Status"`
8077}
8078
8079// String returns the string representation
8080func (s DescribeConstraintOutput) String() string {
8081	return awsutil.Prettify(s)
8082}
8083
8084// GoString returns the string representation
8085func (s DescribeConstraintOutput) GoString() string {
8086	return s.String()
8087}
8088
8089// SetConstraintDetail sets the ConstraintDetail field's value.
8090func (s *DescribeConstraintOutput) SetConstraintDetail(v *ConstraintDetail) *DescribeConstraintOutput {
8091	s.ConstraintDetail = v
8092	return s
8093}
8094
8095// SetConstraintParameters sets the ConstraintParameters field's value.
8096func (s *DescribeConstraintOutput) SetConstraintParameters(v string) *DescribeConstraintOutput {
8097	s.ConstraintParameters = &v
8098	return s
8099}
8100
8101// SetStatus sets the Status field's value.
8102func (s *DescribeConstraintOutput) SetStatus(v string) *DescribeConstraintOutput {
8103	s.Status = &v
8104	return s
8105}
8106
8107type DescribeCopyProductStatusInput struct {
8108	_ struct{} `type:"structure"`
8109
8110	// The language code.
8111	//
8112	//    * en - English (default)
8113	//
8114	//    * jp - Japanese
8115	//
8116	//    * zh - Chinese
8117	AcceptLanguage *string `type:"string"`
8118
8119	// The token for the copy product operation. This token is returned by CopyProduct.
8120	//
8121	// CopyProductToken is a required field
8122	CopyProductToken *string `min:"1" type:"string" required:"true"`
8123}
8124
8125// String returns the string representation
8126func (s DescribeCopyProductStatusInput) String() string {
8127	return awsutil.Prettify(s)
8128}
8129
8130// GoString returns the string representation
8131func (s DescribeCopyProductStatusInput) GoString() string {
8132	return s.String()
8133}
8134
8135// Validate inspects the fields of the type to determine if they are valid.
8136func (s *DescribeCopyProductStatusInput) Validate() error {
8137	invalidParams := request.ErrInvalidParams{Context: "DescribeCopyProductStatusInput"}
8138	if s.CopyProductToken == nil {
8139		invalidParams.Add(request.NewErrParamRequired("CopyProductToken"))
8140	}
8141	if s.CopyProductToken != nil && len(*s.CopyProductToken) < 1 {
8142		invalidParams.Add(request.NewErrParamMinLen("CopyProductToken", 1))
8143	}
8144
8145	if invalidParams.Len() > 0 {
8146		return invalidParams
8147	}
8148	return nil
8149}
8150
8151// SetAcceptLanguage sets the AcceptLanguage field's value.
8152func (s *DescribeCopyProductStatusInput) SetAcceptLanguage(v string) *DescribeCopyProductStatusInput {
8153	s.AcceptLanguage = &v
8154	return s
8155}
8156
8157// SetCopyProductToken sets the CopyProductToken field's value.
8158func (s *DescribeCopyProductStatusInput) SetCopyProductToken(v string) *DescribeCopyProductStatusInput {
8159	s.CopyProductToken = &v
8160	return s
8161}
8162
8163type DescribeCopyProductStatusOutput struct {
8164	_ struct{} `type:"structure"`
8165
8166	// The status of the copy product operation.
8167	CopyProductStatus *string `type:"string" enum:"CopyProductStatus"`
8168
8169	// The status message.
8170	StatusDetail *string `type:"string"`
8171
8172	// The identifier of the copied product.
8173	TargetProductId *string `min:"1" type:"string"`
8174}
8175
8176// String returns the string representation
8177func (s DescribeCopyProductStatusOutput) String() string {
8178	return awsutil.Prettify(s)
8179}
8180
8181// GoString returns the string representation
8182func (s DescribeCopyProductStatusOutput) GoString() string {
8183	return s.String()
8184}
8185
8186// SetCopyProductStatus sets the CopyProductStatus field's value.
8187func (s *DescribeCopyProductStatusOutput) SetCopyProductStatus(v string) *DescribeCopyProductStatusOutput {
8188	s.CopyProductStatus = &v
8189	return s
8190}
8191
8192// SetStatusDetail sets the StatusDetail field's value.
8193func (s *DescribeCopyProductStatusOutput) SetStatusDetail(v string) *DescribeCopyProductStatusOutput {
8194	s.StatusDetail = &v
8195	return s
8196}
8197
8198// SetTargetProductId sets the TargetProductId field's value.
8199func (s *DescribeCopyProductStatusOutput) SetTargetProductId(v string) *DescribeCopyProductStatusOutput {
8200	s.TargetProductId = &v
8201	return s
8202}
8203
8204type DescribePortfolioInput struct {
8205	_ struct{} `type:"structure"`
8206
8207	// The language code.
8208	//
8209	//    * en - English (default)
8210	//
8211	//    * jp - Japanese
8212	//
8213	//    * zh - Chinese
8214	AcceptLanguage *string `type:"string"`
8215
8216	// The portfolio identifier.
8217	//
8218	// Id is a required field
8219	Id *string `min:"1" type:"string" required:"true"`
8220}
8221
8222// String returns the string representation
8223func (s DescribePortfolioInput) String() string {
8224	return awsutil.Prettify(s)
8225}
8226
8227// GoString returns the string representation
8228func (s DescribePortfolioInput) GoString() string {
8229	return s.String()
8230}
8231
8232// Validate inspects the fields of the type to determine if they are valid.
8233func (s *DescribePortfolioInput) Validate() error {
8234	invalidParams := request.ErrInvalidParams{Context: "DescribePortfolioInput"}
8235	if s.Id == nil {
8236		invalidParams.Add(request.NewErrParamRequired("Id"))
8237	}
8238	if s.Id != nil && len(*s.Id) < 1 {
8239		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8240	}
8241
8242	if invalidParams.Len() > 0 {
8243		return invalidParams
8244	}
8245	return nil
8246}
8247
8248// SetAcceptLanguage sets the AcceptLanguage field's value.
8249func (s *DescribePortfolioInput) SetAcceptLanguage(v string) *DescribePortfolioInput {
8250	s.AcceptLanguage = &v
8251	return s
8252}
8253
8254// SetId sets the Id field's value.
8255func (s *DescribePortfolioInput) SetId(v string) *DescribePortfolioInput {
8256	s.Id = &v
8257	return s
8258}
8259
8260type DescribePortfolioOutput struct {
8261	_ struct{} `type:"structure"`
8262
8263	// Information about the portfolio.
8264	PortfolioDetail *PortfolioDetail `type:"structure"`
8265
8266	// Information about the TagOptions associated with the portfolio.
8267	TagOptions []*TagOptionDetail `type:"list"`
8268
8269	// Information about the tags associated with the portfolio.
8270	Tags []*Tag `type:"list"`
8271}
8272
8273// String returns the string representation
8274func (s DescribePortfolioOutput) String() string {
8275	return awsutil.Prettify(s)
8276}
8277
8278// GoString returns the string representation
8279func (s DescribePortfolioOutput) GoString() string {
8280	return s.String()
8281}
8282
8283// SetPortfolioDetail sets the PortfolioDetail field's value.
8284func (s *DescribePortfolioOutput) SetPortfolioDetail(v *PortfolioDetail) *DescribePortfolioOutput {
8285	s.PortfolioDetail = v
8286	return s
8287}
8288
8289// SetTagOptions sets the TagOptions field's value.
8290func (s *DescribePortfolioOutput) SetTagOptions(v []*TagOptionDetail) *DescribePortfolioOutput {
8291	s.TagOptions = v
8292	return s
8293}
8294
8295// SetTags sets the Tags field's value.
8296func (s *DescribePortfolioOutput) SetTags(v []*Tag) *DescribePortfolioOutput {
8297	s.Tags = v
8298	return s
8299}
8300
8301type DescribeProductAsAdminInput struct {
8302	_ struct{} `type:"structure"`
8303
8304	// The language code.
8305	//
8306	//    * en - English (default)
8307	//
8308	//    * jp - Japanese
8309	//
8310	//    * zh - Chinese
8311	AcceptLanguage *string `type:"string"`
8312
8313	// The product identifier.
8314	//
8315	// Id is a required field
8316	Id *string `min:"1" type:"string" required:"true"`
8317}
8318
8319// String returns the string representation
8320func (s DescribeProductAsAdminInput) String() string {
8321	return awsutil.Prettify(s)
8322}
8323
8324// GoString returns the string representation
8325func (s DescribeProductAsAdminInput) GoString() string {
8326	return s.String()
8327}
8328
8329// Validate inspects the fields of the type to determine if they are valid.
8330func (s *DescribeProductAsAdminInput) Validate() error {
8331	invalidParams := request.ErrInvalidParams{Context: "DescribeProductAsAdminInput"}
8332	if s.Id == nil {
8333		invalidParams.Add(request.NewErrParamRequired("Id"))
8334	}
8335	if s.Id != nil && len(*s.Id) < 1 {
8336		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8337	}
8338
8339	if invalidParams.Len() > 0 {
8340		return invalidParams
8341	}
8342	return nil
8343}
8344
8345// SetAcceptLanguage sets the AcceptLanguage field's value.
8346func (s *DescribeProductAsAdminInput) SetAcceptLanguage(v string) *DescribeProductAsAdminInput {
8347	s.AcceptLanguage = &v
8348	return s
8349}
8350
8351// SetId sets the Id field's value.
8352func (s *DescribeProductAsAdminInput) SetId(v string) *DescribeProductAsAdminInput {
8353	s.Id = &v
8354	return s
8355}
8356
8357type DescribeProductAsAdminOutput struct {
8358	_ struct{} `type:"structure"`
8359
8360	// Information about the product view.
8361	ProductViewDetail *ProductViewDetail `type:"structure"`
8362
8363	// Information about the provisioning artifacts (also known as versions) for
8364	// the specified product.
8365	ProvisioningArtifactSummaries []*ProvisioningArtifactSummary `type:"list"`
8366
8367	// Information about the TagOptions associated with the product.
8368	TagOptions []*TagOptionDetail `type:"list"`
8369
8370	// Information about the tags associated with the product.
8371	Tags []*Tag `type:"list"`
8372}
8373
8374// String returns the string representation
8375func (s DescribeProductAsAdminOutput) String() string {
8376	return awsutil.Prettify(s)
8377}
8378
8379// GoString returns the string representation
8380func (s DescribeProductAsAdminOutput) GoString() string {
8381	return s.String()
8382}
8383
8384// SetProductViewDetail sets the ProductViewDetail field's value.
8385func (s *DescribeProductAsAdminOutput) SetProductViewDetail(v *ProductViewDetail) *DescribeProductAsAdminOutput {
8386	s.ProductViewDetail = v
8387	return s
8388}
8389
8390// SetProvisioningArtifactSummaries sets the ProvisioningArtifactSummaries field's value.
8391func (s *DescribeProductAsAdminOutput) SetProvisioningArtifactSummaries(v []*ProvisioningArtifactSummary) *DescribeProductAsAdminOutput {
8392	s.ProvisioningArtifactSummaries = v
8393	return s
8394}
8395
8396// SetTagOptions sets the TagOptions field's value.
8397func (s *DescribeProductAsAdminOutput) SetTagOptions(v []*TagOptionDetail) *DescribeProductAsAdminOutput {
8398	s.TagOptions = v
8399	return s
8400}
8401
8402// SetTags sets the Tags field's value.
8403func (s *DescribeProductAsAdminOutput) SetTags(v []*Tag) *DescribeProductAsAdminOutput {
8404	s.Tags = v
8405	return s
8406}
8407
8408type DescribeProductInput struct {
8409	_ struct{} `type:"structure"`
8410
8411	// The language code.
8412	//
8413	//    * en - English (default)
8414	//
8415	//    * jp - Japanese
8416	//
8417	//    * zh - Chinese
8418	AcceptLanguage *string `type:"string"`
8419
8420	// The product identifier.
8421	//
8422	// Id is a required field
8423	Id *string `min:"1" type:"string" required:"true"`
8424}
8425
8426// String returns the string representation
8427func (s DescribeProductInput) String() string {
8428	return awsutil.Prettify(s)
8429}
8430
8431// GoString returns the string representation
8432func (s DescribeProductInput) GoString() string {
8433	return s.String()
8434}
8435
8436// Validate inspects the fields of the type to determine if they are valid.
8437func (s *DescribeProductInput) Validate() error {
8438	invalidParams := request.ErrInvalidParams{Context: "DescribeProductInput"}
8439	if s.Id == nil {
8440		invalidParams.Add(request.NewErrParamRequired("Id"))
8441	}
8442	if s.Id != nil && len(*s.Id) < 1 {
8443		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8444	}
8445
8446	if invalidParams.Len() > 0 {
8447		return invalidParams
8448	}
8449	return nil
8450}
8451
8452// SetAcceptLanguage sets the AcceptLanguage field's value.
8453func (s *DescribeProductInput) SetAcceptLanguage(v string) *DescribeProductInput {
8454	s.AcceptLanguage = &v
8455	return s
8456}
8457
8458// SetId sets the Id field's value.
8459func (s *DescribeProductInput) SetId(v string) *DescribeProductInput {
8460	s.Id = &v
8461	return s
8462}
8463
8464type DescribeProductOutput struct {
8465	_ struct{} `type:"structure"`
8466
8467	// Summary information about the product view.
8468	ProductViewSummary *ProductViewSummary `type:"structure"`
8469
8470	// Information about the provisioning artifacts for the specified product.
8471	ProvisioningArtifacts []*ProvisioningArtifact `type:"list"`
8472}
8473
8474// String returns the string representation
8475func (s DescribeProductOutput) String() string {
8476	return awsutil.Prettify(s)
8477}
8478
8479// GoString returns the string representation
8480func (s DescribeProductOutput) GoString() string {
8481	return s.String()
8482}
8483
8484// SetProductViewSummary sets the ProductViewSummary field's value.
8485func (s *DescribeProductOutput) SetProductViewSummary(v *ProductViewSummary) *DescribeProductOutput {
8486	s.ProductViewSummary = v
8487	return s
8488}
8489
8490// SetProvisioningArtifacts sets the ProvisioningArtifacts field's value.
8491func (s *DescribeProductOutput) SetProvisioningArtifacts(v []*ProvisioningArtifact) *DescribeProductOutput {
8492	s.ProvisioningArtifacts = v
8493	return s
8494}
8495
8496type DescribeProductViewInput struct {
8497	_ struct{} `type:"structure"`
8498
8499	// The language code.
8500	//
8501	//    * en - English (default)
8502	//
8503	//    * jp - Japanese
8504	//
8505	//    * zh - Chinese
8506	AcceptLanguage *string `type:"string"`
8507
8508	// The product view identifier.
8509	//
8510	// Id is a required field
8511	Id *string `min:"1" type:"string" required:"true"`
8512}
8513
8514// String returns the string representation
8515func (s DescribeProductViewInput) String() string {
8516	return awsutil.Prettify(s)
8517}
8518
8519// GoString returns the string representation
8520func (s DescribeProductViewInput) GoString() string {
8521	return s.String()
8522}
8523
8524// Validate inspects the fields of the type to determine if they are valid.
8525func (s *DescribeProductViewInput) Validate() error {
8526	invalidParams := request.ErrInvalidParams{Context: "DescribeProductViewInput"}
8527	if s.Id == nil {
8528		invalidParams.Add(request.NewErrParamRequired("Id"))
8529	}
8530	if s.Id != nil && len(*s.Id) < 1 {
8531		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8532	}
8533
8534	if invalidParams.Len() > 0 {
8535		return invalidParams
8536	}
8537	return nil
8538}
8539
8540// SetAcceptLanguage sets the AcceptLanguage field's value.
8541func (s *DescribeProductViewInput) SetAcceptLanguage(v string) *DescribeProductViewInput {
8542	s.AcceptLanguage = &v
8543	return s
8544}
8545
8546// SetId sets the Id field's value.
8547func (s *DescribeProductViewInput) SetId(v string) *DescribeProductViewInput {
8548	s.Id = &v
8549	return s
8550}
8551
8552type DescribeProductViewOutput struct {
8553	_ struct{} `type:"structure"`
8554
8555	// Summary information about the product.
8556	ProductViewSummary *ProductViewSummary `type:"structure"`
8557
8558	// Information about the provisioning artifacts for the product.
8559	ProvisioningArtifacts []*ProvisioningArtifact `type:"list"`
8560}
8561
8562// String returns the string representation
8563func (s DescribeProductViewOutput) String() string {
8564	return awsutil.Prettify(s)
8565}
8566
8567// GoString returns the string representation
8568func (s DescribeProductViewOutput) GoString() string {
8569	return s.String()
8570}
8571
8572// SetProductViewSummary sets the ProductViewSummary field's value.
8573func (s *DescribeProductViewOutput) SetProductViewSummary(v *ProductViewSummary) *DescribeProductViewOutput {
8574	s.ProductViewSummary = v
8575	return s
8576}
8577
8578// SetProvisioningArtifacts sets the ProvisioningArtifacts field's value.
8579func (s *DescribeProductViewOutput) SetProvisioningArtifacts(v []*ProvisioningArtifact) *DescribeProductViewOutput {
8580	s.ProvisioningArtifacts = v
8581	return s
8582}
8583
8584type DescribeProvisionedProductInput struct {
8585	_ struct{} `type:"structure"`
8586
8587	// The language code.
8588	//
8589	//    * en - English (default)
8590	//
8591	//    * jp - Japanese
8592	//
8593	//    * zh - Chinese
8594	AcceptLanguage *string `type:"string"`
8595
8596	// The provisioned product identifier.
8597	//
8598	// Id is a required field
8599	Id *string `min:"1" type:"string" required:"true"`
8600}
8601
8602// String returns the string representation
8603func (s DescribeProvisionedProductInput) String() string {
8604	return awsutil.Prettify(s)
8605}
8606
8607// GoString returns the string representation
8608func (s DescribeProvisionedProductInput) GoString() string {
8609	return s.String()
8610}
8611
8612// Validate inspects the fields of the type to determine if they are valid.
8613func (s *DescribeProvisionedProductInput) Validate() error {
8614	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisionedProductInput"}
8615	if s.Id == nil {
8616		invalidParams.Add(request.NewErrParamRequired("Id"))
8617	}
8618	if s.Id != nil && len(*s.Id) < 1 {
8619		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8620	}
8621
8622	if invalidParams.Len() > 0 {
8623		return invalidParams
8624	}
8625	return nil
8626}
8627
8628// SetAcceptLanguage sets the AcceptLanguage field's value.
8629func (s *DescribeProvisionedProductInput) SetAcceptLanguage(v string) *DescribeProvisionedProductInput {
8630	s.AcceptLanguage = &v
8631	return s
8632}
8633
8634// SetId sets the Id field's value.
8635func (s *DescribeProvisionedProductInput) SetId(v string) *DescribeProvisionedProductInput {
8636	s.Id = &v
8637	return s
8638}
8639
8640type DescribeProvisionedProductOutput struct {
8641	_ struct{} `type:"structure"`
8642
8643	// Any CloudWatch dashboards that were created when provisioning the product.
8644	CloudWatchDashboards []*CloudWatchDashboard `type:"list"`
8645
8646	// Information about the provisioned product.
8647	ProvisionedProductDetail *ProvisionedProductDetail `type:"structure"`
8648}
8649
8650// String returns the string representation
8651func (s DescribeProvisionedProductOutput) String() string {
8652	return awsutil.Prettify(s)
8653}
8654
8655// GoString returns the string representation
8656func (s DescribeProvisionedProductOutput) GoString() string {
8657	return s.String()
8658}
8659
8660// SetCloudWatchDashboards sets the CloudWatchDashboards field's value.
8661func (s *DescribeProvisionedProductOutput) SetCloudWatchDashboards(v []*CloudWatchDashboard) *DescribeProvisionedProductOutput {
8662	s.CloudWatchDashboards = v
8663	return s
8664}
8665
8666// SetProvisionedProductDetail sets the ProvisionedProductDetail field's value.
8667func (s *DescribeProvisionedProductOutput) SetProvisionedProductDetail(v *ProvisionedProductDetail) *DescribeProvisionedProductOutput {
8668	s.ProvisionedProductDetail = v
8669	return s
8670}
8671
8672type DescribeProvisionedProductPlanInput struct {
8673	_ struct{} `type:"structure"`
8674
8675	// The language code.
8676	//
8677	//    * en - English (default)
8678	//
8679	//    * jp - Japanese
8680	//
8681	//    * zh - Chinese
8682	AcceptLanguage *string `type:"string"`
8683
8684	// The maximum number of items to return with this call.
8685	PageSize *int64 `type:"integer"`
8686
8687	// The page token for the next set of results. To retrieve the first set of
8688	// results, use null.
8689	PageToken *string `type:"string"`
8690
8691	// The plan identifier.
8692	//
8693	// PlanId is a required field
8694	PlanId *string `min:"1" type:"string" required:"true"`
8695}
8696
8697// String returns the string representation
8698func (s DescribeProvisionedProductPlanInput) String() string {
8699	return awsutil.Prettify(s)
8700}
8701
8702// GoString returns the string representation
8703func (s DescribeProvisionedProductPlanInput) GoString() string {
8704	return s.String()
8705}
8706
8707// Validate inspects the fields of the type to determine if they are valid.
8708func (s *DescribeProvisionedProductPlanInput) Validate() error {
8709	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisionedProductPlanInput"}
8710	if s.PlanId == nil {
8711		invalidParams.Add(request.NewErrParamRequired("PlanId"))
8712	}
8713	if s.PlanId != nil && len(*s.PlanId) < 1 {
8714		invalidParams.Add(request.NewErrParamMinLen("PlanId", 1))
8715	}
8716
8717	if invalidParams.Len() > 0 {
8718		return invalidParams
8719	}
8720	return nil
8721}
8722
8723// SetAcceptLanguage sets the AcceptLanguage field's value.
8724func (s *DescribeProvisionedProductPlanInput) SetAcceptLanguage(v string) *DescribeProvisionedProductPlanInput {
8725	s.AcceptLanguage = &v
8726	return s
8727}
8728
8729// SetPageSize sets the PageSize field's value.
8730func (s *DescribeProvisionedProductPlanInput) SetPageSize(v int64) *DescribeProvisionedProductPlanInput {
8731	s.PageSize = &v
8732	return s
8733}
8734
8735// SetPageToken sets the PageToken field's value.
8736func (s *DescribeProvisionedProductPlanInput) SetPageToken(v string) *DescribeProvisionedProductPlanInput {
8737	s.PageToken = &v
8738	return s
8739}
8740
8741// SetPlanId sets the PlanId field's value.
8742func (s *DescribeProvisionedProductPlanInput) SetPlanId(v string) *DescribeProvisionedProductPlanInput {
8743	s.PlanId = &v
8744	return s
8745}
8746
8747type DescribeProvisionedProductPlanOutput struct {
8748	_ struct{} `type:"structure"`
8749
8750	// The page token to use to retrieve the next set of results. If there are no
8751	// additional results, this value is null.
8752	NextPageToken *string `type:"string"`
8753
8754	// Information about the plan.
8755	ProvisionedProductPlanDetails *ProvisionedProductPlanDetails `type:"structure"`
8756
8757	// Information about the resource changes that will occur when the plan is executed.
8758	ResourceChanges []*ResourceChange `type:"list"`
8759}
8760
8761// String returns the string representation
8762func (s DescribeProvisionedProductPlanOutput) String() string {
8763	return awsutil.Prettify(s)
8764}
8765
8766// GoString returns the string representation
8767func (s DescribeProvisionedProductPlanOutput) GoString() string {
8768	return s.String()
8769}
8770
8771// SetNextPageToken sets the NextPageToken field's value.
8772func (s *DescribeProvisionedProductPlanOutput) SetNextPageToken(v string) *DescribeProvisionedProductPlanOutput {
8773	s.NextPageToken = &v
8774	return s
8775}
8776
8777// SetProvisionedProductPlanDetails sets the ProvisionedProductPlanDetails field's value.
8778func (s *DescribeProvisionedProductPlanOutput) SetProvisionedProductPlanDetails(v *ProvisionedProductPlanDetails) *DescribeProvisionedProductPlanOutput {
8779	s.ProvisionedProductPlanDetails = v
8780	return s
8781}
8782
8783// SetResourceChanges sets the ResourceChanges field's value.
8784func (s *DescribeProvisionedProductPlanOutput) SetResourceChanges(v []*ResourceChange) *DescribeProvisionedProductPlanOutput {
8785	s.ResourceChanges = v
8786	return s
8787}
8788
8789type DescribeProvisioningArtifactInput struct {
8790	_ struct{} `type:"structure"`
8791
8792	// The language code.
8793	//
8794	//    * en - English (default)
8795	//
8796	//    * jp - Japanese
8797	//
8798	//    * zh - Chinese
8799	AcceptLanguage *string `type:"string"`
8800
8801	// The product identifier.
8802	//
8803	// ProductId is a required field
8804	ProductId *string `min:"1" type:"string" required:"true"`
8805
8806	// The identifier of the provisioning artifact.
8807	//
8808	// ProvisioningArtifactId is a required field
8809	ProvisioningArtifactId *string `min:"1" type:"string" required:"true"`
8810
8811	// Indicates whether a verbose level of detail is enabled.
8812	Verbose *bool `type:"boolean"`
8813}
8814
8815// String returns the string representation
8816func (s DescribeProvisioningArtifactInput) String() string {
8817	return awsutil.Prettify(s)
8818}
8819
8820// GoString returns the string representation
8821func (s DescribeProvisioningArtifactInput) GoString() string {
8822	return s.String()
8823}
8824
8825// Validate inspects the fields of the type to determine if they are valid.
8826func (s *DescribeProvisioningArtifactInput) Validate() error {
8827	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningArtifactInput"}
8828	if s.ProductId == nil {
8829		invalidParams.Add(request.NewErrParamRequired("ProductId"))
8830	}
8831	if s.ProductId != nil && len(*s.ProductId) < 1 {
8832		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
8833	}
8834	if s.ProvisioningArtifactId == nil {
8835		invalidParams.Add(request.NewErrParamRequired("ProvisioningArtifactId"))
8836	}
8837	if s.ProvisioningArtifactId != nil && len(*s.ProvisioningArtifactId) < 1 {
8838		invalidParams.Add(request.NewErrParamMinLen("ProvisioningArtifactId", 1))
8839	}
8840
8841	if invalidParams.Len() > 0 {
8842		return invalidParams
8843	}
8844	return nil
8845}
8846
8847// SetAcceptLanguage sets the AcceptLanguage field's value.
8848func (s *DescribeProvisioningArtifactInput) SetAcceptLanguage(v string) *DescribeProvisioningArtifactInput {
8849	s.AcceptLanguage = &v
8850	return s
8851}
8852
8853// SetProductId sets the ProductId field's value.
8854func (s *DescribeProvisioningArtifactInput) SetProductId(v string) *DescribeProvisioningArtifactInput {
8855	s.ProductId = &v
8856	return s
8857}
8858
8859// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value.
8860func (s *DescribeProvisioningArtifactInput) SetProvisioningArtifactId(v string) *DescribeProvisioningArtifactInput {
8861	s.ProvisioningArtifactId = &v
8862	return s
8863}
8864
8865// SetVerbose sets the Verbose field's value.
8866func (s *DescribeProvisioningArtifactInput) SetVerbose(v bool) *DescribeProvisioningArtifactInput {
8867	s.Verbose = &v
8868	return s
8869}
8870
8871type DescribeProvisioningArtifactOutput struct {
8872	_ struct{} `type:"structure"`
8873
8874	// The URL of the CloudFormation template in Amazon S3.
8875	Info map[string]*string `min:"1" type:"map"`
8876
8877	// Information about the provisioning artifact.
8878	ProvisioningArtifactDetail *ProvisioningArtifactDetail `type:"structure"`
8879
8880	// The status of the current request.
8881	Status *string `type:"string" enum:"Status"`
8882}
8883
8884// String returns the string representation
8885func (s DescribeProvisioningArtifactOutput) String() string {
8886	return awsutil.Prettify(s)
8887}
8888
8889// GoString returns the string representation
8890func (s DescribeProvisioningArtifactOutput) GoString() string {
8891	return s.String()
8892}
8893
8894// SetInfo sets the Info field's value.
8895func (s *DescribeProvisioningArtifactOutput) SetInfo(v map[string]*string) *DescribeProvisioningArtifactOutput {
8896	s.Info = v
8897	return s
8898}
8899
8900// SetProvisioningArtifactDetail sets the ProvisioningArtifactDetail field's value.
8901func (s *DescribeProvisioningArtifactOutput) SetProvisioningArtifactDetail(v *ProvisioningArtifactDetail) *DescribeProvisioningArtifactOutput {
8902	s.ProvisioningArtifactDetail = v
8903	return s
8904}
8905
8906// SetStatus sets the Status field's value.
8907func (s *DescribeProvisioningArtifactOutput) SetStatus(v string) *DescribeProvisioningArtifactOutput {
8908	s.Status = &v
8909	return s
8910}
8911
8912type DescribeProvisioningParametersInput struct {
8913	_ struct{} `type:"structure"`
8914
8915	// The language code.
8916	//
8917	//    * en - English (default)
8918	//
8919	//    * jp - Japanese
8920	//
8921	//    * zh - Chinese
8922	AcceptLanguage *string `type:"string"`
8923
8924	// The path identifier of the product. This value is optional if the product
8925	// has a default path, and required if the product has more than one path. To
8926	// list the paths for a product, use ListLaunchPaths.
8927	PathId *string `min:"1" type:"string"`
8928
8929	// The product identifier.
8930	//
8931	// ProductId is a required field
8932	ProductId *string `min:"1" type:"string" required:"true"`
8933
8934	// The identifier of the provisioning artifact.
8935	//
8936	// ProvisioningArtifactId is a required field
8937	ProvisioningArtifactId *string `min:"1" type:"string" required:"true"`
8938}
8939
8940// String returns the string representation
8941func (s DescribeProvisioningParametersInput) String() string {
8942	return awsutil.Prettify(s)
8943}
8944
8945// GoString returns the string representation
8946func (s DescribeProvisioningParametersInput) GoString() string {
8947	return s.String()
8948}
8949
8950// Validate inspects the fields of the type to determine if they are valid.
8951func (s *DescribeProvisioningParametersInput) Validate() error {
8952	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningParametersInput"}
8953	if s.PathId != nil && len(*s.PathId) < 1 {
8954		invalidParams.Add(request.NewErrParamMinLen("PathId", 1))
8955	}
8956	if s.ProductId == nil {
8957		invalidParams.Add(request.NewErrParamRequired("ProductId"))
8958	}
8959	if s.ProductId != nil && len(*s.ProductId) < 1 {
8960		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
8961	}
8962	if s.ProvisioningArtifactId == nil {
8963		invalidParams.Add(request.NewErrParamRequired("ProvisioningArtifactId"))
8964	}
8965	if s.ProvisioningArtifactId != nil && len(*s.ProvisioningArtifactId) < 1 {
8966		invalidParams.Add(request.NewErrParamMinLen("ProvisioningArtifactId", 1))
8967	}
8968
8969	if invalidParams.Len() > 0 {
8970		return invalidParams
8971	}
8972	return nil
8973}
8974
8975// SetAcceptLanguage sets the AcceptLanguage field's value.
8976func (s *DescribeProvisioningParametersInput) SetAcceptLanguage(v string) *DescribeProvisioningParametersInput {
8977	s.AcceptLanguage = &v
8978	return s
8979}
8980
8981// SetPathId sets the PathId field's value.
8982func (s *DescribeProvisioningParametersInput) SetPathId(v string) *DescribeProvisioningParametersInput {
8983	s.PathId = &v
8984	return s
8985}
8986
8987// SetProductId sets the ProductId field's value.
8988func (s *DescribeProvisioningParametersInput) SetProductId(v string) *DescribeProvisioningParametersInput {
8989	s.ProductId = &v
8990	return s
8991}
8992
8993// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value.
8994func (s *DescribeProvisioningParametersInput) SetProvisioningArtifactId(v string) *DescribeProvisioningParametersInput {
8995	s.ProvisioningArtifactId = &v
8996	return s
8997}
8998
8999type DescribeProvisioningParametersOutput struct {
9000	_ struct{} `type:"structure"`
9001
9002	// Information about the constraints used to provision the product.
9003	ConstraintSummaries []*ConstraintSummary `type:"list"`
9004
9005	// Information about the parameters used to provision the product.
9006	ProvisioningArtifactParameters []*ProvisioningArtifactParameter `type:"list"`
9007
9008	// Information about the TagOptions associated with the resource.
9009	TagOptions []*TagOptionSummary `type:"list"`
9010
9011	// Any additional metadata specifically related to the provisioning of the product.
9012	// For example, see the Version field of the CloudFormation template.
9013	UsageInstructions []*UsageInstruction `type:"list"`
9014}
9015
9016// String returns the string representation
9017func (s DescribeProvisioningParametersOutput) String() string {
9018	return awsutil.Prettify(s)
9019}
9020
9021// GoString returns the string representation
9022func (s DescribeProvisioningParametersOutput) GoString() string {
9023	return s.String()
9024}
9025
9026// SetConstraintSummaries sets the ConstraintSummaries field's value.
9027func (s *DescribeProvisioningParametersOutput) SetConstraintSummaries(v []*ConstraintSummary) *DescribeProvisioningParametersOutput {
9028	s.ConstraintSummaries = v
9029	return s
9030}
9031
9032// SetProvisioningArtifactParameters sets the ProvisioningArtifactParameters field's value.
9033func (s *DescribeProvisioningParametersOutput) SetProvisioningArtifactParameters(v []*ProvisioningArtifactParameter) *DescribeProvisioningParametersOutput {
9034	s.ProvisioningArtifactParameters = v
9035	return s
9036}
9037
9038// SetTagOptions sets the TagOptions field's value.
9039func (s *DescribeProvisioningParametersOutput) SetTagOptions(v []*TagOptionSummary) *DescribeProvisioningParametersOutput {
9040	s.TagOptions = v
9041	return s
9042}
9043
9044// SetUsageInstructions sets the UsageInstructions field's value.
9045func (s *DescribeProvisioningParametersOutput) SetUsageInstructions(v []*UsageInstruction) *DescribeProvisioningParametersOutput {
9046	s.UsageInstructions = v
9047	return s
9048}
9049
9050type DescribeRecordInput struct {
9051	_ struct{} `type:"structure"`
9052
9053	// The language code.
9054	//
9055	//    * en - English (default)
9056	//
9057	//    * jp - Japanese
9058	//
9059	//    * zh - Chinese
9060	AcceptLanguage *string `type:"string"`
9061
9062	// The record identifier of the provisioned product. This identifier is returned
9063	// by the request operation.
9064	//
9065	// Id is a required field
9066	Id *string `min:"1" type:"string" required:"true"`
9067
9068	// The maximum number of items to return with this call.
9069	PageSize *int64 `type:"integer"`
9070
9071	// The page token for the next set of results. To retrieve the first set of
9072	// results, use null.
9073	PageToken *string `type:"string"`
9074}
9075
9076// String returns the string representation
9077func (s DescribeRecordInput) String() string {
9078	return awsutil.Prettify(s)
9079}
9080
9081// GoString returns the string representation
9082func (s DescribeRecordInput) GoString() string {
9083	return s.String()
9084}
9085
9086// Validate inspects the fields of the type to determine if they are valid.
9087func (s *DescribeRecordInput) Validate() error {
9088	invalidParams := request.ErrInvalidParams{Context: "DescribeRecordInput"}
9089	if s.Id == nil {
9090		invalidParams.Add(request.NewErrParamRequired("Id"))
9091	}
9092	if s.Id != nil && len(*s.Id) < 1 {
9093		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
9094	}
9095
9096	if invalidParams.Len() > 0 {
9097		return invalidParams
9098	}
9099	return nil
9100}
9101
9102// SetAcceptLanguage sets the AcceptLanguage field's value.
9103func (s *DescribeRecordInput) SetAcceptLanguage(v string) *DescribeRecordInput {
9104	s.AcceptLanguage = &v
9105	return s
9106}
9107
9108// SetId sets the Id field's value.
9109func (s *DescribeRecordInput) SetId(v string) *DescribeRecordInput {
9110	s.Id = &v
9111	return s
9112}
9113
9114// SetPageSize sets the PageSize field's value.
9115func (s *DescribeRecordInput) SetPageSize(v int64) *DescribeRecordInput {
9116	s.PageSize = &v
9117	return s
9118}
9119
9120// SetPageToken sets the PageToken field's value.
9121func (s *DescribeRecordInput) SetPageToken(v string) *DescribeRecordInput {
9122	s.PageToken = &v
9123	return s
9124}
9125
9126type DescribeRecordOutput struct {
9127	_ struct{} `type:"structure"`
9128
9129	// The page token to use to retrieve the next set of results. If there are no
9130	// additional results, this value is null.
9131	NextPageToken *string `type:"string"`
9132
9133	// Information about the product.
9134	RecordDetail *RecordDetail `type:"structure"`
9135
9136	// Information about the product created as the result of a request. For example,
9137	// the output for a CloudFormation-backed product that creates an S3 bucket
9138	// would include the S3 bucket URL.
9139	RecordOutputs []*RecordOutput `type:"list"`
9140}
9141
9142// String returns the string representation
9143func (s DescribeRecordOutput) String() string {
9144	return awsutil.Prettify(s)
9145}
9146
9147// GoString returns the string representation
9148func (s DescribeRecordOutput) GoString() string {
9149	return s.String()
9150}
9151
9152// SetNextPageToken sets the NextPageToken field's value.
9153func (s *DescribeRecordOutput) SetNextPageToken(v string) *DescribeRecordOutput {
9154	s.NextPageToken = &v
9155	return s
9156}
9157
9158// SetRecordDetail sets the RecordDetail field's value.
9159func (s *DescribeRecordOutput) SetRecordDetail(v *RecordDetail) *DescribeRecordOutput {
9160	s.RecordDetail = v
9161	return s
9162}
9163
9164// SetRecordOutputs sets the RecordOutputs field's value.
9165func (s *DescribeRecordOutput) SetRecordOutputs(v []*RecordOutput) *DescribeRecordOutput {
9166	s.RecordOutputs = v
9167	return s
9168}
9169
9170type DescribeTagOptionInput struct {
9171	_ struct{} `type:"structure"`
9172
9173	// The TagOption identifier.
9174	//
9175	// Id is a required field
9176	Id *string `min:"1" type:"string" required:"true"`
9177}
9178
9179// String returns the string representation
9180func (s DescribeTagOptionInput) String() string {
9181	return awsutil.Prettify(s)
9182}
9183
9184// GoString returns the string representation
9185func (s DescribeTagOptionInput) GoString() string {
9186	return s.String()
9187}
9188
9189// Validate inspects the fields of the type to determine if they are valid.
9190func (s *DescribeTagOptionInput) Validate() error {
9191	invalidParams := request.ErrInvalidParams{Context: "DescribeTagOptionInput"}
9192	if s.Id == nil {
9193		invalidParams.Add(request.NewErrParamRequired("Id"))
9194	}
9195	if s.Id != nil && len(*s.Id) < 1 {
9196		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
9197	}
9198
9199	if invalidParams.Len() > 0 {
9200		return invalidParams
9201	}
9202	return nil
9203}
9204
9205// SetId sets the Id field's value.
9206func (s *DescribeTagOptionInput) SetId(v string) *DescribeTagOptionInput {
9207	s.Id = &v
9208	return s
9209}
9210
9211type DescribeTagOptionOutput struct {
9212	_ struct{} `type:"structure"`
9213
9214	// Information about the TagOption.
9215	TagOptionDetail *TagOptionDetail `type:"structure"`
9216}
9217
9218// String returns the string representation
9219func (s DescribeTagOptionOutput) String() string {
9220	return awsutil.Prettify(s)
9221}
9222
9223// GoString returns the string representation
9224func (s DescribeTagOptionOutput) GoString() string {
9225	return s.String()
9226}
9227
9228// SetTagOptionDetail sets the TagOptionDetail field's value.
9229func (s *DescribeTagOptionOutput) SetTagOptionDetail(v *TagOptionDetail) *DescribeTagOptionOutput {
9230	s.TagOptionDetail = v
9231	return s
9232}
9233
9234type DisassociatePrincipalFromPortfolioInput struct {
9235	_ struct{} `type:"structure"`
9236
9237	// The language code.
9238	//
9239	//    * en - English (default)
9240	//
9241	//    * jp - Japanese
9242	//
9243	//    * zh - Chinese
9244	AcceptLanguage *string `type:"string"`
9245
9246	// The portfolio identifier.
9247	//
9248	// PortfolioId is a required field
9249	PortfolioId *string `min:"1" type:"string" required:"true"`
9250
9251	// The ARN of the principal (IAM user, role, or group).
9252	//
9253	// PrincipalARN is a required field
9254	PrincipalARN *string `min:"1" type:"string" required:"true"`
9255}
9256
9257// String returns the string representation
9258func (s DisassociatePrincipalFromPortfolioInput) String() string {
9259	return awsutil.Prettify(s)
9260}
9261
9262// GoString returns the string representation
9263func (s DisassociatePrincipalFromPortfolioInput) GoString() string {
9264	return s.String()
9265}
9266
9267// Validate inspects the fields of the type to determine if they are valid.
9268func (s *DisassociatePrincipalFromPortfolioInput) Validate() error {
9269	invalidParams := request.ErrInvalidParams{Context: "DisassociatePrincipalFromPortfolioInput"}
9270	if s.PortfolioId == nil {
9271		invalidParams.Add(request.NewErrParamRequired("PortfolioId"))
9272	}
9273	if s.PortfolioId != nil && len(*s.PortfolioId) < 1 {
9274		invalidParams.Add(request.NewErrParamMinLen("PortfolioId", 1))
9275	}
9276	if s.PrincipalARN == nil {
9277		invalidParams.Add(request.NewErrParamRequired("PrincipalARN"))
9278	}
9279	if s.PrincipalARN != nil && len(*s.PrincipalARN) < 1 {
9280		invalidParams.Add(request.NewErrParamMinLen("PrincipalARN", 1))
9281	}
9282
9283	if invalidParams.Len() > 0 {
9284		return invalidParams
9285	}
9286	return nil
9287}
9288
9289// SetAcceptLanguage sets the AcceptLanguage field's value.
9290func (s *DisassociatePrincipalFromPortfolioInput) SetAcceptLanguage(v string) *DisassociatePrincipalFromPortfolioInput {
9291	s.AcceptLanguage = &v
9292	return s
9293}
9294
9295// SetPortfolioId sets the PortfolioId field's value.
9296func (s *DisassociatePrincipalFromPortfolioInput) SetPortfolioId(v string) *DisassociatePrincipalFromPortfolioInput {
9297	s.PortfolioId = &v
9298	return s
9299}
9300
9301// SetPrincipalARN sets the PrincipalARN field's value.
9302func (s *DisassociatePrincipalFromPortfolioInput) SetPrincipalARN(v string) *DisassociatePrincipalFromPortfolioInput {
9303	s.PrincipalARN = &v
9304	return s
9305}
9306
9307type DisassociatePrincipalFromPortfolioOutput struct {
9308	_ struct{} `type:"structure"`
9309}
9310
9311// String returns the string representation
9312func (s DisassociatePrincipalFromPortfolioOutput) String() string {
9313	return awsutil.Prettify(s)
9314}
9315
9316// GoString returns the string representation
9317func (s DisassociatePrincipalFromPortfolioOutput) GoString() string {
9318	return s.String()
9319}
9320
9321type DisassociateProductFromPortfolioInput struct {
9322	_ struct{} `type:"structure"`
9323
9324	// The language code.
9325	//
9326	//    * en - English (default)
9327	//
9328	//    * jp - Japanese
9329	//
9330	//    * zh - Chinese
9331	AcceptLanguage *string `type:"string"`
9332
9333	// The portfolio identifier.
9334	//
9335	// PortfolioId is a required field
9336	PortfolioId *string `min:"1" type:"string" required:"true"`
9337
9338	// The product identifier.
9339	//
9340	// ProductId is a required field
9341	ProductId *string `min:"1" type:"string" required:"true"`
9342}
9343
9344// String returns the string representation
9345func (s DisassociateProductFromPortfolioInput) String() string {
9346	return awsutil.Prettify(s)
9347}
9348
9349// GoString returns the string representation
9350func (s DisassociateProductFromPortfolioInput) GoString() string {
9351	return s.String()
9352}
9353
9354// Validate inspects the fields of the type to determine if they are valid.
9355func (s *DisassociateProductFromPortfolioInput) Validate() error {
9356	invalidParams := request.ErrInvalidParams{Context: "DisassociateProductFromPortfolioInput"}
9357	if s.PortfolioId == nil {
9358		invalidParams.Add(request.NewErrParamRequired("PortfolioId"))
9359	}
9360	if s.PortfolioId != nil && len(*s.PortfolioId) < 1 {
9361		invalidParams.Add(request.NewErrParamMinLen("PortfolioId", 1))
9362	}
9363	if s.ProductId == nil {
9364		invalidParams.Add(request.NewErrParamRequired("ProductId"))
9365	}
9366	if s.ProductId != nil && len(*s.ProductId) < 1 {
9367		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
9368	}
9369
9370	if invalidParams.Len() > 0 {
9371		return invalidParams
9372	}
9373	return nil
9374}
9375
9376// SetAcceptLanguage sets the AcceptLanguage field's value.
9377func (s *DisassociateProductFromPortfolioInput) SetAcceptLanguage(v string) *DisassociateProductFromPortfolioInput {
9378	s.AcceptLanguage = &v
9379	return s
9380}
9381
9382// SetPortfolioId sets the PortfolioId field's value.
9383func (s *DisassociateProductFromPortfolioInput) SetPortfolioId(v string) *DisassociateProductFromPortfolioInput {
9384	s.PortfolioId = &v
9385	return s
9386}
9387
9388// SetProductId sets the ProductId field's value.
9389func (s *DisassociateProductFromPortfolioInput) SetProductId(v string) *DisassociateProductFromPortfolioInput {
9390	s.ProductId = &v
9391	return s
9392}
9393
9394type DisassociateProductFromPortfolioOutput struct {
9395	_ struct{} `type:"structure"`
9396}
9397
9398// String returns the string representation
9399func (s DisassociateProductFromPortfolioOutput) String() string {
9400	return awsutil.Prettify(s)
9401}
9402
9403// GoString returns the string representation
9404func (s DisassociateProductFromPortfolioOutput) GoString() string {
9405	return s.String()
9406}
9407
9408type DisassociateTagOptionFromResourceInput struct {
9409	_ struct{} `type:"structure"`
9410
9411	// The resource identifier.
9412	//
9413	// ResourceId is a required field
9414	ResourceId *string `type:"string" required:"true"`
9415
9416	// The TagOption identifier.
9417	//
9418	// TagOptionId is a required field
9419	TagOptionId *string `min:"1" type:"string" required:"true"`
9420}
9421
9422// String returns the string representation
9423func (s DisassociateTagOptionFromResourceInput) String() string {
9424	return awsutil.Prettify(s)
9425}
9426
9427// GoString returns the string representation
9428func (s DisassociateTagOptionFromResourceInput) GoString() string {
9429	return s.String()
9430}
9431
9432// Validate inspects the fields of the type to determine if they are valid.
9433func (s *DisassociateTagOptionFromResourceInput) Validate() error {
9434	invalidParams := request.ErrInvalidParams{Context: "DisassociateTagOptionFromResourceInput"}
9435	if s.ResourceId == nil {
9436		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
9437	}
9438	if s.TagOptionId == nil {
9439		invalidParams.Add(request.NewErrParamRequired("TagOptionId"))
9440	}
9441	if s.TagOptionId != nil && len(*s.TagOptionId) < 1 {
9442		invalidParams.Add(request.NewErrParamMinLen("TagOptionId", 1))
9443	}
9444
9445	if invalidParams.Len() > 0 {
9446		return invalidParams
9447	}
9448	return nil
9449}
9450
9451// SetResourceId sets the ResourceId field's value.
9452func (s *DisassociateTagOptionFromResourceInput) SetResourceId(v string) *DisassociateTagOptionFromResourceInput {
9453	s.ResourceId = &v
9454	return s
9455}
9456
9457// SetTagOptionId sets the TagOptionId field's value.
9458func (s *DisassociateTagOptionFromResourceInput) SetTagOptionId(v string) *DisassociateTagOptionFromResourceInput {
9459	s.TagOptionId = &v
9460	return s
9461}
9462
9463type DisassociateTagOptionFromResourceOutput struct {
9464	_ struct{} `type:"structure"`
9465}
9466
9467// String returns the string representation
9468func (s DisassociateTagOptionFromResourceOutput) String() string {
9469	return awsutil.Prettify(s)
9470}
9471
9472// GoString returns the string representation
9473func (s DisassociateTagOptionFromResourceOutput) GoString() string {
9474	return s.String()
9475}
9476
9477type ExecuteProvisionedProductPlanInput struct {
9478	_ struct{} `type:"structure"`
9479
9480	// The language code.
9481	//
9482	//    * en - English (default)
9483	//
9484	//    * jp - Japanese
9485	//
9486	//    * zh - Chinese
9487	AcceptLanguage *string `type:"string"`
9488
9489	// A unique identifier that you provide to ensure idempotency. If multiple requests
9490	// differ only by the idempotency token, the same response is returned for each
9491	// repeated request.
9492	//
9493	// IdempotencyToken is a required field
9494	IdempotencyToken *string `min:"1" type:"string" required:"true" idempotencyToken:"true"`
9495
9496	// The plan identifier.
9497	//
9498	// PlanId is a required field
9499	PlanId *string `min:"1" type:"string" required:"true"`
9500}
9501
9502// String returns the string representation
9503func (s ExecuteProvisionedProductPlanInput) String() string {
9504	return awsutil.Prettify(s)
9505}
9506
9507// GoString returns the string representation
9508func (s ExecuteProvisionedProductPlanInput) GoString() string {
9509	return s.String()
9510}
9511
9512// Validate inspects the fields of the type to determine if they are valid.
9513func (s *ExecuteProvisionedProductPlanInput) Validate() error {
9514	invalidParams := request.ErrInvalidParams{Context: "ExecuteProvisionedProductPlanInput"}
9515	if s.IdempotencyToken == nil {
9516		invalidParams.Add(request.NewErrParamRequired("IdempotencyToken"))
9517	}
9518	if s.IdempotencyToken != nil && len(*s.IdempotencyToken) < 1 {
9519		invalidParams.Add(request.NewErrParamMinLen("IdempotencyToken", 1))
9520	}
9521	if s.PlanId == nil {
9522		invalidParams.Add(request.NewErrParamRequired("PlanId"))
9523	}
9524	if s.PlanId != nil && len(*s.PlanId) < 1 {
9525		invalidParams.Add(request.NewErrParamMinLen("PlanId", 1))
9526	}
9527
9528	if invalidParams.Len() > 0 {
9529		return invalidParams
9530	}
9531	return nil
9532}
9533
9534// SetAcceptLanguage sets the AcceptLanguage field's value.
9535func (s *ExecuteProvisionedProductPlanInput) SetAcceptLanguage(v string) *ExecuteProvisionedProductPlanInput {
9536	s.AcceptLanguage = &v
9537	return s
9538}
9539
9540// SetIdempotencyToken sets the IdempotencyToken field's value.
9541func (s *ExecuteProvisionedProductPlanInput) SetIdempotencyToken(v string) *ExecuteProvisionedProductPlanInput {
9542	s.IdempotencyToken = &v
9543	return s
9544}
9545
9546// SetPlanId sets the PlanId field's value.
9547func (s *ExecuteProvisionedProductPlanInput) SetPlanId(v string) *ExecuteProvisionedProductPlanInput {
9548	s.PlanId = &v
9549	return s
9550}
9551
9552type ExecuteProvisionedProductPlanOutput struct {
9553	_ struct{} `type:"structure"`
9554
9555	// Information about the result of provisioning the product.
9556	RecordDetail *RecordDetail `type:"structure"`
9557}
9558
9559// String returns the string representation
9560func (s ExecuteProvisionedProductPlanOutput) String() string {
9561	return awsutil.Prettify(s)
9562}
9563
9564// GoString returns the string representation
9565func (s ExecuteProvisionedProductPlanOutput) GoString() string {
9566	return s.String()
9567}
9568
9569// SetRecordDetail sets the RecordDetail field's value.
9570func (s *ExecuteProvisionedProductPlanOutput) SetRecordDetail(v *RecordDetail) *ExecuteProvisionedProductPlanOutput {
9571	s.RecordDetail = v
9572	return s
9573}
9574
9575// Summary information about a product path for a user.
9576type LaunchPathSummary struct {
9577	_ struct{} `type:"structure"`
9578
9579	// The constraints on the portfolio-product relationship.
9580	ConstraintSummaries []*ConstraintSummary `type:"list"`
9581
9582	// The identifier of the product path.
9583	Id *string `min:"1" type:"string"`
9584
9585	// The name of the portfolio to which the user was assigned.
9586	Name *string `type:"string"`
9587
9588	// The tags associated with this product path.
9589	Tags []*Tag `type:"list"`
9590}
9591
9592// String returns the string representation
9593func (s LaunchPathSummary) String() string {
9594	return awsutil.Prettify(s)
9595}
9596
9597// GoString returns the string representation
9598func (s LaunchPathSummary) GoString() string {
9599	return s.String()
9600}
9601
9602// SetConstraintSummaries sets the ConstraintSummaries field's value.
9603func (s *LaunchPathSummary) SetConstraintSummaries(v []*ConstraintSummary) *LaunchPathSummary {
9604	s.ConstraintSummaries = v
9605	return s
9606}
9607
9608// SetId sets the Id field's value.
9609func (s *LaunchPathSummary) SetId(v string) *LaunchPathSummary {
9610	s.Id = &v
9611	return s
9612}
9613
9614// SetName sets the Name field's value.
9615func (s *LaunchPathSummary) SetName(v string) *LaunchPathSummary {
9616	s.Name = &v
9617	return s
9618}
9619
9620// SetTags sets the Tags field's value.
9621func (s *LaunchPathSummary) SetTags(v []*Tag) *LaunchPathSummary {
9622	s.Tags = v
9623	return s
9624}
9625
9626type ListAcceptedPortfolioSharesInput struct {
9627	_ struct{} `type:"structure"`
9628
9629	// The language code.
9630	//
9631	//    * en - English (default)
9632	//
9633	//    * jp - Japanese
9634	//
9635	//    * zh - Chinese
9636	AcceptLanguage *string `type:"string"`
9637
9638	// The maximum number of items to return with this call.
9639	PageSize *int64 `type:"integer"`
9640
9641	// The page token for the next set of results. To retrieve the first set of
9642	// results, use null.
9643	PageToken *string `type:"string"`
9644}
9645
9646// String returns the string representation
9647func (s ListAcceptedPortfolioSharesInput) String() string {
9648	return awsutil.Prettify(s)
9649}
9650
9651// GoString returns the string representation
9652func (s ListAcceptedPortfolioSharesInput) GoString() string {
9653	return s.String()
9654}
9655
9656// SetAcceptLanguage sets the AcceptLanguage field's value.
9657func (s *ListAcceptedPortfolioSharesInput) SetAcceptLanguage(v string) *ListAcceptedPortfolioSharesInput {
9658	s.AcceptLanguage = &v
9659	return s
9660}
9661
9662// SetPageSize sets the PageSize field's value.
9663func (s *ListAcceptedPortfolioSharesInput) SetPageSize(v int64) *ListAcceptedPortfolioSharesInput {
9664	s.PageSize = &v
9665	return s
9666}
9667
9668// SetPageToken sets the PageToken field's value.
9669func (s *ListAcceptedPortfolioSharesInput) SetPageToken(v string) *ListAcceptedPortfolioSharesInput {
9670	s.PageToken = &v
9671	return s
9672}
9673
9674type ListAcceptedPortfolioSharesOutput struct {
9675	_ struct{} `type:"structure"`
9676
9677	// The page token to use to retrieve the next set of results. If there are no
9678	// additional results, this value is null.
9679	NextPageToken *string `type:"string"`
9680
9681	// Information about the portfolios.
9682	PortfolioDetails []*PortfolioDetail `type:"list"`
9683}
9684
9685// String returns the string representation
9686func (s ListAcceptedPortfolioSharesOutput) String() string {
9687	return awsutil.Prettify(s)
9688}
9689
9690// GoString returns the string representation
9691func (s ListAcceptedPortfolioSharesOutput) GoString() string {
9692	return s.String()
9693}
9694
9695// SetNextPageToken sets the NextPageToken field's value.
9696func (s *ListAcceptedPortfolioSharesOutput) SetNextPageToken(v string) *ListAcceptedPortfolioSharesOutput {
9697	s.NextPageToken = &v
9698	return s
9699}
9700
9701// SetPortfolioDetails sets the PortfolioDetails field's value.
9702func (s *ListAcceptedPortfolioSharesOutput) SetPortfolioDetails(v []*PortfolioDetail) *ListAcceptedPortfolioSharesOutput {
9703	s.PortfolioDetails = v
9704	return s
9705}
9706
9707type ListConstraintsForPortfolioInput struct {
9708	_ struct{} `type:"structure"`
9709
9710	// The language code.
9711	//
9712	//    * en - English (default)
9713	//
9714	//    * jp - Japanese
9715	//
9716	//    * zh - Chinese
9717	AcceptLanguage *string `type:"string"`
9718
9719	// The maximum number of items to return with this call.
9720	PageSize *int64 `type:"integer"`
9721
9722	// The page token for the next set of results. To retrieve the first set of
9723	// results, use null.
9724	PageToken *string `type:"string"`
9725
9726	// The portfolio identifier.
9727	//
9728	// PortfolioId is a required field
9729	PortfolioId *string `min:"1" type:"string" required:"true"`
9730
9731	// The product identifier.
9732	ProductId *string `min:"1" type:"string"`
9733}
9734
9735// String returns the string representation
9736func (s ListConstraintsForPortfolioInput) String() string {
9737	return awsutil.Prettify(s)
9738}
9739
9740// GoString returns the string representation
9741func (s ListConstraintsForPortfolioInput) GoString() string {
9742	return s.String()
9743}
9744
9745// Validate inspects the fields of the type to determine if they are valid.
9746func (s *ListConstraintsForPortfolioInput) Validate() error {
9747	invalidParams := request.ErrInvalidParams{Context: "ListConstraintsForPortfolioInput"}
9748	if s.PortfolioId == nil {
9749		invalidParams.Add(request.NewErrParamRequired("PortfolioId"))
9750	}
9751	if s.PortfolioId != nil && len(*s.PortfolioId) < 1 {
9752		invalidParams.Add(request.NewErrParamMinLen("PortfolioId", 1))
9753	}
9754	if s.ProductId != nil && len(*s.ProductId) < 1 {
9755		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
9756	}
9757
9758	if invalidParams.Len() > 0 {
9759		return invalidParams
9760	}
9761	return nil
9762}
9763
9764// SetAcceptLanguage sets the AcceptLanguage field's value.
9765func (s *ListConstraintsForPortfolioInput) SetAcceptLanguage(v string) *ListConstraintsForPortfolioInput {
9766	s.AcceptLanguage = &v
9767	return s
9768}
9769
9770// SetPageSize sets the PageSize field's value.
9771func (s *ListConstraintsForPortfolioInput) SetPageSize(v int64) *ListConstraintsForPortfolioInput {
9772	s.PageSize = &v
9773	return s
9774}
9775
9776// SetPageToken sets the PageToken field's value.
9777func (s *ListConstraintsForPortfolioInput) SetPageToken(v string) *ListConstraintsForPortfolioInput {
9778	s.PageToken = &v
9779	return s
9780}
9781
9782// SetPortfolioId sets the PortfolioId field's value.
9783func (s *ListConstraintsForPortfolioInput) SetPortfolioId(v string) *ListConstraintsForPortfolioInput {
9784	s.PortfolioId = &v
9785	return s
9786}
9787
9788// SetProductId sets the ProductId field's value.
9789func (s *ListConstraintsForPortfolioInput) SetProductId(v string) *ListConstraintsForPortfolioInput {
9790	s.ProductId = &v
9791	return s
9792}
9793
9794type ListConstraintsForPortfolioOutput struct {
9795	_ struct{} `type:"structure"`
9796
9797	// Information about the constraints.
9798	ConstraintDetails []*ConstraintDetail `type:"list"`
9799
9800	// The page token to use to retrieve the next set of results. If there are no
9801	// additional results, this value is null.
9802	NextPageToken *string `type:"string"`
9803}
9804
9805// String returns the string representation
9806func (s ListConstraintsForPortfolioOutput) String() string {
9807	return awsutil.Prettify(s)
9808}
9809
9810// GoString returns the string representation
9811func (s ListConstraintsForPortfolioOutput) GoString() string {
9812	return s.String()
9813}
9814
9815// SetConstraintDetails sets the ConstraintDetails field's value.
9816func (s *ListConstraintsForPortfolioOutput) SetConstraintDetails(v []*ConstraintDetail) *ListConstraintsForPortfolioOutput {
9817	s.ConstraintDetails = v
9818	return s
9819}
9820
9821// SetNextPageToken sets the NextPageToken field's value.
9822func (s *ListConstraintsForPortfolioOutput) SetNextPageToken(v string) *ListConstraintsForPortfolioOutput {
9823	s.NextPageToken = &v
9824	return s
9825}
9826
9827type ListLaunchPathsInput struct {
9828	_ struct{} `type:"structure"`
9829
9830	// The language code.
9831	//
9832	//    * en - English (default)
9833	//
9834	//    * jp - Japanese
9835	//
9836	//    * zh - Chinese
9837	AcceptLanguage *string `type:"string"`
9838
9839	// The maximum number of items to return with this call.
9840	PageSize *int64 `type:"integer"`
9841
9842	// The page token for the next set of results. To retrieve the first set of
9843	// results, use null.
9844	PageToken *string `type:"string"`
9845
9846	// The product identifier.
9847	//
9848	// ProductId is a required field
9849	ProductId *string `min:"1" type:"string" required:"true"`
9850}
9851
9852// String returns the string representation
9853func (s ListLaunchPathsInput) String() string {
9854	return awsutil.Prettify(s)
9855}
9856
9857// GoString returns the string representation
9858func (s ListLaunchPathsInput) GoString() string {
9859	return s.String()
9860}
9861
9862// Validate inspects the fields of the type to determine if they are valid.
9863func (s *ListLaunchPathsInput) Validate() error {
9864	invalidParams := request.ErrInvalidParams{Context: "ListLaunchPathsInput"}
9865	if s.ProductId == nil {
9866		invalidParams.Add(request.NewErrParamRequired("ProductId"))
9867	}
9868	if s.ProductId != nil && len(*s.ProductId) < 1 {
9869		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
9870	}
9871
9872	if invalidParams.Len() > 0 {
9873		return invalidParams
9874	}
9875	return nil
9876}
9877
9878// SetAcceptLanguage sets the AcceptLanguage field's value.
9879func (s *ListLaunchPathsInput) SetAcceptLanguage(v string) *ListLaunchPathsInput {
9880	s.AcceptLanguage = &v
9881	return s
9882}
9883
9884// SetPageSize sets the PageSize field's value.
9885func (s *ListLaunchPathsInput) SetPageSize(v int64) *ListLaunchPathsInput {
9886	s.PageSize = &v
9887	return s
9888}
9889
9890// SetPageToken sets the PageToken field's value.
9891func (s *ListLaunchPathsInput) SetPageToken(v string) *ListLaunchPathsInput {
9892	s.PageToken = &v
9893	return s
9894}
9895
9896// SetProductId sets the ProductId field's value.
9897func (s *ListLaunchPathsInput) SetProductId(v string) *ListLaunchPathsInput {
9898	s.ProductId = &v
9899	return s
9900}
9901
9902type ListLaunchPathsOutput struct {
9903	_ struct{} `type:"structure"`
9904
9905	// Information about the launch path.
9906	LaunchPathSummaries []*LaunchPathSummary `type:"list"`
9907
9908	// The page token to use to retrieve the next set of results. If there are no
9909	// additional results, this value is null.
9910	NextPageToken *string `type:"string"`
9911}
9912
9913// String returns the string representation
9914func (s ListLaunchPathsOutput) String() string {
9915	return awsutil.Prettify(s)
9916}
9917
9918// GoString returns the string representation
9919func (s ListLaunchPathsOutput) GoString() string {
9920	return s.String()
9921}
9922
9923// SetLaunchPathSummaries sets the LaunchPathSummaries field's value.
9924func (s *ListLaunchPathsOutput) SetLaunchPathSummaries(v []*LaunchPathSummary) *ListLaunchPathsOutput {
9925	s.LaunchPathSummaries = v
9926	return s
9927}
9928
9929// SetNextPageToken sets the NextPageToken field's value.
9930func (s *ListLaunchPathsOutput) SetNextPageToken(v string) *ListLaunchPathsOutput {
9931	s.NextPageToken = &v
9932	return s
9933}
9934
9935type ListPortfolioAccessInput struct {
9936	_ struct{} `type:"structure"`
9937
9938	// The language code.
9939	//
9940	//    * en - English (default)
9941	//
9942	//    * jp - Japanese
9943	//
9944	//    * zh - Chinese
9945	AcceptLanguage *string `type:"string"`
9946
9947	// The portfolio identifier.
9948	//
9949	// PortfolioId is a required field
9950	PortfolioId *string `min:"1" type:"string" required:"true"`
9951}
9952
9953// String returns the string representation
9954func (s ListPortfolioAccessInput) String() string {
9955	return awsutil.Prettify(s)
9956}
9957
9958// GoString returns the string representation
9959func (s ListPortfolioAccessInput) GoString() string {
9960	return s.String()
9961}
9962
9963// Validate inspects the fields of the type to determine if they are valid.
9964func (s *ListPortfolioAccessInput) Validate() error {
9965	invalidParams := request.ErrInvalidParams{Context: "ListPortfolioAccessInput"}
9966	if s.PortfolioId == nil {
9967		invalidParams.Add(request.NewErrParamRequired("PortfolioId"))
9968	}
9969	if s.PortfolioId != nil && len(*s.PortfolioId) < 1 {
9970		invalidParams.Add(request.NewErrParamMinLen("PortfolioId", 1))
9971	}
9972
9973	if invalidParams.Len() > 0 {
9974		return invalidParams
9975	}
9976	return nil
9977}
9978
9979// SetAcceptLanguage sets the AcceptLanguage field's value.
9980func (s *ListPortfolioAccessInput) SetAcceptLanguage(v string) *ListPortfolioAccessInput {
9981	s.AcceptLanguage = &v
9982	return s
9983}
9984
9985// SetPortfolioId sets the PortfolioId field's value.
9986func (s *ListPortfolioAccessInput) SetPortfolioId(v string) *ListPortfolioAccessInput {
9987	s.PortfolioId = &v
9988	return s
9989}
9990
9991type ListPortfolioAccessOutput struct {
9992	_ struct{} `type:"structure"`
9993
9994	// Information about the AWS accounts with access to the portfolio.
9995	AccountIds []*string `type:"list"`
9996
9997	// The page token to use to retrieve the next set of results. If there are no
9998	// additional results, this value is null.
9999	NextPageToken *string `type:"string"`
10000}
10001
10002// String returns the string representation
10003func (s ListPortfolioAccessOutput) String() string {
10004	return awsutil.Prettify(s)
10005}
10006
10007// GoString returns the string representation
10008func (s ListPortfolioAccessOutput) GoString() string {
10009	return s.String()
10010}
10011
10012// SetAccountIds sets the AccountIds field's value.
10013func (s *ListPortfolioAccessOutput) SetAccountIds(v []*string) *ListPortfolioAccessOutput {
10014	s.AccountIds = v
10015	return s
10016}
10017
10018// SetNextPageToken sets the NextPageToken field's value.
10019func (s *ListPortfolioAccessOutput) SetNextPageToken(v string) *ListPortfolioAccessOutput {
10020	s.NextPageToken = &v
10021	return s
10022}
10023
10024type ListPortfoliosForProductInput struct {
10025	_ struct{} `type:"structure"`
10026
10027	// The language code.
10028	//
10029	//    * en - English (default)
10030	//
10031	//    * jp - Japanese
10032	//
10033	//    * zh - Chinese
10034	AcceptLanguage *string `type:"string"`
10035
10036	// The maximum number of items to return with this call.
10037	PageSize *int64 `type:"integer"`
10038
10039	// The page token for the next set of results. To retrieve the first set of
10040	// results, use null.
10041	PageToken *string `type:"string"`
10042
10043	// The product identifier.
10044	//
10045	// ProductId is a required field
10046	ProductId *string `min:"1" type:"string" required:"true"`
10047}
10048
10049// String returns the string representation
10050func (s ListPortfoliosForProductInput) String() string {
10051	return awsutil.Prettify(s)
10052}
10053
10054// GoString returns the string representation
10055func (s ListPortfoliosForProductInput) GoString() string {
10056	return s.String()
10057}
10058
10059// Validate inspects the fields of the type to determine if they are valid.
10060func (s *ListPortfoliosForProductInput) Validate() error {
10061	invalidParams := request.ErrInvalidParams{Context: "ListPortfoliosForProductInput"}
10062	if s.ProductId == nil {
10063		invalidParams.Add(request.NewErrParamRequired("ProductId"))
10064	}
10065	if s.ProductId != nil && len(*s.ProductId) < 1 {
10066		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
10067	}
10068
10069	if invalidParams.Len() > 0 {
10070		return invalidParams
10071	}
10072	return nil
10073}
10074
10075// SetAcceptLanguage sets the AcceptLanguage field's value.
10076func (s *ListPortfoliosForProductInput) SetAcceptLanguage(v string) *ListPortfoliosForProductInput {
10077	s.AcceptLanguage = &v
10078	return s
10079}
10080
10081// SetPageSize sets the PageSize field's value.
10082func (s *ListPortfoliosForProductInput) SetPageSize(v int64) *ListPortfoliosForProductInput {
10083	s.PageSize = &v
10084	return s
10085}
10086
10087// SetPageToken sets the PageToken field's value.
10088func (s *ListPortfoliosForProductInput) SetPageToken(v string) *ListPortfoliosForProductInput {
10089	s.PageToken = &v
10090	return s
10091}
10092
10093// SetProductId sets the ProductId field's value.
10094func (s *ListPortfoliosForProductInput) SetProductId(v string) *ListPortfoliosForProductInput {
10095	s.ProductId = &v
10096	return s
10097}
10098
10099type ListPortfoliosForProductOutput struct {
10100	_ struct{} `type:"structure"`
10101
10102	// The page token to use to retrieve the next set of results. If there are no
10103	// additional results, this value is null.
10104	NextPageToken *string `type:"string"`
10105
10106	// Information about the portfolios.
10107	PortfolioDetails []*PortfolioDetail `type:"list"`
10108}
10109
10110// String returns the string representation
10111func (s ListPortfoliosForProductOutput) String() string {
10112	return awsutil.Prettify(s)
10113}
10114
10115// GoString returns the string representation
10116func (s ListPortfoliosForProductOutput) GoString() string {
10117	return s.String()
10118}
10119
10120// SetNextPageToken sets the NextPageToken field's value.
10121func (s *ListPortfoliosForProductOutput) SetNextPageToken(v string) *ListPortfoliosForProductOutput {
10122	s.NextPageToken = &v
10123	return s
10124}
10125
10126// SetPortfolioDetails sets the PortfolioDetails field's value.
10127func (s *ListPortfoliosForProductOutput) SetPortfolioDetails(v []*PortfolioDetail) *ListPortfoliosForProductOutput {
10128	s.PortfolioDetails = v
10129	return s
10130}
10131
10132type ListPortfoliosInput struct {
10133	_ struct{} `type:"structure"`
10134
10135	// The language code.
10136	//
10137	//    * en - English (default)
10138	//
10139	//    * jp - Japanese
10140	//
10141	//    * zh - Chinese
10142	AcceptLanguage *string `type:"string"`
10143
10144	// The maximum number of items to return with this call.
10145	PageSize *int64 `type:"integer"`
10146
10147	// The page token for the next set of results. To retrieve the first set of
10148	// results, use null.
10149	PageToken *string `type:"string"`
10150}
10151
10152// String returns the string representation
10153func (s ListPortfoliosInput) String() string {
10154	return awsutil.Prettify(s)
10155}
10156
10157// GoString returns the string representation
10158func (s ListPortfoliosInput) GoString() string {
10159	return s.String()
10160}
10161
10162// SetAcceptLanguage sets the AcceptLanguage field's value.
10163func (s *ListPortfoliosInput) SetAcceptLanguage(v string) *ListPortfoliosInput {
10164	s.AcceptLanguage = &v
10165	return s
10166}
10167
10168// SetPageSize sets the PageSize field's value.
10169func (s *ListPortfoliosInput) SetPageSize(v int64) *ListPortfoliosInput {
10170	s.PageSize = &v
10171	return s
10172}
10173
10174// SetPageToken sets the PageToken field's value.
10175func (s *ListPortfoliosInput) SetPageToken(v string) *ListPortfoliosInput {
10176	s.PageToken = &v
10177	return s
10178}
10179
10180type ListPortfoliosOutput struct {
10181	_ struct{} `type:"structure"`
10182
10183	// The page token to use to retrieve the next set of results. If there are no
10184	// additional results, this value is null.
10185	NextPageToken *string `type:"string"`
10186
10187	// Information about the portfolios.
10188	PortfolioDetails []*PortfolioDetail `type:"list"`
10189}
10190
10191// String returns the string representation
10192func (s ListPortfoliosOutput) String() string {
10193	return awsutil.Prettify(s)
10194}
10195
10196// GoString returns the string representation
10197func (s ListPortfoliosOutput) GoString() string {
10198	return s.String()
10199}
10200
10201// SetNextPageToken sets the NextPageToken field's value.
10202func (s *ListPortfoliosOutput) SetNextPageToken(v string) *ListPortfoliosOutput {
10203	s.NextPageToken = &v
10204	return s
10205}
10206
10207// SetPortfolioDetails sets the PortfolioDetails field's value.
10208func (s *ListPortfoliosOutput) SetPortfolioDetails(v []*PortfolioDetail) *ListPortfoliosOutput {
10209	s.PortfolioDetails = v
10210	return s
10211}
10212
10213type ListPrincipalsForPortfolioInput struct {
10214	_ struct{} `type:"structure"`
10215
10216	// The language code.
10217	//
10218	//    * en - English (default)
10219	//
10220	//    * jp - Japanese
10221	//
10222	//    * zh - Chinese
10223	AcceptLanguage *string `type:"string"`
10224
10225	// The maximum number of items to return with this call.
10226	PageSize *int64 `type:"integer"`
10227
10228	// The page token for the next set of results. To retrieve the first set of
10229	// results, use null.
10230	PageToken *string `type:"string"`
10231
10232	// The portfolio identifier.
10233	//
10234	// PortfolioId is a required field
10235	PortfolioId *string `min:"1" type:"string" required:"true"`
10236}
10237
10238// String returns the string representation
10239func (s ListPrincipalsForPortfolioInput) String() string {
10240	return awsutil.Prettify(s)
10241}
10242
10243// GoString returns the string representation
10244func (s ListPrincipalsForPortfolioInput) GoString() string {
10245	return s.String()
10246}
10247
10248// Validate inspects the fields of the type to determine if they are valid.
10249func (s *ListPrincipalsForPortfolioInput) Validate() error {
10250	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalsForPortfolioInput"}
10251	if s.PortfolioId == nil {
10252		invalidParams.Add(request.NewErrParamRequired("PortfolioId"))
10253	}
10254	if s.PortfolioId != nil && len(*s.PortfolioId) < 1 {
10255		invalidParams.Add(request.NewErrParamMinLen("PortfolioId", 1))
10256	}
10257
10258	if invalidParams.Len() > 0 {
10259		return invalidParams
10260	}
10261	return nil
10262}
10263
10264// SetAcceptLanguage sets the AcceptLanguage field's value.
10265func (s *ListPrincipalsForPortfolioInput) SetAcceptLanguage(v string) *ListPrincipalsForPortfolioInput {
10266	s.AcceptLanguage = &v
10267	return s
10268}
10269
10270// SetPageSize sets the PageSize field's value.
10271func (s *ListPrincipalsForPortfolioInput) SetPageSize(v int64) *ListPrincipalsForPortfolioInput {
10272	s.PageSize = &v
10273	return s
10274}
10275
10276// SetPageToken sets the PageToken field's value.
10277func (s *ListPrincipalsForPortfolioInput) SetPageToken(v string) *ListPrincipalsForPortfolioInput {
10278	s.PageToken = &v
10279	return s
10280}
10281
10282// SetPortfolioId sets the PortfolioId field's value.
10283func (s *ListPrincipalsForPortfolioInput) SetPortfolioId(v string) *ListPrincipalsForPortfolioInput {
10284	s.PortfolioId = &v
10285	return s
10286}
10287
10288type ListPrincipalsForPortfolioOutput struct {
10289	_ struct{} `type:"structure"`
10290
10291	// The page token to use to retrieve the next set of results. If there are no
10292	// additional results, this value is null.
10293	NextPageToken *string `type:"string"`
10294
10295	// The IAM principals (users or roles) associated with the portfolio.
10296	Principals []*Principal `type:"list"`
10297}
10298
10299// String returns the string representation
10300func (s ListPrincipalsForPortfolioOutput) String() string {
10301	return awsutil.Prettify(s)
10302}
10303
10304// GoString returns the string representation
10305func (s ListPrincipalsForPortfolioOutput) GoString() string {
10306	return s.String()
10307}
10308
10309// SetNextPageToken sets the NextPageToken field's value.
10310func (s *ListPrincipalsForPortfolioOutput) SetNextPageToken(v string) *ListPrincipalsForPortfolioOutput {
10311	s.NextPageToken = &v
10312	return s
10313}
10314
10315// SetPrincipals sets the Principals field's value.
10316func (s *ListPrincipalsForPortfolioOutput) SetPrincipals(v []*Principal) *ListPrincipalsForPortfolioOutput {
10317	s.Principals = v
10318	return s
10319}
10320
10321type ListProvisionedProductPlansInput struct {
10322	_ struct{} `type:"structure"`
10323
10324	// The language code.
10325	//
10326	//    * en - English (default)
10327	//
10328	//    * jp - Japanese
10329	//
10330	//    * zh - Chinese
10331	AcceptLanguage *string `type:"string"`
10332
10333	// The access level to use to obtain results. The default is User.
10334	AccessLevelFilter *AccessLevelFilter `type:"structure"`
10335
10336	// The maximum number of items to return with this call.
10337	PageSize *int64 `type:"integer"`
10338
10339	// The page token for the next set of results. To retrieve the first set of
10340	// results, use null.
10341	PageToken *string `type:"string"`
10342
10343	// The product identifier.
10344	ProvisionProductId *string `min:"1" type:"string"`
10345}
10346
10347// String returns the string representation
10348func (s ListProvisionedProductPlansInput) String() string {
10349	return awsutil.Prettify(s)
10350}
10351
10352// GoString returns the string representation
10353func (s ListProvisionedProductPlansInput) GoString() string {
10354	return s.String()
10355}
10356
10357// Validate inspects the fields of the type to determine if they are valid.
10358func (s *ListProvisionedProductPlansInput) Validate() error {
10359	invalidParams := request.ErrInvalidParams{Context: "ListProvisionedProductPlansInput"}
10360	if s.ProvisionProductId != nil && len(*s.ProvisionProductId) < 1 {
10361		invalidParams.Add(request.NewErrParamMinLen("ProvisionProductId", 1))
10362	}
10363
10364	if invalidParams.Len() > 0 {
10365		return invalidParams
10366	}
10367	return nil
10368}
10369
10370// SetAcceptLanguage sets the AcceptLanguage field's value.
10371func (s *ListProvisionedProductPlansInput) SetAcceptLanguage(v string) *ListProvisionedProductPlansInput {
10372	s.AcceptLanguage = &v
10373	return s
10374}
10375
10376// SetAccessLevelFilter sets the AccessLevelFilter field's value.
10377func (s *ListProvisionedProductPlansInput) SetAccessLevelFilter(v *AccessLevelFilter) *ListProvisionedProductPlansInput {
10378	s.AccessLevelFilter = v
10379	return s
10380}
10381
10382// SetPageSize sets the PageSize field's value.
10383func (s *ListProvisionedProductPlansInput) SetPageSize(v int64) *ListProvisionedProductPlansInput {
10384	s.PageSize = &v
10385	return s
10386}
10387
10388// SetPageToken sets the PageToken field's value.
10389func (s *ListProvisionedProductPlansInput) SetPageToken(v string) *ListProvisionedProductPlansInput {
10390	s.PageToken = &v
10391	return s
10392}
10393
10394// SetProvisionProductId sets the ProvisionProductId field's value.
10395func (s *ListProvisionedProductPlansInput) SetProvisionProductId(v string) *ListProvisionedProductPlansInput {
10396	s.ProvisionProductId = &v
10397	return s
10398}
10399
10400type ListProvisionedProductPlansOutput struct {
10401	_ struct{} `type:"structure"`
10402
10403	// The page token to use to retrieve the next set of results. If there are no
10404	// additional results, this value is null.
10405	NextPageToken *string `type:"string"`
10406
10407	// Information about the plans.
10408	ProvisionedProductPlans []*ProvisionedProductPlanSummary `type:"list"`
10409}
10410
10411// String returns the string representation
10412func (s ListProvisionedProductPlansOutput) String() string {
10413	return awsutil.Prettify(s)
10414}
10415
10416// GoString returns the string representation
10417func (s ListProvisionedProductPlansOutput) GoString() string {
10418	return s.String()
10419}
10420
10421// SetNextPageToken sets the NextPageToken field's value.
10422func (s *ListProvisionedProductPlansOutput) SetNextPageToken(v string) *ListProvisionedProductPlansOutput {
10423	s.NextPageToken = &v
10424	return s
10425}
10426
10427// SetProvisionedProductPlans sets the ProvisionedProductPlans field's value.
10428func (s *ListProvisionedProductPlansOutput) SetProvisionedProductPlans(v []*ProvisionedProductPlanSummary) *ListProvisionedProductPlansOutput {
10429	s.ProvisionedProductPlans = v
10430	return s
10431}
10432
10433type ListProvisioningArtifactsInput struct {
10434	_ struct{} `type:"structure"`
10435
10436	// The language code.
10437	//
10438	//    * en - English (default)
10439	//
10440	//    * jp - Japanese
10441	//
10442	//    * zh - Chinese
10443	AcceptLanguage *string `type:"string"`
10444
10445	// The product identifier.
10446	//
10447	// ProductId is a required field
10448	ProductId *string `min:"1" type:"string" required:"true"`
10449}
10450
10451// String returns the string representation
10452func (s ListProvisioningArtifactsInput) String() string {
10453	return awsutil.Prettify(s)
10454}
10455
10456// GoString returns the string representation
10457func (s ListProvisioningArtifactsInput) GoString() string {
10458	return s.String()
10459}
10460
10461// Validate inspects the fields of the type to determine if they are valid.
10462func (s *ListProvisioningArtifactsInput) Validate() error {
10463	invalidParams := request.ErrInvalidParams{Context: "ListProvisioningArtifactsInput"}
10464	if s.ProductId == nil {
10465		invalidParams.Add(request.NewErrParamRequired("ProductId"))
10466	}
10467	if s.ProductId != nil && len(*s.ProductId) < 1 {
10468		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
10469	}
10470
10471	if invalidParams.Len() > 0 {
10472		return invalidParams
10473	}
10474	return nil
10475}
10476
10477// SetAcceptLanguage sets the AcceptLanguage field's value.
10478func (s *ListProvisioningArtifactsInput) SetAcceptLanguage(v string) *ListProvisioningArtifactsInput {
10479	s.AcceptLanguage = &v
10480	return s
10481}
10482
10483// SetProductId sets the ProductId field's value.
10484func (s *ListProvisioningArtifactsInput) SetProductId(v string) *ListProvisioningArtifactsInput {
10485	s.ProductId = &v
10486	return s
10487}
10488
10489type ListProvisioningArtifactsOutput struct {
10490	_ struct{} `type:"structure"`
10491
10492	// The page token to use to retrieve the next set of results. If there are no
10493	// additional results, this value is null.
10494	NextPageToken *string `type:"string"`
10495
10496	// Information about the provisioning artifacts.
10497	ProvisioningArtifactDetails []*ProvisioningArtifactDetail `type:"list"`
10498}
10499
10500// String returns the string representation
10501func (s ListProvisioningArtifactsOutput) String() string {
10502	return awsutil.Prettify(s)
10503}
10504
10505// GoString returns the string representation
10506func (s ListProvisioningArtifactsOutput) GoString() string {
10507	return s.String()
10508}
10509
10510// SetNextPageToken sets the NextPageToken field's value.
10511func (s *ListProvisioningArtifactsOutput) SetNextPageToken(v string) *ListProvisioningArtifactsOutput {
10512	s.NextPageToken = &v
10513	return s
10514}
10515
10516// SetProvisioningArtifactDetails sets the ProvisioningArtifactDetails field's value.
10517func (s *ListProvisioningArtifactsOutput) SetProvisioningArtifactDetails(v []*ProvisioningArtifactDetail) *ListProvisioningArtifactsOutput {
10518	s.ProvisioningArtifactDetails = v
10519	return s
10520}
10521
10522type ListRecordHistoryInput struct {
10523	_ struct{} `type:"structure"`
10524
10525	// The language code.
10526	//
10527	//    * en - English (default)
10528	//
10529	//    * jp - Japanese
10530	//
10531	//    * zh - Chinese
10532	AcceptLanguage *string `type:"string"`
10533
10534	// The access level to use to obtain results. The default is User.
10535	AccessLevelFilter *AccessLevelFilter `type:"structure"`
10536
10537	// The maximum number of items to return with this call.
10538	PageSize *int64 `type:"integer"`
10539
10540	// The page token for the next set of results. To retrieve the first set of
10541	// results, use null.
10542	PageToken *string `type:"string"`
10543
10544	// The search filter to scope the results.
10545	SearchFilter *ListRecordHistorySearchFilter `type:"structure"`
10546}
10547
10548// String returns the string representation
10549func (s ListRecordHistoryInput) String() string {
10550	return awsutil.Prettify(s)
10551}
10552
10553// GoString returns the string representation
10554func (s ListRecordHistoryInput) GoString() string {
10555	return s.String()
10556}
10557
10558// SetAcceptLanguage sets the AcceptLanguage field's value.
10559func (s *ListRecordHistoryInput) SetAcceptLanguage(v string) *ListRecordHistoryInput {
10560	s.AcceptLanguage = &v
10561	return s
10562}
10563
10564// SetAccessLevelFilter sets the AccessLevelFilter field's value.
10565func (s *ListRecordHistoryInput) SetAccessLevelFilter(v *AccessLevelFilter) *ListRecordHistoryInput {
10566	s.AccessLevelFilter = v
10567	return s
10568}
10569
10570// SetPageSize sets the PageSize field's value.
10571func (s *ListRecordHistoryInput) SetPageSize(v int64) *ListRecordHistoryInput {
10572	s.PageSize = &v
10573	return s
10574}
10575
10576// SetPageToken sets the PageToken field's value.
10577func (s *ListRecordHistoryInput) SetPageToken(v string) *ListRecordHistoryInput {
10578	s.PageToken = &v
10579	return s
10580}
10581
10582// SetSearchFilter sets the SearchFilter field's value.
10583func (s *ListRecordHistoryInput) SetSearchFilter(v *ListRecordHistorySearchFilter) *ListRecordHistoryInput {
10584	s.SearchFilter = v
10585	return s
10586}
10587
10588type ListRecordHistoryOutput struct {
10589	_ struct{} `type:"structure"`
10590
10591	// The page token to use to retrieve the next set of results. If there are no
10592	// additional results, this value is null.
10593	NextPageToken *string `type:"string"`
10594
10595	// The records, in reverse chronological order.
10596	RecordDetails []*RecordDetail `type:"list"`
10597}
10598
10599// String returns the string representation
10600func (s ListRecordHistoryOutput) String() string {
10601	return awsutil.Prettify(s)
10602}
10603
10604// GoString returns the string representation
10605func (s ListRecordHistoryOutput) GoString() string {
10606	return s.String()
10607}
10608
10609// SetNextPageToken sets the NextPageToken field's value.
10610func (s *ListRecordHistoryOutput) SetNextPageToken(v string) *ListRecordHistoryOutput {
10611	s.NextPageToken = &v
10612	return s
10613}
10614
10615// SetRecordDetails sets the RecordDetails field's value.
10616func (s *ListRecordHistoryOutput) SetRecordDetails(v []*RecordDetail) *ListRecordHistoryOutput {
10617	s.RecordDetails = v
10618	return s
10619}
10620
10621// The search filter to use when listing history records.
10622type ListRecordHistorySearchFilter struct {
10623	_ struct{} `type:"structure"`
10624
10625	// The filter key.
10626	//
10627	//    * product - Filter results based on the specified product identifier.
10628	//
10629	//    * provisionedproduct - Filter results based on the provisioned product
10630	//    identifier.
10631	Key *string `type:"string"`
10632
10633	// The filter value.
10634	Value *string `type:"string"`
10635}
10636
10637// String returns the string representation
10638func (s ListRecordHistorySearchFilter) String() string {
10639	return awsutil.Prettify(s)
10640}
10641
10642// GoString returns the string representation
10643func (s ListRecordHistorySearchFilter) GoString() string {
10644	return s.String()
10645}
10646
10647// SetKey sets the Key field's value.
10648func (s *ListRecordHistorySearchFilter) SetKey(v string) *ListRecordHistorySearchFilter {
10649	s.Key = &v
10650	return s
10651}
10652
10653// SetValue sets the Value field's value.
10654func (s *ListRecordHistorySearchFilter) SetValue(v string) *ListRecordHistorySearchFilter {
10655	s.Value = &v
10656	return s
10657}
10658
10659type ListResourcesForTagOptionInput struct {
10660	_ struct{} `type:"structure"`
10661
10662	// The maximum number of items to return with this call.
10663	PageSize *int64 `type:"integer"`
10664
10665	// The page token for the next set of results. To retrieve the first set of
10666	// results, use null.
10667	PageToken *string `type:"string"`
10668
10669	// The resource type.
10670	//
10671	//    * Portfolio
10672	//
10673	//    * Product
10674	ResourceType *string `type:"string"`
10675
10676	// The TagOption identifier.
10677	//
10678	// TagOptionId is a required field
10679	TagOptionId *string `min:"1" type:"string" required:"true"`
10680}
10681
10682// String returns the string representation
10683func (s ListResourcesForTagOptionInput) String() string {
10684	return awsutil.Prettify(s)
10685}
10686
10687// GoString returns the string representation
10688func (s ListResourcesForTagOptionInput) GoString() string {
10689	return s.String()
10690}
10691
10692// Validate inspects the fields of the type to determine if they are valid.
10693func (s *ListResourcesForTagOptionInput) Validate() error {
10694	invalidParams := request.ErrInvalidParams{Context: "ListResourcesForTagOptionInput"}
10695	if s.TagOptionId == nil {
10696		invalidParams.Add(request.NewErrParamRequired("TagOptionId"))
10697	}
10698	if s.TagOptionId != nil && len(*s.TagOptionId) < 1 {
10699		invalidParams.Add(request.NewErrParamMinLen("TagOptionId", 1))
10700	}
10701
10702	if invalidParams.Len() > 0 {
10703		return invalidParams
10704	}
10705	return nil
10706}
10707
10708// SetPageSize sets the PageSize field's value.
10709func (s *ListResourcesForTagOptionInput) SetPageSize(v int64) *ListResourcesForTagOptionInput {
10710	s.PageSize = &v
10711	return s
10712}
10713
10714// SetPageToken sets the PageToken field's value.
10715func (s *ListResourcesForTagOptionInput) SetPageToken(v string) *ListResourcesForTagOptionInput {
10716	s.PageToken = &v
10717	return s
10718}
10719
10720// SetResourceType sets the ResourceType field's value.
10721func (s *ListResourcesForTagOptionInput) SetResourceType(v string) *ListResourcesForTagOptionInput {
10722	s.ResourceType = &v
10723	return s
10724}
10725
10726// SetTagOptionId sets the TagOptionId field's value.
10727func (s *ListResourcesForTagOptionInput) SetTagOptionId(v string) *ListResourcesForTagOptionInput {
10728	s.TagOptionId = &v
10729	return s
10730}
10731
10732type ListResourcesForTagOptionOutput struct {
10733	_ struct{} `type:"structure"`
10734
10735	// The page token for the next set of results. To retrieve the first set of
10736	// results, use null.
10737	PageToken *string `type:"string"`
10738
10739	// Information about the resources.
10740	ResourceDetails []*ResourceDetail `type:"list"`
10741}
10742
10743// String returns the string representation
10744func (s ListResourcesForTagOptionOutput) String() string {
10745	return awsutil.Prettify(s)
10746}
10747
10748// GoString returns the string representation
10749func (s ListResourcesForTagOptionOutput) GoString() string {
10750	return s.String()
10751}
10752
10753// SetPageToken sets the PageToken field's value.
10754func (s *ListResourcesForTagOptionOutput) SetPageToken(v string) *ListResourcesForTagOptionOutput {
10755	s.PageToken = &v
10756	return s
10757}
10758
10759// SetResourceDetails sets the ResourceDetails field's value.
10760func (s *ListResourcesForTagOptionOutput) SetResourceDetails(v []*ResourceDetail) *ListResourcesForTagOptionOutput {
10761	s.ResourceDetails = v
10762	return s
10763}
10764
10765// Filters to use when listing TagOptions.
10766type ListTagOptionsFilters struct {
10767	_ struct{} `type:"structure"`
10768
10769	// The active state.
10770	Active *bool `type:"boolean"`
10771
10772	// The TagOption key.
10773	Key *string `min:"1" type:"string"`
10774
10775	// The TagOption value.
10776	Value *string `min:"1" type:"string"`
10777}
10778
10779// String returns the string representation
10780func (s ListTagOptionsFilters) String() string {
10781	return awsutil.Prettify(s)
10782}
10783
10784// GoString returns the string representation
10785func (s ListTagOptionsFilters) GoString() string {
10786	return s.String()
10787}
10788
10789// Validate inspects the fields of the type to determine if they are valid.
10790func (s *ListTagOptionsFilters) Validate() error {
10791	invalidParams := request.ErrInvalidParams{Context: "ListTagOptionsFilters"}
10792	if s.Key != nil && len(*s.Key) < 1 {
10793		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
10794	}
10795	if s.Value != nil && len(*s.Value) < 1 {
10796		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
10797	}
10798
10799	if invalidParams.Len() > 0 {
10800		return invalidParams
10801	}
10802	return nil
10803}
10804
10805// SetActive sets the Active field's value.
10806func (s *ListTagOptionsFilters) SetActive(v bool) *ListTagOptionsFilters {
10807	s.Active = &v
10808	return s
10809}
10810
10811// SetKey sets the Key field's value.
10812func (s *ListTagOptionsFilters) SetKey(v string) *ListTagOptionsFilters {
10813	s.Key = &v
10814	return s
10815}
10816
10817// SetValue sets the Value field's value.
10818func (s *ListTagOptionsFilters) SetValue(v string) *ListTagOptionsFilters {
10819	s.Value = &v
10820	return s
10821}
10822
10823type ListTagOptionsInput struct {
10824	_ struct{} `type:"structure"`
10825
10826	// The search filters. If no search filters are specified, the output includes
10827	// all TagOptions.
10828	Filters *ListTagOptionsFilters `type:"structure"`
10829
10830	// The maximum number of items to return with this call.
10831	PageSize *int64 `type:"integer"`
10832
10833	// The page token for the next set of results. To retrieve the first set of
10834	// results, use null.
10835	PageToken *string `type:"string"`
10836}
10837
10838// String returns the string representation
10839func (s ListTagOptionsInput) String() string {
10840	return awsutil.Prettify(s)
10841}
10842
10843// GoString returns the string representation
10844func (s ListTagOptionsInput) GoString() string {
10845	return s.String()
10846}
10847
10848// Validate inspects the fields of the type to determine if they are valid.
10849func (s *ListTagOptionsInput) Validate() error {
10850	invalidParams := request.ErrInvalidParams{Context: "ListTagOptionsInput"}
10851	if s.Filters != nil {
10852		if err := s.Filters.Validate(); err != nil {
10853			invalidParams.AddNested("Filters", err.(request.ErrInvalidParams))
10854		}
10855	}
10856
10857	if invalidParams.Len() > 0 {
10858		return invalidParams
10859	}
10860	return nil
10861}
10862
10863// SetFilters sets the Filters field's value.
10864func (s *ListTagOptionsInput) SetFilters(v *ListTagOptionsFilters) *ListTagOptionsInput {
10865	s.Filters = v
10866	return s
10867}
10868
10869// SetPageSize sets the PageSize field's value.
10870func (s *ListTagOptionsInput) SetPageSize(v int64) *ListTagOptionsInput {
10871	s.PageSize = &v
10872	return s
10873}
10874
10875// SetPageToken sets the PageToken field's value.
10876func (s *ListTagOptionsInput) SetPageToken(v string) *ListTagOptionsInput {
10877	s.PageToken = &v
10878	return s
10879}
10880
10881type ListTagOptionsOutput struct {
10882	_ struct{} `type:"structure"`
10883
10884	// The page token for the next set of results. To retrieve the first set of
10885	// results, use null.
10886	PageToken *string `type:"string"`
10887
10888	// Information about the TagOptions.
10889	TagOptionDetails []*TagOptionDetail `type:"list"`
10890}
10891
10892// String returns the string representation
10893func (s ListTagOptionsOutput) String() string {
10894	return awsutil.Prettify(s)
10895}
10896
10897// GoString returns the string representation
10898func (s ListTagOptionsOutput) GoString() string {
10899	return s.String()
10900}
10901
10902// SetPageToken sets the PageToken field's value.
10903func (s *ListTagOptionsOutput) SetPageToken(v string) *ListTagOptionsOutput {
10904	s.PageToken = &v
10905	return s
10906}
10907
10908// SetTagOptionDetails sets the TagOptionDetails field's value.
10909func (s *ListTagOptionsOutput) SetTagOptionDetails(v []*TagOptionDetail) *ListTagOptionsOutput {
10910	s.TagOptionDetails = v
10911	return s
10912}
10913
10914// The constraints that the administrator has put on the parameter.
10915type ParameterConstraints struct {
10916	_ struct{} `type:"structure"`
10917
10918	// The values that the administrator has allowed for the parameter.
10919	AllowedValues []*string `type:"list"`
10920}
10921
10922// String returns the string representation
10923func (s ParameterConstraints) String() string {
10924	return awsutil.Prettify(s)
10925}
10926
10927// GoString returns the string representation
10928func (s ParameterConstraints) GoString() string {
10929	return s.String()
10930}
10931
10932// SetAllowedValues sets the AllowedValues field's value.
10933func (s *ParameterConstraints) SetAllowedValues(v []*string) *ParameterConstraints {
10934	s.AllowedValues = v
10935	return s
10936}
10937
10938// Information about a portfolio.
10939type PortfolioDetail struct {
10940	_ struct{} `type:"structure"`
10941
10942	// The ARN assigned to the portfolio.
10943	ARN *string `min:"1" type:"string"`
10944
10945	// The UTC time stamp of the creation time.
10946	CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"`
10947
10948	// The description of the portfolio.
10949	Description *string `type:"string"`
10950
10951	// The name to use for display purposes.
10952	DisplayName *string `min:"1" type:"string"`
10953
10954	// The portfolio identifier.
10955	Id *string `min:"1" type:"string"`
10956
10957	// The name of the portfolio provider.
10958	ProviderName *string `min:"1" type:"string"`
10959}
10960
10961// String returns the string representation
10962func (s PortfolioDetail) String() string {
10963	return awsutil.Prettify(s)
10964}
10965
10966// GoString returns the string representation
10967func (s PortfolioDetail) GoString() string {
10968	return s.String()
10969}
10970
10971// SetARN sets the ARN field's value.
10972func (s *PortfolioDetail) SetARN(v string) *PortfolioDetail {
10973	s.ARN = &v
10974	return s
10975}
10976
10977// SetCreatedTime sets the CreatedTime field's value.
10978func (s *PortfolioDetail) SetCreatedTime(v time.Time) *PortfolioDetail {
10979	s.CreatedTime = &v
10980	return s
10981}
10982
10983// SetDescription sets the Description field's value.
10984func (s *PortfolioDetail) SetDescription(v string) *PortfolioDetail {
10985	s.Description = &v
10986	return s
10987}
10988
10989// SetDisplayName sets the DisplayName field's value.
10990func (s *PortfolioDetail) SetDisplayName(v string) *PortfolioDetail {
10991	s.DisplayName = &v
10992	return s
10993}
10994
10995// SetId sets the Id field's value.
10996func (s *PortfolioDetail) SetId(v string) *PortfolioDetail {
10997	s.Id = &v
10998	return s
10999}
11000
11001// SetProviderName sets the ProviderName field's value.
11002func (s *PortfolioDetail) SetProviderName(v string) *PortfolioDetail {
11003	s.ProviderName = &v
11004	return s
11005}
11006
11007// Information about a principal.
11008type Principal struct {
11009	_ struct{} `type:"structure"`
11010
11011	// The ARN of the principal (IAM user, role, or group).
11012	PrincipalARN *string `min:"1" type:"string"`
11013
11014	// The principal type. The supported value is IAM.
11015	PrincipalType *string `type:"string" enum:"PrincipalType"`
11016}
11017
11018// String returns the string representation
11019func (s Principal) String() string {
11020	return awsutil.Prettify(s)
11021}
11022
11023// GoString returns the string representation
11024func (s Principal) GoString() string {
11025	return s.String()
11026}
11027
11028// SetPrincipalARN sets the PrincipalARN field's value.
11029func (s *Principal) SetPrincipalARN(v string) *Principal {
11030	s.PrincipalARN = &v
11031	return s
11032}
11033
11034// SetPrincipalType sets the PrincipalType field's value.
11035func (s *Principal) SetPrincipalType(v string) *Principal {
11036	s.PrincipalType = &v
11037	return s
11038}
11039
11040// A single product view aggregation value/count pair, containing metadata about
11041// each product to which the calling user has access.
11042type ProductViewAggregationValue struct {
11043	_ struct{} `type:"structure"`
11044
11045	// An approximate count of the products that match the value.
11046	ApproximateCount *int64 `type:"integer"`
11047
11048	// The value of the product view aggregation.
11049	Value *string `type:"string"`
11050}
11051
11052// String returns the string representation
11053func (s ProductViewAggregationValue) String() string {
11054	return awsutil.Prettify(s)
11055}
11056
11057// GoString returns the string representation
11058func (s ProductViewAggregationValue) GoString() string {
11059	return s.String()
11060}
11061
11062// SetApproximateCount sets the ApproximateCount field's value.
11063func (s *ProductViewAggregationValue) SetApproximateCount(v int64) *ProductViewAggregationValue {
11064	s.ApproximateCount = &v
11065	return s
11066}
11067
11068// SetValue sets the Value field's value.
11069func (s *ProductViewAggregationValue) SetValue(v string) *ProductViewAggregationValue {
11070	s.Value = &v
11071	return s
11072}
11073
11074// Information about a product view.
11075type ProductViewDetail struct {
11076	_ struct{} `type:"structure"`
11077
11078	// The UTC time stamp of the creation time.
11079	CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"`
11080
11081	// The ARN of the product.
11082	ProductARN *string `min:"1" type:"string"`
11083
11084	// Summary information about the product view.
11085	ProductViewSummary *ProductViewSummary `type:"structure"`
11086
11087	// The status of the product.
11088	//
11089	//    * AVAILABLE - The product is ready for use.
11090	//
11091	//    * CREATING - Product creation has started; the product is not ready for
11092	//    use.
11093	//
11094	//    * FAILED - An action failed.
11095	Status *string `type:"string" enum:"Status"`
11096}
11097
11098// String returns the string representation
11099func (s ProductViewDetail) String() string {
11100	return awsutil.Prettify(s)
11101}
11102
11103// GoString returns the string representation
11104func (s ProductViewDetail) GoString() string {
11105	return s.String()
11106}
11107
11108// SetCreatedTime sets the CreatedTime field's value.
11109func (s *ProductViewDetail) SetCreatedTime(v time.Time) *ProductViewDetail {
11110	s.CreatedTime = &v
11111	return s
11112}
11113
11114// SetProductARN sets the ProductARN field's value.
11115func (s *ProductViewDetail) SetProductARN(v string) *ProductViewDetail {
11116	s.ProductARN = &v
11117	return s
11118}
11119
11120// SetProductViewSummary sets the ProductViewSummary field's value.
11121func (s *ProductViewDetail) SetProductViewSummary(v *ProductViewSummary) *ProductViewDetail {
11122	s.ProductViewSummary = v
11123	return s
11124}
11125
11126// SetStatus sets the Status field's value.
11127func (s *ProductViewDetail) SetStatus(v string) *ProductViewDetail {
11128	s.Status = &v
11129	return s
11130}
11131
11132// Summary information about a product view.
11133type ProductViewSummary struct {
11134	_ struct{} `type:"structure"`
11135
11136	// The distributor of the product. Contact the product administrator for the
11137	// significance of this value.
11138	Distributor *string `type:"string"`
11139
11140	// Indicates whether the product has a default path. If the product does not
11141	// have a default path, call ListLaunchPaths to disambiguate between paths.
11142	// Otherwise, ListLaunchPaths is not required, and the output of ProductViewSummary
11143	// can be used directly with DescribeProvisioningParameters.
11144	HasDefaultPath *bool `type:"boolean"`
11145
11146	// The product view identifier.
11147	Id *string `min:"1" type:"string"`
11148
11149	// The name of the product.
11150	Name *string `type:"string"`
11151
11152	// The owner of the product. Contact the product administrator for the significance
11153	// of this value.
11154	Owner *string `type:"string"`
11155
11156	// The product identifier.
11157	ProductId *string `min:"1" type:"string"`
11158
11159	// Short description of the product.
11160	ShortDescription *string `type:"string"`
11161
11162	// The description of the support for this Product.
11163	SupportDescription *string `type:"string"`
11164
11165	// The email contact information to obtain support for this Product.
11166	SupportEmail *string `type:"string"`
11167
11168	// The URL information to obtain support for this Product.
11169	SupportUrl *string `type:"string"`
11170
11171	// The product type. Contact the product administrator for the significance
11172	// of this value. If this value is MARKETPLACE, the product was created by AWS
11173	// Marketplace.
11174	Type *string `type:"string" enum:"ProductType"`
11175}
11176
11177// String returns the string representation
11178func (s ProductViewSummary) String() string {
11179	return awsutil.Prettify(s)
11180}
11181
11182// GoString returns the string representation
11183func (s ProductViewSummary) GoString() string {
11184	return s.String()
11185}
11186
11187// SetDistributor sets the Distributor field's value.
11188func (s *ProductViewSummary) SetDistributor(v string) *ProductViewSummary {
11189	s.Distributor = &v
11190	return s
11191}
11192
11193// SetHasDefaultPath sets the HasDefaultPath field's value.
11194func (s *ProductViewSummary) SetHasDefaultPath(v bool) *ProductViewSummary {
11195	s.HasDefaultPath = &v
11196	return s
11197}
11198
11199// SetId sets the Id field's value.
11200func (s *ProductViewSummary) SetId(v string) *ProductViewSummary {
11201	s.Id = &v
11202	return s
11203}
11204
11205// SetName sets the Name field's value.
11206func (s *ProductViewSummary) SetName(v string) *ProductViewSummary {
11207	s.Name = &v
11208	return s
11209}
11210
11211// SetOwner sets the Owner field's value.
11212func (s *ProductViewSummary) SetOwner(v string) *ProductViewSummary {
11213	s.Owner = &v
11214	return s
11215}
11216
11217// SetProductId sets the ProductId field's value.
11218func (s *ProductViewSummary) SetProductId(v string) *ProductViewSummary {
11219	s.ProductId = &v
11220	return s
11221}
11222
11223// SetShortDescription sets the ShortDescription field's value.
11224func (s *ProductViewSummary) SetShortDescription(v string) *ProductViewSummary {
11225	s.ShortDescription = &v
11226	return s
11227}
11228
11229// SetSupportDescription sets the SupportDescription field's value.
11230func (s *ProductViewSummary) SetSupportDescription(v string) *ProductViewSummary {
11231	s.SupportDescription = &v
11232	return s
11233}
11234
11235// SetSupportEmail sets the SupportEmail field's value.
11236func (s *ProductViewSummary) SetSupportEmail(v string) *ProductViewSummary {
11237	s.SupportEmail = &v
11238	return s
11239}
11240
11241// SetSupportUrl sets the SupportUrl field's value.
11242func (s *ProductViewSummary) SetSupportUrl(v string) *ProductViewSummary {
11243	s.SupportUrl = &v
11244	return s
11245}
11246
11247// SetType sets the Type field's value.
11248func (s *ProductViewSummary) SetType(v string) *ProductViewSummary {
11249	s.Type = &v
11250	return s
11251}
11252
11253type ProvisionProductInput struct {
11254	_ struct{} `type:"structure"`
11255
11256	// The language code.
11257	//
11258	//    * en - English (default)
11259	//
11260	//    * jp - Japanese
11261	//
11262	//    * zh - Chinese
11263	AcceptLanguage *string `type:"string"`
11264
11265	// Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related
11266	// events.
11267	NotificationArns []*string `type:"list"`
11268
11269	// The path identifier of the product. This value is optional if the product
11270	// has a default path, and required if the product has more than one path. To
11271	// list the paths for a product, use ListLaunchPaths.
11272	PathId *string `min:"1" type:"string"`
11273
11274	// The product identifier.
11275	//
11276	// ProductId is a required field
11277	ProductId *string `min:"1" type:"string" required:"true"`
11278
11279	// An idempotency token that uniquely identifies the provisioning request.
11280	//
11281	// ProvisionToken is a required field
11282	ProvisionToken *string `min:"1" type:"string" required:"true" idempotencyToken:"true"`
11283
11284	// A user-friendly name for the provisioned product. This value must be unique
11285	// for the AWS account and cannot be updated after the product is provisioned.
11286	//
11287	// ProvisionedProductName is a required field
11288	ProvisionedProductName *string `min:"1" type:"string" required:"true"`
11289
11290	// The identifier of the provisioning artifact.
11291	//
11292	// ProvisioningArtifactId is a required field
11293	ProvisioningArtifactId *string `min:"1" type:"string" required:"true"`
11294
11295	// Parameters specified by the administrator that are required for provisioning
11296	// the product.
11297	ProvisioningParameters []*ProvisioningParameter `type:"list"`
11298
11299	// One or more tags.
11300	Tags []*Tag `type:"list"`
11301}
11302
11303// String returns the string representation
11304func (s ProvisionProductInput) String() string {
11305	return awsutil.Prettify(s)
11306}
11307
11308// GoString returns the string representation
11309func (s ProvisionProductInput) GoString() string {
11310	return s.String()
11311}
11312
11313// Validate inspects the fields of the type to determine if they are valid.
11314func (s *ProvisionProductInput) Validate() error {
11315	invalidParams := request.ErrInvalidParams{Context: "ProvisionProductInput"}
11316	if s.PathId != nil && len(*s.PathId) < 1 {
11317		invalidParams.Add(request.NewErrParamMinLen("PathId", 1))
11318	}
11319	if s.ProductId == nil {
11320		invalidParams.Add(request.NewErrParamRequired("ProductId"))
11321	}
11322	if s.ProductId != nil && len(*s.ProductId) < 1 {
11323		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
11324	}
11325	if s.ProvisionToken == nil {
11326		invalidParams.Add(request.NewErrParamRequired("ProvisionToken"))
11327	}
11328	if s.ProvisionToken != nil && len(*s.ProvisionToken) < 1 {
11329		invalidParams.Add(request.NewErrParamMinLen("ProvisionToken", 1))
11330	}
11331	if s.ProvisionedProductName == nil {
11332		invalidParams.Add(request.NewErrParamRequired("ProvisionedProductName"))
11333	}
11334	if s.ProvisionedProductName != nil && len(*s.ProvisionedProductName) < 1 {
11335		invalidParams.Add(request.NewErrParamMinLen("ProvisionedProductName", 1))
11336	}
11337	if s.ProvisioningArtifactId == nil {
11338		invalidParams.Add(request.NewErrParamRequired("ProvisioningArtifactId"))
11339	}
11340	if s.ProvisioningArtifactId != nil && len(*s.ProvisioningArtifactId) < 1 {
11341		invalidParams.Add(request.NewErrParamMinLen("ProvisioningArtifactId", 1))
11342	}
11343	if s.ProvisioningParameters != nil {
11344		for i, v := range s.ProvisioningParameters {
11345			if v == nil {
11346				continue
11347			}
11348			if err := v.Validate(); err != nil {
11349				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ProvisioningParameters", i), err.(request.ErrInvalidParams))
11350			}
11351		}
11352	}
11353	if s.Tags != nil {
11354		for i, v := range s.Tags {
11355			if v == nil {
11356				continue
11357			}
11358			if err := v.Validate(); err != nil {
11359				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11360			}
11361		}
11362	}
11363
11364	if invalidParams.Len() > 0 {
11365		return invalidParams
11366	}
11367	return nil
11368}
11369
11370// SetAcceptLanguage sets the AcceptLanguage field's value.
11371func (s *ProvisionProductInput) SetAcceptLanguage(v string) *ProvisionProductInput {
11372	s.AcceptLanguage = &v
11373	return s
11374}
11375
11376// SetNotificationArns sets the NotificationArns field's value.
11377func (s *ProvisionProductInput) SetNotificationArns(v []*string) *ProvisionProductInput {
11378	s.NotificationArns = v
11379	return s
11380}
11381
11382// SetPathId sets the PathId field's value.
11383func (s *ProvisionProductInput) SetPathId(v string) *ProvisionProductInput {
11384	s.PathId = &v
11385	return s
11386}
11387
11388// SetProductId sets the ProductId field's value.
11389func (s *ProvisionProductInput) SetProductId(v string) *ProvisionProductInput {
11390	s.ProductId = &v
11391	return s
11392}
11393
11394// SetProvisionToken sets the ProvisionToken field's value.
11395func (s *ProvisionProductInput) SetProvisionToken(v string) *ProvisionProductInput {
11396	s.ProvisionToken = &v
11397	return s
11398}
11399
11400// SetProvisionedProductName sets the ProvisionedProductName field's value.
11401func (s *ProvisionProductInput) SetProvisionedProductName(v string) *ProvisionProductInput {
11402	s.ProvisionedProductName = &v
11403	return s
11404}
11405
11406// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value.
11407func (s *ProvisionProductInput) SetProvisioningArtifactId(v string) *ProvisionProductInput {
11408	s.ProvisioningArtifactId = &v
11409	return s
11410}
11411
11412// SetProvisioningParameters sets the ProvisioningParameters field's value.
11413func (s *ProvisionProductInput) SetProvisioningParameters(v []*ProvisioningParameter) *ProvisionProductInput {
11414	s.ProvisioningParameters = v
11415	return s
11416}
11417
11418// SetTags sets the Tags field's value.
11419func (s *ProvisionProductInput) SetTags(v []*Tag) *ProvisionProductInput {
11420	s.Tags = v
11421	return s
11422}
11423
11424type ProvisionProductOutput struct {
11425	_ struct{} `type:"structure"`
11426
11427	// Information about the result of provisioning the product.
11428	RecordDetail *RecordDetail `type:"structure"`
11429}
11430
11431// String returns the string representation
11432func (s ProvisionProductOutput) String() string {
11433	return awsutil.Prettify(s)
11434}
11435
11436// GoString returns the string representation
11437func (s ProvisionProductOutput) GoString() string {
11438	return s.String()
11439}
11440
11441// SetRecordDetail sets the RecordDetail field's value.
11442func (s *ProvisionProductOutput) SetRecordDetail(v *RecordDetail) *ProvisionProductOutput {
11443	s.RecordDetail = v
11444	return s
11445}
11446
11447// Information about a provisioned product.
11448type ProvisionedProductAttribute struct {
11449	_ struct{} `type:"structure"`
11450
11451	// The ARN of the provisioned product.
11452	Arn *string `min:"1" type:"string"`
11453
11454	// The UTC time stamp of the creation time.
11455	CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"`
11456
11457	// The identifier of the provisioned product.
11458	Id *string `min:"1" type:"string"`
11459
11460	// A unique identifier that you provide to ensure idempotency. If multiple requests
11461	// differ only by the idempotency token, the same response is returned for each
11462	// repeated request.
11463	IdempotencyToken *string `min:"1" type:"string"`
11464
11465	// The record identifier of the last request performed on this provisioned product.
11466	LastRecordId *string `min:"1" type:"string"`
11467
11468	// The user-friendly name of the provisioned product.
11469	Name *string `min:"1" type:"string"`
11470
11471	// The assigned identifier for the resource, such as an EC2 instance ID or an
11472	// S3 bucket name.
11473	PhysicalId *string `type:"string"`
11474
11475	// The product identifier.
11476	ProductId *string `min:"1" type:"string"`
11477
11478	// The identifier of the provisioning artifact.
11479	ProvisioningArtifactId *string `min:"1" type:"string"`
11480
11481	// The current status of the provisioned product.
11482	//
11483	//    * AVAILABLE - Stable state, ready to perform any operation. The most recent
11484	//    operation succeeded and completed.
11485	//
11486	//    * UNDER_CHANGE - Transitive state, operations performed might not have
11487	//    valid results. Wait for an AVAILABLE status before performing operations.
11488	//
11489	//    * TAINTED - Stable state, ready to perform any operation. The stack has
11490	//    completed the requested operation but is not exactly what was requested.
11491	//    For example, a request to update to a new version failed and the stack
11492	//    rolled back to the current version.
11493	//
11494	//    * ERROR - An unexpected error occurred, the provisioned product exists
11495	//    but the stack is not running. For example, CloudFormation received a parameter
11496	//    value that was not valid and could not launch the stack.
11497	Status *string `type:"string" enum:"ProvisionedProductStatus"`
11498
11499	// The current status message of the provisioned product.
11500	StatusMessage *string `type:"string"`
11501
11502	// One or more tags.
11503	Tags []*Tag `type:"list"`
11504
11505	// The type of provisioned product. The supported value is CFN_STACK.
11506	Type *string `type:"string"`
11507
11508	// The Amazon Resource Name (ARN) of the IAM user.
11509	UserArn *string `type:"string"`
11510
11511	// The ARN of the IAM user in the session. This ARN might contain a session
11512	// ID.
11513	UserArnSession *string `type:"string"`
11514}
11515
11516// String returns the string representation
11517func (s ProvisionedProductAttribute) String() string {
11518	return awsutil.Prettify(s)
11519}
11520
11521// GoString returns the string representation
11522func (s ProvisionedProductAttribute) GoString() string {
11523	return s.String()
11524}
11525
11526// SetArn sets the Arn field's value.
11527func (s *ProvisionedProductAttribute) SetArn(v string) *ProvisionedProductAttribute {
11528	s.Arn = &v
11529	return s
11530}
11531
11532// SetCreatedTime sets the CreatedTime field's value.
11533func (s *ProvisionedProductAttribute) SetCreatedTime(v time.Time) *ProvisionedProductAttribute {
11534	s.CreatedTime = &v
11535	return s
11536}
11537
11538// SetId sets the Id field's value.
11539func (s *ProvisionedProductAttribute) SetId(v string) *ProvisionedProductAttribute {
11540	s.Id = &v
11541	return s
11542}
11543
11544// SetIdempotencyToken sets the IdempotencyToken field's value.
11545func (s *ProvisionedProductAttribute) SetIdempotencyToken(v string) *ProvisionedProductAttribute {
11546	s.IdempotencyToken = &v
11547	return s
11548}
11549
11550// SetLastRecordId sets the LastRecordId field's value.
11551func (s *ProvisionedProductAttribute) SetLastRecordId(v string) *ProvisionedProductAttribute {
11552	s.LastRecordId = &v
11553	return s
11554}
11555
11556// SetName sets the Name field's value.
11557func (s *ProvisionedProductAttribute) SetName(v string) *ProvisionedProductAttribute {
11558	s.Name = &v
11559	return s
11560}
11561
11562// SetPhysicalId sets the PhysicalId field's value.
11563func (s *ProvisionedProductAttribute) SetPhysicalId(v string) *ProvisionedProductAttribute {
11564	s.PhysicalId = &v
11565	return s
11566}
11567
11568// SetProductId sets the ProductId field's value.
11569func (s *ProvisionedProductAttribute) SetProductId(v string) *ProvisionedProductAttribute {
11570	s.ProductId = &v
11571	return s
11572}
11573
11574// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value.
11575func (s *ProvisionedProductAttribute) SetProvisioningArtifactId(v string) *ProvisionedProductAttribute {
11576	s.ProvisioningArtifactId = &v
11577	return s
11578}
11579
11580// SetStatus sets the Status field's value.
11581func (s *ProvisionedProductAttribute) SetStatus(v string) *ProvisionedProductAttribute {
11582	s.Status = &v
11583	return s
11584}
11585
11586// SetStatusMessage sets the StatusMessage field's value.
11587func (s *ProvisionedProductAttribute) SetStatusMessage(v string) *ProvisionedProductAttribute {
11588	s.StatusMessage = &v
11589	return s
11590}
11591
11592// SetTags sets the Tags field's value.
11593func (s *ProvisionedProductAttribute) SetTags(v []*Tag) *ProvisionedProductAttribute {
11594	s.Tags = v
11595	return s
11596}
11597
11598// SetType sets the Type field's value.
11599func (s *ProvisionedProductAttribute) SetType(v string) *ProvisionedProductAttribute {
11600	s.Type = &v
11601	return s
11602}
11603
11604// SetUserArn sets the UserArn field's value.
11605func (s *ProvisionedProductAttribute) SetUserArn(v string) *ProvisionedProductAttribute {
11606	s.UserArn = &v
11607	return s
11608}
11609
11610// SetUserArnSession sets the UserArnSession field's value.
11611func (s *ProvisionedProductAttribute) SetUserArnSession(v string) *ProvisionedProductAttribute {
11612	s.UserArnSession = &v
11613	return s
11614}
11615
11616// Information about a provisioned product.
11617type ProvisionedProductDetail struct {
11618	_ struct{} `type:"structure"`
11619
11620	// The ARN of the provisioned product.
11621	Arn *string `min:"1" type:"string"`
11622
11623	// The UTC time stamp of the creation time.
11624	CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"`
11625
11626	// The identifier of the provisioned product.
11627	Id *string `type:"string"`
11628
11629	// A unique identifier that you provide to ensure idempotency. If multiple requests
11630	// differ only by the idempotency token, the same response is returned for each
11631	// repeated request.
11632	IdempotencyToken *string `min:"1" type:"string"`
11633
11634	// The record identifier of the last request performed on this provisioned product.
11635	LastRecordId *string `type:"string"`
11636
11637	// The user-friendly name of the provisioned product.
11638	Name *string `min:"1" type:"string"`
11639
11640	// The current status of the provisioned product.
11641	//
11642	//    * AVAILABLE - Stable state, ready to perform any operation. The most recent
11643	//    operation succeeded and completed.
11644	//
11645	//    * UNDER_CHANGE - Transitive state, operations performed might not have
11646	//    valid results. Wait for an AVAILABLE status before performing operations.
11647	//
11648	//    * TAINTED - Stable state, ready to perform any operation. The stack has
11649	//    completed the requested operation but is not exactly what was requested.
11650	//    For example, a request to update to a new version failed and the stack
11651	//    rolled back to the current version.
11652	//
11653	//    * ERROR - An unexpected error occurred, the provisioned product exists
11654	//    but the stack is not running. For example, CloudFormation received a parameter
11655	//    value that was not valid and could not launch the stack.
11656	Status *string `type:"string" enum:"ProvisionedProductStatus"`
11657
11658	// The current status message of the provisioned product.
11659	StatusMessage *string `type:"string"`
11660
11661	// The type of provisioned product. The supported value is CFN_STACK.
11662	Type *string `type:"string"`
11663}
11664
11665// String returns the string representation
11666func (s ProvisionedProductDetail) String() string {
11667	return awsutil.Prettify(s)
11668}
11669
11670// GoString returns the string representation
11671func (s ProvisionedProductDetail) GoString() string {
11672	return s.String()
11673}
11674
11675// SetArn sets the Arn field's value.
11676func (s *ProvisionedProductDetail) SetArn(v string) *ProvisionedProductDetail {
11677	s.Arn = &v
11678	return s
11679}
11680
11681// SetCreatedTime sets the CreatedTime field's value.
11682func (s *ProvisionedProductDetail) SetCreatedTime(v time.Time) *ProvisionedProductDetail {
11683	s.CreatedTime = &v
11684	return s
11685}
11686
11687// SetId sets the Id field's value.
11688func (s *ProvisionedProductDetail) SetId(v string) *ProvisionedProductDetail {
11689	s.Id = &v
11690	return s
11691}
11692
11693// SetIdempotencyToken sets the IdempotencyToken field's value.
11694func (s *ProvisionedProductDetail) SetIdempotencyToken(v string) *ProvisionedProductDetail {
11695	s.IdempotencyToken = &v
11696	return s
11697}
11698
11699// SetLastRecordId sets the LastRecordId field's value.
11700func (s *ProvisionedProductDetail) SetLastRecordId(v string) *ProvisionedProductDetail {
11701	s.LastRecordId = &v
11702	return s
11703}
11704
11705// SetName sets the Name field's value.
11706func (s *ProvisionedProductDetail) SetName(v string) *ProvisionedProductDetail {
11707	s.Name = &v
11708	return s
11709}
11710
11711// SetStatus sets the Status field's value.
11712func (s *ProvisionedProductDetail) SetStatus(v string) *ProvisionedProductDetail {
11713	s.Status = &v
11714	return s
11715}
11716
11717// SetStatusMessage sets the StatusMessage field's value.
11718func (s *ProvisionedProductDetail) SetStatusMessage(v string) *ProvisionedProductDetail {
11719	s.StatusMessage = &v
11720	return s
11721}
11722
11723// SetType sets the Type field's value.
11724func (s *ProvisionedProductDetail) SetType(v string) *ProvisionedProductDetail {
11725	s.Type = &v
11726	return s
11727}
11728
11729// Information about a plan.
11730type ProvisionedProductPlanDetails struct {
11731	_ struct{} `type:"structure"`
11732
11733	// The UTC time stamp of the creation time.
11734	CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"`
11735
11736	// Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related
11737	// events.
11738	NotificationArns []*string `type:"list"`
11739
11740	// The path identifier of the product. This value is optional if the product
11741	// has a default path, and required if the product has more than one path. To
11742	// list the paths for a product, use ListLaunchPaths.
11743	PathId *string `min:"1" type:"string"`
11744
11745	// The plan identifier.
11746	PlanId *string `min:"1" type:"string"`
11747
11748	// The name of the plan.
11749	PlanName *string `type:"string"`
11750
11751	// The plan type.
11752	PlanType *string `type:"string" enum:"ProvisionedProductPlanType"`
11753
11754	// The product identifier.
11755	ProductId *string `min:"1" type:"string"`
11756
11757	// The product identifier.
11758	ProvisionProductId *string `min:"1" type:"string"`
11759
11760	// The user-friendly name of the provisioned product.
11761	ProvisionProductName *string `min:"1" type:"string"`
11762
11763	// The identifier of the provisioning artifact.
11764	ProvisioningArtifactId *string `min:"1" type:"string"`
11765
11766	// Parameters specified by the administrator that are required for provisioning
11767	// the product.
11768	ProvisioningParameters []*UpdateProvisioningParameter `type:"list"`
11769
11770	// The status.
11771	Status *string `type:"string" enum:"ProvisionedProductPlanStatus"`
11772
11773	// The status message.
11774	StatusMessage *string `type:"string"`
11775
11776	// One or more tags.
11777	Tags []*Tag `type:"list"`
11778
11779	// The time when the plan was last updated.
11780	UpdatedTime *time.Time `type:"timestamp" timestampFormat:"unix"`
11781}
11782
11783// String returns the string representation
11784func (s ProvisionedProductPlanDetails) String() string {
11785	return awsutil.Prettify(s)
11786}
11787
11788// GoString returns the string representation
11789func (s ProvisionedProductPlanDetails) GoString() string {
11790	return s.String()
11791}
11792
11793// SetCreatedTime sets the CreatedTime field's value.
11794func (s *ProvisionedProductPlanDetails) SetCreatedTime(v time.Time) *ProvisionedProductPlanDetails {
11795	s.CreatedTime = &v
11796	return s
11797}
11798
11799// SetNotificationArns sets the NotificationArns field's value.
11800func (s *ProvisionedProductPlanDetails) SetNotificationArns(v []*string) *ProvisionedProductPlanDetails {
11801	s.NotificationArns = v
11802	return s
11803}
11804
11805// SetPathId sets the PathId field's value.
11806func (s *ProvisionedProductPlanDetails) SetPathId(v string) *ProvisionedProductPlanDetails {
11807	s.PathId = &v
11808	return s
11809}
11810
11811// SetPlanId sets the PlanId field's value.
11812func (s *ProvisionedProductPlanDetails) SetPlanId(v string) *ProvisionedProductPlanDetails {
11813	s.PlanId = &v
11814	return s
11815}
11816
11817// SetPlanName sets the PlanName field's value.
11818func (s *ProvisionedProductPlanDetails) SetPlanName(v string) *ProvisionedProductPlanDetails {
11819	s.PlanName = &v
11820	return s
11821}
11822
11823// SetPlanType sets the PlanType field's value.
11824func (s *ProvisionedProductPlanDetails) SetPlanType(v string) *ProvisionedProductPlanDetails {
11825	s.PlanType = &v
11826	return s
11827}
11828
11829// SetProductId sets the ProductId field's value.
11830func (s *ProvisionedProductPlanDetails) SetProductId(v string) *ProvisionedProductPlanDetails {
11831	s.ProductId = &v
11832	return s
11833}
11834
11835// SetProvisionProductId sets the ProvisionProductId field's value.
11836func (s *ProvisionedProductPlanDetails) SetProvisionProductId(v string) *ProvisionedProductPlanDetails {
11837	s.ProvisionProductId = &v
11838	return s
11839}
11840
11841// SetProvisionProductName sets the ProvisionProductName field's value.
11842func (s *ProvisionedProductPlanDetails) SetProvisionProductName(v string) *ProvisionedProductPlanDetails {
11843	s.ProvisionProductName = &v
11844	return s
11845}
11846
11847// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value.
11848func (s *ProvisionedProductPlanDetails) SetProvisioningArtifactId(v string) *ProvisionedProductPlanDetails {
11849	s.ProvisioningArtifactId = &v
11850	return s
11851}
11852
11853// SetProvisioningParameters sets the ProvisioningParameters field's value.
11854func (s *ProvisionedProductPlanDetails) SetProvisioningParameters(v []*UpdateProvisioningParameter) *ProvisionedProductPlanDetails {
11855	s.ProvisioningParameters = v
11856	return s
11857}
11858
11859// SetStatus sets the Status field's value.
11860func (s *ProvisionedProductPlanDetails) SetStatus(v string) *ProvisionedProductPlanDetails {
11861	s.Status = &v
11862	return s
11863}
11864
11865// SetStatusMessage sets the StatusMessage field's value.
11866func (s *ProvisionedProductPlanDetails) SetStatusMessage(v string) *ProvisionedProductPlanDetails {
11867	s.StatusMessage = &v
11868	return s
11869}
11870
11871// SetTags sets the Tags field's value.
11872func (s *ProvisionedProductPlanDetails) SetTags(v []*Tag) *ProvisionedProductPlanDetails {
11873	s.Tags = v
11874	return s
11875}
11876
11877// SetUpdatedTime sets the UpdatedTime field's value.
11878func (s *ProvisionedProductPlanDetails) SetUpdatedTime(v time.Time) *ProvisionedProductPlanDetails {
11879	s.UpdatedTime = &v
11880	return s
11881}
11882
11883// Summary information about a plan.
11884type ProvisionedProductPlanSummary struct {
11885	_ struct{} `type:"structure"`
11886
11887	// The plan identifier.
11888	PlanId *string `min:"1" type:"string"`
11889
11890	// The name of the plan.
11891	PlanName *string `type:"string"`
11892
11893	// The plan type.
11894	PlanType *string `type:"string" enum:"ProvisionedProductPlanType"`
11895
11896	// The product identifier.
11897	ProvisionProductId *string `min:"1" type:"string"`
11898
11899	// The user-friendly name of the provisioned product.
11900	ProvisionProductName *string `min:"1" type:"string"`
11901
11902	// The identifier of the provisioning artifact.
11903	ProvisioningArtifactId *string `min:"1" type:"string"`
11904}
11905
11906// String returns the string representation
11907func (s ProvisionedProductPlanSummary) String() string {
11908	return awsutil.Prettify(s)
11909}
11910
11911// GoString returns the string representation
11912func (s ProvisionedProductPlanSummary) GoString() string {
11913	return s.String()
11914}
11915
11916// SetPlanId sets the PlanId field's value.
11917func (s *ProvisionedProductPlanSummary) SetPlanId(v string) *ProvisionedProductPlanSummary {
11918	s.PlanId = &v
11919	return s
11920}
11921
11922// SetPlanName sets the PlanName field's value.
11923func (s *ProvisionedProductPlanSummary) SetPlanName(v string) *ProvisionedProductPlanSummary {
11924	s.PlanName = &v
11925	return s
11926}
11927
11928// SetPlanType sets the PlanType field's value.
11929func (s *ProvisionedProductPlanSummary) SetPlanType(v string) *ProvisionedProductPlanSummary {
11930	s.PlanType = &v
11931	return s
11932}
11933
11934// SetProvisionProductId sets the ProvisionProductId field's value.
11935func (s *ProvisionedProductPlanSummary) SetProvisionProductId(v string) *ProvisionedProductPlanSummary {
11936	s.ProvisionProductId = &v
11937	return s
11938}
11939
11940// SetProvisionProductName sets the ProvisionProductName field's value.
11941func (s *ProvisionedProductPlanSummary) SetProvisionProductName(v string) *ProvisionedProductPlanSummary {
11942	s.ProvisionProductName = &v
11943	return s
11944}
11945
11946// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value.
11947func (s *ProvisionedProductPlanSummary) SetProvisioningArtifactId(v string) *ProvisionedProductPlanSummary {
11948	s.ProvisioningArtifactId = &v
11949	return s
11950}
11951
11952// Information about a provisioning artifact. A provisioning artifact is also
11953// known as a product version.
11954type ProvisioningArtifact struct {
11955	_ struct{} `type:"structure"`
11956
11957	// The UTC time stamp of the creation time.
11958	CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"`
11959
11960	// The description of the provisioning artifact.
11961	Description *string `type:"string"`
11962
11963	// The identifier of the provisioning artifact.
11964	Id *string `min:"1" type:"string"`
11965
11966	// The name of the provisioning artifact.
11967	Name *string `type:"string"`
11968}
11969
11970// String returns the string representation
11971func (s ProvisioningArtifact) String() string {
11972	return awsutil.Prettify(s)
11973}
11974
11975// GoString returns the string representation
11976func (s ProvisioningArtifact) GoString() string {
11977	return s.String()
11978}
11979
11980// SetCreatedTime sets the CreatedTime field's value.
11981func (s *ProvisioningArtifact) SetCreatedTime(v time.Time) *ProvisioningArtifact {
11982	s.CreatedTime = &v
11983	return s
11984}
11985
11986// SetDescription sets the Description field's value.
11987func (s *ProvisioningArtifact) SetDescription(v string) *ProvisioningArtifact {
11988	s.Description = &v
11989	return s
11990}
11991
11992// SetId sets the Id field's value.
11993func (s *ProvisioningArtifact) SetId(v string) *ProvisioningArtifact {
11994	s.Id = &v
11995	return s
11996}
11997
11998// SetName sets the Name field's value.
11999func (s *ProvisioningArtifact) SetName(v string) *ProvisioningArtifact {
12000	s.Name = &v
12001	return s
12002}
12003
12004// Information about a provisioning artifact (also known as a version) for a
12005// product.
12006type ProvisioningArtifactDetail struct {
12007	_ struct{} `type:"structure"`
12008
12009	// Indicates whether the product version is active.
12010	Active *bool `type:"boolean"`
12011
12012	// The UTC time stamp of the creation time.
12013	CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"`
12014
12015	// The description of the provisioning artifact.
12016	Description *string `type:"string"`
12017
12018	// The identifier of the provisioning artifact.
12019	Id *string `min:"1" type:"string"`
12020
12021	// The name of the provisioning artifact.
12022	Name *string `type:"string"`
12023
12024	// The type of provisioning artifact.
12025	//
12026	//    * CLOUD_FORMATION_TEMPLATE - AWS CloudFormation template
12027	//
12028	//    * MARKETPLACE_AMI - AWS Marketplace AMI
12029	//
12030	//    * MARKETPLACE_CAR - AWS Marketplace Clusters and AWS Resources
12031	Type *string `type:"string" enum:"ProvisioningArtifactType"`
12032}
12033
12034// String returns the string representation
12035func (s ProvisioningArtifactDetail) String() string {
12036	return awsutil.Prettify(s)
12037}
12038
12039// GoString returns the string representation
12040func (s ProvisioningArtifactDetail) GoString() string {
12041	return s.String()
12042}
12043
12044// SetActive sets the Active field's value.
12045func (s *ProvisioningArtifactDetail) SetActive(v bool) *ProvisioningArtifactDetail {
12046	s.Active = &v
12047	return s
12048}
12049
12050// SetCreatedTime sets the CreatedTime field's value.
12051func (s *ProvisioningArtifactDetail) SetCreatedTime(v time.Time) *ProvisioningArtifactDetail {
12052	s.CreatedTime = &v
12053	return s
12054}
12055
12056// SetDescription sets the Description field's value.
12057func (s *ProvisioningArtifactDetail) SetDescription(v string) *ProvisioningArtifactDetail {
12058	s.Description = &v
12059	return s
12060}
12061
12062// SetId sets the Id field's value.
12063func (s *ProvisioningArtifactDetail) SetId(v string) *ProvisioningArtifactDetail {
12064	s.Id = &v
12065	return s
12066}
12067
12068// SetName sets the Name field's value.
12069func (s *ProvisioningArtifactDetail) SetName(v string) *ProvisioningArtifactDetail {
12070	s.Name = &v
12071	return s
12072}
12073
12074// SetType sets the Type field's value.
12075func (s *ProvisioningArtifactDetail) SetType(v string) *ProvisioningArtifactDetail {
12076	s.Type = &v
12077	return s
12078}
12079
12080// Information about a parameter used to provision a product.
12081type ProvisioningArtifactParameter struct {
12082	_ struct{} `type:"structure"`
12083
12084	// The default value.
12085	DefaultValue *string `type:"string"`
12086
12087	// The description of the parameter.
12088	Description *string `type:"string"`
12089
12090	// If this value is true, the value for this parameter is obfuscated from view
12091	// when the parameter is retrieved. This parameter is used to hide sensitive
12092	// information.
12093	IsNoEcho *bool `type:"boolean"`
12094
12095	// Constraints that the administrator has put on a parameter.
12096	ParameterConstraints *ParameterConstraints `type:"structure"`
12097
12098	// The parameter key.
12099	ParameterKey *string `min:"1" type:"string"`
12100
12101	// The parameter type.
12102	ParameterType *string `type:"string"`
12103}
12104
12105// String returns the string representation
12106func (s ProvisioningArtifactParameter) String() string {
12107	return awsutil.Prettify(s)
12108}
12109
12110// GoString returns the string representation
12111func (s ProvisioningArtifactParameter) GoString() string {
12112	return s.String()
12113}
12114
12115// SetDefaultValue sets the DefaultValue field's value.
12116func (s *ProvisioningArtifactParameter) SetDefaultValue(v string) *ProvisioningArtifactParameter {
12117	s.DefaultValue = &v
12118	return s
12119}
12120
12121// SetDescription sets the Description field's value.
12122func (s *ProvisioningArtifactParameter) SetDescription(v string) *ProvisioningArtifactParameter {
12123	s.Description = &v
12124	return s
12125}
12126
12127// SetIsNoEcho sets the IsNoEcho field's value.
12128func (s *ProvisioningArtifactParameter) SetIsNoEcho(v bool) *ProvisioningArtifactParameter {
12129	s.IsNoEcho = &v
12130	return s
12131}
12132
12133// SetParameterConstraints sets the ParameterConstraints field's value.
12134func (s *ProvisioningArtifactParameter) SetParameterConstraints(v *ParameterConstraints) *ProvisioningArtifactParameter {
12135	s.ParameterConstraints = v
12136	return s
12137}
12138
12139// SetParameterKey sets the ParameterKey field's value.
12140func (s *ProvisioningArtifactParameter) SetParameterKey(v string) *ProvisioningArtifactParameter {
12141	s.ParameterKey = &v
12142	return s
12143}
12144
12145// SetParameterType sets the ParameterType field's value.
12146func (s *ProvisioningArtifactParameter) SetParameterType(v string) *ProvisioningArtifactParameter {
12147	s.ParameterType = &v
12148	return s
12149}
12150
12151// Information about a provisioning artifact (also known as a version) for a
12152// product.
12153type ProvisioningArtifactProperties struct {
12154	_ struct{} `type:"structure"`
12155
12156	// The description of the provisioning artifact, including how it differs from
12157	// the previous provisioning artifact.
12158	Description *string `type:"string"`
12159
12160	// The URL of the CloudFormation template in Amazon S3. Specify the URL in JSON
12161	// format as follows:
12162	//
12163	// "LoadTemplateFromURL": "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."
12164	//
12165	// Info is a required field
12166	Info map[string]*string `min:"1" type:"map" required:"true"`
12167
12168	// The name of the provisioning artifact (for example, v1 v2beta). No spaces
12169	// are allowed.
12170	Name *string `type:"string"`
12171
12172	// The type of provisioning artifact.
12173	//
12174	//    * CLOUD_FORMATION_TEMPLATE - AWS CloudFormation template
12175	//
12176	//    * MARKETPLACE_AMI - AWS Marketplace AMI
12177	//
12178	//    * MARKETPLACE_CAR - AWS Marketplace Clusters and AWS Resources
12179	Type *string `type:"string" enum:"ProvisioningArtifactType"`
12180}
12181
12182// String returns the string representation
12183func (s ProvisioningArtifactProperties) String() string {
12184	return awsutil.Prettify(s)
12185}
12186
12187// GoString returns the string representation
12188func (s ProvisioningArtifactProperties) GoString() string {
12189	return s.String()
12190}
12191
12192// Validate inspects the fields of the type to determine if they are valid.
12193func (s *ProvisioningArtifactProperties) Validate() error {
12194	invalidParams := request.ErrInvalidParams{Context: "ProvisioningArtifactProperties"}
12195	if s.Info == nil {
12196		invalidParams.Add(request.NewErrParamRequired("Info"))
12197	}
12198	if s.Info != nil && len(s.Info) < 1 {
12199		invalidParams.Add(request.NewErrParamMinLen("Info", 1))
12200	}
12201
12202	if invalidParams.Len() > 0 {
12203		return invalidParams
12204	}
12205	return nil
12206}
12207
12208// SetDescription sets the Description field's value.
12209func (s *ProvisioningArtifactProperties) SetDescription(v string) *ProvisioningArtifactProperties {
12210	s.Description = &v
12211	return s
12212}
12213
12214// SetInfo sets the Info field's value.
12215func (s *ProvisioningArtifactProperties) SetInfo(v map[string]*string) *ProvisioningArtifactProperties {
12216	s.Info = v
12217	return s
12218}
12219
12220// SetName sets the Name field's value.
12221func (s *ProvisioningArtifactProperties) SetName(v string) *ProvisioningArtifactProperties {
12222	s.Name = &v
12223	return s
12224}
12225
12226// SetType sets the Type field's value.
12227func (s *ProvisioningArtifactProperties) SetType(v string) *ProvisioningArtifactProperties {
12228	s.Type = &v
12229	return s
12230}
12231
12232// Summary information about a provisioning artifact (also known as a version)
12233// for a product.
12234type ProvisioningArtifactSummary struct {
12235	_ struct{} `type:"structure"`
12236
12237	// The UTC time stamp of the creation time.
12238	CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"`
12239
12240	// The description of the provisioning artifact.
12241	Description *string `type:"string"`
12242
12243	// The identifier of the provisioning artifact.
12244	Id *string `min:"1" type:"string"`
12245
12246	// The name of the provisioning artifact.
12247	Name *string `type:"string"`
12248
12249	// The metadata for the provisioning artifact. This is used with AWS Marketplace
12250	// products.
12251	ProvisioningArtifactMetadata map[string]*string `min:"1" type:"map"`
12252}
12253
12254// String returns the string representation
12255func (s ProvisioningArtifactSummary) String() string {
12256	return awsutil.Prettify(s)
12257}
12258
12259// GoString returns the string representation
12260func (s ProvisioningArtifactSummary) GoString() string {
12261	return s.String()
12262}
12263
12264// SetCreatedTime sets the CreatedTime field's value.
12265func (s *ProvisioningArtifactSummary) SetCreatedTime(v time.Time) *ProvisioningArtifactSummary {
12266	s.CreatedTime = &v
12267	return s
12268}
12269
12270// SetDescription sets the Description field's value.
12271func (s *ProvisioningArtifactSummary) SetDescription(v string) *ProvisioningArtifactSummary {
12272	s.Description = &v
12273	return s
12274}
12275
12276// SetId sets the Id field's value.
12277func (s *ProvisioningArtifactSummary) SetId(v string) *ProvisioningArtifactSummary {
12278	s.Id = &v
12279	return s
12280}
12281
12282// SetName sets the Name field's value.
12283func (s *ProvisioningArtifactSummary) SetName(v string) *ProvisioningArtifactSummary {
12284	s.Name = &v
12285	return s
12286}
12287
12288// SetProvisioningArtifactMetadata sets the ProvisioningArtifactMetadata field's value.
12289func (s *ProvisioningArtifactSummary) SetProvisioningArtifactMetadata(v map[string]*string) *ProvisioningArtifactSummary {
12290	s.ProvisioningArtifactMetadata = v
12291	return s
12292}
12293
12294// Information about a parameter used to provision a product.
12295type ProvisioningParameter struct {
12296	_ struct{} `type:"structure"`
12297
12298	// The parameter key.
12299	Key *string `min:"1" type:"string"`
12300
12301	// The parameter value.
12302	Value *string `type:"string"`
12303}
12304
12305// String returns the string representation
12306func (s ProvisioningParameter) String() string {
12307	return awsutil.Prettify(s)
12308}
12309
12310// GoString returns the string representation
12311func (s ProvisioningParameter) GoString() string {
12312	return s.String()
12313}
12314
12315// Validate inspects the fields of the type to determine if they are valid.
12316func (s *ProvisioningParameter) Validate() error {
12317	invalidParams := request.ErrInvalidParams{Context: "ProvisioningParameter"}
12318	if s.Key != nil && len(*s.Key) < 1 {
12319		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
12320	}
12321
12322	if invalidParams.Len() > 0 {
12323		return invalidParams
12324	}
12325	return nil
12326}
12327
12328// SetKey sets the Key field's value.
12329func (s *ProvisioningParameter) SetKey(v string) *ProvisioningParameter {
12330	s.Key = &v
12331	return s
12332}
12333
12334// SetValue sets the Value field's value.
12335func (s *ProvisioningParameter) SetValue(v string) *ProvisioningParameter {
12336	s.Value = &v
12337	return s
12338}
12339
12340// Information about a request operation.
12341type RecordDetail struct {
12342	_ struct{} `type:"structure"`
12343
12344	// The UTC time stamp of the creation time.
12345	CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"`
12346
12347	// The path identifier.
12348	PathId *string `min:"1" type:"string"`
12349
12350	// The product identifier.
12351	ProductId *string `min:"1" type:"string"`
12352
12353	// The identifier of the provisioned product.
12354	ProvisionedProductId *string `min:"1" type:"string"`
12355
12356	// The user-friendly name of the provisioned product.
12357	ProvisionedProductName *string `min:"1" type:"string"`
12358
12359	// The type of provisioned product. The supported value is CFN_STACK.
12360	ProvisionedProductType *string `type:"string"`
12361
12362	// The identifier of the provisioning artifact.
12363	ProvisioningArtifactId *string `min:"1" type:"string"`
12364
12365	// The errors that occurred.
12366	RecordErrors []*RecordError `type:"list"`
12367
12368	// The identifier of the record.
12369	RecordId *string `min:"1" type:"string"`
12370
12371	// One or more tags.
12372	RecordTags []*RecordTag `type:"list"`
12373
12374	// The record type.
12375	//
12376	//    * PROVISION_PRODUCT
12377	//
12378	//    * UPDATE_PROVISIONED_PRODUCT
12379	//
12380	//    * TERMINATE_PROVISIONED_PRODUCT
12381	RecordType *string `type:"string"`
12382
12383	// The status of the provisioned product.
12384	//
12385	//    * CREATED - The request was created but the operation has not started.
12386	//
12387	//    * IN_PROGRESS - The requested operation is in progress.
12388	//
12389	//    * IN_PROGRESS_IN_ERROR - The provisioned product is under change but the
12390	//    requested operation failed and some remediation is occurring. For example,
12391	//    a rollback.
12392	//
12393	//    * SUCCEEDED - The requested operation has successfully completed.
12394	//
12395	//    * FAILED - The requested operation has unsuccessfully completed. Investigate
12396	//    using the error messages returned.
12397	Status *string `type:"string" enum:"RecordStatus"`
12398
12399	// The time when the record was last updated.
12400	UpdatedTime *time.Time `type:"timestamp" timestampFormat:"unix"`
12401}
12402
12403// String returns the string representation
12404func (s RecordDetail) String() string {
12405	return awsutil.Prettify(s)
12406}
12407
12408// GoString returns the string representation
12409func (s RecordDetail) GoString() string {
12410	return s.String()
12411}
12412
12413// SetCreatedTime sets the CreatedTime field's value.
12414func (s *RecordDetail) SetCreatedTime(v time.Time) *RecordDetail {
12415	s.CreatedTime = &v
12416	return s
12417}
12418
12419// SetPathId sets the PathId field's value.
12420func (s *RecordDetail) SetPathId(v string) *RecordDetail {
12421	s.PathId = &v
12422	return s
12423}
12424
12425// SetProductId sets the ProductId field's value.
12426func (s *RecordDetail) SetProductId(v string) *RecordDetail {
12427	s.ProductId = &v
12428	return s
12429}
12430
12431// SetProvisionedProductId sets the ProvisionedProductId field's value.
12432func (s *RecordDetail) SetProvisionedProductId(v string) *RecordDetail {
12433	s.ProvisionedProductId = &v
12434	return s
12435}
12436
12437// SetProvisionedProductName sets the ProvisionedProductName field's value.
12438func (s *RecordDetail) SetProvisionedProductName(v string) *RecordDetail {
12439	s.ProvisionedProductName = &v
12440	return s
12441}
12442
12443// SetProvisionedProductType sets the ProvisionedProductType field's value.
12444func (s *RecordDetail) SetProvisionedProductType(v string) *RecordDetail {
12445	s.ProvisionedProductType = &v
12446	return s
12447}
12448
12449// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value.
12450func (s *RecordDetail) SetProvisioningArtifactId(v string) *RecordDetail {
12451	s.ProvisioningArtifactId = &v
12452	return s
12453}
12454
12455// SetRecordErrors sets the RecordErrors field's value.
12456func (s *RecordDetail) SetRecordErrors(v []*RecordError) *RecordDetail {
12457	s.RecordErrors = v
12458	return s
12459}
12460
12461// SetRecordId sets the RecordId field's value.
12462func (s *RecordDetail) SetRecordId(v string) *RecordDetail {
12463	s.RecordId = &v
12464	return s
12465}
12466
12467// SetRecordTags sets the RecordTags field's value.
12468func (s *RecordDetail) SetRecordTags(v []*RecordTag) *RecordDetail {
12469	s.RecordTags = v
12470	return s
12471}
12472
12473// SetRecordType sets the RecordType field's value.
12474func (s *RecordDetail) SetRecordType(v string) *RecordDetail {
12475	s.RecordType = &v
12476	return s
12477}
12478
12479// SetStatus sets the Status field's value.
12480func (s *RecordDetail) SetStatus(v string) *RecordDetail {
12481	s.Status = &v
12482	return s
12483}
12484
12485// SetUpdatedTime sets the UpdatedTime field's value.
12486func (s *RecordDetail) SetUpdatedTime(v time.Time) *RecordDetail {
12487	s.UpdatedTime = &v
12488	return s
12489}
12490
12491// The error code and description resulting from an operation.
12492type RecordError struct {
12493	_ struct{} `type:"structure"`
12494
12495	// The numeric value of the error.
12496	Code *string `type:"string"`
12497
12498	// The description of the error.
12499	Description *string `type:"string"`
12500}
12501
12502// String returns the string representation
12503func (s RecordError) String() string {
12504	return awsutil.Prettify(s)
12505}
12506
12507// GoString returns the string representation
12508func (s RecordError) GoString() string {
12509	return s.String()
12510}
12511
12512// SetCode sets the Code field's value.
12513func (s *RecordError) SetCode(v string) *RecordError {
12514	s.Code = &v
12515	return s
12516}
12517
12518// SetDescription sets the Description field's value.
12519func (s *RecordError) SetDescription(v string) *RecordError {
12520	s.Description = &v
12521	return s
12522}
12523
12524// The output for the product created as the result of a request. For example,
12525// the output for a CloudFormation-backed product that creates an S3 bucket
12526// would include the S3 bucket URL.
12527type RecordOutput struct {
12528	_ struct{} `type:"structure"`
12529
12530	// The description of the output.
12531	Description *string `type:"string"`
12532
12533	// The output key.
12534	OutputKey *string `type:"string"`
12535
12536	// The output value.
12537	OutputValue *string `type:"string"`
12538}
12539
12540// String returns the string representation
12541func (s RecordOutput) String() string {
12542	return awsutil.Prettify(s)
12543}
12544
12545// GoString returns the string representation
12546func (s RecordOutput) GoString() string {
12547	return s.String()
12548}
12549
12550// SetDescription sets the Description field's value.
12551func (s *RecordOutput) SetDescription(v string) *RecordOutput {
12552	s.Description = &v
12553	return s
12554}
12555
12556// SetOutputKey sets the OutputKey field's value.
12557func (s *RecordOutput) SetOutputKey(v string) *RecordOutput {
12558	s.OutputKey = &v
12559	return s
12560}
12561
12562// SetOutputValue sets the OutputValue field's value.
12563func (s *RecordOutput) SetOutputValue(v string) *RecordOutput {
12564	s.OutputValue = &v
12565	return s
12566}
12567
12568// Information about a tag, which is a key-value pair.
12569type RecordTag struct {
12570	_ struct{} `type:"structure"`
12571
12572	// The key for this tag.
12573	Key *string `min:"1" type:"string"`
12574
12575	// The value for this tag.
12576	Value *string `min:"1" type:"string"`
12577}
12578
12579// String returns the string representation
12580func (s RecordTag) String() string {
12581	return awsutil.Prettify(s)
12582}
12583
12584// GoString returns the string representation
12585func (s RecordTag) GoString() string {
12586	return s.String()
12587}
12588
12589// SetKey sets the Key field's value.
12590func (s *RecordTag) SetKey(v string) *RecordTag {
12591	s.Key = &v
12592	return s
12593}
12594
12595// SetValue sets the Value field's value.
12596func (s *RecordTag) SetValue(v string) *RecordTag {
12597	s.Value = &v
12598	return s
12599}
12600
12601type RejectPortfolioShareInput struct {
12602	_ struct{} `type:"structure"`
12603
12604	// The language code.
12605	//
12606	//    * en - English (default)
12607	//
12608	//    * jp - Japanese
12609	//
12610	//    * zh - Chinese
12611	AcceptLanguage *string `type:"string"`
12612
12613	// The portfolio identifier.
12614	//
12615	// PortfolioId is a required field
12616	PortfolioId *string `min:"1" type:"string" required:"true"`
12617}
12618
12619// String returns the string representation
12620func (s RejectPortfolioShareInput) String() string {
12621	return awsutil.Prettify(s)
12622}
12623
12624// GoString returns the string representation
12625func (s RejectPortfolioShareInput) GoString() string {
12626	return s.String()
12627}
12628
12629// Validate inspects the fields of the type to determine if they are valid.
12630func (s *RejectPortfolioShareInput) Validate() error {
12631	invalidParams := request.ErrInvalidParams{Context: "RejectPortfolioShareInput"}
12632	if s.PortfolioId == nil {
12633		invalidParams.Add(request.NewErrParamRequired("PortfolioId"))
12634	}
12635	if s.PortfolioId != nil && len(*s.PortfolioId) < 1 {
12636		invalidParams.Add(request.NewErrParamMinLen("PortfolioId", 1))
12637	}
12638
12639	if invalidParams.Len() > 0 {
12640		return invalidParams
12641	}
12642	return nil
12643}
12644
12645// SetAcceptLanguage sets the AcceptLanguage field's value.
12646func (s *RejectPortfolioShareInput) SetAcceptLanguage(v string) *RejectPortfolioShareInput {
12647	s.AcceptLanguage = &v
12648	return s
12649}
12650
12651// SetPortfolioId sets the PortfolioId field's value.
12652func (s *RejectPortfolioShareInput) SetPortfolioId(v string) *RejectPortfolioShareInput {
12653	s.PortfolioId = &v
12654	return s
12655}
12656
12657type RejectPortfolioShareOutput struct {
12658	_ struct{} `type:"structure"`
12659}
12660
12661// String returns the string representation
12662func (s RejectPortfolioShareOutput) String() string {
12663	return awsutil.Prettify(s)
12664}
12665
12666// GoString returns the string representation
12667func (s RejectPortfolioShareOutput) GoString() string {
12668	return s.String()
12669}
12670
12671// Information about a resource change that will occur when a plan is executed.
12672type ResourceChange struct {
12673	_ struct{} `type:"structure"`
12674
12675	// The change action.
12676	Action *string `type:"string" enum:"ChangeAction"`
12677
12678	// Information about the resource changes.
12679	Details []*ResourceChangeDetail `type:"list"`
12680
12681	// The ID of the resource, as defined in the CloudFormation template.
12682	LogicalResourceId *string `type:"string"`
12683
12684	// The ID of the resource, if it was already created.
12685	PhysicalResourceId *string `type:"string"`
12686
12687	// If the change type is Modify, indicates whether the existing resource is
12688	// deleted and replaced with a new one.
12689	Replacement *string `type:"string" enum:"Replacement"`
12690
12691	// The type of resource.
12692	ResourceType *string `min:"1" type:"string"`
12693
12694	// The change scope.
12695	Scope []*string `type:"list"`
12696}
12697
12698// String returns the string representation
12699func (s ResourceChange) String() string {
12700	return awsutil.Prettify(s)
12701}
12702
12703// GoString returns the string representation
12704func (s ResourceChange) GoString() string {
12705	return s.String()
12706}
12707
12708// SetAction sets the Action field's value.
12709func (s *ResourceChange) SetAction(v string) *ResourceChange {
12710	s.Action = &v
12711	return s
12712}
12713
12714// SetDetails sets the Details field's value.
12715func (s *ResourceChange) SetDetails(v []*ResourceChangeDetail) *ResourceChange {
12716	s.Details = v
12717	return s
12718}
12719
12720// SetLogicalResourceId sets the LogicalResourceId field's value.
12721func (s *ResourceChange) SetLogicalResourceId(v string) *ResourceChange {
12722	s.LogicalResourceId = &v
12723	return s
12724}
12725
12726// SetPhysicalResourceId sets the PhysicalResourceId field's value.
12727func (s *ResourceChange) SetPhysicalResourceId(v string) *ResourceChange {
12728	s.PhysicalResourceId = &v
12729	return s
12730}
12731
12732// SetReplacement sets the Replacement field's value.
12733func (s *ResourceChange) SetReplacement(v string) *ResourceChange {
12734	s.Replacement = &v
12735	return s
12736}
12737
12738// SetResourceType sets the ResourceType field's value.
12739func (s *ResourceChange) SetResourceType(v string) *ResourceChange {
12740	s.ResourceType = &v
12741	return s
12742}
12743
12744// SetScope sets the Scope field's value.
12745func (s *ResourceChange) SetScope(v []*string) *ResourceChange {
12746	s.Scope = v
12747	return s
12748}
12749
12750// Information about a change to a resource attribute.
12751type ResourceChangeDetail struct {
12752	_ struct{} `type:"structure"`
12753
12754	// The ID of the entity that caused the change.
12755	CausingEntity *string `type:"string"`
12756
12757	// For static evaluations, the value of the resource attribute will change and
12758	// the new value is known. For dynamic evaluations, the value might change,
12759	// and any new value will be determined when the plan is updated.
12760	Evaluation *string `type:"string" enum:"EvaluationType"`
12761
12762	// Information about the resource attribute to be modified.
12763	Target *ResourceTargetDefinition `type:"structure"`
12764}
12765
12766// String returns the string representation
12767func (s ResourceChangeDetail) String() string {
12768	return awsutil.Prettify(s)
12769}
12770
12771// GoString returns the string representation
12772func (s ResourceChangeDetail) GoString() string {
12773	return s.String()
12774}
12775
12776// SetCausingEntity sets the CausingEntity field's value.
12777func (s *ResourceChangeDetail) SetCausingEntity(v string) *ResourceChangeDetail {
12778	s.CausingEntity = &v
12779	return s
12780}
12781
12782// SetEvaluation sets the Evaluation field's value.
12783func (s *ResourceChangeDetail) SetEvaluation(v string) *ResourceChangeDetail {
12784	s.Evaluation = &v
12785	return s
12786}
12787
12788// SetTarget sets the Target field's value.
12789func (s *ResourceChangeDetail) SetTarget(v *ResourceTargetDefinition) *ResourceChangeDetail {
12790	s.Target = v
12791	return s
12792}
12793
12794// Information about a resource.
12795type ResourceDetail struct {
12796	_ struct{} `type:"structure"`
12797
12798	// The ARN of the resource.
12799	ARN *string `type:"string"`
12800
12801	// The creation time of the resource.
12802	CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"`
12803
12804	// The description of the resource.
12805	Description *string `type:"string"`
12806
12807	// The identifier of the resource.
12808	Id *string `type:"string"`
12809
12810	// The name of the resource.
12811	Name *string `type:"string"`
12812}
12813
12814// String returns the string representation
12815func (s ResourceDetail) String() string {
12816	return awsutil.Prettify(s)
12817}
12818
12819// GoString returns the string representation
12820func (s ResourceDetail) GoString() string {
12821	return s.String()
12822}
12823
12824// SetARN sets the ARN field's value.
12825func (s *ResourceDetail) SetARN(v string) *ResourceDetail {
12826	s.ARN = &v
12827	return s
12828}
12829
12830// SetCreatedTime sets the CreatedTime field's value.
12831func (s *ResourceDetail) SetCreatedTime(v time.Time) *ResourceDetail {
12832	s.CreatedTime = &v
12833	return s
12834}
12835
12836// SetDescription sets the Description field's value.
12837func (s *ResourceDetail) SetDescription(v string) *ResourceDetail {
12838	s.Description = &v
12839	return s
12840}
12841
12842// SetId sets the Id field's value.
12843func (s *ResourceDetail) SetId(v string) *ResourceDetail {
12844	s.Id = &v
12845	return s
12846}
12847
12848// SetName sets the Name field's value.
12849func (s *ResourceDetail) SetName(v string) *ResourceDetail {
12850	s.Name = &v
12851	return s
12852}
12853
12854// Information about a change to a resource attribute.
12855type ResourceTargetDefinition struct {
12856	_ struct{} `type:"structure"`
12857
12858	// The attribute to be changed.
12859	Attribute *string `type:"string" enum:"ResourceAttribute"`
12860
12861	// If the attribute is Properties, the value is the name of the property. Otherwise,
12862	// the value is null.
12863	Name *string `type:"string"`
12864
12865	// If the attribute is Properties, indicates whether a change to this property
12866	// causes the resource to be re-created.
12867	RequiresRecreation *string `type:"string" enum:"RequiresRecreation"`
12868}
12869
12870// String returns the string representation
12871func (s ResourceTargetDefinition) String() string {
12872	return awsutil.Prettify(s)
12873}
12874
12875// GoString returns the string representation
12876func (s ResourceTargetDefinition) GoString() string {
12877	return s.String()
12878}
12879
12880// SetAttribute sets the Attribute field's value.
12881func (s *ResourceTargetDefinition) SetAttribute(v string) *ResourceTargetDefinition {
12882	s.Attribute = &v
12883	return s
12884}
12885
12886// SetName sets the Name field's value.
12887func (s *ResourceTargetDefinition) SetName(v string) *ResourceTargetDefinition {
12888	s.Name = &v
12889	return s
12890}
12891
12892// SetRequiresRecreation sets the RequiresRecreation field's value.
12893func (s *ResourceTargetDefinition) SetRequiresRecreation(v string) *ResourceTargetDefinition {
12894	s.RequiresRecreation = &v
12895	return s
12896}
12897
12898type ScanProvisionedProductsInput struct {
12899	_ struct{} `type:"structure"`
12900
12901	// The language code.
12902	//
12903	//    * en - English (default)
12904	//
12905	//    * jp - Japanese
12906	//
12907	//    * zh - Chinese
12908	AcceptLanguage *string `type:"string"`
12909
12910	// The access level to use to obtain results. The default is User.
12911	AccessLevelFilter *AccessLevelFilter `type:"structure"`
12912
12913	// The maximum number of items to return with this call.
12914	PageSize *int64 `type:"integer"`
12915
12916	// The page token for the next set of results. To retrieve the first set of
12917	// results, use null.
12918	PageToken *string `type:"string"`
12919}
12920
12921// String returns the string representation
12922func (s ScanProvisionedProductsInput) String() string {
12923	return awsutil.Prettify(s)
12924}
12925
12926// GoString returns the string representation
12927func (s ScanProvisionedProductsInput) GoString() string {
12928	return s.String()
12929}
12930
12931// SetAcceptLanguage sets the AcceptLanguage field's value.
12932func (s *ScanProvisionedProductsInput) SetAcceptLanguage(v string) *ScanProvisionedProductsInput {
12933	s.AcceptLanguage = &v
12934	return s
12935}
12936
12937// SetAccessLevelFilter sets the AccessLevelFilter field's value.
12938func (s *ScanProvisionedProductsInput) SetAccessLevelFilter(v *AccessLevelFilter) *ScanProvisionedProductsInput {
12939	s.AccessLevelFilter = v
12940	return s
12941}
12942
12943// SetPageSize sets the PageSize field's value.
12944func (s *ScanProvisionedProductsInput) SetPageSize(v int64) *ScanProvisionedProductsInput {
12945	s.PageSize = &v
12946	return s
12947}
12948
12949// SetPageToken sets the PageToken field's value.
12950func (s *ScanProvisionedProductsInput) SetPageToken(v string) *ScanProvisionedProductsInput {
12951	s.PageToken = &v
12952	return s
12953}
12954
12955type ScanProvisionedProductsOutput struct {
12956	_ struct{} `type:"structure"`
12957
12958	// The page token to use to retrieve the next set of results. If there are no
12959	// additional results, this value is null.
12960	NextPageToken *string `type:"string"`
12961
12962	// Information about the provisioned products.
12963	ProvisionedProducts []*ProvisionedProductDetail `type:"list"`
12964}
12965
12966// String returns the string representation
12967func (s ScanProvisionedProductsOutput) String() string {
12968	return awsutil.Prettify(s)
12969}
12970
12971// GoString returns the string representation
12972func (s ScanProvisionedProductsOutput) GoString() string {
12973	return s.String()
12974}
12975
12976// SetNextPageToken sets the NextPageToken field's value.
12977func (s *ScanProvisionedProductsOutput) SetNextPageToken(v string) *ScanProvisionedProductsOutput {
12978	s.NextPageToken = &v
12979	return s
12980}
12981
12982// SetProvisionedProducts sets the ProvisionedProducts field's value.
12983func (s *ScanProvisionedProductsOutput) SetProvisionedProducts(v []*ProvisionedProductDetail) *ScanProvisionedProductsOutput {
12984	s.ProvisionedProducts = v
12985	return s
12986}
12987
12988type SearchProductsAsAdminInput struct {
12989	_ struct{} `type:"structure"`
12990
12991	// The language code.
12992	//
12993	//    * en - English (default)
12994	//
12995	//    * jp - Japanese
12996	//
12997	//    * zh - Chinese
12998	AcceptLanguage *string `type:"string"`
12999
13000	// The search filters. If no search filters are specified, the output includes
13001	// all products to which the administrator has access.
13002	Filters map[string][]*string `type:"map"`
13003
13004	// The maximum number of items to return with this call.
13005	PageSize *int64 `type:"integer"`
13006
13007	// The page token for the next set of results. To retrieve the first set of
13008	// results, use null.
13009	PageToken *string `type:"string"`
13010
13011	// The portfolio identifier.
13012	PortfolioId *string `min:"1" type:"string"`
13013
13014	// Access level of the source of the product.
13015	ProductSource *string `type:"string" enum:"ProductSource"`
13016
13017	// The sort field. If no value is specified, the results are not sorted.
13018	SortBy *string `type:"string" enum:"ProductViewSortBy"`
13019
13020	// The sort order. If no value is specified, the results are not sorted.
13021	SortOrder *string `type:"string" enum:"SortOrder"`
13022}
13023
13024// String returns the string representation
13025func (s SearchProductsAsAdminInput) String() string {
13026	return awsutil.Prettify(s)
13027}
13028
13029// GoString returns the string representation
13030func (s SearchProductsAsAdminInput) GoString() string {
13031	return s.String()
13032}
13033
13034// Validate inspects the fields of the type to determine if they are valid.
13035func (s *SearchProductsAsAdminInput) Validate() error {
13036	invalidParams := request.ErrInvalidParams{Context: "SearchProductsAsAdminInput"}
13037	if s.PortfolioId != nil && len(*s.PortfolioId) < 1 {
13038		invalidParams.Add(request.NewErrParamMinLen("PortfolioId", 1))
13039	}
13040
13041	if invalidParams.Len() > 0 {
13042		return invalidParams
13043	}
13044	return nil
13045}
13046
13047// SetAcceptLanguage sets the AcceptLanguage field's value.
13048func (s *SearchProductsAsAdminInput) SetAcceptLanguage(v string) *SearchProductsAsAdminInput {
13049	s.AcceptLanguage = &v
13050	return s
13051}
13052
13053// SetFilters sets the Filters field's value.
13054func (s *SearchProductsAsAdminInput) SetFilters(v map[string][]*string) *SearchProductsAsAdminInput {
13055	s.Filters = v
13056	return s
13057}
13058
13059// SetPageSize sets the PageSize field's value.
13060func (s *SearchProductsAsAdminInput) SetPageSize(v int64) *SearchProductsAsAdminInput {
13061	s.PageSize = &v
13062	return s
13063}
13064
13065// SetPageToken sets the PageToken field's value.
13066func (s *SearchProductsAsAdminInput) SetPageToken(v string) *SearchProductsAsAdminInput {
13067	s.PageToken = &v
13068	return s
13069}
13070
13071// SetPortfolioId sets the PortfolioId field's value.
13072func (s *SearchProductsAsAdminInput) SetPortfolioId(v string) *SearchProductsAsAdminInput {
13073	s.PortfolioId = &v
13074	return s
13075}
13076
13077// SetProductSource sets the ProductSource field's value.
13078func (s *SearchProductsAsAdminInput) SetProductSource(v string) *SearchProductsAsAdminInput {
13079	s.ProductSource = &v
13080	return s
13081}
13082
13083// SetSortBy sets the SortBy field's value.
13084func (s *SearchProductsAsAdminInput) SetSortBy(v string) *SearchProductsAsAdminInput {
13085	s.SortBy = &v
13086	return s
13087}
13088
13089// SetSortOrder sets the SortOrder field's value.
13090func (s *SearchProductsAsAdminInput) SetSortOrder(v string) *SearchProductsAsAdminInput {
13091	s.SortOrder = &v
13092	return s
13093}
13094
13095type SearchProductsAsAdminOutput struct {
13096	_ struct{} `type:"structure"`
13097
13098	// The page token to use to retrieve the next set of results. If there are no
13099	// additional results, this value is null.
13100	NextPageToken *string `type:"string"`
13101
13102	// Information about the product views.
13103	ProductViewDetails []*ProductViewDetail `type:"list"`
13104}
13105
13106// String returns the string representation
13107func (s SearchProductsAsAdminOutput) String() string {
13108	return awsutil.Prettify(s)
13109}
13110
13111// GoString returns the string representation
13112func (s SearchProductsAsAdminOutput) GoString() string {
13113	return s.String()
13114}
13115
13116// SetNextPageToken sets the NextPageToken field's value.
13117func (s *SearchProductsAsAdminOutput) SetNextPageToken(v string) *SearchProductsAsAdminOutput {
13118	s.NextPageToken = &v
13119	return s
13120}
13121
13122// SetProductViewDetails sets the ProductViewDetails field's value.
13123func (s *SearchProductsAsAdminOutput) SetProductViewDetails(v []*ProductViewDetail) *SearchProductsAsAdminOutput {
13124	s.ProductViewDetails = v
13125	return s
13126}
13127
13128type SearchProductsInput struct {
13129	_ struct{} `type:"structure"`
13130
13131	// The language code.
13132	//
13133	//    * en - English (default)
13134	//
13135	//    * jp - Japanese
13136	//
13137	//    * zh - Chinese
13138	AcceptLanguage *string `type:"string"`
13139
13140	// The search filters. If no search filters are specified, the output includes
13141	// all products to which the caller has access.
13142	Filters map[string][]*string `type:"map"`
13143
13144	// The maximum number of items to return with this call.
13145	PageSize *int64 `type:"integer"`
13146
13147	// The page token for the next set of results. To retrieve the first set of
13148	// results, use null.
13149	PageToken *string `type:"string"`
13150
13151	// The sort field. If no value is specified, the results are not sorted.
13152	SortBy *string `type:"string" enum:"ProductViewSortBy"`
13153
13154	// The sort order. If no value is specified, the results are not sorted.
13155	SortOrder *string `type:"string" enum:"SortOrder"`
13156}
13157
13158// String returns the string representation
13159func (s SearchProductsInput) String() string {
13160	return awsutil.Prettify(s)
13161}
13162
13163// GoString returns the string representation
13164func (s SearchProductsInput) GoString() string {
13165	return s.String()
13166}
13167
13168// SetAcceptLanguage sets the AcceptLanguage field's value.
13169func (s *SearchProductsInput) SetAcceptLanguage(v string) *SearchProductsInput {
13170	s.AcceptLanguage = &v
13171	return s
13172}
13173
13174// SetFilters sets the Filters field's value.
13175func (s *SearchProductsInput) SetFilters(v map[string][]*string) *SearchProductsInput {
13176	s.Filters = v
13177	return s
13178}
13179
13180// SetPageSize sets the PageSize field's value.
13181func (s *SearchProductsInput) SetPageSize(v int64) *SearchProductsInput {
13182	s.PageSize = &v
13183	return s
13184}
13185
13186// SetPageToken sets the PageToken field's value.
13187func (s *SearchProductsInput) SetPageToken(v string) *SearchProductsInput {
13188	s.PageToken = &v
13189	return s
13190}
13191
13192// SetSortBy sets the SortBy field's value.
13193func (s *SearchProductsInput) SetSortBy(v string) *SearchProductsInput {
13194	s.SortBy = &v
13195	return s
13196}
13197
13198// SetSortOrder sets the SortOrder field's value.
13199func (s *SearchProductsInput) SetSortOrder(v string) *SearchProductsInput {
13200	s.SortOrder = &v
13201	return s
13202}
13203
13204type SearchProductsOutput struct {
13205	_ struct{} `type:"structure"`
13206
13207	// The page token to use to retrieve the next set of results. If there are no
13208	// additional results, this value is null.
13209	NextPageToken *string `type:"string"`
13210
13211	// The product view aggregations.
13212	ProductViewAggregations map[string][]*ProductViewAggregationValue `type:"map"`
13213
13214	// Information about the product views.
13215	ProductViewSummaries []*ProductViewSummary `type:"list"`
13216}
13217
13218// String returns the string representation
13219func (s SearchProductsOutput) String() string {
13220	return awsutil.Prettify(s)
13221}
13222
13223// GoString returns the string representation
13224func (s SearchProductsOutput) GoString() string {
13225	return s.String()
13226}
13227
13228// SetNextPageToken sets the NextPageToken field's value.
13229func (s *SearchProductsOutput) SetNextPageToken(v string) *SearchProductsOutput {
13230	s.NextPageToken = &v
13231	return s
13232}
13233
13234// SetProductViewAggregations sets the ProductViewAggregations field's value.
13235func (s *SearchProductsOutput) SetProductViewAggregations(v map[string][]*ProductViewAggregationValue) *SearchProductsOutput {
13236	s.ProductViewAggregations = v
13237	return s
13238}
13239
13240// SetProductViewSummaries sets the ProductViewSummaries field's value.
13241func (s *SearchProductsOutput) SetProductViewSummaries(v []*ProductViewSummary) *SearchProductsOutput {
13242	s.ProductViewSummaries = v
13243	return s
13244}
13245
13246type SearchProvisionedProductsInput struct {
13247	_ struct{} `type:"structure"`
13248
13249	// The language code.
13250	//
13251	//    * en - English (default)
13252	//
13253	//    * jp - Japanese
13254	//
13255	//    * zh - Chinese
13256	AcceptLanguage *string `type:"string"`
13257
13258	// The access level to use to obtain results. The default is User.
13259	AccessLevelFilter *AccessLevelFilter `type:"structure"`
13260
13261	// The search filters.
13262	//
13263	// When the key is SearchQuery, the searchable fields are arn, createdTime,
13264	// id, lastRecordId, idempotencyToken, name, physicalId, productId, provisioningArtifact,
13265	// type, status, tags, userArn, and userArnSession.
13266	//
13267	// Example: "SearchQuery":["status:AVAILABLE"]
13268	Filters map[string][]*string `type:"map"`
13269
13270	// The maximum number of items to return with this call.
13271	PageSize *int64 `type:"integer"`
13272
13273	// The page token for the next set of results. To retrieve the first set of
13274	// results, use null.
13275	PageToken *string `type:"string"`
13276
13277	// The sort field. If no value is specified, the results are not sorted. The
13278	// valid values are arn, id, name, and lastRecordId.
13279	SortBy *string `type:"string"`
13280
13281	// The sort order. If no value is specified, the results are not sorted.
13282	SortOrder *string `type:"string" enum:"SortOrder"`
13283}
13284
13285// String returns the string representation
13286func (s SearchProvisionedProductsInput) String() string {
13287	return awsutil.Prettify(s)
13288}
13289
13290// GoString returns the string representation
13291func (s SearchProvisionedProductsInput) GoString() string {
13292	return s.String()
13293}
13294
13295// SetAcceptLanguage sets the AcceptLanguage field's value.
13296func (s *SearchProvisionedProductsInput) SetAcceptLanguage(v string) *SearchProvisionedProductsInput {
13297	s.AcceptLanguage = &v
13298	return s
13299}
13300
13301// SetAccessLevelFilter sets the AccessLevelFilter field's value.
13302func (s *SearchProvisionedProductsInput) SetAccessLevelFilter(v *AccessLevelFilter) *SearchProvisionedProductsInput {
13303	s.AccessLevelFilter = v
13304	return s
13305}
13306
13307// SetFilters sets the Filters field's value.
13308func (s *SearchProvisionedProductsInput) SetFilters(v map[string][]*string) *SearchProvisionedProductsInput {
13309	s.Filters = v
13310	return s
13311}
13312
13313// SetPageSize sets the PageSize field's value.
13314func (s *SearchProvisionedProductsInput) SetPageSize(v int64) *SearchProvisionedProductsInput {
13315	s.PageSize = &v
13316	return s
13317}
13318
13319// SetPageToken sets the PageToken field's value.
13320func (s *SearchProvisionedProductsInput) SetPageToken(v string) *SearchProvisionedProductsInput {
13321	s.PageToken = &v
13322	return s
13323}
13324
13325// SetSortBy sets the SortBy field's value.
13326func (s *SearchProvisionedProductsInput) SetSortBy(v string) *SearchProvisionedProductsInput {
13327	s.SortBy = &v
13328	return s
13329}
13330
13331// SetSortOrder sets the SortOrder field's value.
13332func (s *SearchProvisionedProductsInput) SetSortOrder(v string) *SearchProvisionedProductsInput {
13333	s.SortOrder = &v
13334	return s
13335}
13336
13337type SearchProvisionedProductsOutput struct {
13338	_ struct{} `type:"structure"`
13339
13340	// The page token to use to retrieve the next set of results. If there are no
13341	// additional results, this value is null.
13342	NextPageToken *string `type:"string"`
13343
13344	// Information about the provisioned products.
13345	ProvisionedProducts []*ProvisionedProductAttribute `type:"list"`
13346
13347	// The number of provisioned products found.
13348	TotalResultsCount *int64 `type:"integer"`
13349}
13350
13351// String returns the string representation
13352func (s SearchProvisionedProductsOutput) String() string {
13353	return awsutil.Prettify(s)
13354}
13355
13356// GoString returns the string representation
13357func (s SearchProvisionedProductsOutput) GoString() string {
13358	return s.String()
13359}
13360
13361// SetNextPageToken sets the NextPageToken field's value.
13362func (s *SearchProvisionedProductsOutput) SetNextPageToken(v string) *SearchProvisionedProductsOutput {
13363	s.NextPageToken = &v
13364	return s
13365}
13366
13367// SetProvisionedProducts sets the ProvisionedProducts field's value.
13368func (s *SearchProvisionedProductsOutput) SetProvisionedProducts(v []*ProvisionedProductAttribute) *SearchProvisionedProductsOutput {
13369	s.ProvisionedProducts = v
13370	return s
13371}
13372
13373// SetTotalResultsCount sets the TotalResultsCount field's value.
13374func (s *SearchProvisionedProductsOutput) SetTotalResultsCount(v int64) *SearchProvisionedProductsOutput {
13375	s.TotalResultsCount = &v
13376	return s
13377}
13378
13379// Information about a tag. A tag is a key-value pair. Tags are propagated to
13380// the resources created when provisioning a product.
13381type Tag struct {
13382	_ struct{} `type:"structure"`
13383
13384	// The tag key.
13385	//
13386	// Key is a required field
13387	Key *string `min:"1" type:"string" required:"true"`
13388
13389	// The value for this key.
13390	//
13391	// Value is a required field
13392	Value *string `min:"1" type:"string" required:"true"`
13393}
13394
13395// String returns the string representation
13396func (s Tag) String() string {
13397	return awsutil.Prettify(s)
13398}
13399
13400// GoString returns the string representation
13401func (s Tag) GoString() string {
13402	return s.String()
13403}
13404
13405// Validate inspects the fields of the type to determine if they are valid.
13406func (s *Tag) Validate() error {
13407	invalidParams := request.ErrInvalidParams{Context: "Tag"}
13408	if s.Key == nil {
13409		invalidParams.Add(request.NewErrParamRequired("Key"))
13410	}
13411	if s.Key != nil && len(*s.Key) < 1 {
13412		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
13413	}
13414	if s.Value == nil {
13415		invalidParams.Add(request.NewErrParamRequired("Value"))
13416	}
13417	if s.Value != nil && len(*s.Value) < 1 {
13418		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
13419	}
13420
13421	if invalidParams.Len() > 0 {
13422		return invalidParams
13423	}
13424	return nil
13425}
13426
13427// SetKey sets the Key field's value.
13428func (s *Tag) SetKey(v string) *Tag {
13429	s.Key = &v
13430	return s
13431}
13432
13433// SetValue sets the Value field's value.
13434func (s *Tag) SetValue(v string) *Tag {
13435	s.Value = &v
13436	return s
13437}
13438
13439// Information about a TagOption.
13440type TagOptionDetail struct {
13441	_ struct{} `type:"structure"`
13442
13443	// The TagOption active state.
13444	Active *bool `type:"boolean"`
13445
13446	// The TagOption identifier.
13447	Id *string `min:"1" type:"string"`
13448
13449	// The TagOption key.
13450	Key *string `min:"1" type:"string"`
13451
13452	// The TagOption value.
13453	Value *string `min:"1" type:"string"`
13454}
13455
13456// String returns the string representation
13457func (s TagOptionDetail) String() string {
13458	return awsutil.Prettify(s)
13459}
13460
13461// GoString returns the string representation
13462func (s TagOptionDetail) GoString() string {
13463	return s.String()
13464}
13465
13466// SetActive sets the Active field's value.
13467func (s *TagOptionDetail) SetActive(v bool) *TagOptionDetail {
13468	s.Active = &v
13469	return s
13470}
13471
13472// SetId sets the Id field's value.
13473func (s *TagOptionDetail) SetId(v string) *TagOptionDetail {
13474	s.Id = &v
13475	return s
13476}
13477
13478// SetKey sets the Key field's value.
13479func (s *TagOptionDetail) SetKey(v string) *TagOptionDetail {
13480	s.Key = &v
13481	return s
13482}
13483
13484// SetValue sets the Value field's value.
13485func (s *TagOptionDetail) SetValue(v string) *TagOptionDetail {
13486	s.Value = &v
13487	return s
13488}
13489
13490// Summary information about a TagOption.
13491type TagOptionSummary struct {
13492	_ struct{} `type:"structure"`
13493
13494	// The TagOption key.
13495	Key *string `min:"1" type:"string"`
13496
13497	// The TagOption value.
13498	Values []*string `type:"list"`
13499}
13500
13501// String returns the string representation
13502func (s TagOptionSummary) String() string {
13503	return awsutil.Prettify(s)
13504}
13505
13506// GoString returns the string representation
13507func (s TagOptionSummary) GoString() string {
13508	return s.String()
13509}
13510
13511// SetKey sets the Key field's value.
13512func (s *TagOptionSummary) SetKey(v string) *TagOptionSummary {
13513	s.Key = &v
13514	return s
13515}
13516
13517// SetValues sets the Values field's value.
13518func (s *TagOptionSummary) SetValues(v []*string) *TagOptionSummary {
13519	s.Values = v
13520	return s
13521}
13522
13523type TerminateProvisionedProductInput struct {
13524	_ struct{} `type:"structure"`
13525
13526	// The language code.
13527	//
13528	//    * en - English (default)
13529	//
13530	//    * jp - Japanese
13531	//
13532	//    * zh - Chinese
13533	AcceptLanguage *string `type:"string"`
13534
13535	// If set to true, AWS Service Catalog stops managing the specified provisioned
13536	// product even if it cannot delete the underlying resources.
13537	IgnoreErrors *bool `type:"boolean"`
13538
13539	// The identifier of the provisioned product. You cannot specify both ProvisionedProductName
13540	// and ProvisionedProductId.
13541	ProvisionedProductId *string `min:"1" type:"string"`
13542
13543	// The name of the provisioned product. You cannot specify both ProvisionedProductName
13544	// and ProvisionedProductId.
13545	ProvisionedProductName *string `min:"1" type:"string"`
13546
13547	// An idempotency token that uniquely identifies the termination request. This
13548	// token is only valid during the termination process. After the provisioned
13549	// product is terminated, subsequent requests to terminate the same provisioned
13550	// product always return ResourceNotFound.
13551	//
13552	// TerminateToken is a required field
13553	TerminateToken *string `min:"1" type:"string" required:"true" idempotencyToken:"true"`
13554}
13555
13556// String returns the string representation
13557func (s TerminateProvisionedProductInput) String() string {
13558	return awsutil.Prettify(s)
13559}
13560
13561// GoString returns the string representation
13562func (s TerminateProvisionedProductInput) GoString() string {
13563	return s.String()
13564}
13565
13566// Validate inspects the fields of the type to determine if they are valid.
13567func (s *TerminateProvisionedProductInput) Validate() error {
13568	invalidParams := request.ErrInvalidParams{Context: "TerminateProvisionedProductInput"}
13569	if s.ProvisionedProductId != nil && len(*s.ProvisionedProductId) < 1 {
13570		invalidParams.Add(request.NewErrParamMinLen("ProvisionedProductId", 1))
13571	}
13572	if s.ProvisionedProductName != nil && len(*s.ProvisionedProductName) < 1 {
13573		invalidParams.Add(request.NewErrParamMinLen("ProvisionedProductName", 1))
13574	}
13575	if s.TerminateToken == nil {
13576		invalidParams.Add(request.NewErrParamRequired("TerminateToken"))
13577	}
13578	if s.TerminateToken != nil && len(*s.TerminateToken) < 1 {
13579		invalidParams.Add(request.NewErrParamMinLen("TerminateToken", 1))
13580	}
13581
13582	if invalidParams.Len() > 0 {
13583		return invalidParams
13584	}
13585	return nil
13586}
13587
13588// SetAcceptLanguage sets the AcceptLanguage field's value.
13589func (s *TerminateProvisionedProductInput) SetAcceptLanguage(v string) *TerminateProvisionedProductInput {
13590	s.AcceptLanguage = &v
13591	return s
13592}
13593
13594// SetIgnoreErrors sets the IgnoreErrors field's value.
13595func (s *TerminateProvisionedProductInput) SetIgnoreErrors(v bool) *TerminateProvisionedProductInput {
13596	s.IgnoreErrors = &v
13597	return s
13598}
13599
13600// SetProvisionedProductId sets the ProvisionedProductId field's value.
13601func (s *TerminateProvisionedProductInput) SetProvisionedProductId(v string) *TerminateProvisionedProductInput {
13602	s.ProvisionedProductId = &v
13603	return s
13604}
13605
13606// SetProvisionedProductName sets the ProvisionedProductName field's value.
13607func (s *TerminateProvisionedProductInput) SetProvisionedProductName(v string) *TerminateProvisionedProductInput {
13608	s.ProvisionedProductName = &v
13609	return s
13610}
13611
13612// SetTerminateToken sets the TerminateToken field's value.
13613func (s *TerminateProvisionedProductInput) SetTerminateToken(v string) *TerminateProvisionedProductInput {
13614	s.TerminateToken = &v
13615	return s
13616}
13617
13618type TerminateProvisionedProductOutput struct {
13619	_ struct{} `type:"structure"`
13620
13621	// Information about the result of this request.
13622	RecordDetail *RecordDetail `type:"structure"`
13623}
13624
13625// String returns the string representation
13626func (s TerminateProvisionedProductOutput) String() string {
13627	return awsutil.Prettify(s)
13628}
13629
13630// GoString returns the string representation
13631func (s TerminateProvisionedProductOutput) GoString() string {
13632	return s.String()
13633}
13634
13635// SetRecordDetail sets the RecordDetail field's value.
13636func (s *TerminateProvisionedProductOutput) SetRecordDetail(v *RecordDetail) *TerminateProvisionedProductOutput {
13637	s.RecordDetail = v
13638	return s
13639}
13640
13641type UpdateConstraintInput struct {
13642	_ struct{} `type:"structure"`
13643
13644	// The language code.
13645	//
13646	//    * en - English (default)
13647	//
13648	//    * jp - Japanese
13649	//
13650	//    * zh - Chinese
13651	AcceptLanguage *string `type:"string"`
13652
13653	// The updated description of the constraint.
13654	Description *string `type:"string"`
13655
13656	// The identifier of the constraint.
13657	//
13658	// Id is a required field
13659	Id *string `min:"1" type:"string" required:"true"`
13660}
13661
13662// String returns the string representation
13663func (s UpdateConstraintInput) String() string {
13664	return awsutil.Prettify(s)
13665}
13666
13667// GoString returns the string representation
13668func (s UpdateConstraintInput) GoString() string {
13669	return s.String()
13670}
13671
13672// Validate inspects the fields of the type to determine if they are valid.
13673func (s *UpdateConstraintInput) Validate() error {
13674	invalidParams := request.ErrInvalidParams{Context: "UpdateConstraintInput"}
13675	if s.Id == nil {
13676		invalidParams.Add(request.NewErrParamRequired("Id"))
13677	}
13678	if s.Id != nil && len(*s.Id) < 1 {
13679		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
13680	}
13681
13682	if invalidParams.Len() > 0 {
13683		return invalidParams
13684	}
13685	return nil
13686}
13687
13688// SetAcceptLanguage sets the AcceptLanguage field's value.
13689func (s *UpdateConstraintInput) SetAcceptLanguage(v string) *UpdateConstraintInput {
13690	s.AcceptLanguage = &v
13691	return s
13692}
13693
13694// SetDescription sets the Description field's value.
13695func (s *UpdateConstraintInput) SetDescription(v string) *UpdateConstraintInput {
13696	s.Description = &v
13697	return s
13698}
13699
13700// SetId sets the Id field's value.
13701func (s *UpdateConstraintInput) SetId(v string) *UpdateConstraintInput {
13702	s.Id = &v
13703	return s
13704}
13705
13706type UpdateConstraintOutput struct {
13707	_ struct{} `type:"structure"`
13708
13709	// Information about the constraint.
13710	ConstraintDetail *ConstraintDetail `type:"structure"`
13711
13712	// The constraint parameters.
13713	ConstraintParameters *string `type:"string"`
13714
13715	// The status of the current request.
13716	Status *string `type:"string" enum:"Status"`
13717}
13718
13719// String returns the string representation
13720func (s UpdateConstraintOutput) String() string {
13721	return awsutil.Prettify(s)
13722}
13723
13724// GoString returns the string representation
13725func (s UpdateConstraintOutput) GoString() string {
13726	return s.String()
13727}
13728
13729// SetConstraintDetail sets the ConstraintDetail field's value.
13730func (s *UpdateConstraintOutput) SetConstraintDetail(v *ConstraintDetail) *UpdateConstraintOutput {
13731	s.ConstraintDetail = v
13732	return s
13733}
13734
13735// SetConstraintParameters sets the ConstraintParameters field's value.
13736func (s *UpdateConstraintOutput) SetConstraintParameters(v string) *UpdateConstraintOutput {
13737	s.ConstraintParameters = &v
13738	return s
13739}
13740
13741// SetStatus sets the Status field's value.
13742func (s *UpdateConstraintOutput) SetStatus(v string) *UpdateConstraintOutput {
13743	s.Status = &v
13744	return s
13745}
13746
13747type UpdatePortfolioInput struct {
13748	_ struct{} `type:"structure"`
13749
13750	// The language code.
13751	//
13752	//    * en - English (default)
13753	//
13754	//    * jp - Japanese
13755	//
13756	//    * zh - Chinese
13757	AcceptLanguage *string `type:"string"`
13758
13759	// The tags to add.
13760	AddTags []*Tag `type:"list"`
13761
13762	// The updated description of the portfolio.
13763	Description *string `type:"string"`
13764
13765	// The name to use for display purposes.
13766	DisplayName *string `min:"1" type:"string"`
13767
13768	// The portfolio identifier.
13769	//
13770	// Id is a required field
13771	Id *string `min:"1" type:"string" required:"true"`
13772
13773	// The updated name of the portfolio provider.
13774	ProviderName *string `min:"1" type:"string"`
13775
13776	// The tags to remove.
13777	RemoveTags []*string `type:"list"`
13778}
13779
13780// String returns the string representation
13781func (s UpdatePortfolioInput) String() string {
13782	return awsutil.Prettify(s)
13783}
13784
13785// GoString returns the string representation
13786func (s UpdatePortfolioInput) GoString() string {
13787	return s.String()
13788}
13789
13790// Validate inspects the fields of the type to determine if they are valid.
13791func (s *UpdatePortfolioInput) Validate() error {
13792	invalidParams := request.ErrInvalidParams{Context: "UpdatePortfolioInput"}
13793	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
13794		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
13795	}
13796	if s.Id == nil {
13797		invalidParams.Add(request.NewErrParamRequired("Id"))
13798	}
13799	if s.Id != nil && len(*s.Id) < 1 {
13800		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
13801	}
13802	if s.ProviderName != nil && len(*s.ProviderName) < 1 {
13803		invalidParams.Add(request.NewErrParamMinLen("ProviderName", 1))
13804	}
13805	if s.AddTags != nil {
13806		for i, v := range s.AddTags {
13807			if v == nil {
13808				continue
13809			}
13810			if err := v.Validate(); err != nil {
13811				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AddTags", i), err.(request.ErrInvalidParams))
13812			}
13813		}
13814	}
13815
13816	if invalidParams.Len() > 0 {
13817		return invalidParams
13818	}
13819	return nil
13820}
13821
13822// SetAcceptLanguage sets the AcceptLanguage field's value.
13823func (s *UpdatePortfolioInput) SetAcceptLanguage(v string) *UpdatePortfolioInput {
13824	s.AcceptLanguage = &v
13825	return s
13826}
13827
13828// SetAddTags sets the AddTags field's value.
13829func (s *UpdatePortfolioInput) SetAddTags(v []*Tag) *UpdatePortfolioInput {
13830	s.AddTags = v
13831	return s
13832}
13833
13834// SetDescription sets the Description field's value.
13835func (s *UpdatePortfolioInput) SetDescription(v string) *UpdatePortfolioInput {
13836	s.Description = &v
13837	return s
13838}
13839
13840// SetDisplayName sets the DisplayName field's value.
13841func (s *UpdatePortfolioInput) SetDisplayName(v string) *UpdatePortfolioInput {
13842	s.DisplayName = &v
13843	return s
13844}
13845
13846// SetId sets the Id field's value.
13847func (s *UpdatePortfolioInput) SetId(v string) *UpdatePortfolioInput {
13848	s.Id = &v
13849	return s
13850}
13851
13852// SetProviderName sets the ProviderName field's value.
13853func (s *UpdatePortfolioInput) SetProviderName(v string) *UpdatePortfolioInput {
13854	s.ProviderName = &v
13855	return s
13856}
13857
13858// SetRemoveTags sets the RemoveTags field's value.
13859func (s *UpdatePortfolioInput) SetRemoveTags(v []*string) *UpdatePortfolioInput {
13860	s.RemoveTags = v
13861	return s
13862}
13863
13864type UpdatePortfolioOutput struct {
13865	_ struct{} `type:"structure"`
13866
13867	// Information about the portfolio.
13868	PortfolioDetail *PortfolioDetail `type:"structure"`
13869
13870	// Information about the tags associated with the portfolio.
13871	Tags []*Tag `type:"list"`
13872}
13873
13874// String returns the string representation
13875func (s UpdatePortfolioOutput) String() string {
13876	return awsutil.Prettify(s)
13877}
13878
13879// GoString returns the string representation
13880func (s UpdatePortfolioOutput) GoString() string {
13881	return s.String()
13882}
13883
13884// SetPortfolioDetail sets the PortfolioDetail field's value.
13885func (s *UpdatePortfolioOutput) SetPortfolioDetail(v *PortfolioDetail) *UpdatePortfolioOutput {
13886	s.PortfolioDetail = v
13887	return s
13888}
13889
13890// SetTags sets the Tags field's value.
13891func (s *UpdatePortfolioOutput) SetTags(v []*Tag) *UpdatePortfolioOutput {
13892	s.Tags = v
13893	return s
13894}
13895
13896type UpdateProductInput struct {
13897	_ struct{} `type:"structure"`
13898
13899	// The language code.
13900	//
13901	//    * en - English (default)
13902	//
13903	//    * jp - Japanese
13904	//
13905	//    * zh - Chinese
13906	AcceptLanguage *string `type:"string"`
13907
13908	// The tags to add to the product.
13909	AddTags []*Tag `type:"list"`
13910
13911	// The updated description of the product.
13912	Description *string `type:"string"`
13913
13914	// The updated distributor of the product.
13915	Distributor *string `type:"string"`
13916
13917	// The product identifier.
13918	//
13919	// Id is a required field
13920	Id *string `min:"1" type:"string" required:"true"`
13921
13922	// The updated product name.
13923	Name *string `type:"string"`
13924
13925	// The updated owner of the product.
13926	Owner *string `type:"string"`
13927
13928	// The tags to remove from the product.
13929	RemoveTags []*string `type:"list"`
13930
13931	// The updated support description for the product.
13932	SupportDescription *string `type:"string"`
13933
13934	// The updated support email for the product.
13935	SupportEmail *string `type:"string"`
13936
13937	// The updated support URL for the product.
13938	SupportUrl *string `type:"string"`
13939}
13940
13941// String returns the string representation
13942func (s UpdateProductInput) String() string {
13943	return awsutil.Prettify(s)
13944}
13945
13946// GoString returns the string representation
13947func (s UpdateProductInput) GoString() string {
13948	return s.String()
13949}
13950
13951// Validate inspects the fields of the type to determine if they are valid.
13952func (s *UpdateProductInput) Validate() error {
13953	invalidParams := request.ErrInvalidParams{Context: "UpdateProductInput"}
13954	if s.Id == nil {
13955		invalidParams.Add(request.NewErrParamRequired("Id"))
13956	}
13957	if s.Id != nil && len(*s.Id) < 1 {
13958		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
13959	}
13960	if s.AddTags != nil {
13961		for i, v := range s.AddTags {
13962			if v == nil {
13963				continue
13964			}
13965			if err := v.Validate(); err != nil {
13966				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AddTags", i), err.(request.ErrInvalidParams))
13967			}
13968		}
13969	}
13970
13971	if invalidParams.Len() > 0 {
13972		return invalidParams
13973	}
13974	return nil
13975}
13976
13977// SetAcceptLanguage sets the AcceptLanguage field's value.
13978func (s *UpdateProductInput) SetAcceptLanguage(v string) *UpdateProductInput {
13979	s.AcceptLanguage = &v
13980	return s
13981}
13982
13983// SetAddTags sets the AddTags field's value.
13984func (s *UpdateProductInput) SetAddTags(v []*Tag) *UpdateProductInput {
13985	s.AddTags = v
13986	return s
13987}
13988
13989// SetDescription sets the Description field's value.
13990func (s *UpdateProductInput) SetDescription(v string) *UpdateProductInput {
13991	s.Description = &v
13992	return s
13993}
13994
13995// SetDistributor sets the Distributor field's value.
13996func (s *UpdateProductInput) SetDistributor(v string) *UpdateProductInput {
13997	s.Distributor = &v
13998	return s
13999}
14000
14001// SetId sets the Id field's value.
14002func (s *UpdateProductInput) SetId(v string) *UpdateProductInput {
14003	s.Id = &v
14004	return s
14005}
14006
14007// SetName sets the Name field's value.
14008func (s *UpdateProductInput) SetName(v string) *UpdateProductInput {
14009	s.Name = &v
14010	return s
14011}
14012
14013// SetOwner sets the Owner field's value.
14014func (s *UpdateProductInput) SetOwner(v string) *UpdateProductInput {
14015	s.Owner = &v
14016	return s
14017}
14018
14019// SetRemoveTags sets the RemoveTags field's value.
14020func (s *UpdateProductInput) SetRemoveTags(v []*string) *UpdateProductInput {
14021	s.RemoveTags = v
14022	return s
14023}
14024
14025// SetSupportDescription sets the SupportDescription field's value.
14026func (s *UpdateProductInput) SetSupportDescription(v string) *UpdateProductInput {
14027	s.SupportDescription = &v
14028	return s
14029}
14030
14031// SetSupportEmail sets the SupportEmail field's value.
14032func (s *UpdateProductInput) SetSupportEmail(v string) *UpdateProductInput {
14033	s.SupportEmail = &v
14034	return s
14035}
14036
14037// SetSupportUrl sets the SupportUrl field's value.
14038func (s *UpdateProductInput) SetSupportUrl(v string) *UpdateProductInput {
14039	s.SupportUrl = &v
14040	return s
14041}
14042
14043type UpdateProductOutput struct {
14044	_ struct{} `type:"structure"`
14045
14046	// Information about the product view.
14047	ProductViewDetail *ProductViewDetail `type:"structure"`
14048
14049	// Information about the tags associated with the product.
14050	Tags []*Tag `type:"list"`
14051}
14052
14053// String returns the string representation
14054func (s UpdateProductOutput) String() string {
14055	return awsutil.Prettify(s)
14056}
14057
14058// GoString returns the string representation
14059func (s UpdateProductOutput) GoString() string {
14060	return s.String()
14061}
14062
14063// SetProductViewDetail sets the ProductViewDetail field's value.
14064func (s *UpdateProductOutput) SetProductViewDetail(v *ProductViewDetail) *UpdateProductOutput {
14065	s.ProductViewDetail = v
14066	return s
14067}
14068
14069// SetTags sets the Tags field's value.
14070func (s *UpdateProductOutput) SetTags(v []*Tag) *UpdateProductOutput {
14071	s.Tags = v
14072	return s
14073}
14074
14075type UpdateProvisionedProductInput struct {
14076	_ struct{} `type:"structure"`
14077
14078	// The language code.
14079	//
14080	//    * en - English (default)
14081	//
14082	//    * jp - Japanese
14083	//
14084	//    * zh - Chinese
14085	AcceptLanguage *string `type:"string"`
14086
14087	// The new path identifier. This value is optional if the product has a default
14088	// path, and required if the product has more than one path.
14089	PathId *string `min:"1" type:"string"`
14090
14091	// The identifier of the provisioned product.
14092	ProductId *string `min:"1" type:"string"`
14093
14094	// The identifier of the provisioned product. You cannot specify both ProvisionedProductName
14095	// and ProvisionedProductId.
14096	ProvisionedProductId *string `min:"1" type:"string"`
14097
14098	// The updated name of the provisioned product. You cannot specify both ProvisionedProductName
14099	// and ProvisionedProductId.
14100	ProvisionedProductName *string `min:"1" type:"string"`
14101
14102	// The identifier of the provisioning artifact.
14103	ProvisioningArtifactId *string `min:"1" type:"string"`
14104
14105	// The new parameters.
14106	ProvisioningParameters []*UpdateProvisioningParameter `type:"list"`
14107
14108	// The idempotency token that uniquely identifies the provisioning update request.
14109	//
14110	// UpdateToken is a required field
14111	UpdateToken *string `min:"1" type:"string" required:"true" idempotencyToken:"true"`
14112}
14113
14114// String returns the string representation
14115func (s UpdateProvisionedProductInput) String() string {
14116	return awsutil.Prettify(s)
14117}
14118
14119// GoString returns the string representation
14120func (s UpdateProvisionedProductInput) GoString() string {
14121	return s.String()
14122}
14123
14124// Validate inspects the fields of the type to determine if they are valid.
14125func (s *UpdateProvisionedProductInput) Validate() error {
14126	invalidParams := request.ErrInvalidParams{Context: "UpdateProvisionedProductInput"}
14127	if s.PathId != nil && len(*s.PathId) < 1 {
14128		invalidParams.Add(request.NewErrParamMinLen("PathId", 1))
14129	}
14130	if s.ProductId != nil && len(*s.ProductId) < 1 {
14131		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
14132	}
14133	if s.ProvisionedProductId != nil && len(*s.ProvisionedProductId) < 1 {
14134		invalidParams.Add(request.NewErrParamMinLen("ProvisionedProductId", 1))
14135	}
14136	if s.ProvisionedProductName != nil && len(*s.ProvisionedProductName) < 1 {
14137		invalidParams.Add(request.NewErrParamMinLen("ProvisionedProductName", 1))
14138	}
14139	if s.ProvisioningArtifactId != nil && len(*s.ProvisioningArtifactId) < 1 {
14140		invalidParams.Add(request.NewErrParamMinLen("ProvisioningArtifactId", 1))
14141	}
14142	if s.UpdateToken == nil {
14143		invalidParams.Add(request.NewErrParamRequired("UpdateToken"))
14144	}
14145	if s.UpdateToken != nil && len(*s.UpdateToken) < 1 {
14146		invalidParams.Add(request.NewErrParamMinLen("UpdateToken", 1))
14147	}
14148	if s.ProvisioningParameters != nil {
14149		for i, v := range s.ProvisioningParameters {
14150			if v == nil {
14151				continue
14152			}
14153			if err := v.Validate(); err != nil {
14154				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ProvisioningParameters", i), err.(request.ErrInvalidParams))
14155			}
14156		}
14157	}
14158
14159	if invalidParams.Len() > 0 {
14160		return invalidParams
14161	}
14162	return nil
14163}
14164
14165// SetAcceptLanguage sets the AcceptLanguage field's value.
14166func (s *UpdateProvisionedProductInput) SetAcceptLanguage(v string) *UpdateProvisionedProductInput {
14167	s.AcceptLanguage = &v
14168	return s
14169}
14170
14171// SetPathId sets the PathId field's value.
14172func (s *UpdateProvisionedProductInput) SetPathId(v string) *UpdateProvisionedProductInput {
14173	s.PathId = &v
14174	return s
14175}
14176
14177// SetProductId sets the ProductId field's value.
14178func (s *UpdateProvisionedProductInput) SetProductId(v string) *UpdateProvisionedProductInput {
14179	s.ProductId = &v
14180	return s
14181}
14182
14183// SetProvisionedProductId sets the ProvisionedProductId field's value.
14184func (s *UpdateProvisionedProductInput) SetProvisionedProductId(v string) *UpdateProvisionedProductInput {
14185	s.ProvisionedProductId = &v
14186	return s
14187}
14188
14189// SetProvisionedProductName sets the ProvisionedProductName field's value.
14190func (s *UpdateProvisionedProductInput) SetProvisionedProductName(v string) *UpdateProvisionedProductInput {
14191	s.ProvisionedProductName = &v
14192	return s
14193}
14194
14195// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value.
14196func (s *UpdateProvisionedProductInput) SetProvisioningArtifactId(v string) *UpdateProvisionedProductInput {
14197	s.ProvisioningArtifactId = &v
14198	return s
14199}
14200
14201// SetProvisioningParameters sets the ProvisioningParameters field's value.
14202func (s *UpdateProvisionedProductInput) SetProvisioningParameters(v []*UpdateProvisioningParameter) *UpdateProvisionedProductInput {
14203	s.ProvisioningParameters = v
14204	return s
14205}
14206
14207// SetUpdateToken sets the UpdateToken field's value.
14208func (s *UpdateProvisionedProductInput) SetUpdateToken(v string) *UpdateProvisionedProductInput {
14209	s.UpdateToken = &v
14210	return s
14211}
14212
14213type UpdateProvisionedProductOutput struct {
14214	_ struct{} `type:"structure"`
14215
14216	// Information about the result of the request.
14217	RecordDetail *RecordDetail `type:"structure"`
14218}
14219
14220// String returns the string representation
14221func (s UpdateProvisionedProductOutput) String() string {
14222	return awsutil.Prettify(s)
14223}
14224
14225// GoString returns the string representation
14226func (s UpdateProvisionedProductOutput) GoString() string {
14227	return s.String()
14228}
14229
14230// SetRecordDetail sets the RecordDetail field's value.
14231func (s *UpdateProvisionedProductOutput) SetRecordDetail(v *RecordDetail) *UpdateProvisionedProductOutput {
14232	s.RecordDetail = v
14233	return s
14234}
14235
14236type UpdateProvisioningArtifactInput struct {
14237	_ struct{} `type:"structure"`
14238
14239	// The language code.
14240	//
14241	//    * en - English (default)
14242	//
14243	//    * jp - Japanese
14244	//
14245	//    * zh - Chinese
14246	AcceptLanguage *string `type:"string"`
14247
14248	// Indicates whether the product version is active.
14249	Active *bool `type:"boolean"`
14250
14251	// The updated description of the provisioning artifact.
14252	Description *string `type:"string"`
14253
14254	// The updated name of the provisioning artifact.
14255	Name *string `type:"string"`
14256
14257	// The product identifier.
14258	//
14259	// ProductId is a required field
14260	ProductId *string `min:"1" type:"string" required:"true"`
14261
14262	// The identifier of the provisioning artifact.
14263	//
14264	// ProvisioningArtifactId is a required field
14265	ProvisioningArtifactId *string `min:"1" type:"string" required:"true"`
14266}
14267
14268// String returns the string representation
14269func (s UpdateProvisioningArtifactInput) String() string {
14270	return awsutil.Prettify(s)
14271}
14272
14273// GoString returns the string representation
14274func (s UpdateProvisioningArtifactInput) GoString() string {
14275	return s.String()
14276}
14277
14278// Validate inspects the fields of the type to determine if they are valid.
14279func (s *UpdateProvisioningArtifactInput) Validate() error {
14280	invalidParams := request.ErrInvalidParams{Context: "UpdateProvisioningArtifactInput"}
14281	if s.ProductId == nil {
14282		invalidParams.Add(request.NewErrParamRequired("ProductId"))
14283	}
14284	if s.ProductId != nil && len(*s.ProductId) < 1 {
14285		invalidParams.Add(request.NewErrParamMinLen("ProductId", 1))
14286	}
14287	if s.ProvisioningArtifactId == nil {
14288		invalidParams.Add(request.NewErrParamRequired("ProvisioningArtifactId"))
14289	}
14290	if s.ProvisioningArtifactId != nil && len(*s.ProvisioningArtifactId) < 1 {
14291		invalidParams.Add(request.NewErrParamMinLen("ProvisioningArtifactId", 1))
14292	}
14293
14294	if invalidParams.Len() > 0 {
14295		return invalidParams
14296	}
14297	return nil
14298}
14299
14300// SetAcceptLanguage sets the AcceptLanguage field's value.
14301func (s *UpdateProvisioningArtifactInput) SetAcceptLanguage(v string) *UpdateProvisioningArtifactInput {
14302	s.AcceptLanguage = &v
14303	return s
14304}
14305
14306// SetActive sets the Active field's value.
14307func (s *UpdateProvisioningArtifactInput) SetActive(v bool) *UpdateProvisioningArtifactInput {
14308	s.Active = &v
14309	return s
14310}
14311
14312// SetDescription sets the Description field's value.
14313func (s *UpdateProvisioningArtifactInput) SetDescription(v string) *UpdateProvisioningArtifactInput {
14314	s.Description = &v
14315	return s
14316}
14317
14318// SetName sets the Name field's value.
14319func (s *UpdateProvisioningArtifactInput) SetName(v string) *UpdateProvisioningArtifactInput {
14320	s.Name = &v
14321	return s
14322}
14323
14324// SetProductId sets the ProductId field's value.
14325func (s *UpdateProvisioningArtifactInput) SetProductId(v string) *UpdateProvisioningArtifactInput {
14326	s.ProductId = &v
14327	return s
14328}
14329
14330// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value.
14331func (s *UpdateProvisioningArtifactInput) SetProvisioningArtifactId(v string) *UpdateProvisioningArtifactInput {
14332	s.ProvisioningArtifactId = &v
14333	return s
14334}
14335
14336type UpdateProvisioningArtifactOutput struct {
14337	_ struct{} `type:"structure"`
14338
14339	// The URL of the CloudFormation template in Amazon S3.
14340	Info map[string]*string `min:"1" type:"map"`
14341
14342	// Information about the provisioning artifact.
14343	ProvisioningArtifactDetail *ProvisioningArtifactDetail `type:"structure"`
14344
14345	// The status of the current request.
14346	Status *string `type:"string" enum:"Status"`
14347}
14348
14349// String returns the string representation
14350func (s UpdateProvisioningArtifactOutput) String() string {
14351	return awsutil.Prettify(s)
14352}
14353
14354// GoString returns the string representation
14355func (s UpdateProvisioningArtifactOutput) GoString() string {
14356	return s.String()
14357}
14358
14359// SetInfo sets the Info field's value.
14360func (s *UpdateProvisioningArtifactOutput) SetInfo(v map[string]*string) *UpdateProvisioningArtifactOutput {
14361	s.Info = v
14362	return s
14363}
14364
14365// SetProvisioningArtifactDetail sets the ProvisioningArtifactDetail field's value.
14366func (s *UpdateProvisioningArtifactOutput) SetProvisioningArtifactDetail(v *ProvisioningArtifactDetail) *UpdateProvisioningArtifactOutput {
14367	s.ProvisioningArtifactDetail = v
14368	return s
14369}
14370
14371// SetStatus sets the Status field's value.
14372func (s *UpdateProvisioningArtifactOutput) SetStatus(v string) *UpdateProvisioningArtifactOutput {
14373	s.Status = &v
14374	return s
14375}
14376
14377// The parameter key-value pair used to update a provisioned product.
14378type UpdateProvisioningParameter struct {
14379	_ struct{} `type:"structure"`
14380
14381	// The parameter key.
14382	Key *string `min:"1" type:"string"`
14383
14384	// If set to true, Value is ignored and the previous parameter value is kept.
14385	UsePreviousValue *bool `type:"boolean"`
14386
14387	// The parameter value.
14388	Value *string `type:"string"`
14389}
14390
14391// String returns the string representation
14392func (s UpdateProvisioningParameter) String() string {
14393	return awsutil.Prettify(s)
14394}
14395
14396// GoString returns the string representation
14397func (s UpdateProvisioningParameter) GoString() string {
14398	return s.String()
14399}
14400
14401// Validate inspects the fields of the type to determine if they are valid.
14402func (s *UpdateProvisioningParameter) Validate() error {
14403	invalidParams := request.ErrInvalidParams{Context: "UpdateProvisioningParameter"}
14404	if s.Key != nil && len(*s.Key) < 1 {
14405		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
14406	}
14407
14408	if invalidParams.Len() > 0 {
14409		return invalidParams
14410	}
14411	return nil
14412}
14413
14414// SetKey sets the Key field's value.
14415func (s *UpdateProvisioningParameter) SetKey(v string) *UpdateProvisioningParameter {
14416	s.Key = &v
14417	return s
14418}
14419
14420// SetUsePreviousValue sets the UsePreviousValue field's value.
14421func (s *UpdateProvisioningParameter) SetUsePreviousValue(v bool) *UpdateProvisioningParameter {
14422	s.UsePreviousValue = &v
14423	return s
14424}
14425
14426// SetValue sets the Value field's value.
14427func (s *UpdateProvisioningParameter) SetValue(v string) *UpdateProvisioningParameter {
14428	s.Value = &v
14429	return s
14430}
14431
14432type UpdateTagOptionInput struct {
14433	_ struct{} `type:"structure"`
14434
14435	// The updated active state.
14436	Active *bool `type:"boolean"`
14437
14438	// The TagOption identifier.
14439	//
14440	// Id is a required field
14441	Id *string `min:"1" type:"string" required:"true"`
14442
14443	// The updated value.
14444	Value *string `min:"1" type:"string"`
14445}
14446
14447// String returns the string representation
14448func (s UpdateTagOptionInput) String() string {
14449	return awsutil.Prettify(s)
14450}
14451
14452// GoString returns the string representation
14453func (s UpdateTagOptionInput) GoString() string {
14454	return s.String()
14455}
14456
14457// Validate inspects the fields of the type to determine if they are valid.
14458func (s *UpdateTagOptionInput) Validate() error {
14459	invalidParams := request.ErrInvalidParams{Context: "UpdateTagOptionInput"}
14460	if s.Id == nil {
14461		invalidParams.Add(request.NewErrParamRequired("Id"))
14462	}
14463	if s.Id != nil && len(*s.Id) < 1 {
14464		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
14465	}
14466	if s.Value != nil && len(*s.Value) < 1 {
14467		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
14468	}
14469
14470	if invalidParams.Len() > 0 {
14471		return invalidParams
14472	}
14473	return nil
14474}
14475
14476// SetActive sets the Active field's value.
14477func (s *UpdateTagOptionInput) SetActive(v bool) *UpdateTagOptionInput {
14478	s.Active = &v
14479	return s
14480}
14481
14482// SetId sets the Id field's value.
14483func (s *UpdateTagOptionInput) SetId(v string) *UpdateTagOptionInput {
14484	s.Id = &v
14485	return s
14486}
14487
14488// SetValue sets the Value field's value.
14489func (s *UpdateTagOptionInput) SetValue(v string) *UpdateTagOptionInput {
14490	s.Value = &v
14491	return s
14492}
14493
14494type UpdateTagOptionOutput struct {
14495	_ struct{} `type:"structure"`
14496
14497	// Information about the TagOption.
14498	TagOptionDetail *TagOptionDetail `type:"structure"`
14499}
14500
14501// String returns the string representation
14502func (s UpdateTagOptionOutput) String() string {
14503	return awsutil.Prettify(s)
14504}
14505
14506// GoString returns the string representation
14507func (s UpdateTagOptionOutput) GoString() string {
14508	return s.String()
14509}
14510
14511// SetTagOptionDetail sets the TagOptionDetail field's value.
14512func (s *UpdateTagOptionOutput) SetTagOptionDetail(v *TagOptionDetail) *UpdateTagOptionOutput {
14513	s.TagOptionDetail = v
14514	return s
14515}
14516
14517// Additional information provided by the administrator.
14518type UsageInstruction struct {
14519	_ struct{} `type:"structure"`
14520
14521	// The usage instruction type for the value.
14522	Type *string `type:"string"`
14523
14524	// The usage instruction value for this type.
14525	Value *string `type:"string"`
14526}
14527
14528// String returns the string representation
14529func (s UsageInstruction) String() string {
14530	return awsutil.Prettify(s)
14531}
14532
14533// GoString returns the string representation
14534func (s UsageInstruction) GoString() string {
14535	return s.String()
14536}
14537
14538// SetType sets the Type field's value.
14539func (s *UsageInstruction) SetType(v string) *UsageInstruction {
14540	s.Type = &v
14541	return s
14542}
14543
14544// SetValue sets the Value field's value.
14545func (s *UsageInstruction) SetValue(v string) *UsageInstruction {
14546	s.Value = &v
14547	return s
14548}
14549
14550const (
14551	// AccessLevelFilterKeyAccount is a AccessLevelFilterKey enum value
14552	AccessLevelFilterKeyAccount = "Account"
14553
14554	// AccessLevelFilterKeyRole is a AccessLevelFilterKey enum value
14555	AccessLevelFilterKeyRole = "Role"
14556
14557	// AccessLevelFilterKeyUser is a AccessLevelFilterKey enum value
14558	AccessLevelFilterKeyUser = "User"
14559)
14560
14561const (
14562	// ChangeActionAdd is a ChangeAction enum value
14563	ChangeActionAdd = "ADD"
14564
14565	// ChangeActionModify is a ChangeAction enum value
14566	ChangeActionModify = "MODIFY"
14567
14568	// ChangeActionRemove is a ChangeAction enum value
14569	ChangeActionRemove = "REMOVE"
14570)
14571
14572const (
14573	// CopyOptionCopyTags is a CopyOption enum value
14574	CopyOptionCopyTags = "CopyTags"
14575)
14576
14577const (
14578	// CopyProductStatusSucceeded is a CopyProductStatus enum value
14579	CopyProductStatusSucceeded = "SUCCEEDED"
14580
14581	// CopyProductStatusInProgress is a CopyProductStatus enum value
14582	CopyProductStatusInProgress = "IN_PROGRESS"
14583
14584	// CopyProductStatusFailed is a CopyProductStatus enum value
14585	CopyProductStatusFailed = "FAILED"
14586)
14587
14588const (
14589	// EvaluationTypeStatic is a EvaluationType enum value
14590	EvaluationTypeStatic = "STATIC"
14591
14592	// EvaluationTypeDynamic is a EvaluationType enum value
14593	EvaluationTypeDynamic = "DYNAMIC"
14594)
14595
14596const (
14597	// PrincipalTypeIam is a PrincipalType enum value
14598	PrincipalTypeIam = "IAM"
14599)
14600
14601const (
14602	// ProductSourceAccount is a ProductSource enum value
14603	ProductSourceAccount = "ACCOUNT"
14604)
14605
14606const (
14607	// ProductTypeCloudFormationTemplate is a ProductType enum value
14608	ProductTypeCloudFormationTemplate = "CLOUD_FORMATION_TEMPLATE"
14609
14610	// ProductTypeMarketplace is a ProductType enum value
14611	ProductTypeMarketplace = "MARKETPLACE"
14612)
14613
14614const (
14615	// ProductViewFilterByFullTextSearch is a ProductViewFilterBy enum value
14616	ProductViewFilterByFullTextSearch = "FullTextSearch"
14617
14618	// ProductViewFilterByOwner is a ProductViewFilterBy enum value
14619	ProductViewFilterByOwner = "Owner"
14620
14621	// ProductViewFilterByProductType is a ProductViewFilterBy enum value
14622	ProductViewFilterByProductType = "ProductType"
14623
14624	// ProductViewFilterBySourceProductId is a ProductViewFilterBy enum value
14625	ProductViewFilterBySourceProductId = "SourceProductId"
14626)
14627
14628const (
14629	// ProductViewSortByTitle is a ProductViewSortBy enum value
14630	ProductViewSortByTitle = "Title"
14631
14632	// ProductViewSortByVersionCount is a ProductViewSortBy enum value
14633	ProductViewSortByVersionCount = "VersionCount"
14634
14635	// ProductViewSortByCreationDate is a ProductViewSortBy enum value
14636	ProductViewSortByCreationDate = "CreationDate"
14637)
14638
14639const (
14640	// ProvisionedProductPlanStatusCreateInProgress is a ProvisionedProductPlanStatus enum value
14641	ProvisionedProductPlanStatusCreateInProgress = "CREATE_IN_PROGRESS"
14642
14643	// ProvisionedProductPlanStatusCreateSuccess is a ProvisionedProductPlanStatus enum value
14644	ProvisionedProductPlanStatusCreateSuccess = "CREATE_SUCCESS"
14645
14646	// ProvisionedProductPlanStatusCreateFailed is a ProvisionedProductPlanStatus enum value
14647	ProvisionedProductPlanStatusCreateFailed = "CREATE_FAILED"
14648
14649	// ProvisionedProductPlanStatusExecuteInProgress is a ProvisionedProductPlanStatus enum value
14650	ProvisionedProductPlanStatusExecuteInProgress = "EXECUTE_IN_PROGRESS"
14651
14652	// ProvisionedProductPlanStatusExecuteSuccess is a ProvisionedProductPlanStatus enum value
14653	ProvisionedProductPlanStatusExecuteSuccess = "EXECUTE_SUCCESS"
14654
14655	// ProvisionedProductPlanStatusExecuteFailed is a ProvisionedProductPlanStatus enum value
14656	ProvisionedProductPlanStatusExecuteFailed = "EXECUTE_FAILED"
14657)
14658
14659const (
14660	// ProvisionedProductPlanTypeCloudformation is a ProvisionedProductPlanType enum value
14661	ProvisionedProductPlanTypeCloudformation = "CLOUDFORMATION"
14662)
14663
14664const (
14665	// ProvisionedProductStatusAvailable is a ProvisionedProductStatus enum value
14666	ProvisionedProductStatusAvailable = "AVAILABLE"
14667
14668	// ProvisionedProductStatusUnderChange is a ProvisionedProductStatus enum value
14669	ProvisionedProductStatusUnderChange = "UNDER_CHANGE"
14670
14671	// ProvisionedProductStatusTainted is a ProvisionedProductStatus enum value
14672	ProvisionedProductStatusTainted = "TAINTED"
14673
14674	// ProvisionedProductStatusError is a ProvisionedProductStatus enum value
14675	ProvisionedProductStatusError = "ERROR"
14676
14677	// ProvisionedProductStatusPlanInProgress is a ProvisionedProductStatus enum value
14678	ProvisionedProductStatusPlanInProgress = "PLAN_IN_PROGRESS"
14679)
14680
14681const (
14682	// ProvisionedProductViewFilterBySearchQuery is a ProvisionedProductViewFilterBy enum value
14683	ProvisionedProductViewFilterBySearchQuery = "SearchQuery"
14684)
14685
14686const (
14687	// ProvisioningArtifactPropertyNameId is a ProvisioningArtifactPropertyName enum value
14688	ProvisioningArtifactPropertyNameId = "Id"
14689)
14690
14691const (
14692	// ProvisioningArtifactTypeCloudFormationTemplate is a ProvisioningArtifactType enum value
14693	ProvisioningArtifactTypeCloudFormationTemplate = "CLOUD_FORMATION_TEMPLATE"
14694
14695	// ProvisioningArtifactTypeMarketplaceAmi is a ProvisioningArtifactType enum value
14696	ProvisioningArtifactTypeMarketplaceAmi = "MARKETPLACE_AMI"
14697
14698	// ProvisioningArtifactTypeMarketplaceCar is a ProvisioningArtifactType enum value
14699	ProvisioningArtifactTypeMarketplaceCar = "MARKETPLACE_CAR"
14700)
14701
14702const (
14703	// RecordStatusCreated is a RecordStatus enum value
14704	RecordStatusCreated = "CREATED"
14705
14706	// RecordStatusInProgress is a RecordStatus enum value
14707	RecordStatusInProgress = "IN_PROGRESS"
14708
14709	// RecordStatusInProgressInError is a RecordStatus enum value
14710	RecordStatusInProgressInError = "IN_PROGRESS_IN_ERROR"
14711
14712	// RecordStatusSucceeded is a RecordStatus enum value
14713	RecordStatusSucceeded = "SUCCEEDED"
14714
14715	// RecordStatusFailed is a RecordStatus enum value
14716	RecordStatusFailed = "FAILED"
14717)
14718
14719const (
14720	// ReplacementTrue is a Replacement enum value
14721	ReplacementTrue = "TRUE"
14722
14723	// ReplacementFalse is a Replacement enum value
14724	ReplacementFalse = "FALSE"
14725
14726	// ReplacementConditional is a Replacement enum value
14727	ReplacementConditional = "CONDITIONAL"
14728)
14729
14730const (
14731	// RequiresRecreationNever is a RequiresRecreation enum value
14732	RequiresRecreationNever = "NEVER"
14733
14734	// RequiresRecreationConditionally is a RequiresRecreation enum value
14735	RequiresRecreationConditionally = "CONDITIONALLY"
14736
14737	// RequiresRecreationAlways is a RequiresRecreation enum value
14738	RequiresRecreationAlways = "ALWAYS"
14739)
14740
14741const (
14742	// ResourceAttributeProperties is a ResourceAttribute enum value
14743	ResourceAttributeProperties = "PROPERTIES"
14744
14745	// ResourceAttributeMetadata is a ResourceAttribute enum value
14746	ResourceAttributeMetadata = "METADATA"
14747
14748	// ResourceAttributeCreationpolicy is a ResourceAttribute enum value
14749	ResourceAttributeCreationpolicy = "CREATIONPOLICY"
14750
14751	// ResourceAttributeUpdatepolicy is a ResourceAttribute enum value
14752	ResourceAttributeUpdatepolicy = "UPDATEPOLICY"
14753
14754	// ResourceAttributeDeletionpolicy is a ResourceAttribute enum value
14755	ResourceAttributeDeletionpolicy = "DELETIONPOLICY"
14756
14757	// ResourceAttributeTags is a ResourceAttribute enum value
14758	ResourceAttributeTags = "TAGS"
14759)
14760
14761const (
14762	// SortOrderAscending is a SortOrder enum value
14763	SortOrderAscending = "ASCENDING"
14764
14765	// SortOrderDescending is a SortOrder enum value
14766	SortOrderDescending = "DESCENDING"
14767)
14768
14769const (
14770	// StatusAvailable is a Status enum value
14771	StatusAvailable = "AVAILABLE"
14772
14773	// StatusCreating is a Status enum value
14774	StatusCreating = "CREATING"
14775
14776	// StatusFailed is a Status enum value
14777	StatusFailed = "FAILED"
14778)
14779