1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package appregistry
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	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restjson"
14)
15
16const opAssociateAttributeGroup = "AssociateAttributeGroup"
17
18// AssociateAttributeGroupRequest generates a "aws/request.Request" representing the
19// client's request for the AssociateAttributeGroup operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See AssociateAttributeGroup for more information on using the AssociateAttributeGroup
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the AssociateAttributeGroupRequest method.
34//    req, resp := client.AssociateAttributeGroupRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/AssociateAttributeGroup
42func (c *AppRegistry) AssociateAttributeGroupRequest(input *AssociateAttributeGroupInput) (req *request.Request, output *AssociateAttributeGroupOutput) {
43	op := &request.Operation{
44		Name:       opAssociateAttributeGroup,
45		HTTPMethod: "PUT",
46		HTTPPath:   "/applications/{application}/attribute-groups/{attributeGroup}",
47	}
48
49	if input == nil {
50		input = &AssociateAttributeGroupInput{}
51	}
52
53	output = &AssociateAttributeGroupOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// AssociateAttributeGroup API operation for AWS Service Catalog App Registry.
59//
60// Associates an attribute group with an application to augment the application's
61// metadata with the group's attributes. This feature enables applications to
62// be described with user-defined details that are machine-readable, such as
63// third-party integrations.
64//
65// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
66// with awserr.Error's Code and Message methods to get detailed information about
67// the error.
68//
69// See the AWS API reference guide for AWS Service Catalog App Registry's
70// API operation AssociateAttributeGroup for usage and error information.
71//
72// Returned Error Types:
73//   * ResourceNotFoundException
74//   The specified resource does not exist.
75//
76//   * ValidationException
77//   The request has invalid or missing parameters.
78//
79//   * InternalServerException
80//   The service is experiencing internal problems.
81//
82//   * ServiceQuotaExceededException
83//   The maximum number of resources per account has been reached.
84//
85// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/AssociateAttributeGroup
86func (c *AppRegistry) AssociateAttributeGroup(input *AssociateAttributeGroupInput) (*AssociateAttributeGroupOutput, error) {
87	req, out := c.AssociateAttributeGroupRequest(input)
88	return out, req.Send()
89}
90
91// AssociateAttributeGroupWithContext is the same as AssociateAttributeGroup with the addition of
92// the ability to pass a context and additional request options.
93//
94// See AssociateAttributeGroup for details on how to use this API operation.
95//
96// The context must be non-nil and will be used for request cancellation. If
97// the context is nil a panic will occur. In the future the SDK may create
98// sub-contexts for http.Requests. See https://golang.org/pkg/context/
99// for more information on using Contexts.
100func (c *AppRegistry) AssociateAttributeGroupWithContext(ctx aws.Context, input *AssociateAttributeGroupInput, opts ...request.Option) (*AssociateAttributeGroupOutput, error) {
101	req, out := c.AssociateAttributeGroupRequest(input)
102	req.SetContext(ctx)
103	req.ApplyOptions(opts...)
104	return out, req.Send()
105}
106
107const opAssociateResource = "AssociateResource"
108
109// AssociateResourceRequest generates a "aws/request.Request" representing the
110// client's request for the AssociateResource operation. The "output" return
111// value will be populated with the request's response once the request completes
112// successfully.
113//
114// Use "Send" method on the returned Request to send the API call to the service.
115// the "output" return value is not valid until after Send returns without error.
116//
117// See AssociateResource for more information on using the AssociateResource
118// API call, and error handling.
119//
120// This method is useful when you want to inject custom logic or configuration
121// into the SDK's request lifecycle. Such as custom headers, or retry logic.
122//
123//
124//    // Example sending a request using the AssociateResourceRequest method.
125//    req, resp := client.AssociateResourceRequest(params)
126//
127//    err := req.Send()
128//    if err == nil { // resp is now filled
129//        fmt.Println(resp)
130//    }
131//
132// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/AssociateResource
133func (c *AppRegistry) AssociateResourceRequest(input *AssociateResourceInput) (req *request.Request, output *AssociateResourceOutput) {
134	op := &request.Operation{
135		Name:       opAssociateResource,
136		HTTPMethod: "PUT",
137		HTTPPath:   "/applications/{application}/resources/{resourceType}/{resource}",
138	}
139
140	if input == nil {
141		input = &AssociateResourceInput{}
142	}
143
144	output = &AssociateResourceOutput{}
145	req = c.newRequest(op, input, output)
146	return
147}
148
149// AssociateResource API operation for AWS Service Catalog App Registry.
150//
151// Associates a resource with an application. Both the resource and the application
152// can be specified either by ID or name.
153//
154// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
155// with awserr.Error's Code and Message methods to get detailed information about
156// the error.
157//
158// See the AWS API reference guide for AWS Service Catalog App Registry's
159// API operation AssociateResource for usage and error information.
160//
161// Returned Error Types:
162//   * ResourceNotFoundException
163//   The specified resource does not exist.
164//
165//   * InternalServerException
166//   The service is experiencing internal problems.
167//
168//   * ServiceQuotaExceededException
169//   The maximum number of resources per account has been reached.
170//
171//   * ConflictException
172//   There was a conflict when processing the request (for example, a resource
173//   with the given name already exists within the account).
174//
175// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/AssociateResource
176func (c *AppRegistry) AssociateResource(input *AssociateResourceInput) (*AssociateResourceOutput, error) {
177	req, out := c.AssociateResourceRequest(input)
178	return out, req.Send()
179}
180
181// AssociateResourceWithContext is the same as AssociateResource with the addition of
182// the ability to pass a context and additional request options.
183//
184// See AssociateResource for details on how to use this API operation.
185//
186// The context must be non-nil and will be used for request cancellation. If
187// the context is nil a panic will occur. In the future the SDK may create
188// sub-contexts for http.Requests. See https://golang.org/pkg/context/
189// for more information on using Contexts.
190func (c *AppRegistry) AssociateResourceWithContext(ctx aws.Context, input *AssociateResourceInput, opts ...request.Option) (*AssociateResourceOutput, error) {
191	req, out := c.AssociateResourceRequest(input)
192	req.SetContext(ctx)
193	req.ApplyOptions(opts...)
194	return out, req.Send()
195}
196
197const opCreateApplication = "CreateApplication"
198
199// CreateApplicationRequest generates a "aws/request.Request" representing the
200// client's request for the CreateApplication operation. The "output" return
201// value will be populated with the request's response once the request completes
202// successfully.
203//
204// Use "Send" method on the returned Request to send the API call to the service.
205// the "output" return value is not valid until after Send returns without error.
206//
207// See CreateApplication for more information on using the CreateApplication
208// API call, and error handling.
209//
210// This method is useful when you want to inject custom logic or configuration
211// into the SDK's request lifecycle. Such as custom headers, or retry logic.
212//
213//
214//    // Example sending a request using the CreateApplicationRequest method.
215//    req, resp := client.CreateApplicationRequest(params)
216//
217//    err := req.Send()
218//    if err == nil { // resp is now filled
219//        fmt.Println(resp)
220//    }
221//
222// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/CreateApplication
223func (c *AppRegistry) CreateApplicationRequest(input *CreateApplicationInput) (req *request.Request, output *CreateApplicationOutput) {
224	op := &request.Operation{
225		Name:       opCreateApplication,
226		HTTPMethod: "POST",
227		HTTPPath:   "/applications",
228	}
229
230	if input == nil {
231		input = &CreateApplicationInput{}
232	}
233
234	output = &CreateApplicationOutput{}
235	req = c.newRequest(op, input, output)
236	return
237}
238
239// CreateApplication API operation for AWS Service Catalog App Registry.
240//
241// Creates a new application that is the top-level node in a hierarchy of related
242// cloud resource abstractions.
243//
244// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
245// with awserr.Error's Code and Message methods to get detailed information about
246// the error.
247//
248// See the AWS API reference guide for AWS Service Catalog App Registry's
249// API operation CreateApplication for usage and error information.
250//
251// Returned Error Types:
252//   * ServiceQuotaExceededException
253//   The maximum number of resources per account has been reached.
254//
255//   * ConflictException
256//   There was a conflict when processing the request (for example, a resource
257//   with the given name already exists within the account).
258//
259//   * InternalServerException
260//   The service is experiencing internal problems.
261//
262// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/CreateApplication
263func (c *AppRegistry) CreateApplication(input *CreateApplicationInput) (*CreateApplicationOutput, error) {
264	req, out := c.CreateApplicationRequest(input)
265	return out, req.Send()
266}
267
268// CreateApplicationWithContext is the same as CreateApplication with the addition of
269// the ability to pass a context and additional request options.
270//
271// See CreateApplication for details on how to use this API operation.
272//
273// The context must be non-nil and will be used for request cancellation. If
274// the context is nil a panic will occur. In the future the SDK may create
275// sub-contexts for http.Requests. See https://golang.org/pkg/context/
276// for more information on using Contexts.
277func (c *AppRegistry) CreateApplicationWithContext(ctx aws.Context, input *CreateApplicationInput, opts ...request.Option) (*CreateApplicationOutput, error) {
278	req, out := c.CreateApplicationRequest(input)
279	req.SetContext(ctx)
280	req.ApplyOptions(opts...)
281	return out, req.Send()
282}
283
284const opCreateAttributeGroup = "CreateAttributeGroup"
285
286// CreateAttributeGroupRequest generates a "aws/request.Request" representing the
287// client's request for the CreateAttributeGroup operation. The "output" return
288// value will be populated with the request's response once the request completes
289// successfully.
290//
291// Use "Send" method on the returned Request to send the API call to the service.
292// the "output" return value is not valid until after Send returns without error.
293//
294// See CreateAttributeGroup for more information on using the CreateAttributeGroup
295// API call, and error handling.
296//
297// This method is useful when you want to inject custom logic or configuration
298// into the SDK's request lifecycle. Such as custom headers, or retry logic.
299//
300//
301//    // Example sending a request using the CreateAttributeGroupRequest method.
302//    req, resp := client.CreateAttributeGroupRequest(params)
303//
304//    err := req.Send()
305//    if err == nil { // resp is now filled
306//        fmt.Println(resp)
307//    }
308//
309// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/CreateAttributeGroup
310func (c *AppRegistry) CreateAttributeGroupRequest(input *CreateAttributeGroupInput) (req *request.Request, output *CreateAttributeGroupOutput) {
311	op := &request.Operation{
312		Name:       opCreateAttributeGroup,
313		HTTPMethod: "POST",
314		HTTPPath:   "/attribute-groups",
315	}
316
317	if input == nil {
318		input = &CreateAttributeGroupInput{}
319	}
320
321	output = &CreateAttributeGroupOutput{}
322	req = c.newRequest(op, input, output)
323	return
324}
325
326// CreateAttributeGroup API operation for AWS Service Catalog App Registry.
327//
328// Creates a new attribute group as a container for user-defined attributes.
329// This feature enables users to have full control over their cloud application's
330// metadata in a rich machine-readable format to facilitate integration with
331// automated workflows and third-party tools.
332//
333// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
334// with awserr.Error's Code and Message methods to get detailed information about
335// the error.
336//
337// See the AWS API reference guide for AWS Service Catalog App Registry's
338// API operation CreateAttributeGroup for usage and error information.
339//
340// Returned Error Types:
341//   * ServiceQuotaExceededException
342//   The maximum number of resources per account has been reached.
343//
344//   * ConflictException
345//   There was a conflict when processing the request (for example, a resource
346//   with the given name already exists within the account).
347//
348//   * ValidationException
349//   The request has invalid or missing parameters.
350//
351//   * InternalServerException
352//   The service is experiencing internal problems.
353//
354// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/CreateAttributeGroup
355func (c *AppRegistry) CreateAttributeGroup(input *CreateAttributeGroupInput) (*CreateAttributeGroupOutput, error) {
356	req, out := c.CreateAttributeGroupRequest(input)
357	return out, req.Send()
358}
359
360// CreateAttributeGroupWithContext is the same as CreateAttributeGroup with the addition of
361// the ability to pass a context and additional request options.
362//
363// See CreateAttributeGroup for details on how to use this API operation.
364//
365// The context must be non-nil and will be used for request cancellation. If
366// the context is nil a panic will occur. In the future the SDK may create
367// sub-contexts for http.Requests. See https://golang.org/pkg/context/
368// for more information on using Contexts.
369func (c *AppRegistry) CreateAttributeGroupWithContext(ctx aws.Context, input *CreateAttributeGroupInput, opts ...request.Option) (*CreateAttributeGroupOutput, error) {
370	req, out := c.CreateAttributeGroupRequest(input)
371	req.SetContext(ctx)
372	req.ApplyOptions(opts...)
373	return out, req.Send()
374}
375
376const opDeleteApplication = "DeleteApplication"
377
378// DeleteApplicationRequest generates a "aws/request.Request" representing the
379// client's request for the DeleteApplication operation. The "output" return
380// value will be populated with the request's response once the request completes
381// successfully.
382//
383// Use "Send" method on the returned Request to send the API call to the service.
384// the "output" return value is not valid until after Send returns without error.
385//
386// See DeleteApplication for more information on using the DeleteApplication
387// API call, and error handling.
388//
389// This method is useful when you want to inject custom logic or configuration
390// into the SDK's request lifecycle. Such as custom headers, or retry logic.
391//
392//
393//    // Example sending a request using the DeleteApplicationRequest method.
394//    req, resp := client.DeleteApplicationRequest(params)
395//
396//    err := req.Send()
397//    if err == nil { // resp is now filled
398//        fmt.Println(resp)
399//    }
400//
401// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/DeleteApplication
402func (c *AppRegistry) DeleteApplicationRequest(input *DeleteApplicationInput) (req *request.Request, output *DeleteApplicationOutput) {
403	op := &request.Operation{
404		Name:       opDeleteApplication,
405		HTTPMethod: "DELETE",
406		HTTPPath:   "/applications/{application}",
407	}
408
409	if input == nil {
410		input = &DeleteApplicationInput{}
411	}
412
413	output = &DeleteApplicationOutput{}
414	req = c.newRequest(op, input, output)
415	return
416}
417
418// DeleteApplication API operation for AWS Service Catalog App Registry.
419//
420// Deletes an application that is specified either by its application ID or
421// name. All associated attribute groups and resources must be disassociated
422// from it before deleting an application.
423//
424// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
425// with awserr.Error's Code and Message methods to get detailed information about
426// the error.
427//
428// See the AWS API reference guide for AWS Service Catalog App Registry's
429// API operation DeleteApplication for usage and error information.
430//
431// Returned Error Types:
432//   * ResourceNotFoundException
433//   The specified resource does not exist.
434//
435//   * ValidationException
436//   The request has invalid or missing parameters.
437//
438//   * InternalServerException
439//   The service is experiencing internal problems.
440//
441// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/DeleteApplication
442func (c *AppRegistry) DeleteApplication(input *DeleteApplicationInput) (*DeleteApplicationOutput, error) {
443	req, out := c.DeleteApplicationRequest(input)
444	return out, req.Send()
445}
446
447// DeleteApplicationWithContext is the same as DeleteApplication with the addition of
448// the ability to pass a context and additional request options.
449//
450// See DeleteApplication for details on how to use this API operation.
451//
452// The context must be non-nil and will be used for request cancellation. If
453// the context is nil a panic will occur. In the future the SDK may create
454// sub-contexts for http.Requests. See https://golang.org/pkg/context/
455// for more information on using Contexts.
456func (c *AppRegistry) DeleteApplicationWithContext(ctx aws.Context, input *DeleteApplicationInput, opts ...request.Option) (*DeleteApplicationOutput, error) {
457	req, out := c.DeleteApplicationRequest(input)
458	req.SetContext(ctx)
459	req.ApplyOptions(opts...)
460	return out, req.Send()
461}
462
463const opDeleteAttributeGroup = "DeleteAttributeGroup"
464
465// DeleteAttributeGroupRequest generates a "aws/request.Request" representing the
466// client's request for the DeleteAttributeGroup operation. The "output" return
467// value will be populated with the request's response once the request completes
468// successfully.
469//
470// Use "Send" method on the returned Request to send the API call to the service.
471// the "output" return value is not valid until after Send returns without error.
472//
473// See DeleteAttributeGroup for more information on using the DeleteAttributeGroup
474// API call, and error handling.
475//
476// This method is useful when you want to inject custom logic or configuration
477// into the SDK's request lifecycle. Such as custom headers, or retry logic.
478//
479//
480//    // Example sending a request using the DeleteAttributeGroupRequest method.
481//    req, resp := client.DeleteAttributeGroupRequest(params)
482//
483//    err := req.Send()
484//    if err == nil { // resp is now filled
485//        fmt.Println(resp)
486//    }
487//
488// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/DeleteAttributeGroup
489func (c *AppRegistry) DeleteAttributeGroupRequest(input *DeleteAttributeGroupInput) (req *request.Request, output *DeleteAttributeGroupOutput) {
490	op := &request.Operation{
491		Name:       opDeleteAttributeGroup,
492		HTTPMethod: "DELETE",
493		HTTPPath:   "/attribute-groups/{attributeGroup}",
494	}
495
496	if input == nil {
497		input = &DeleteAttributeGroupInput{}
498	}
499
500	output = &DeleteAttributeGroupOutput{}
501	req = c.newRequest(op, input, output)
502	return
503}
504
505// DeleteAttributeGroup API operation for AWS Service Catalog App Registry.
506//
507// Deletes an attribute group, specified either by its attribute group ID or
508// name.
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 App Registry's
515// API operation DeleteAttributeGroup for usage and error information.
516//
517// Returned Error Types:
518//   * ResourceNotFoundException
519//   The specified resource does not exist.
520//
521//   * ValidationException
522//   The request has invalid or missing parameters.
523//
524//   * InternalServerException
525//   The service is experiencing internal problems.
526//
527// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/DeleteAttributeGroup
528func (c *AppRegistry) DeleteAttributeGroup(input *DeleteAttributeGroupInput) (*DeleteAttributeGroupOutput, error) {
529	req, out := c.DeleteAttributeGroupRequest(input)
530	return out, req.Send()
531}
532
533// DeleteAttributeGroupWithContext is the same as DeleteAttributeGroup with the addition of
534// the ability to pass a context and additional request options.
535//
536// See DeleteAttributeGroup for details on how to use this API operation.
537//
538// The context must be non-nil and will be used for request cancellation. If
539// the context is nil a panic will occur. In the future the SDK may create
540// sub-contexts for http.Requests. See https://golang.org/pkg/context/
541// for more information on using Contexts.
542func (c *AppRegistry) DeleteAttributeGroupWithContext(ctx aws.Context, input *DeleteAttributeGroupInput, opts ...request.Option) (*DeleteAttributeGroupOutput, error) {
543	req, out := c.DeleteAttributeGroupRequest(input)
544	req.SetContext(ctx)
545	req.ApplyOptions(opts...)
546	return out, req.Send()
547}
548
549const opDisassociateAttributeGroup = "DisassociateAttributeGroup"
550
551// DisassociateAttributeGroupRequest generates a "aws/request.Request" representing the
552// client's request for the DisassociateAttributeGroup operation. The "output" return
553// value will be populated with the request's response once the request completes
554// successfully.
555//
556// Use "Send" method on the returned Request to send the API call to the service.
557// the "output" return value is not valid until after Send returns without error.
558//
559// See DisassociateAttributeGroup for more information on using the DisassociateAttributeGroup
560// API call, and error handling.
561//
562// This method is useful when you want to inject custom logic or configuration
563// into the SDK's request lifecycle. Such as custom headers, or retry logic.
564//
565//
566//    // Example sending a request using the DisassociateAttributeGroupRequest method.
567//    req, resp := client.DisassociateAttributeGroupRequest(params)
568//
569//    err := req.Send()
570//    if err == nil { // resp is now filled
571//        fmt.Println(resp)
572//    }
573//
574// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/DisassociateAttributeGroup
575func (c *AppRegistry) DisassociateAttributeGroupRequest(input *DisassociateAttributeGroupInput) (req *request.Request, output *DisassociateAttributeGroupOutput) {
576	op := &request.Operation{
577		Name:       opDisassociateAttributeGroup,
578		HTTPMethod: "DELETE",
579		HTTPPath:   "/applications/{application}/attribute-groups/{attributeGroup}",
580	}
581
582	if input == nil {
583		input = &DisassociateAttributeGroupInput{}
584	}
585
586	output = &DisassociateAttributeGroupOutput{}
587	req = c.newRequest(op, input, output)
588	return
589}
590
591// DisassociateAttributeGroup API operation for AWS Service Catalog App Registry.
592//
593// Disassociates an attribute group from an application to remove the extra
594// attributes contained in the attribute group from the application's metadata.
595// This operation reverts AssociateAttributeGroup.
596//
597// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
598// with awserr.Error's Code and Message methods to get detailed information about
599// the error.
600//
601// See the AWS API reference guide for AWS Service Catalog App Registry's
602// API operation DisassociateAttributeGroup for usage and error information.
603//
604// Returned Error Types:
605//   * ResourceNotFoundException
606//   The specified resource does not exist.
607//
608//   * ValidationException
609//   The request has invalid or missing parameters.
610//
611//   * InternalServerException
612//   The service is experiencing internal problems.
613//
614// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/DisassociateAttributeGroup
615func (c *AppRegistry) DisassociateAttributeGroup(input *DisassociateAttributeGroupInput) (*DisassociateAttributeGroupOutput, error) {
616	req, out := c.DisassociateAttributeGroupRequest(input)
617	return out, req.Send()
618}
619
620// DisassociateAttributeGroupWithContext is the same as DisassociateAttributeGroup with the addition of
621// the ability to pass a context and additional request options.
622//
623// See DisassociateAttributeGroup for details on how to use this API operation.
624//
625// The context must be non-nil and will be used for request cancellation. If
626// the context is nil a panic will occur. In the future the SDK may create
627// sub-contexts for http.Requests. See https://golang.org/pkg/context/
628// for more information on using Contexts.
629func (c *AppRegistry) DisassociateAttributeGroupWithContext(ctx aws.Context, input *DisassociateAttributeGroupInput, opts ...request.Option) (*DisassociateAttributeGroupOutput, error) {
630	req, out := c.DisassociateAttributeGroupRequest(input)
631	req.SetContext(ctx)
632	req.ApplyOptions(opts...)
633	return out, req.Send()
634}
635
636const opDisassociateResource = "DisassociateResource"
637
638// DisassociateResourceRequest generates a "aws/request.Request" representing the
639// client's request for the DisassociateResource operation. The "output" return
640// value will be populated with the request's response once the request completes
641// successfully.
642//
643// Use "Send" method on the returned Request to send the API call to the service.
644// the "output" return value is not valid until after Send returns without error.
645//
646// See DisassociateResource for more information on using the DisassociateResource
647// API call, and error handling.
648//
649// This method is useful when you want to inject custom logic or configuration
650// into the SDK's request lifecycle. Such as custom headers, or retry logic.
651//
652//
653//    // Example sending a request using the DisassociateResourceRequest method.
654//    req, resp := client.DisassociateResourceRequest(params)
655//
656//    err := req.Send()
657//    if err == nil { // resp is now filled
658//        fmt.Println(resp)
659//    }
660//
661// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/DisassociateResource
662func (c *AppRegistry) DisassociateResourceRequest(input *DisassociateResourceInput) (req *request.Request, output *DisassociateResourceOutput) {
663	op := &request.Operation{
664		Name:       opDisassociateResource,
665		HTTPMethod: "DELETE",
666		HTTPPath:   "/applications/{application}/resources/{resourceType}/{resource}",
667	}
668
669	if input == nil {
670		input = &DisassociateResourceInput{}
671	}
672
673	output = &DisassociateResourceOutput{}
674	req = c.newRequest(op, input, output)
675	return
676}
677
678// DisassociateResource API operation for AWS Service Catalog App Registry.
679//
680// Disassociates a resource from application. Both the resource and the application
681// can be specified either by ID or name.
682//
683// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
684// with awserr.Error's Code and Message methods to get detailed information about
685// the error.
686//
687// See the AWS API reference guide for AWS Service Catalog App Registry's
688// API operation DisassociateResource for usage and error information.
689//
690// Returned Error Types:
691//   * ResourceNotFoundException
692//   The specified resource does not exist.
693//
694//   * InternalServerException
695//   The service is experiencing internal problems.
696//
697// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/DisassociateResource
698func (c *AppRegistry) DisassociateResource(input *DisassociateResourceInput) (*DisassociateResourceOutput, error) {
699	req, out := c.DisassociateResourceRequest(input)
700	return out, req.Send()
701}
702
703// DisassociateResourceWithContext is the same as DisassociateResource with the addition of
704// the ability to pass a context and additional request options.
705//
706// See DisassociateResource for details on how to use this API operation.
707//
708// The context must be non-nil and will be used for request cancellation. If
709// the context is nil a panic will occur. In the future the SDK may create
710// sub-contexts for http.Requests. See https://golang.org/pkg/context/
711// for more information on using Contexts.
712func (c *AppRegistry) DisassociateResourceWithContext(ctx aws.Context, input *DisassociateResourceInput, opts ...request.Option) (*DisassociateResourceOutput, error) {
713	req, out := c.DisassociateResourceRequest(input)
714	req.SetContext(ctx)
715	req.ApplyOptions(opts...)
716	return out, req.Send()
717}
718
719const opGetApplication = "GetApplication"
720
721// GetApplicationRequest generates a "aws/request.Request" representing the
722// client's request for the GetApplication operation. The "output" return
723// value will be populated with the request's response once the request completes
724// successfully.
725//
726// Use "Send" method on the returned Request to send the API call to the service.
727// the "output" return value is not valid until after Send returns without error.
728//
729// See GetApplication for more information on using the GetApplication
730// API call, and error handling.
731//
732// This method is useful when you want to inject custom logic or configuration
733// into the SDK's request lifecycle. Such as custom headers, or retry logic.
734//
735//
736//    // Example sending a request using the GetApplicationRequest method.
737//    req, resp := client.GetApplicationRequest(params)
738//
739//    err := req.Send()
740//    if err == nil { // resp is now filled
741//        fmt.Println(resp)
742//    }
743//
744// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/GetApplication
745func (c *AppRegistry) GetApplicationRequest(input *GetApplicationInput) (req *request.Request, output *GetApplicationOutput) {
746	op := &request.Operation{
747		Name:       opGetApplication,
748		HTTPMethod: "GET",
749		HTTPPath:   "/applications/{application}",
750	}
751
752	if input == nil {
753		input = &GetApplicationInput{}
754	}
755
756	output = &GetApplicationOutput{}
757	req = c.newRequest(op, input, output)
758	return
759}
760
761// GetApplication API operation for AWS Service Catalog App Registry.
762//
763// Retrieves metadata information about one of your applications. The application
764// can be specified either by its unique ID or by its name (which is unique
765// within one account in one region at a given point in time). Specify by ID
766// in automated workflows if you want to make sure that the exact same application
767// is returned or a ResourceNotFoundException is thrown, avoiding the ABA addressing
768// problem.
769//
770// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
771// with awserr.Error's Code and Message methods to get detailed information about
772// the error.
773//
774// See the AWS API reference guide for AWS Service Catalog App Registry's
775// API operation GetApplication for usage and error information.
776//
777// Returned Error Types:
778//   * ResourceNotFoundException
779//   The specified resource does not exist.
780//
781//   * ValidationException
782//   The request has invalid or missing parameters.
783//
784//   * InternalServerException
785//   The service is experiencing internal problems.
786//
787// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/GetApplication
788func (c *AppRegistry) GetApplication(input *GetApplicationInput) (*GetApplicationOutput, error) {
789	req, out := c.GetApplicationRequest(input)
790	return out, req.Send()
791}
792
793// GetApplicationWithContext is the same as GetApplication with the addition of
794// the ability to pass a context and additional request options.
795//
796// See GetApplication for details on how to use this API operation.
797//
798// The context must be non-nil and will be used for request cancellation. If
799// the context is nil a panic will occur. In the future the SDK may create
800// sub-contexts for http.Requests. See https://golang.org/pkg/context/
801// for more information on using Contexts.
802func (c *AppRegistry) GetApplicationWithContext(ctx aws.Context, input *GetApplicationInput, opts ...request.Option) (*GetApplicationOutput, error) {
803	req, out := c.GetApplicationRequest(input)
804	req.SetContext(ctx)
805	req.ApplyOptions(opts...)
806	return out, req.Send()
807}
808
809const opGetAttributeGroup = "GetAttributeGroup"
810
811// GetAttributeGroupRequest generates a "aws/request.Request" representing the
812// client's request for the GetAttributeGroup operation. The "output" return
813// value will be populated with the request's response once the request completes
814// successfully.
815//
816// Use "Send" method on the returned Request to send the API call to the service.
817// the "output" return value is not valid until after Send returns without error.
818//
819// See GetAttributeGroup for more information on using the GetAttributeGroup
820// API call, and error handling.
821//
822// This method is useful when you want to inject custom logic or configuration
823// into the SDK's request lifecycle. Such as custom headers, or retry logic.
824//
825//
826//    // Example sending a request using the GetAttributeGroupRequest method.
827//    req, resp := client.GetAttributeGroupRequest(params)
828//
829//    err := req.Send()
830//    if err == nil { // resp is now filled
831//        fmt.Println(resp)
832//    }
833//
834// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/GetAttributeGroup
835func (c *AppRegistry) GetAttributeGroupRequest(input *GetAttributeGroupInput) (req *request.Request, output *GetAttributeGroupOutput) {
836	op := &request.Operation{
837		Name:       opGetAttributeGroup,
838		HTTPMethod: "GET",
839		HTTPPath:   "/attribute-groups/{attributeGroup}",
840	}
841
842	if input == nil {
843		input = &GetAttributeGroupInput{}
844	}
845
846	output = &GetAttributeGroupOutput{}
847	req = c.newRequest(op, input, output)
848	return
849}
850
851// GetAttributeGroup API operation for AWS Service Catalog App Registry.
852//
853// Retrieves an attribute group, either by its name or its ID. The attribute
854// group can be specified either by its unique ID or by its name.
855//
856// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
857// with awserr.Error's Code and Message methods to get detailed information about
858// the error.
859//
860// See the AWS API reference guide for AWS Service Catalog App Registry's
861// API operation GetAttributeGroup for usage and error information.
862//
863// Returned Error Types:
864//   * ResourceNotFoundException
865//   The specified resource does not exist.
866//
867//   * ValidationException
868//   The request has invalid or missing parameters.
869//
870//   * InternalServerException
871//   The service is experiencing internal problems.
872//
873// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/GetAttributeGroup
874func (c *AppRegistry) GetAttributeGroup(input *GetAttributeGroupInput) (*GetAttributeGroupOutput, error) {
875	req, out := c.GetAttributeGroupRequest(input)
876	return out, req.Send()
877}
878
879// GetAttributeGroupWithContext is the same as GetAttributeGroup with the addition of
880// the ability to pass a context and additional request options.
881//
882// See GetAttributeGroup for details on how to use this API operation.
883//
884// The context must be non-nil and will be used for request cancellation. If
885// the context is nil a panic will occur. In the future the SDK may create
886// sub-contexts for http.Requests. See https://golang.org/pkg/context/
887// for more information on using Contexts.
888func (c *AppRegistry) GetAttributeGroupWithContext(ctx aws.Context, input *GetAttributeGroupInput, opts ...request.Option) (*GetAttributeGroupOutput, error) {
889	req, out := c.GetAttributeGroupRequest(input)
890	req.SetContext(ctx)
891	req.ApplyOptions(opts...)
892	return out, req.Send()
893}
894
895const opListApplications = "ListApplications"
896
897// ListApplicationsRequest generates a "aws/request.Request" representing the
898// client's request for the ListApplications operation. The "output" return
899// value will be populated with the request's response once the request completes
900// successfully.
901//
902// Use "Send" method on the returned Request to send the API call to the service.
903// the "output" return value is not valid until after Send returns without error.
904//
905// See ListApplications for more information on using the ListApplications
906// API call, and error handling.
907//
908// This method is useful when you want to inject custom logic or configuration
909// into the SDK's request lifecycle. Such as custom headers, or retry logic.
910//
911//
912//    // Example sending a request using the ListApplicationsRequest method.
913//    req, resp := client.ListApplicationsRequest(params)
914//
915//    err := req.Send()
916//    if err == nil { // resp is now filled
917//        fmt.Println(resp)
918//    }
919//
920// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/ListApplications
921func (c *AppRegistry) ListApplicationsRequest(input *ListApplicationsInput) (req *request.Request, output *ListApplicationsOutput) {
922	op := &request.Operation{
923		Name:       opListApplications,
924		HTTPMethod: "GET",
925		HTTPPath:   "/applications",
926		Paginator: &request.Paginator{
927			InputTokens:     []string{"nextToken"},
928			OutputTokens:    []string{"nextToken"},
929			LimitToken:      "maxResults",
930			TruncationToken: "",
931		},
932	}
933
934	if input == nil {
935		input = &ListApplicationsInput{}
936	}
937
938	output = &ListApplicationsOutput{}
939	req = c.newRequest(op, input, output)
940	return
941}
942
943// ListApplications API operation for AWS Service Catalog App Registry.
944//
945// Retrieves a list of all of your applications. Results are paginated.
946//
947// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
948// with awserr.Error's Code and Message methods to get detailed information about
949// the error.
950//
951// See the AWS API reference guide for AWS Service Catalog App Registry's
952// API operation ListApplications for usage and error information.
953//
954// Returned Error Types:
955//   * ValidationException
956//   The request has invalid or missing parameters.
957//
958//   * InternalServerException
959//   The service is experiencing internal problems.
960//
961// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/ListApplications
962func (c *AppRegistry) ListApplications(input *ListApplicationsInput) (*ListApplicationsOutput, error) {
963	req, out := c.ListApplicationsRequest(input)
964	return out, req.Send()
965}
966
967// ListApplicationsWithContext is the same as ListApplications with the addition of
968// the ability to pass a context and additional request options.
969//
970// See ListApplications for details on how to use this API operation.
971//
972// The context must be non-nil and will be used for request cancellation. If
973// the context is nil a panic will occur. In the future the SDK may create
974// sub-contexts for http.Requests. See https://golang.org/pkg/context/
975// for more information on using Contexts.
976func (c *AppRegistry) ListApplicationsWithContext(ctx aws.Context, input *ListApplicationsInput, opts ...request.Option) (*ListApplicationsOutput, error) {
977	req, out := c.ListApplicationsRequest(input)
978	req.SetContext(ctx)
979	req.ApplyOptions(opts...)
980	return out, req.Send()
981}
982
983// ListApplicationsPages iterates over the pages of a ListApplications operation,
984// calling the "fn" function with the response data for each page. To stop
985// iterating, return false from the fn function.
986//
987// See ListApplications method for more information on how to use this operation.
988//
989// Note: This operation can generate multiple requests to a service.
990//
991//    // Example iterating over at most 3 pages of a ListApplications operation.
992//    pageNum := 0
993//    err := client.ListApplicationsPages(params,
994//        func(page *appregistry.ListApplicationsOutput, lastPage bool) bool {
995//            pageNum++
996//            fmt.Println(page)
997//            return pageNum <= 3
998//        })
999//
1000func (c *AppRegistry) ListApplicationsPages(input *ListApplicationsInput, fn func(*ListApplicationsOutput, bool) bool) error {
1001	return c.ListApplicationsPagesWithContext(aws.BackgroundContext(), input, fn)
1002}
1003
1004// ListApplicationsPagesWithContext same as ListApplicationsPages except
1005// it takes a Context and allows setting request options on the pages.
1006//
1007// The context must be non-nil and will be used for request cancellation. If
1008// the context is nil a panic will occur. In the future the SDK may create
1009// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1010// for more information on using Contexts.
1011func (c *AppRegistry) ListApplicationsPagesWithContext(ctx aws.Context, input *ListApplicationsInput, fn func(*ListApplicationsOutput, bool) bool, opts ...request.Option) error {
1012	p := request.Pagination{
1013		NewRequest: func() (*request.Request, error) {
1014			var inCpy *ListApplicationsInput
1015			if input != nil {
1016				tmp := *input
1017				inCpy = &tmp
1018			}
1019			req, _ := c.ListApplicationsRequest(inCpy)
1020			req.SetContext(ctx)
1021			req.ApplyOptions(opts...)
1022			return req, nil
1023		},
1024	}
1025
1026	for p.Next() {
1027		if !fn(p.Page().(*ListApplicationsOutput), !p.HasNextPage()) {
1028			break
1029		}
1030	}
1031
1032	return p.Err()
1033}
1034
1035const opListAssociatedAttributeGroups = "ListAssociatedAttributeGroups"
1036
1037// ListAssociatedAttributeGroupsRequest generates a "aws/request.Request" representing the
1038// client's request for the ListAssociatedAttributeGroups operation. The "output" return
1039// value will be populated with the request's response once the request completes
1040// successfully.
1041//
1042// Use "Send" method on the returned Request to send the API call to the service.
1043// the "output" return value is not valid until after Send returns without error.
1044//
1045// See ListAssociatedAttributeGroups for more information on using the ListAssociatedAttributeGroups
1046// API call, and error handling.
1047//
1048// This method is useful when you want to inject custom logic or configuration
1049// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1050//
1051//
1052//    // Example sending a request using the ListAssociatedAttributeGroupsRequest method.
1053//    req, resp := client.ListAssociatedAttributeGroupsRequest(params)
1054//
1055//    err := req.Send()
1056//    if err == nil { // resp is now filled
1057//        fmt.Println(resp)
1058//    }
1059//
1060// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/ListAssociatedAttributeGroups
1061func (c *AppRegistry) ListAssociatedAttributeGroupsRequest(input *ListAssociatedAttributeGroupsInput) (req *request.Request, output *ListAssociatedAttributeGroupsOutput) {
1062	op := &request.Operation{
1063		Name:       opListAssociatedAttributeGroups,
1064		HTTPMethod: "GET",
1065		HTTPPath:   "/applications/{application}/attribute-groups",
1066		Paginator: &request.Paginator{
1067			InputTokens:     []string{"nextToken"},
1068			OutputTokens:    []string{"nextToken"},
1069			LimitToken:      "maxResults",
1070			TruncationToken: "",
1071		},
1072	}
1073
1074	if input == nil {
1075		input = &ListAssociatedAttributeGroupsInput{}
1076	}
1077
1078	output = &ListAssociatedAttributeGroupsOutput{}
1079	req = c.newRequest(op, input, output)
1080	return
1081}
1082
1083// ListAssociatedAttributeGroups API operation for AWS Service Catalog App Registry.
1084//
1085// Lists all attribute groups that are associated with specified application.
1086// Results are paginated.
1087//
1088// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1089// with awserr.Error's Code and Message methods to get detailed information about
1090// the error.
1091//
1092// See the AWS API reference guide for AWS Service Catalog App Registry's
1093// API operation ListAssociatedAttributeGroups for usage and error information.
1094//
1095// Returned Error Types:
1096//   * ResourceNotFoundException
1097//   The specified resource does not exist.
1098//
1099//   * ValidationException
1100//   The request has invalid or missing parameters.
1101//
1102//   * InternalServerException
1103//   The service is experiencing internal problems.
1104//
1105// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/ListAssociatedAttributeGroups
1106func (c *AppRegistry) ListAssociatedAttributeGroups(input *ListAssociatedAttributeGroupsInput) (*ListAssociatedAttributeGroupsOutput, error) {
1107	req, out := c.ListAssociatedAttributeGroupsRequest(input)
1108	return out, req.Send()
1109}
1110
1111// ListAssociatedAttributeGroupsWithContext is the same as ListAssociatedAttributeGroups with the addition of
1112// the ability to pass a context and additional request options.
1113//
1114// See ListAssociatedAttributeGroups for details on how to use this API operation.
1115//
1116// The context must be non-nil and will be used for request cancellation. If
1117// the context is nil a panic will occur. In the future the SDK may create
1118// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1119// for more information on using Contexts.
1120func (c *AppRegistry) ListAssociatedAttributeGroupsWithContext(ctx aws.Context, input *ListAssociatedAttributeGroupsInput, opts ...request.Option) (*ListAssociatedAttributeGroupsOutput, error) {
1121	req, out := c.ListAssociatedAttributeGroupsRequest(input)
1122	req.SetContext(ctx)
1123	req.ApplyOptions(opts...)
1124	return out, req.Send()
1125}
1126
1127// ListAssociatedAttributeGroupsPages iterates over the pages of a ListAssociatedAttributeGroups operation,
1128// calling the "fn" function with the response data for each page. To stop
1129// iterating, return false from the fn function.
1130//
1131// See ListAssociatedAttributeGroups method for more information on how to use this operation.
1132//
1133// Note: This operation can generate multiple requests to a service.
1134//
1135//    // Example iterating over at most 3 pages of a ListAssociatedAttributeGroups operation.
1136//    pageNum := 0
1137//    err := client.ListAssociatedAttributeGroupsPages(params,
1138//        func(page *appregistry.ListAssociatedAttributeGroupsOutput, lastPage bool) bool {
1139//            pageNum++
1140//            fmt.Println(page)
1141//            return pageNum <= 3
1142//        })
1143//
1144func (c *AppRegistry) ListAssociatedAttributeGroupsPages(input *ListAssociatedAttributeGroupsInput, fn func(*ListAssociatedAttributeGroupsOutput, bool) bool) error {
1145	return c.ListAssociatedAttributeGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
1146}
1147
1148// ListAssociatedAttributeGroupsPagesWithContext same as ListAssociatedAttributeGroupsPages except
1149// it takes a Context and allows setting request options on the pages.
1150//
1151// The context must be non-nil and will be used for request cancellation. If
1152// the context is nil a panic will occur. In the future the SDK may create
1153// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1154// for more information on using Contexts.
1155func (c *AppRegistry) ListAssociatedAttributeGroupsPagesWithContext(ctx aws.Context, input *ListAssociatedAttributeGroupsInput, fn func(*ListAssociatedAttributeGroupsOutput, bool) bool, opts ...request.Option) error {
1156	p := request.Pagination{
1157		NewRequest: func() (*request.Request, error) {
1158			var inCpy *ListAssociatedAttributeGroupsInput
1159			if input != nil {
1160				tmp := *input
1161				inCpy = &tmp
1162			}
1163			req, _ := c.ListAssociatedAttributeGroupsRequest(inCpy)
1164			req.SetContext(ctx)
1165			req.ApplyOptions(opts...)
1166			return req, nil
1167		},
1168	}
1169
1170	for p.Next() {
1171		if !fn(p.Page().(*ListAssociatedAttributeGroupsOutput), !p.HasNextPage()) {
1172			break
1173		}
1174	}
1175
1176	return p.Err()
1177}
1178
1179const opListAssociatedResources = "ListAssociatedResources"
1180
1181// ListAssociatedResourcesRequest generates a "aws/request.Request" representing the
1182// client's request for the ListAssociatedResources operation. The "output" return
1183// value will be populated with the request's response once the request completes
1184// successfully.
1185//
1186// Use "Send" method on the returned Request to send the API call to the service.
1187// the "output" return value is not valid until after Send returns without error.
1188//
1189// See ListAssociatedResources for more information on using the ListAssociatedResources
1190// API call, and error handling.
1191//
1192// This method is useful when you want to inject custom logic or configuration
1193// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1194//
1195//
1196//    // Example sending a request using the ListAssociatedResourcesRequest method.
1197//    req, resp := client.ListAssociatedResourcesRequest(params)
1198//
1199//    err := req.Send()
1200//    if err == nil { // resp is now filled
1201//        fmt.Println(resp)
1202//    }
1203//
1204// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/ListAssociatedResources
1205func (c *AppRegistry) ListAssociatedResourcesRequest(input *ListAssociatedResourcesInput) (req *request.Request, output *ListAssociatedResourcesOutput) {
1206	op := &request.Operation{
1207		Name:       opListAssociatedResources,
1208		HTTPMethod: "GET",
1209		HTTPPath:   "/applications/{application}/resources",
1210		Paginator: &request.Paginator{
1211			InputTokens:     []string{"nextToken"},
1212			OutputTokens:    []string{"nextToken"},
1213			LimitToken:      "maxResults",
1214			TruncationToken: "",
1215		},
1216	}
1217
1218	if input == nil {
1219		input = &ListAssociatedResourcesInput{}
1220	}
1221
1222	output = &ListAssociatedResourcesOutput{}
1223	req = c.newRequest(op, input, output)
1224	return
1225}
1226
1227// ListAssociatedResources API operation for AWS Service Catalog App Registry.
1228//
1229// Lists all resources that are associated with specified application. Results
1230// are paginated.
1231//
1232// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1233// with awserr.Error's Code and Message methods to get detailed information about
1234// the error.
1235//
1236// See the AWS API reference guide for AWS Service Catalog App Registry's
1237// API operation ListAssociatedResources for usage and error information.
1238//
1239// Returned Error Types:
1240//   * ResourceNotFoundException
1241//   The specified resource does not exist.
1242//
1243//   * ValidationException
1244//   The request has invalid or missing parameters.
1245//
1246//   * InternalServerException
1247//   The service is experiencing internal problems.
1248//
1249// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/ListAssociatedResources
1250func (c *AppRegistry) ListAssociatedResources(input *ListAssociatedResourcesInput) (*ListAssociatedResourcesOutput, error) {
1251	req, out := c.ListAssociatedResourcesRequest(input)
1252	return out, req.Send()
1253}
1254
1255// ListAssociatedResourcesWithContext is the same as ListAssociatedResources with the addition of
1256// the ability to pass a context and additional request options.
1257//
1258// See ListAssociatedResources for details on how to use this API operation.
1259//
1260// The context must be non-nil and will be used for request cancellation. If
1261// the context is nil a panic will occur. In the future the SDK may create
1262// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1263// for more information on using Contexts.
1264func (c *AppRegistry) ListAssociatedResourcesWithContext(ctx aws.Context, input *ListAssociatedResourcesInput, opts ...request.Option) (*ListAssociatedResourcesOutput, error) {
1265	req, out := c.ListAssociatedResourcesRequest(input)
1266	req.SetContext(ctx)
1267	req.ApplyOptions(opts...)
1268	return out, req.Send()
1269}
1270
1271// ListAssociatedResourcesPages iterates over the pages of a ListAssociatedResources operation,
1272// calling the "fn" function with the response data for each page. To stop
1273// iterating, return false from the fn function.
1274//
1275// See ListAssociatedResources method for more information on how to use this operation.
1276//
1277// Note: This operation can generate multiple requests to a service.
1278//
1279//    // Example iterating over at most 3 pages of a ListAssociatedResources operation.
1280//    pageNum := 0
1281//    err := client.ListAssociatedResourcesPages(params,
1282//        func(page *appregistry.ListAssociatedResourcesOutput, lastPage bool) bool {
1283//            pageNum++
1284//            fmt.Println(page)
1285//            return pageNum <= 3
1286//        })
1287//
1288func (c *AppRegistry) ListAssociatedResourcesPages(input *ListAssociatedResourcesInput, fn func(*ListAssociatedResourcesOutput, bool) bool) error {
1289	return c.ListAssociatedResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
1290}
1291
1292// ListAssociatedResourcesPagesWithContext same as ListAssociatedResourcesPages except
1293// it takes a Context and allows setting request options on the pages.
1294//
1295// The context must be non-nil and will be used for request cancellation. If
1296// the context is nil a panic will occur. In the future the SDK may create
1297// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1298// for more information on using Contexts.
1299func (c *AppRegistry) ListAssociatedResourcesPagesWithContext(ctx aws.Context, input *ListAssociatedResourcesInput, fn func(*ListAssociatedResourcesOutput, bool) bool, opts ...request.Option) error {
1300	p := request.Pagination{
1301		NewRequest: func() (*request.Request, error) {
1302			var inCpy *ListAssociatedResourcesInput
1303			if input != nil {
1304				tmp := *input
1305				inCpy = &tmp
1306			}
1307			req, _ := c.ListAssociatedResourcesRequest(inCpy)
1308			req.SetContext(ctx)
1309			req.ApplyOptions(opts...)
1310			return req, nil
1311		},
1312	}
1313
1314	for p.Next() {
1315		if !fn(p.Page().(*ListAssociatedResourcesOutput), !p.HasNextPage()) {
1316			break
1317		}
1318	}
1319
1320	return p.Err()
1321}
1322
1323const opListAttributeGroups = "ListAttributeGroups"
1324
1325// ListAttributeGroupsRequest generates a "aws/request.Request" representing the
1326// client's request for the ListAttributeGroups operation. The "output" return
1327// value will be populated with the request's response once the request completes
1328// successfully.
1329//
1330// Use "Send" method on the returned Request to send the API call to the service.
1331// the "output" return value is not valid until after Send returns without error.
1332//
1333// See ListAttributeGroups for more information on using the ListAttributeGroups
1334// API call, and error handling.
1335//
1336// This method is useful when you want to inject custom logic or configuration
1337// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1338//
1339//
1340//    // Example sending a request using the ListAttributeGroupsRequest method.
1341//    req, resp := client.ListAttributeGroupsRequest(params)
1342//
1343//    err := req.Send()
1344//    if err == nil { // resp is now filled
1345//        fmt.Println(resp)
1346//    }
1347//
1348// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/ListAttributeGroups
1349func (c *AppRegistry) ListAttributeGroupsRequest(input *ListAttributeGroupsInput) (req *request.Request, output *ListAttributeGroupsOutput) {
1350	op := &request.Operation{
1351		Name:       opListAttributeGroups,
1352		HTTPMethod: "GET",
1353		HTTPPath:   "/attribute-groups",
1354		Paginator: &request.Paginator{
1355			InputTokens:     []string{"nextToken"},
1356			OutputTokens:    []string{"nextToken"},
1357			LimitToken:      "maxResults",
1358			TruncationToken: "",
1359		},
1360	}
1361
1362	if input == nil {
1363		input = &ListAttributeGroupsInput{}
1364	}
1365
1366	output = &ListAttributeGroupsOutput{}
1367	req = c.newRequest(op, input, output)
1368	return
1369}
1370
1371// ListAttributeGroups API operation for AWS Service Catalog App Registry.
1372//
1373// Lists all attribute groups which you have access to. Results are paginated.
1374//
1375// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1376// with awserr.Error's Code and Message methods to get detailed information about
1377// the error.
1378//
1379// See the AWS API reference guide for AWS Service Catalog App Registry's
1380// API operation ListAttributeGroups for usage and error information.
1381//
1382// Returned Error Types:
1383//   * ValidationException
1384//   The request has invalid or missing parameters.
1385//
1386//   * InternalServerException
1387//   The service is experiencing internal problems.
1388//
1389// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/ListAttributeGroups
1390func (c *AppRegistry) ListAttributeGroups(input *ListAttributeGroupsInput) (*ListAttributeGroupsOutput, error) {
1391	req, out := c.ListAttributeGroupsRequest(input)
1392	return out, req.Send()
1393}
1394
1395// ListAttributeGroupsWithContext is the same as ListAttributeGroups with the addition of
1396// the ability to pass a context and additional request options.
1397//
1398// See ListAttributeGroups for details on how to use this API operation.
1399//
1400// The context must be non-nil and will be used for request cancellation. If
1401// the context is nil a panic will occur. In the future the SDK may create
1402// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1403// for more information on using Contexts.
1404func (c *AppRegistry) ListAttributeGroupsWithContext(ctx aws.Context, input *ListAttributeGroupsInput, opts ...request.Option) (*ListAttributeGroupsOutput, error) {
1405	req, out := c.ListAttributeGroupsRequest(input)
1406	req.SetContext(ctx)
1407	req.ApplyOptions(opts...)
1408	return out, req.Send()
1409}
1410
1411// ListAttributeGroupsPages iterates over the pages of a ListAttributeGroups operation,
1412// calling the "fn" function with the response data for each page. To stop
1413// iterating, return false from the fn function.
1414//
1415// See ListAttributeGroups method for more information on how to use this operation.
1416//
1417// Note: This operation can generate multiple requests to a service.
1418//
1419//    // Example iterating over at most 3 pages of a ListAttributeGroups operation.
1420//    pageNum := 0
1421//    err := client.ListAttributeGroupsPages(params,
1422//        func(page *appregistry.ListAttributeGroupsOutput, lastPage bool) bool {
1423//            pageNum++
1424//            fmt.Println(page)
1425//            return pageNum <= 3
1426//        })
1427//
1428func (c *AppRegistry) ListAttributeGroupsPages(input *ListAttributeGroupsInput, fn func(*ListAttributeGroupsOutput, bool) bool) error {
1429	return c.ListAttributeGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
1430}
1431
1432// ListAttributeGroupsPagesWithContext same as ListAttributeGroupsPages except
1433// it takes a Context and allows setting request options on the pages.
1434//
1435// The context must be non-nil and will be used for request cancellation. If
1436// the context is nil a panic will occur. In the future the SDK may create
1437// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1438// for more information on using Contexts.
1439func (c *AppRegistry) ListAttributeGroupsPagesWithContext(ctx aws.Context, input *ListAttributeGroupsInput, fn func(*ListAttributeGroupsOutput, bool) bool, opts ...request.Option) error {
1440	p := request.Pagination{
1441		NewRequest: func() (*request.Request, error) {
1442			var inCpy *ListAttributeGroupsInput
1443			if input != nil {
1444				tmp := *input
1445				inCpy = &tmp
1446			}
1447			req, _ := c.ListAttributeGroupsRequest(inCpy)
1448			req.SetContext(ctx)
1449			req.ApplyOptions(opts...)
1450			return req, nil
1451		},
1452	}
1453
1454	for p.Next() {
1455		if !fn(p.Page().(*ListAttributeGroupsOutput), !p.HasNextPage()) {
1456			break
1457		}
1458	}
1459
1460	return p.Err()
1461}
1462
1463const opListTagsForResource = "ListTagsForResource"
1464
1465// ListTagsForResourceRequest generates a "aws/request.Request" representing the
1466// client's request for the ListTagsForResource operation. The "output" return
1467// value will be populated with the request's response once the request completes
1468// successfully.
1469//
1470// Use "Send" method on the returned Request to send the API call to the service.
1471// the "output" return value is not valid until after Send returns without error.
1472//
1473// See ListTagsForResource for more information on using the ListTagsForResource
1474// API call, and error handling.
1475//
1476// This method is useful when you want to inject custom logic or configuration
1477// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1478//
1479//
1480//    // Example sending a request using the ListTagsForResourceRequest method.
1481//    req, resp := client.ListTagsForResourceRequest(params)
1482//
1483//    err := req.Send()
1484//    if err == nil { // resp is now filled
1485//        fmt.Println(resp)
1486//    }
1487//
1488// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/ListTagsForResource
1489func (c *AppRegistry) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
1490	op := &request.Operation{
1491		Name:       opListTagsForResource,
1492		HTTPMethod: "GET",
1493		HTTPPath:   "/tags/{resourceArn}",
1494	}
1495
1496	if input == nil {
1497		input = &ListTagsForResourceInput{}
1498	}
1499
1500	output = &ListTagsForResourceOutput{}
1501	req = c.newRequest(op, input, output)
1502	return
1503}
1504
1505// ListTagsForResource API operation for AWS Service Catalog App Registry.
1506//
1507// Lists all of the tags on the resource.
1508//
1509// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1510// with awserr.Error's Code and Message methods to get detailed information about
1511// the error.
1512//
1513// See the AWS API reference guide for AWS Service Catalog App Registry's
1514// API operation ListTagsForResource for usage and error information.
1515//
1516// Returned Error Types:
1517//   * ValidationException
1518//   The request has invalid or missing parameters.
1519//
1520//   * ResourceNotFoundException
1521//   The specified resource does not exist.
1522//
1523//   * InternalServerException
1524//   The service is experiencing internal problems.
1525//
1526// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/ListTagsForResource
1527func (c *AppRegistry) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
1528	req, out := c.ListTagsForResourceRequest(input)
1529	return out, req.Send()
1530}
1531
1532// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
1533// the ability to pass a context and additional request options.
1534//
1535// See ListTagsForResource for details on how to use this API operation.
1536//
1537// The context must be non-nil and will be used for request cancellation. If
1538// the context is nil a panic will occur. In the future the SDK may create
1539// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1540// for more information on using Contexts.
1541func (c *AppRegistry) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
1542	req, out := c.ListTagsForResourceRequest(input)
1543	req.SetContext(ctx)
1544	req.ApplyOptions(opts...)
1545	return out, req.Send()
1546}
1547
1548const opSyncResource = "SyncResource"
1549
1550// SyncResourceRequest generates a "aws/request.Request" representing the
1551// client's request for the SyncResource operation. The "output" return
1552// value will be populated with the request's response once the request completes
1553// successfully.
1554//
1555// Use "Send" method on the returned Request to send the API call to the service.
1556// the "output" return value is not valid until after Send returns without error.
1557//
1558// See SyncResource for more information on using the SyncResource
1559// API call, and error handling.
1560//
1561// This method is useful when you want to inject custom logic or configuration
1562// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1563//
1564//
1565//    // Example sending a request using the SyncResourceRequest method.
1566//    req, resp := client.SyncResourceRequest(params)
1567//
1568//    err := req.Send()
1569//    if err == nil { // resp is now filled
1570//        fmt.Println(resp)
1571//    }
1572//
1573// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/SyncResource
1574func (c *AppRegistry) SyncResourceRequest(input *SyncResourceInput) (req *request.Request, output *SyncResourceOutput) {
1575	op := &request.Operation{
1576		Name:       opSyncResource,
1577		HTTPMethod: "POST",
1578		HTTPPath:   "/sync/{resourceType}/{resource}",
1579	}
1580
1581	if input == nil {
1582		input = &SyncResourceInput{}
1583	}
1584
1585	output = &SyncResourceOutput{}
1586	req = c.newRequest(op, input, output)
1587	return
1588}
1589
1590// SyncResource API operation for AWS Service Catalog App Registry.
1591//
1592// Syncs the resource with what is currently recorded in App registry. Specifically,
1593// the resource’s App registry system tags are synced with its associated
1594// application. The resource is removed if it is not associated with the application.
1595// The caller must have permissions to read and update the resource.
1596//
1597// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1598// with awserr.Error's Code and Message methods to get detailed information about
1599// the error.
1600//
1601// See the AWS API reference guide for AWS Service Catalog App Registry's
1602// API operation SyncResource for usage and error information.
1603//
1604// Returned Error Types:
1605//   * ResourceNotFoundException
1606//   The specified resource does not exist.
1607//
1608//   * InternalServerException
1609//   The service is experiencing internal problems.
1610//
1611//   * ConflictException
1612//   There was a conflict when processing the request (for example, a resource
1613//   with the given name already exists within the account).
1614//
1615// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/SyncResource
1616func (c *AppRegistry) SyncResource(input *SyncResourceInput) (*SyncResourceOutput, error) {
1617	req, out := c.SyncResourceRequest(input)
1618	return out, req.Send()
1619}
1620
1621// SyncResourceWithContext is the same as SyncResource with the addition of
1622// the ability to pass a context and additional request options.
1623//
1624// See SyncResource for details on how to use this API operation.
1625//
1626// The context must be non-nil and will be used for request cancellation. If
1627// the context is nil a panic will occur. In the future the SDK may create
1628// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1629// for more information on using Contexts.
1630func (c *AppRegistry) SyncResourceWithContext(ctx aws.Context, input *SyncResourceInput, opts ...request.Option) (*SyncResourceOutput, error) {
1631	req, out := c.SyncResourceRequest(input)
1632	req.SetContext(ctx)
1633	req.ApplyOptions(opts...)
1634	return out, req.Send()
1635}
1636
1637const opTagResource = "TagResource"
1638
1639// TagResourceRequest generates a "aws/request.Request" representing the
1640// client's request for the TagResource operation. The "output" return
1641// value will be populated with the request's response once the request completes
1642// successfully.
1643//
1644// Use "Send" method on the returned Request to send the API call to the service.
1645// the "output" return value is not valid until after Send returns without error.
1646//
1647// See TagResource for more information on using the TagResource
1648// API call, and error handling.
1649//
1650// This method is useful when you want to inject custom logic or configuration
1651// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1652//
1653//
1654//    // Example sending a request using the TagResourceRequest method.
1655//    req, resp := client.TagResourceRequest(params)
1656//
1657//    err := req.Send()
1658//    if err == nil { // resp is now filled
1659//        fmt.Println(resp)
1660//    }
1661//
1662// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/TagResource
1663func (c *AppRegistry) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
1664	op := &request.Operation{
1665		Name:       opTagResource,
1666		HTTPMethod: "POST",
1667		HTTPPath:   "/tags/{resourceArn}",
1668	}
1669
1670	if input == nil {
1671		input = &TagResourceInput{}
1672	}
1673
1674	output = &TagResourceOutput{}
1675	req = c.newRequest(op, input, output)
1676	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1677	return
1678}
1679
1680// TagResource API operation for AWS Service Catalog App Registry.
1681//
1682// Assigns one or more tags (key-value pairs) to the specified resource.
1683//
1684// Each tag consists of a key and an optional value. If a tag with the same
1685// key is already associated with the resource, this action updates its value.
1686//
1687// This operation returns an empty response if the call was successful.
1688//
1689// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1690// with awserr.Error's Code and Message methods to get detailed information about
1691// the error.
1692//
1693// See the AWS API reference guide for AWS Service Catalog App Registry's
1694// API operation TagResource for usage and error information.
1695//
1696// Returned Error Types:
1697//   * ValidationException
1698//   The request has invalid or missing parameters.
1699//
1700//   * ResourceNotFoundException
1701//   The specified resource does not exist.
1702//
1703//   * InternalServerException
1704//   The service is experiencing internal problems.
1705//
1706// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/TagResource
1707func (c *AppRegistry) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
1708	req, out := c.TagResourceRequest(input)
1709	return out, req.Send()
1710}
1711
1712// TagResourceWithContext is the same as TagResource with the addition of
1713// the ability to pass a context and additional request options.
1714//
1715// See TagResource for details on how to use this API operation.
1716//
1717// The context must be non-nil and will be used for request cancellation. If
1718// the context is nil a panic will occur. In the future the SDK may create
1719// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1720// for more information on using Contexts.
1721func (c *AppRegistry) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
1722	req, out := c.TagResourceRequest(input)
1723	req.SetContext(ctx)
1724	req.ApplyOptions(opts...)
1725	return out, req.Send()
1726}
1727
1728const opUntagResource = "UntagResource"
1729
1730// UntagResourceRequest generates a "aws/request.Request" representing the
1731// client's request for the UntagResource operation. The "output" return
1732// value will be populated with the request's response once the request completes
1733// successfully.
1734//
1735// Use "Send" method on the returned Request to send the API call to the service.
1736// the "output" return value is not valid until after Send returns without error.
1737//
1738// See UntagResource for more information on using the UntagResource
1739// API call, and error handling.
1740//
1741// This method is useful when you want to inject custom logic or configuration
1742// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1743//
1744//
1745//    // Example sending a request using the UntagResourceRequest method.
1746//    req, resp := client.UntagResourceRequest(params)
1747//
1748//    err := req.Send()
1749//    if err == nil { // resp is now filled
1750//        fmt.Println(resp)
1751//    }
1752//
1753// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/UntagResource
1754func (c *AppRegistry) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
1755	op := &request.Operation{
1756		Name:       opUntagResource,
1757		HTTPMethod: "DELETE",
1758		HTTPPath:   "/tags/{resourceArn}",
1759	}
1760
1761	if input == nil {
1762		input = &UntagResourceInput{}
1763	}
1764
1765	output = &UntagResourceOutput{}
1766	req = c.newRequest(op, input, output)
1767	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1768	return
1769}
1770
1771// UntagResource API operation for AWS Service Catalog App Registry.
1772//
1773// Removes tags from a resource.
1774//
1775// This operation returns an empty response if the call was successful.
1776//
1777// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1778// with awserr.Error's Code and Message methods to get detailed information about
1779// the error.
1780//
1781// See the AWS API reference guide for AWS Service Catalog App Registry's
1782// API operation UntagResource for usage and error information.
1783//
1784// Returned Error Types:
1785//   * ValidationException
1786//   The request has invalid or missing parameters.
1787//
1788//   * ResourceNotFoundException
1789//   The specified resource does not exist.
1790//
1791//   * InternalServerException
1792//   The service is experiencing internal problems.
1793//
1794// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/UntagResource
1795func (c *AppRegistry) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
1796	req, out := c.UntagResourceRequest(input)
1797	return out, req.Send()
1798}
1799
1800// UntagResourceWithContext is the same as UntagResource with the addition of
1801// the ability to pass a context and additional request options.
1802//
1803// See UntagResource for details on how to use this API operation.
1804//
1805// The context must be non-nil and will be used for request cancellation. If
1806// the context is nil a panic will occur. In the future the SDK may create
1807// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1808// for more information on using Contexts.
1809func (c *AppRegistry) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
1810	req, out := c.UntagResourceRequest(input)
1811	req.SetContext(ctx)
1812	req.ApplyOptions(opts...)
1813	return out, req.Send()
1814}
1815
1816const opUpdateApplication = "UpdateApplication"
1817
1818// UpdateApplicationRequest generates a "aws/request.Request" representing the
1819// client's request for the UpdateApplication operation. The "output" return
1820// value will be populated with the request's response once the request completes
1821// successfully.
1822//
1823// Use "Send" method on the returned Request to send the API call to the service.
1824// the "output" return value is not valid until after Send returns without error.
1825//
1826// See UpdateApplication for more information on using the UpdateApplication
1827// API call, and error handling.
1828//
1829// This method is useful when you want to inject custom logic or configuration
1830// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1831//
1832//
1833//    // Example sending a request using the UpdateApplicationRequest method.
1834//    req, resp := client.UpdateApplicationRequest(params)
1835//
1836//    err := req.Send()
1837//    if err == nil { // resp is now filled
1838//        fmt.Println(resp)
1839//    }
1840//
1841// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/UpdateApplication
1842func (c *AppRegistry) UpdateApplicationRequest(input *UpdateApplicationInput) (req *request.Request, output *UpdateApplicationOutput) {
1843	op := &request.Operation{
1844		Name:       opUpdateApplication,
1845		HTTPMethod: "PATCH",
1846		HTTPPath:   "/applications/{application}",
1847	}
1848
1849	if input == nil {
1850		input = &UpdateApplicationInput{}
1851	}
1852
1853	output = &UpdateApplicationOutput{}
1854	req = c.newRequest(op, input, output)
1855	return
1856}
1857
1858// UpdateApplication API operation for AWS Service Catalog App Registry.
1859//
1860// Updates an existing application with new attributes.
1861//
1862// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1863// with awserr.Error's Code and Message methods to get detailed information about
1864// the error.
1865//
1866// See the AWS API reference guide for AWS Service Catalog App Registry's
1867// API operation UpdateApplication for usage and error information.
1868//
1869// Returned Error Types:
1870//   * ResourceNotFoundException
1871//   The specified resource does not exist.
1872//
1873//   * ConflictException
1874//   There was a conflict when processing the request (for example, a resource
1875//   with the given name already exists within the account).
1876//
1877//   * InternalServerException
1878//   The service is experiencing internal problems.
1879//
1880// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/UpdateApplication
1881func (c *AppRegistry) UpdateApplication(input *UpdateApplicationInput) (*UpdateApplicationOutput, error) {
1882	req, out := c.UpdateApplicationRequest(input)
1883	return out, req.Send()
1884}
1885
1886// UpdateApplicationWithContext is the same as UpdateApplication with the addition of
1887// the ability to pass a context and additional request options.
1888//
1889// See UpdateApplication for details on how to use this API operation.
1890//
1891// The context must be non-nil and will be used for request cancellation. If
1892// the context is nil a panic will occur. In the future the SDK may create
1893// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1894// for more information on using Contexts.
1895func (c *AppRegistry) UpdateApplicationWithContext(ctx aws.Context, input *UpdateApplicationInput, opts ...request.Option) (*UpdateApplicationOutput, error) {
1896	req, out := c.UpdateApplicationRequest(input)
1897	req.SetContext(ctx)
1898	req.ApplyOptions(opts...)
1899	return out, req.Send()
1900}
1901
1902const opUpdateAttributeGroup = "UpdateAttributeGroup"
1903
1904// UpdateAttributeGroupRequest generates a "aws/request.Request" representing the
1905// client's request for the UpdateAttributeGroup operation. The "output" return
1906// value will be populated with the request's response once the request completes
1907// successfully.
1908//
1909// Use "Send" method on the returned Request to send the API call to the service.
1910// the "output" return value is not valid until after Send returns without error.
1911//
1912// See UpdateAttributeGroup for more information on using the UpdateAttributeGroup
1913// API call, and error handling.
1914//
1915// This method is useful when you want to inject custom logic or configuration
1916// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1917//
1918//
1919//    // Example sending a request using the UpdateAttributeGroupRequest method.
1920//    req, resp := client.UpdateAttributeGroupRequest(params)
1921//
1922//    err := req.Send()
1923//    if err == nil { // resp is now filled
1924//        fmt.Println(resp)
1925//    }
1926//
1927// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/UpdateAttributeGroup
1928func (c *AppRegistry) UpdateAttributeGroupRequest(input *UpdateAttributeGroupInput) (req *request.Request, output *UpdateAttributeGroupOutput) {
1929	op := &request.Operation{
1930		Name:       opUpdateAttributeGroup,
1931		HTTPMethod: "PATCH",
1932		HTTPPath:   "/attribute-groups/{attributeGroup}",
1933	}
1934
1935	if input == nil {
1936		input = &UpdateAttributeGroupInput{}
1937	}
1938
1939	output = &UpdateAttributeGroupOutput{}
1940	req = c.newRequest(op, input, output)
1941	return
1942}
1943
1944// UpdateAttributeGroup API operation for AWS Service Catalog App Registry.
1945//
1946// Updates an existing attribute group with new details.
1947//
1948// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1949// with awserr.Error's Code and Message methods to get detailed information about
1950// the error.
1951//
1952// See the AWS API reference guide for AWS Service Catalog App Registry's
1953// API operation UpdateAttributeGroup for usage and error information.
1954//
1955// Returned Error Types:
1956//   * ResourceNotFoundException
1957//   The specified resource does not exist.
1958//
1959//   * ValidationException
1960//   The request has invalid or missing parameters.
1961//
1962//   * ConflictException
1963//   There was a conflict when processing the request (for example, a resource
1964//   with the given name already exists within the account).
1965//
1966//   * InternalServerException
1967//   The service is experiencing internal problems.
1968//
1969// See also, https://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/UpdateAttributeGroup
1970func (c *AppRegistry) UpdateAttributeGroup(input *UpdateAttributeGroupInput) (*UpdateAttributeGroupOutput, error) {
1971	req, out := c.UpdateAttributeGroupRequest(input)
1972	return out, req.Send()
1973}
1974
1975// UpdateAttributeGroupWithContext is the same as UpdateAttributeGroup with the addition of
1976// the ability to pass a context and additional request options.
1977//
1978// See UpdateAttributeGroup for details on how to use this API operation.
1979//
1980// The context must be non-nil and will be used for request cancellation. If
1981// the context is nil a panic will occur. In the future the SDK may create
1982// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1983// for more information on using Contexts.
1984func (c *AppRegistry) UpdateAttributeGroupWithContext(ctx aws.Context, input *UpdateAttributeGroupInput, opts ...request.Option) (*UpdateAttributeGroupOutput, error) {
1985	req, out := c.UpdateAttributeGroupRequest(input)
1986	req.SetContext(ctx)
1987	req.ApplyOptions(opts...)
1988	return out, req.Send()
1989}
1990
1991// Represents a Service Catalog AppRegistry application that is the top-level
1992// node in a hierarchy of related cloud resource abstractions.
1993type Application struct {
1994	_ struct{} `type:"structure"`
1995
1996	// The Amazon resource name (ARN) that specifies the application across services.
1997	Arn *string `locationName:"arn" type:"string"`
1998
1999	// The ISO-8601 formatted timestamp of the moment when the application was created.
2000	CreationTime *time.Time `locationName:"creationTime" type:"timestamp" timestampFormat:"iso8601"`
2001
2002	// The description of the application.
2003	Description *string `locationName:"description" type:"string"`
2004
2005	// The identifier of the application.
2006	Id *string `locationName:"id" type:"string"`
2007
2008	// The ISO-8601 formatted timestamp of the moment when the application was last
2009	// updated.
2010	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp" timestampFormat:"iso8601"`
2011
2012	// The name of the application. The name must be unique in the region in which
2013	// you are creating the application.
2014	Name *string `locationName:"name" min:"1" type:"string"`
2015
2016	// Key-value pairs you can use to associate with the application.
2017	Tags map[string]*string `locationName:"tags" type:"map"`
2018}
2019
2020// String returns the string representation
2021func (s Application) String() string {
2022	return awsutil.Prettify(s)
2023}
2024
2025// GoString returns the string representation
2026func (s Application) GoString() string {
2027	return s.String()
2028}
2029
2030// SetArn sets the Arn field's value.
2031func (s *Application) SetArn(v string) *Application {
2032	s.Arn = &v
2033	return s
2034}
2035
2036// SetCreationTime sets the CreationTime field's value.
2037func (s *Application) SetCreationTime(v time.Time) *Application {
2038	s.CreationTime = &v
2039	return s
2040}
2041
2042// SetDescription sets the Description field's value.
2043func (s *Application) SetDescription(v string) *Application {
2044	s.Description = &v
2045	return s
2046}
2047
2048// SetId sets the Id field's value.
2049func (s *Application) SetId(v string) *Application {
2050	s.Id = &v
2051	return s
2052}
2053
2054// SetLastUpdateTime sets the LastUpdateTime field's value.
2055func (s *Application) SetLastUpdateTime(v time.Time) *Application {
2056	s.LastUpdateTime = &v
2057	return s
2058}
2059
2060// SetName sets the Name field's value.
2061func (s *Application) SetName(v string) *Application {
2062	s.Name = &v
2063	return s
2064}
2065
2066// SetTags sets the Tags field's value.
2067func (s *Application) SetTags(v map[string]*string) *Application {
2068	s.Tags = v
2069	return s
2070}
2071
2072// Summary of a Service Catalog AppRegistry application.
2073type ApplicationSummary struct {
2074	_ struct{} `type:"structure"`
2075
2076	// The Amazon resource name (ARN) that specifies the application across services.
2077	Arn *string `locationName:"arn" type:"string"`
2078
2079	// The ISO-8601 formatted timestamp of the moment when the application was created.
2080	CreationTime *time.Time `locationName:"creationTime" type:"timestamp" timestampFormat:"iso8601"`
2081
2082	// The description of the application.
2083	Description *string `locationName:"description" type:"string"`
2084
2085	// The identifier of the application.
2086	Id *string `locationName:"id" type:"string"`
2087
2088	// The ISO-8601 formatted timestamp of the moment when the application was last
2089	// updated.
2090	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp" timestampFormat:"iso8601"`
2091
2092	// The name of the application. The name must be unique in the region in which
2093	// you are creating the application.
2094	Name *string `locationName:"name" min:"1" type:"string"`
2095}
2096
2097// String returns the string representation
2098func (s ApplicationSummary) String() string {
2099	return awsutil.Prettify(s)
2100}
2101
2102// GoString returns the string representation
2103func (s ApplicationSummary) GoString() string {
2104	return s.String()
2105}
2106
2107// SetArn sets the Arn field's value.
2108func (s *ApplicationSummary) SetArn(v string) *ApplicationSummary {
2109	s.Arn = &v
2110	return s
2111}
2112
2113// SetCreationTime sets the CreationTime field's value.
2114func (s *ApplicationSummary) SetCreationTime(v time.Time) *ApplicationSummary {
2115	s.CreationTime = &v
2116	return s
2117}
2118
2119// SetDescription sets the Description field's value.
2120func (s *ApplicationSummary) SetDescription(v string) *ApplicationSummary {
2121	s.Description = &v
2122	return s
2123}
2124
2125// SetId sets the Id field's value.
2126func (s *ApplicationSummary) SetId(v string) *ApplicationSummary {
2127	s.Id = &v
2128	return s
2129}
2130
2131// SetLastUpdateTime sets the LastUpdateTime field's value.
2132func (s *ApplicationSummary) SetLastUpdateTime(v time.Time) *ApplicationSummary {
2133	s.LastUpdateTime = &v
2134	return s
2135}
2136
2137// SetName sets the Name field's value.
2138func (s *ApplicationSummary) SetName(v string) *ApplicationSummary {
2139	s.Name = &v
2140	return s
2141}
2142
2143type AssociateAttributeGroupInput struct {
2144	_ struct{} `type:"structure"`
2145
2146	// The name or ID of the application.
2147	//
2148	// Application is a required field
2149	Application *string `location:"uri" locationName:"application" min:"1" type:"string" required:"true"`
2150
2151	// The name or ID of the attribute group that holds the attributes to describe
2152	// the application.
2153	//
2154	// AttributeGroup is a required field
2155	AttributeGroup *string `location:"uri" locationName:"attributeGroup" min:"1" type:"string" required:"true"`
2156}
2157
2158// String returns the string representation
2159func (s AssociateAttributeGroupInput) String() string {
2160	return awsutil.Prettify(s)
2161}
2162
2163// GoString returns the string representation
2164func (s AssociateAttributeGroupInput) GoString() string {
2165	return s.String()
2166}
2167
2168// Validate inspects the fields of the type to determine if they are valid.
2169func (s *AssociateAttributeGroupInput) Validate() error {
2170	invalidParams := request.ErrInvalidParams{Context: "AssociateAttributeGroupInput"}
2171	if s.Application == nil {
2172		invalidParams.Add(request.NewErrParamRequired("Application"))
2173	}
2174	if s.Application != nil && len(*s.Application) < 1 {
2175		invalidParams.Add(request.NewErrParamMinLen("Application", 1))
2176	}
2177	if s.AttributeGroup == nil {
2178		invalidParams.Add(request.NewErrParamRequired("AttributeGroup"))
2179	}
2180	if s.AttributeGroup != nil && len(*s.AttributeGroup) < 1 {
2181		invalidParams.Add(request.NewErrParamMinLen("AttributeGroup", 1))
2182	}
2183
2184	if invalidParams.Len() > 0 {
2185		return invalidParams
2186	}
2187	return nil
2188}
2189
2190// SetApplication sets the Application field's value.
2191func (s *AssociateAttributeGroupInput) SetApplication(v string) *AssociateAttributeGroupInput {
2192	s.Application = &v
2193	return s
2194}
2195
2196// SetAttributeGroup sets the AttributeGroup field's value.
2197func (s *AssociateAttributeGroupInput) SetAttributeGroup(v string) *AssociateAttributeGroupInput {
2198	s.AttributeGroup = &v
2199	return s
2200}
2201
2202type AssociateAttributeGroupOutput struct {
2203	_ struct{} `type:"structure"`
2204
2205	// The Amazon resource name (ARN) of the application that was augmented with
2206	// attributes.
2207	ApplicationArn *string `locationName:"applicationArn" type:"string"`
2208
2209	// The Amazon resource name (ARN) of the attribute group that contains the application's
2210	// new attributes.
2211	AttributeGroupArn *string `locationName:"attributeGroupArn" type:"string"`
2212}
2213
2214// String returns the string representation
2215func (s AssociateAttributeGroupOutput) String() string {
2216	return awsutil.Prettify(s)
2217}
2218
2219// GoString returns the string representation
2220func (s AssociateAttributeGroupOutput) GoString() string {
2221	return s.String()
2222}
2223
2224// SetApplicationArn sets the ApplicationArn field's value.
2225func (s *AssociateAttributeGroupOutput) SetApplicationArn(v string) *AssociateAttributeGroupOutput {
2226	s.ApplicationArn = &v
2227	return s
2228}
2229
2230// SetAttributeGroupArn sets the AttributeGroupArn field's value.
2231func (s *AssociateAttributeGroupOutput) SetAttributeGroupArn(v string) *AssociateAttributeGroupOutput {
2232	s.AttributeGroupArn = &v
2233	return s
2234}
2235
2236type AssociateResourceInput struct {
2237	_ struct{} `type:"structure"`
2238
2239	// The name or ID of the application.
2240	//
2241	// Application is a required field
2242	Application *string `location:"uri" locationName:"application" min:"1" type:"string" required:"true"`
2243
2244	// The name or ID of the resource of which the application will be associated.
2245	//
2246	// Resource is a required field
2247	Resource *string `location:"uri" locationName:"resource" min:"1" type:"string" required:"true"`
2248
2249	// The type of resource of which the application will be associated.
2250	//
2251	// ResourceType is a required field
2252	ResourceType *string `location:"uri" locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
2253}
2254
2255// String returns the string representation
2256func (s AssociateResourceInput) String() string {
2257	return awsutil.Prettify(s)
2258}
2259
2260// GoString returns the string representation
2261func (s AssociateResourceInput) GoString() string {
2262	return s.String()
2263}
2264
2265// Validate inspects the fields of the type to determine if they are valid.
2266func (s *AssociateResourceInput) Validate() error {
2267	invalidParams := request.ErrInvalidParams{Context: "AssociateResourceInput"}
2268	if s.Application == nil {
2269		invalidParams.Add(request.NewErrParamRequired("Application"))
2270	}
2271	if s.Application != nil && len(*s.Application) < 1 {
2272		invalidParams.Add(request.NewErrParamMinLen("Application", 1))
2273	}
2274	if s.Resource == nil {
2275		invalidParams.Add(request.NewErrParamRequired("Resource"))
2276	}
2277	if s.Resource != nil && len(*s.Resource) < 1 {
2278		invalidParams.Add(request.NewErrParamMinLen("Resource", 1))
2279	}
2280	if s.ResourceType == nil {
2281		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
2282	}
2283	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
2284		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
2285	}
2286
2287	if invalidParams.Len() > 0 {
2288		return invalidParams
2289	}
2290	return nil
2291}
2292
2293// SetApplication sets the Application field's value.
2294func (s *AssociateResourceInput) SetApplication(v string) *AssociateResourceInput {
2295	s.Application = &v
2296	return s
2297}
2298
2299// SetResource sets the Resource field's value.
2300func (s *AssociateResourceInput) SetResource(v string) *AssociateResourceInput {
2301	s.Resource = &v
2302	return s
2303}
2304
2305// SetResourceType sets the ResourceType field's value.
2306func (s *AssociateResourceInput) SetResourceType(v string) *AssociateResourceInput {
2307	s.ResourceType = &v
2308	return s
2309}
2310
2311type AssociateResourceOutput struct {
2312	_ struct{} `type:"structure"`
2313
2314	// The Amazon resource name (ARN) of the application that was augmented with
2315	// attributes.
2316	ApplicationArn *string `locationName:"applicationArn" type:"string"`
2317
2318	// The Amazon resource name (ARN) that specifies the resource.
2319	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string"`
2320}
2321
2322// String returns the string representation
2323func (s AssociateResourceOutput) String() string {
2324	return awsutil.Prettify(s)
2325}
2326
2327// GoString returns the string representation
2328func (s AssociateResourceOutput) GoString() string {
2329	return s.String()
2330}
2331
2332// SetApplicationArn sets the ApplicationArn field's value.
2333func (s *AssociateResourceOutput) SetApplicationArn(v string) *AssociateResourceOutput {
2334	s.ApplicationArn = &v
2335	return s
2336}
2337
2338// SetResourceArn sets the ResourceArn field's value.
2339func (s *AssociateResourceOutput) SetResourceArn(v string) *AssociateResourceOutput {
2340	s.ResourceArn = &v
2341	return s
2342}
2343
2344// Represents a Service Catalog AppRegistry attribute group that is rich metadata
2345// which describes an application and its components.
2346type AttributeGroup struct {
2347	_ struct{} `type:"structure"`
2348
2349	// The Amazon resource name (ARN) that specifies the attribute group across
2350	// services.
2351	Arn *string `locationName:"arn" type:"string"`
2352
2353	// The ISO-8601 formatted timestamp of the moment the attribute group was created.
2354	CreationTime *time.Time `locationName:"creationTime" type:"timestamp" timestampFormat:"iso8601"`
2355
2356	// The description of the attribute group that the user provides.
2357	Description *string `locationName:"description" type:"string"`
2358
2359	// The globally unique attribute group identifier of the attribute group.
2360	Id *string `locationName:"id" min:"1" type:"string"`
2361
2362	// The ISO-8601 formatted timestamp of the moment the attribute group was last
2363	// updated. This time is the same as the creationTime for a newly created attribute
2364	// group.
2365	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp" timestampFormat:"iso8601"`
2366
2367	// The name of the attribute group.
2368	Name *string `locationName:"name" min:"1" type:"string"`
2369
2370	// Key-value pairs you can use to associate with the attribute group.
2371	Tags map[string]*string `locationName:"tags" type:"map"`
2372}
2373
2374// String returns the string representation
2375func (s AttributeGroup) String() string {
2376	return awsutil.Prettify(s)
2377}
2378
2379// GoString returns the string representation
2380func (s AttributeGroup) GoString() string {
2381	return s.String()
2382}
2383
2384// SetArn sets the Arn field's value.
2385func (s *AttributeGroup) SetArn(v string) *AttributeGroup {
2386	s.Arn = &v
2387	return s
2388}
2389
2390// SetCreationTime sets the CreationTime field's value.
2391func (s *AttributeGroup) SetCreationTime(v time.Time) *AttributeGroup {
2392	s.CreationTime = &v
2393	return s
2394}
2395
2396// SetDescription sets the Description field's value.
2397func (s *AttributeGroup) SetDescription(v string) *AttributeGroup {
2398	s.Description = &v
2399	return s
2400}
2401
2402// SetId sets the Id field's value.
2403func (s *AttributeGroup) SetId(v string) *AttributeGroup {
2404	s.Id = &v
2405	return s
2406}
2407
2408// SetLastUpdateTime sets the LastUpdateTime field's value.
2409func (s *AttributeGroup) SetLastUpdateTime(v time.Time) *AttributeGroup {
2410	s.LastUpdateTime = &v
2411	return s
2412}
2413
2414// SetName sets the Name field's value.
2415func (s *AttributeGroup) SetName(v string) *AttributeGroup {
2416	s.Name = &v
2417	return s
2418}
2419
2420// SetTags sets the Tags field's value.
2421func (s *AttributeGroup) SetTags(v map[string]*string) *AttributeGroup {
2422	s.Tags = v
2423	return s
2424}
2425
2426// Summary of a Service Catalog AppRegistry attribute group.
2427type AttributeGroupSummary struct {
2428	_ struct{} `type:"structure"`
2429
2430	// The Amazon resource name (ARN) that specifies the attribute group across
2431	// services.
2432	Arn *string `locationName:"arn" type:"string"`
2433
2434	// The ISO-8601 formatted timestamp of the moment the attribute group was created.
2435	CreationTime *time.Time `locationName:"creationTime" type:"timestamp" timestampFormat:"iso8601"`
2436
2437	// The description of the attribute group that the user provides.
2438	Description *string `locationName:"description" type:"string"`
2439
2440	// The globally unique attribute group identifier of the attribute group.
2441	Id *string `locationName:"id" min:"1" type:"string"`
2442
2443	// The ISO-8601 formatted timestamp of the moment the attribute group was last
2444	// updated. This time is the same as the creationTime for a newly created attribute
2445	// group.
2446	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp" timestampFormat:"iso8601"`
2447
2448	// The name of the attribute group.
2449	Name *string `locationName:"name" min:"1" type:"string"`
2450}
2451
2452// String returns the string representation
2453func (s AttributeGroupSummary) String() string {
2454	return awsutil.Prettify(s)
2455}
2456
2457// GoString returns the string representation
2458func (s AttributeGroupSummary) GoString() string {
2459	return s.String()
2460}
2461
2462// SetArn sets the Arn field's value.
2463func (s *AttributeGroupSummary) SetArn(v string) *AttributeGroupSummary {
2464	s.Arn = &v
2465	return s
2466}
2467
2468// SetCreationTime sets the CreationTime field's value.
2469func (s *AttributeGroupSummary) SetCreationTime(v time.Time) *AttributeGroupSummary {
2470	s.CreationTime = &v
2471	return s
2472}
2473
2474// SetDescription sets the Description field's value.
2475func (s *AttributeGroupSummary) SetDescription(v string) *AttributeGroupSummary {
2476	s.Description = &v
2477	return s
2478}
2479
2480// SetId sets the Id field's value.
2481func (s *AttributeGroupSummary) SetId(v string) *AttributeGroupSummary {
2482	s.Id = &v
2483	return s
2484}
2485
2486// SetLastUpdateTime sets the LastUpdateTime field's value.
2487func (s *AttributeGroupSummary) SetLastUpdateTime(v time.Time) *AttributeGroupSummary {
2488	s.LastUpdateTime = &v
2489	return s
2490}
2491
2492// SetName sets the Name field's value.
2493func (s *AttributeGroupSummary) SetName(v string) *AttributeGroupSummary {
2494	s.Name = &v
2495	return s
2496}
2497
2498// There was a conflict when processing the request (for example, a resource
2499// with the given name already exists within the account).
2500type ConflictException struct {
2501	_            struct{}                  `type:"structure"`
2502	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2503
2504	Message_ *string `locationName:"message" type:"string"`
2505}
2506
2507// String returns the string representation
2508func (s ConflictException) String() string {
2509	return awsutil.Prettify(s)
2510}
2511
2512// GoString returns the string representation
2513func (s ConflictException) GoString() string {
2514	return s.String()
2515}
2516
2517func newErrorConflictException(v protocol.ResponseMetadata) error {
2518	return &ConflictException{
2519		RespMetadata: v,
2520	}
2521}
2522
2523// Code returns the exception type name.
2524func (s *ConflictException) Code() string {
2525	return "ConflictException"
2526}
2527
2528// Message returns the exception's message.
2529func (s *ConflictException) Message() string {
2530	if s.Message_ != nil {
2531		return *s.Message_
2532	}
2533	return ""
2534}
2535
2536// OrigErr always returns nil, satisfies awserr.Error interface.
2537func (s *ConflictException) OrigErr() error {
2538	return nil
2539}
2540
2541func (s *ConflictException) Error() string {
2542	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2543}
2544
2545// Status code returns the HTTP status code for the request's response error.
2546func (s *ConflictException) StatusCode() int {
2547	return s.RespMetadata.StatusCode
2548}
2549
2550// RequestID returns the service's response RequestID for request.
2551func (s *ConflictException) RequestID() string {
2552	return s.RespMetadata.RequestID
2553}
2554
2555type CreateApplicationInput struct {
2556	_ struct{} `type:"structure"`
2557
2558	// A unique identifier that you provide to ensure idempotency. If you retry
2559	// a request that completed successfully using the same client token and the
2560	// same parameters, the retry succeeds without performing any further actions.
2561	// If you retry a successful request using the same client token, but one or
2562	// more of the parameters are different, the retry fails.
2563	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`
2564
2565	// The description of the application.
2566	Description *string `locationName:"description" type:"string"`
2567
2568	// The name of the application. The name must be unique in the region in which
2569	// you are creating the application.
2570	//
2571	// Name is a required field
2572	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
2573
2574	// Key-value pairs you can use to associate with the application.
2575	Tags map[string]*string `locationName:"tags" type:"map"`
2576}
2577
2578// String returns the string representation
2579func (s CreateApplicationInput) String() string {
2580	return awsutil.Prettify(s)
2581}
2582
2583// GoString returns the string representation
2584func (s CreateApplicationInput) GoString() string {
2585	return s.String()
2586}
2587
2588// Validate inspects the fields of the type to determine if they are valid.
2589func (s *CreateApplicationInput) Validate() error {
2590	invalidParams := request.ErrInvalidParams{Context: "CreateApplicationInput"}
2591	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
2592		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
2593	}
2594	if s.Name == nil {
2595		invalidParams.Add(request.NewErrParamRequired("Name"))
2596	}
2597	if s.Name != nil && len(*s.Name) < 1 {
2598		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
2599	}
2600
2601	if invalidParams.Len() > 0 {
2602		return invalidParams
2603	}
2604	return nil
2605}
2606
2607// SetClientToken sets the ClientToken field's value.
2608func (s *CreateApplicationInput) SetClientToken(v string) *CreateApplicationInput {
2609	s.ClientToken = &v
2610	return s
2611}
2612
2613// SetDescription sets the Description field's value.
2614func (s *CreateApplicationInput) SetDescription(v string) *CreateApplicationInput {
2615	s.Description = &v
2616	return s
2617}
2618
2619// SetName sets the Name field's value.
2620func (s *CreateApplicationInput) SetName(v string) *CreateApplicationInput {
2621	s.Name = &v
2622	return s
2623}
2624
2625// SetTags sets the Tags field's value.
2626func (s *CreateApplicationInput) SetTags(v map[string]*string) *CreateApplicationInput {
2627	s.Tags = v
2628	return s
2629}
2630
2631type CreateApplicationOutput struct {
2632	_ struct{} `type:"structure"`
2633
2634	// Information about the application.
2635	Application *Application `locationName:"application" type:"structure"`
2636}
2637
2638// String returns the string representation
2639func (s CreateApplicationOutput) String() string {
2640	return awsutil.Prettify(s)
2641}
2642
2643// GoString returns the string representation
2644func (s CreateApplicationOutput) GoString() string {
2645	return s.String()
2646}
2647
2648// SetApplication sets the Application field's value.
2649func (s *CreateApplicationOutput) SetApplication(v *Application) *CreateApplicationOutput {
2650	s.Application = v
2651	return s
2652}
2653
2654type CreateAttributeGroupInput struct {
2655	_ struct{} `type:"structure"`
2656
2657	// A JSON string in the form of nested key-value pairs that represent the attributes
2658	// in the group and describes an application and its components.
2659	//
2660	// Attributes is a required field
2661	Attributes *string `locationName:"attributes" min:"1" type:"string" required:"true"`
2662
2663	// A unique identifier that you provide to ensure idempotency. If you retry
2664	// a request that completed successfully using the same client token and the
2665	// same parameters, the retry succeeds without performing any further actions.
2666	// If you retry a successful request using the same client token, but one or
2667	// more of the parameters are different, the retry fails.
2668	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`
2669
2670	// The description of the attribute group that the user provides.
2671	Description *string `locationName:"description" type:"string"`
2672
2673	// The name of the attribute group.
2674	//
2675	// Name is a required field
2676	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
2677
2678	// Key-value pairs you can use to associate with the attribute group.
2679	Tags map[string]*string `locationName:"tags" type:"map"`
2680}
2681
2682// String returns the string representation
2683func (s CreateAttributeGroupInput) String() string {
2684	return awsutil.Prettify(s)
2685}
2686
2687// GoString returns the string representation
2688func (s CreateAttributeGroupInput) GoString() string {
2689	return s.String()
2690}
2691
2692// Validate inspects the fields of the type to determine if they are valid.
2693func (s *CreateAttributeGroupInput) Validate() error {
2694	invalidParams := request.ErrInvalidParams{Context: "CreateAttributeGroupInput"}
2695	if s.Attributes == nil {
2696		invalidParams.Add(request.NewErrParamRequired("Attributes"))
2697	}
2698	if s.Attributes != nil && len(*s.Attributes) < 1 {
2699		invalidParams.Add(request.NewErrParamMinLen("Attributes", 1))
2700	}
2701	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
2702		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
2703	}
2704	if s.Name == nil {
2705		invalidParams.Add(request.NewErrParamRequired("Name"))
2706	}
2707	if s.Name != nil && len(*s.Name) < 1 {
2708		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
2709	}
2710
2711	if invalidParams.Len() > 0 {
2712		return invalidParams
2713	}
2714	return nil
2715}
2716
2717// SetAttributes sets the Attributes field's value.
2718func (s *CreateAttributeGroupInput) SetAttributes(v string) *CreateAttributeGroupInput {
2719	s.Attributes = &v
2720	return s
2721}
2722
2723// SetClientToken sets the ClientToken field's value.
2724func (s *CreateAttributeGroupInput) SetClientToken(v string) *CreateAttributeGroupInput {
2725	s.ClientToken = &v
2726	return s
2727}
2728
2729// SetDescription sets the Description field's value.
2730func (s *CreateAttributeGroupInput) SetDescription(v string) *CreateAttributeGroupInput {
2731	s.Description = &v
2732	return s
2733}
2734
2735// SetName sets the Name field's value.
2736func (s *CreateAttributeGroupInput) SetName(v string) *CreateAttributeGroupInput {
2737	s.Name = &v
2738	return s
2739}
2740
2741// SetTags sets the Tags field's value.
2742func (s *CreateAttributeGroupInput) SetTags(v map[string]*string) *CreateAttributeGroupInput {
2743	s.Tags = v
2744	return s
2745}
2746
2747type CreateAttributeGroupOutput struct {
2748	_ struct{} `type:"structure"`
2749
2750	// Information about the attribute group.
2751	AttributeGroup *AttributeGroup `locationName:"attributeGroup" type:"structure"`
2752}
2753
2754// String returns the string representation
2755func (s CreateAttributeGroupOutput) String() string {
2756	return awsutil.Prettify(s)
2757}
2758
2759// GoString returns the string representation
2760func (s CreateAttributeGroupOutput) GoString() string {
2761	return s.String()
2762}
2763
2764// SetAttributeGroup sets the AttributeGroup field's value.
2765func (s *CreateAttributeGroupOutput) SetAttributeGroup(v *AttributeGroup) *CreateAttributeGroupOutput {
2766	s.AttributeGroup = v
2767	return s
2768}
2769
2770type DeleteApplicationInput struct {
2771	_ struct{} `type:"structure"`
2772
2773	// The name or ID of the application.
2774	//
2775	// Application is a required field
2776	Application *string `location:"uri" locationName:"application" min:"1" type:"string" required:"true"`
2777}
2778
2779// String returns the string representation
2780func (s DeleteApplicationInput) String() string {
2781	return awsutil.Prettify(s)
2782}
2783
2784// GoString returns the string representation
2785func (s DeleteApplicationInput) GoString() string {
2786	return s.String()
2787}
2788
2789// Validate inspects the fields of the type to determine if they are valid.
2790func (s *DeleteApplicationInput) Validate() error {
2791	invalidParams := request.ErrInvalidParams{Context: "DeleteApplicationInput"}
2792	if s.Application == nil {
2793		invalidParams.Add(request.NewErrParamRequired("Application"))
2794	}
2795	if s.Application != nil && len(*s.Application) < 1 {
2796		invalidParams.Add(request.NewErrParamMinLen("Application", 1))
2797	}
2798
2799	if invalidParams.Len() > 0 {
2800		return invalidParams
2801	}
2802	return nil
2803}
2804
2805// SetApplication sets the Application field's value.
2806func (s *DeleteApplicationInput) SetApplication(v string) *DeleteApplicationInput {
2807	s.Application = &v
2808	return s
2809}
2810
2811type DeleteApplicationOutput struct {
2812	_ struct{} `type:"structure"`
2813
2814	// Information about the deleted application.
2815	Application *ApplicationSummary `locationName:"application" type:"structure"`
2816}
2817
2818// String returns the string representation
2819func (s DeleteApplicationOutput) String() string {
2820	return awsutil.Prettify(s)
2821}
2822
2823// GoString returns the string representation
2824func (s DeleteApplicationOutput) GoString() string {
2825	return s.String()
2826}
2827
2828// SetApplication sets the Application field's value.
2829func (s *DeleteApplicationOutput) SetApplication(v *ApplicationSummary) *DeleteApplicationOutput {
2830	s.Application = v
2831	return s
2832}
2833
2834type DeleteAttributeGroupInput struct {
2835	_ struct{} `type:"structure"`
2836
2837	// The name or ID of the attribute group that holds the attributes to describe
2838	// the application.
2839	//
2840	// AttributeGroup is a required field
2841	AttributeGroup *string `location:"uri" locationName:"attributeGroup" min:"1" type:"string" required:"true"`
2842}
2843
2844// String returns the string representation
2845func (s DeleteAttributeGroupInput) String() string {
2846	return awsutil.Prettify(s)
2847}
2848
2849// GoString returns the string representation
2850func (s DeleteAttributeGroupInput) GoString() string {
2851	return s.String()
2852}
2853
2854// Validate inspects the fields of the type to determine if they are valid.
2855func (s *DeleteAttributeGroupInput) Validate() error {
2856	invalidParams := request.ErrInvalidParams{Context: "DeleteAttributeGroupInput"}
2857	if s.AttributeGroup == nil {
2858		invalidParams.Add(request.NewErrParamRequired("AttributeGroup"))
2859	}
2860	if s.AttributeGroup != nil && len(*s.AttributeGroup) < 1 {
2861		invalidParams.Add(request.NewErrParamMinLen("AttributeGroup", 1))
2862	}
2863
2864	if invalidParams.Len() > 0 {
2865		return invalidParams
2866	}
2867	return nil
2868}
2869
2870// SetAttributeGroup sets the AttributeGroup field's value.
2871func (s *DeleteAttributeGroupInput) SetAttributeGroup(v string) *DeleteAttributeGroupInput {
2872	s.AttributeGroup = &v
2873	return s
2874}
2875
2876type DeleteAttributeGroupOutput struct {
2877	_ struct{} `type:"structure"`
2878
2879	// Information about the deleted attribute group.
2880	AttributeGroup *AttributeGroupSummary `locationName:"attributeGroup" type:"structure"`
2881}
2882
2883// String returns the string representation
2884func (s DeleteAttributeGroupOutput) String() string {
2885	return awsutil.Prettify(s)
2886}
2887
2888// GoString returns the string representation
2889func (s DeleteAttributeGroupOutput) GoString() string {
2890	return s.String()
2891}
2892
2893// SetAttributeGroup sets the AttributeGroup field's value.
2894func (s *DeleteAttributeGroupOutput) SetAttributeGroup(v *AttributeGroupSummary) *DeleteAttributeGroupOutput {
2895	s.AttributeGroup = v
2896	return s
2897}
2898
2899type DisassociateAttributeGroupInput struct {
2900	_ struct{} `type:"structure"`
2901
2902	// The name or ID of the application.
2903	//
2904	// Application is a required field
2905	Application *string `location:"uri" locationName:"application" min:"1" type:"string" required:"true"`
2906
2907	// The name or ID of the attribute group that holds the attributes to describe
2908	// the application.
2909	//
2910	// AttributeGroup is a required field
2911	AttributeGroup *string `location:"uri" locationName:"attributeGroup" min:"1" type:"string" required:"true"`
2912}
2913
2914// String returns the string representation
2915func (s DisassociateAttributeGroupInput) String() string {
2916	return awsutil.Prettify(s)
2917}
2918
2919// GoString returns the string representation
2920func (s DisassociateAttributeGroupInput) GoString() string {
2921	return s.String()
2922}
2923
2924// Validate inspects the fields of the type to determine if they are valid.
2925func (s *DisassociateAttributeGroupInput) Validate() error {
2926	invalidParams := request.ErrInvalidParams{Context: "DisassociateAttributeGroupInput"}
2927	if s.Application == nil {
2928		invalidParams.Add(request.NewErrParamRequired("Application"))
2929	}
2930	if s.Application != nil && len(*s.Application) < 1 {
2931		invalidParams.Add(request.NewErrParamMinLen("Application", 1))
2932	}
2933	if s.AttributeGroup == nil {
2934		invalidParams.Add(request.NewErrParamRequired("AttributeGroup"))
2935	}
2936	if s.AttributeGroup != nil && len(*s.AttributeGroup) < 1 {
2937		invalidParams.Add(request.NewErrParamMinLen("AttributeGroup", 1))
2938	}
2939
2940	if invalidParams.Len() > 0 {
2941		return invalidParams
2942	}
2943	return nil
2944}
2945
2946// SetApplication sets the Application field's value.
2947func (s *DisassociateAttributeGroupInput) SetApplication(v string) *DisassociateAttributeGroupInput {
2948	s.Application = &v
2949	return s
2950}
2951
2952// SetAttributeGroup sets the AttributeGroup field's value.
2953func (s *DisassociateAttributeGroupInput) SetAttributeGroup(v string) *DisassociateAttributeGroupInput {
2954	s.AttributeGroup = &v
2955	return s
2956}
2957
2958type DisassociateAttributeGroupOutput struct {
2959	_ struct{} `type:"structure"`
2960
2961	// The Amazon resource name (ARN) that specifies the application.
2962	ApplicationArn *string `locationName:"applicationArn" type:"string"`
2963
2964	// The Amazon resource name (ARN) that specifies the attribute group.
2965	AttributeGroupArn *string `locationName:"attributeGroupArn" type:"string"`
2966}
2967
2968// String returns the string representation
2969func (s DisassociateAttributeGroupOutput) String() string {
2970	return awsutil.Prettify(s)
2971}
2972
2973// GoString returns the string representation
2974func (s DisassociateAttributeGroupOutput) GoString() string {
2975	return s.String()
2976}
2977
2978// SetApplicationArn sets the ApplicationArn field's value.
2979func (s *DisassociateAttributeGroupOutput) SetApplicationArn(v string) *DisassociateAttributeGroupOutput {
2980	s.ApplicationArn = &v
2981	return s
2982}
2983
2984// SetAttributeGroupArn sets the AttributeGroupArn field's value.
2985func (s *DisassociateAttributeGroupOutput) SetAttributeGroupArn(v string) *DisassociateAttributeGroupOutput {
2986	s.AttributeGroupArn = &v
2987	return s
2988}
2989
2990type DisassociateResourceInput struct {
2991	_ struct{} `type:"structure"`
2992
2993	// The name or ID of the application.
2994	//
2995	// Application is a required field
2996	Application *string `location:"uri" locationName:"application" min:"1" type:"string" required:"true"`
2997
2998	// The name or ID of the resource.
2999	//
3000	// Resource is a required field
3001	Resource *string `location:"uri" locationName:"resource" min:"1" type:"string" required:"true"`
3002
3003	// The type of the resource that is being disassociated.
3004	//
3005	// ResourceType is a required field
3006	ResourceType *string `location:"uri" locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
3007}
3008
3009// String returns the string representation
3010func (s DisassociateResourceInput) String() string {
3011	return awsutil.Prettify(s)
3012}
3013
3014// GoString returns the string representation
3015func (s DisassociateResourceInput) GoString() string {
3016	return s.String()
3017}
3018
3019// Validate inspects the fields of the type to determine if they are valid.
3020func (s *DisassociateResourceInput) Validate() error {
3021	invalidParams := request.ErrInvalidParams{Context: "DisassociateResourceInput"}
3022	if s.Application == nil {
3023		invalidParams.Add(request.NewErrParamRequired("Application"))
3024	}
3025	if s.Application != nil && len(*s.Application) < 1 {
3026		invalidParams.Add(request.NewErrParamMinLen("Application", 1))
3027	}
3028	if s.Resource == nil {
3029		invalidParams.Add(request.NewErrParamRequired("Resource"))
3030	}
3031	if s.Resource != nil && len(*s.Resource) < 1 {
3032		invalidParams.Add(request.NewErrParamMinLen("Resource", 1))
3033	}
3034	if s.ResourceType == nil {
3035		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
3036	}
3037	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
3038		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
3039	}
3040
3041	if invalidParams.Len() > 0 {
3042		return invalidParams
3043	}
3044	return nil
3045}
3046
3047// SetApplication sets the Application field's value.
3048func (s *DisassociateResourceInput) SetApplication(v string) *DisassociateResourceInput {
3049	s.Application = &v
3050	return s
3051}
3052
3053// SetResource sets the Resource field's value.
3054func (s *DisassociateResourceInput) SetResource(v string) *DisassociateResourceInput {
3055	s.Resource = &v
3056	return s
3057}
3058
3059// SetResourceType sets the ResourceType field's value.
3060func (s *DisassociateResourceInput) SetResourceType(v string) *DisassociateResourceInput {
3061	s.ResourceType = &v
3062	return s
3063}
3064
3065type DisassociateResourceOutput struct {
3066	_ struct{} `type:"structure"`
3067
3068	// The Amazon resource name (ARN) that specifies the application.
3069	ApplicationArn *string `locationName:"applicationArn" type:"string"`
3070
3071	// The Amazon resource name (ARN) that specifies the resource.
3072	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string"`
3073}
3074
3075// String returns the string representation
3076func (s DisassociateResourceOutput) String() string {
3077	return awsutil.Prettify(s)
3078}
3079
3080// GoString returns the string representation
3081func (s DisassociateResourceOutput) GoString() string {
3082	return s.String()
3083}
3084
3085// SetApplicationArn sets the ApplicationArn field's value.
3086func (s *DisassociateResourceOutput) SetApplicationArn(v string) *DisassociateResourceOutput {
3087	s.ApplicationArn = &v
3088	return s
3089}
3090
3091// SetResourceArn sets the ResourceArn field's value.
3092func (s *DisassociateResourceOutput) SetResourceArn(v string) *DisassociateResourceOutput {
3093	s.ResourceArn = &v
3094	return s
3095}
3096
3097type GetApplicationInput struct {
3098	_ struct{} `type:"structure"`
3099
3100	// The name or ID of the application.
3101	//
3102	// Application is a required field
3103	Application *string `location:"uri" locationName:"application" min:"1" type:"string" required:"true"`
3104}
3105
3106// String returns the string representation
3107func (s GetApplicationInput) String() string {
3108	return awsutil.Prettify(s)
3109}
3110
3111// GoString returns the string representation
3112func (s GetApplicationInput) GoString() string {
3113	return s.String()
3114}
3115
3116// Validate inspects the fields of the type to determine if they are valid.
3117func (s *GetApplicationInput) Validate() error {
3118	invalidParams := request.ErrInvalidParams{Context: "GetApplicationInput"}
3119	if s.Application == nil {
3120		invalidParams.Add(request.NewErrParamRequired("Application"))
3121	}
3122	if s.Application != nil && len(*s.Application) < 1 {
3123		invalidParams.Add(request.NewErrParamMinLen("Application", 1))
3124	}
3125
3126	if invalidParams.Len() > 0 {
3127		return invalidParams
3128	}
3129	return nil
3130}
3131
3132// SetApplication sets the Application field's value.
3133func (s *GetApplicationInput) SetApplication(v string) *GetApplicationInput {
3134	s.Application = &v
3135	return s
3136}
3137
3138type GetApplicationOutput struct {
3139	_ struct{} `type:"structure"`
3140
3141	// The Amazon resource name (ARN) that specifies the application across services.
3142	Arn *string `locationName:"arn" type:"string"`
3143
3144	// The number of top-level resources that were registered as part of this application.
3145	AssociatedResourceCount *int64 `locationName:"associatedResourceCount" type:"integer"`
3146
3147	// The ISO-8601 formatted timestamp of the moment when the application was created.
3148	CreationTime *time.Time `locationName:"creationTime" type:"timestamp" timestampFormat:"iso8601"`
3149
3150	// The description of the application.
3151	Description *string `locationName:"description" type:"string"`
3152
3153	// The identifier of the application.
3154	Id *string `locationName:"id" type:"string"`
3155
3156	// The ISO-8601 formatted timestamp of the moment when the application was last
3157	// updated.
3158	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp" timestampFormat:"iso8601"`
3159
3160	// The name of the application. The name must be unique in the region in which
3161	// you are creating the application.
3162	Name *string `locationName:"name" min:"1" type:"string"`
3163
3164	// Key-value pairs associated with the application.
3165	Tags map[string]*string `locationName:"tags" type:"map"`
3166}
3167
3168// String returns the string representation
3169func (s GetApplicationOutput) String() string {
3170	return awsutil.Prettify(s)
3171}
3172
3173// GoString returns the string representation
3174func (s GetApplicationOutput) GoString() string {
3175	return s.String()
3176}
3177
3178// SetArn sets the Arn field's value.
3179func (s *GetApplicationOutput) SetArn(v string) *GetApplicationOutput {
3180	s.Arn = &v
3181	return s
3182}
3183
3184// SetAssociatedResourceCount sets the AssociatedResourceCount field's value.
3185func (s *GetApplicationOutput) SetAssociatedResourceCount(v int64) *GetApplicationOutput {
3186	s.AssociatedResourceCount = &v
3187	return s
3188}
3189
3190// SetCreationTime sets the CreationTime field's value.
3191func (s *GetApplicationOutput) SetCreationTime(v time.Time) *GetApplicationOutput {
3192	s.CreationTime = &v
3193	return s
3194}
3195
3196// SetDescription sets the Description field's value.
3197func (s *GetApplicationOutput) SetDescription(v string) *GetApplicationOutput {
3198	s.Description = &v
3199	return s
3200}
3201
3202// SetId sets the Id field's value.
3203func (s *GetApplicationOutput) SetId(v string) *GetApplicationOutput {
3204	s.Id = &v
3205	return s
3206}
3207
3208// SetLastUpdateTime sets the LastUpdateTime field's value.
3209func (s *GetApplicationOutput) SetLastUpdateTime(v time.Time) *GetApplicationOutput {
3210	s.LastUpdateTime = &v
3211	return s
3212}
3213
3214// SetName sets the Name field's value.
3215func (s *GetApplicationOutput) SetName(v string) *GetApplicationOutput {
3216	s.Name = &v
3217	return s
3218}
3219
3220// SetTags sets the Tags field's value.
3221func (s *GetApplicationOutput) SetTags(v map[string]*string) *GetApplicationOutput {
3222	s.Tags = v
3223	return s
3224}
3225
3226type GetAttributeGroupInput struct {
3227	_ struct{} `type:"structure"`
3228
3229	// The name or ID of the attribute group that holds the attributes to describe
3230	// the application.
3231	//
3232	// AttributeGroup is a required field
3233	AttributeGroup *string `location:"uri" locationName:"attributeGroup" min:"1" type:"string" required:"true"`
3234}
3235
3236// String returns the string representation
3237func (s GetAttributeGroupInput) String() string {
3238	return awsutil.Prettify(s)
3239}
3240
3241// GoString returns the string representation
3242func (s GetAttributeGroupInput) GoString() string {
3243	return s.String()
3244}
3245
3246// Validate inspects the fields of the type to determine if they are valid.
3247func (s *GetAttributeGroupInput) Validate() error {
3248	invalidParams := request.ErrInvalidParams{Context: "GetAttributeGroupInput"}
3249	if s.AttributeGroup == nil {
3250		invalidParams.Add(request.NewErrParamRequired("AttributeGroup"))
3251	}
3252	if s.AttributeGroup != nil && len(*s.AttributeGroup) < 1 {
3253		invalidParams.Add(request.NewErrParamMinLen("AttributeGroup", 1))
3254	}
3255
3256	if invalidParams.Len() > 0 {
3257		return invalidParams
3258	}
3259	return nil
3260}
3261
3262// SetAttributeGroup sets the AttributeGroup field's value.
3263func (s *GetAttributeGroupInput) SetAttributeGroup(v string) *GetAttributeGroupInput {
3264	s.AttributeGroup = &v
3265	return s
3266}
3267
3268type GetAttributeGroupOutput struct {
3269	_ struct{} `type:"structure"`
3270
3271	// The Amazon resource name (ARN) that specifies the attribute group across
3272	// services.
3273	Arn *string `locationName:"arn" type:"string"`
3274
3275	// A JSON string in the form of nested key-value pairs that represent the attributes
3276	// in the group and describes an application and its components.
3277	Attributes *string `locationName:"attributes" min:"1" type:"string"`
3278
3279	// The ISO-8601 formatted timestamp of the moment the attribute group was created.
3280	CreationTime *time.Time `locationName:"creationTime" type:"timestamp" timestampFormat:"iso8601"`
3281
3282	// The description of the attribute group that the user provides.
3283	Description *string `locationName:"description" type:"string"`
3284
3285	// The identifier of the attribute group.
3286	Id *string `locationName:"id" min:"1" type:"string"`
3287
3288	// The ISO-8601 formatted timestamp of the moment the attribute group was last
3289	// updated. This time is the same as the creationTime for a newly created attribute
3290	// group.
3291	LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp" timestampFormat:"iso8601"`
3292
3293	// The name of the attribute group.
3294	Name *string `locationName:"name" min:"1" type:"string"`
3295
3296	// Key-value pairs associated with the attribute group.
3297	Tags map[string]*string `locationName:"tags" type:"map"`
3298}
3299
3300// String returns the string representation
3301func (s GetAttributeGroupOutput) String() string {
3302	return awsutil.Prettify(s)
3303}
3304
3305// GoString returns the string representation
3306func (s GetAttributeGroupOutput) GoString() string {
3307	return s.String()
3308}
3309
3310// SetArn sets the Arn field's value.
3311func (s *GetAttributeGroupOutput) SetArn(v string) *GetAttributeGroupOutput {
3312	s.Arn = &v
3313	return s
3314}
3315
3316// SetAttributes sets the Attributes field's value.
3317func (s *GetAttributeGroupOutput) SetAttributes(v string) *GetAttributeGroupOutput {
3318	s.Attributes = &v
3319	return s
3320}
3321
3322// SetCreationTime sets the CreationTime field's value.
3323func (s *GetAttributeGroupOutput) SetCreationTime(v time.Time) *GetAttributeGroupOutput {
3324	s.CreationTime = &v
3325	return s
3326}
3327
3328// SetDescription sets the Description field's value.
3329func (s *GetAttributeGroupOutput) SetDescription(v string) *GetAttributeGroupOutput {
3330	s.Description = &v
3331	return s
3332}
3333
3334// SetId sets the Id field's value.
3335func (s *GetAttributeGroupOutput) SetId(v string) *GetAttributeGroupOutput {
3336	s.Id = &v
3337	return s
3338}
3339
3340// SetLastUpdateTime sets the LastUpdateTime field's value.
3341func (s *GetAttributeGroupOutput) SetLastUpdateTime(v time.Time) *GetAttributeGroupOutput {
3342	s.LastUpdateTime = &v
3343	return s
3344}
3345
3346// SetName sets the Name field's value.
3347func (s *GetAttributeGroupOutput) SetName(v string) *GetAttributeGroupOutput {
3348	s.Name = &v
3349	return s
3350}
3351
3352// SetTags sets the Tags field's value.
3353func (s *GetAttributeGroupOutput) SetTags(v map[string]*string) *GetAttributeGroupOutput {
3354	s.Tags = v
3355	return s
3356}
3357
3358// The service is experiencing internal problems.
3359type InternalServerException struct {
3360	_            struct{}                  `type:"structure"`
3361	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3362
3363	Message_ *string `locationName:"message" type:"string"`
3364}
3365
3366// String returns the string representation
3367func (s InternalServerException) String() string {
3368	return awsutil.Prettify(s)
3369}
3370
3371// GoString returns the string representation
3372func (s InternalServerException) GoString() string {
3373	return s.String()
3374}
3375
3376func newErrorInternalServerException(v protocol.ResponseMetadata) error {
3377	return &InternalServerException{
3378		RespMetadata: v,
3379	}
3380}
3381
3382// Code returns the exception type name.
3383func (s *InternalServerException) Code() string {
3384	return "InternalServerException"
3385}
3386
3387// Message returns the exception's message.
3388func (s *InternalServerException) Message() string {
3389	if s.Message_ != nil {
3390		return *s.Message_
3391	}
3392	return ""
3393}
3394
3395// OrigErr always returns nil, satisfies awserr.Error interface.
3396func (s *InternalServerException) OrigErr() error {
3397	return nil
3398}
3399
3400func (s *InternalServerException) Error() string {
3401	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3402}
3403
3404// Status code returns the HTTP status code for the request's response error.
3405func (s *InternalServerException) StatusCode() int {
3406	return s.RespMetadata.StatusCode
3407}
3408
3409// RequestID returns the service's response RequestID for request.
3410func (s *InternalServerException) RequestID() string {
3411	return s.RespMetadata.RequestID
3412}
3413
3414type ListApplicationsInput struct {
3415	_ struct{} `type:"structure"`
3416
3417	// The upper bound of the number of results to return (cannot exceed 25). If
3418	// this parameter is omitted, it defaults to 25. This value is optional.
3419	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
3420
3421	// The token to use to get the next page of results after a previous API call.
3422	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
3423}
3424
3425// String returns the string representation
3426func (s ListApplicationsInput) String() string {
3427	return awsutil.Prettify(s)
3428}
3429
3430// GoString returns the string representation
3431func (s ListApplicationsInput) GoString() string {
3432	return s.String()
3433}
3434
3435// Validate inspects the fields of the type to determine if they are valid.
3436func (s *ListApplicationsInput) Validate() error {
3437	invalidParams := request.ErrInvalidParams{Context: "ListApplicationsInput"}
3438	if s.MaxResults != nil && *s.MaxResults < 1 {
3439		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3440	}
3441	if s.NextToken != nil && len(*s.NextToken) < 1 {
3442		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3443	}
3444
3445	if invalidParams.Len() > 0 {
3446		return invalidParams
3447	}
3448	return nil
3449}
3450
3451// SetMaxResults sets the MaxResults field's value.
3452func (s *ListApplicationsInput) SetMaxResults(v int64) *ListApplicationsInput {
3453	s.MaxResults = &v
3454	return s
3455}
3456
3457// SetNextToken sets the NextToken field's value.
3458func (s *ListApplicationsInput) SetNextToken(v string) *ListApplicationsInput {
3459	s.NextToken = &v
3460	return s
3461}
3462
3463type ListApplicationsOutput struct {
3464	_ struct{} `type:"structure"`
3465
3466	// This list of applications.
3467	Applications []*ApplicationSummary `locationName:"applications" type:"list"`
3468
3469	// The token to use to get the next page of results after a previous API call.
3470	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3471}
3472
3473// String returns the string representation
3474func (s ListApplicationsOutput) String() string {
3475	return awsutil.Prettify(s)
3476}
3477
3478// GoString returns the string representation
3479func (s ListApplicationsOutput) GoString() string {
3480	return s.String()
3481}
3482
3483// SetApplications sets the Applications field's value.
3484func (s *ListApplicationsOutput) SetApplications(v []*ApplicationSummary) *ListApplicationsOutput {
3485	s.Applications = v
3486	return s
3487}
3488
3489// SetNextToken sets the NextToken field's value.
3490func (s *ListApplicationsOutput) SetNextToken(v string) *ListApplicationsOutput {
3491	s.NextToken = &v
3492	return s
3493}
3494
3495type ListAssociatedAttributeGroupsInput struct {
3496	_ struct{} `type:"structure"`
3497
3498	// The name or ID of the application.
3499	//
3500	// Application is a required field
3501	Application *string `location:"uri" locationName:"application" min:"1" type:"string" required:"true"`
3502
3503	// The upper bound of the number of results to return (cannot exceed 25). If
3504	// this parameter is omitted, it defaults to 25. This value is optional.
3505	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
3506
3507	// The token to use to get the next page of results after a previous API call.
3508	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
3509}
3510
3511// String returns the string representation
3512func (s ListAssociatedAttributeGroupsInput) String() string {
3513	return awsutil.Prettify(s)
3514}
3515
3516// GoString returns the string representation
3517func (s ListAssociatedAttributeGroupsInput) GoString() string {
3518	return s.String()
3519}
3520
3521// Validate inspects the fields of the type to determine if they are valid.
3522func (s *ListAssociatedAttributeGroupsInput) Validate() error {
3523	invalidParams := request.ErrInvalidParams{Context: "ListAssociatedAttributeGroupsInput"}
3524	if s.Application == nil {
3525		invalidParams.Add(request.NewErrParamRequired("Application"))
3526	}
3527	if s.Application != nil && len(*s.Application) < 1 {
3528		invalidParams.Add(request.NewErrParamMinLen("Application", 1))
3529	}
3530	if s.MaxResults != nil && *s.MaxResults < 1 {
3531		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3532	}
3533	if s.NextToken != nil && len(*s.NextToken) < 1 {
3534		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3535	}
3536
3537	if invalidParams.Len() > 0 {
3538		return invalidParams
3539	}
3540	return nil
3541}
3542
3543// SetApplication sets the Application field's value.
3544func (s *ListAssociatedAttributeGroupsInput) SetApplication(v string) *ListAssociatedAttributeGroupsInput {
3545	s.Application = &v
3546	return s
3547}
3548
3549// SetMaxResults sets the MaxResults field's value.
3550func (s *ListAssociatedAttributeGroupsInput) SetMaxResults(v int64) *ListAssociatedAttributeGroupsInput {
3551	s.MaxResults = &v
3552	return s
3553}
3554
3555// SetNextToken sets the NextToken field's value.
3556func (s *ListAssociatedAttributeGroupsInput) SetNextToken(v string) *ListAssociatedAttributeGroupsInput {
3557	s.NextToken = &v
3558	return s
3559}
3560
3561type ListAssociatedAttributeGroupsOutput struct {
3562	_ struct{} `type:"structure"`
3563
3564	// A list of attribute group IDs.
3565	AttributeGroups []*string `locationName:"attributeGroups" type:"list"`
3566
3567	// The token to use to get the next page of results after a previous API call.
3568	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3569}
3570
3571// String returns the string representation
3572func (s ListAssociatedAttributeGroupsOutput) String() string {
3573	return awsutil.Prettify(s)
3574}
3575
3576// GoString returns the string representation
3577func (s ListAssociatedAttributeGroupsOutput) GoString() string {
3578	return s.String()
3579}
3580
3581// SetAttributeGroups sets the AttributeGroups field's value.
3582func (s *ListAssociatedAttributeGroupsOutput) SetAttributeGroups(v []*string) *ListAssociatedAttributeGroupsOutput {
3583	s.AttributeGroups = v
3584	return s
3585}
3586
3587// SetNextToken sets the NextToken field's value.
3588func (s *ListAssociatedAttributeGroupsOutput) SetNextToken(v string) *ListAssociatedAttributeGroupsOutput {
3589	s.NextToken = &v
3590	return s
3591}
3592
3593type ListAssociatedResourcesInput struct {
3594	_ struct{} `type:"structure"`
3595
3596	// The name or ID of the application.
3597	//
3598	// Application is a required field
3599	Application *string `location:"uri" locationName:"application" min:"1" type:"string" required:"true"`
3600
3601	// The upper bound of the number of results to return (cannot exceed 25). If
3602	// this parameter is omitted, it defaults to 25. This value is optional.
3603	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
3604
3605	// The token to use to get the next page of results after a previous API call.
3606	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
3607}
3608
3609// String returns the string representation
3610func (s ListAssociatedResourcesInput) String() string {
3611	return awsutil.Prettify(s)
3612}
3613
3614// GoString returns the string representation
3615func (s ListAssociatedResourcesInput) GoString() string {
3616	return s.String()
3617}
3618
3619// Validate inspects the fields of the type to determine if they are valid.
3620func (s *ListAssociatedResourcesInput) Validate() error {
3621	invalidParams := request.ErrInvalidParams{Context: "ListAssociatedResourcesInput"}
3622	if s.Application == nil {
3623		invalidParams.Add(request.NewErrParamRequired("Application"))
3624	}
3625	if s.Application != nil && len(*s.Application) < 1 {
3626		invalidParams.Add(request.NewErrParamMinLen("Application", 1))
3627	}
3628	if s.MaxResults != nil && *s.MaxResults < 1 {
3629		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3630	}
3631	if s.NextToken != nil && len(*s.NextToken) < 1 {
3632		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3633	}
3634
3635	if invalidParams.Len() > 0 {
3636		return invalidParams
3637	}
3638	return nil
3639}
3640
3641// SetApplication sets the Application field's value.
3642func (s *ListAssociatedResourcesInput) SetApplication(v string) *ListAssociatedResourcesInput {
3643	s.Application = &v
3644	return s
3645}
3646
3647// SetMaxResults sets the MaxResults field's value.
3648func (s *ListAssociatedResourcesInput) SetMaxResults(v int64) *ListAssociatedResourcesInput {
3649	s.MaxResults = &v
3650	return s
3651}
3652
3653// SetNextToken sets the NextToken field's value.
3654func (s *ListAssociatedResourcesInput) SetNextToken(v string) *ListAssociatedResourcesInput {
3655	s.NextToken = &v
3656	return s
3657}
3658
3659type ListAssociatedResourcesOutput struct {
3660	_ struct{} `type:"structure"`
3661
3662	// The token to use to get the next page of results after a previous API call.
3663	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3664
3665	// Information about the resources.
3666	Resources []*ResourceInfo `locationName:"resources" type:"list"`
3667}
3668
3669// String returns the string representation
3670func (s ListAssociatedResourcesOutput) String() string {
3671	return awsutil.Prettify(s)
3672}
3673
3674// GoString returns the string representation
3675func (s ListAssociatedResourcesOutput) GoString() string {
3676	return s.String()
3677}
3678
3679// SetNextToken sets the NextToken field's value.
3680func (s *ListAssociatedResourcesOutput) SetNextToken(v string) *ListAssociatedResourcesOutput {
3681	s.NextToken = &v
3682	return s
3683}
3684
3685// SetResources sets the Resources field's value.
3686func (s *ListAssociatedResourcesOutput) SetResources(v []*ResourceInfo) *ListAssociatedResourcesOutput {
3687	s.Resources = v
3688	return s
3689}
3690
3691type ListAttributeGroupsInput struct {
3692	_ struct{} `type:"structure"`
3693
3694	// The upper bound of the number of results to return (cannot exceed 25). If
3695	// this parameter is omitted, it defaults to 25. This value is optional.
3696	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
3697
3698	// The token to use to get the next page of results after a previous API call.
3699	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
3700}
3701
3702// String returns the string representation
3703func (s ListAttributeGroupsInput) String() string {
3704	return awsutil.Prettify(s)
3705}
3706
3707// GoString returns the string representation
3708func (s ListAttributeGroupsInput) GoString() string {
3709	return s.String()
3710}
3711
3712// Validate inspects the fields of the type to determine if they are valid.
3713func (s *ListAttributeGroupsInput) Validate() error {
3714	invalidParams := request.ErrInvalidParams{Context: "ListAttributeGroupsInput"}
3715	if s.MaxResults != nil && *s.MaxResults < 1 {
3716		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3717	}
3718	if s.NextToken != nil && len(*s.NextToken) < 1 {
3719		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3720	}
3721
3722	if invalidParams.Len() > 0 {
3723		return invalidParams
3724	}
3725	return nil
3726}
3727
3728// SetMaxResults sets the MaxResults field's value.
3729func (s *ListAttributeGroupsInput) SetMaxResults(v int64) *ListAttributeGroupsInput {
3730	s.MaxResults = &v
3731	return s
3732}
3733
3734// SetNextToken sets the NextToken field's value.
3735func (s *ListAttributeGroupsInput) SetNextToken(v string) *ListAttributeGroupsInput {
3736	s.NextToken = &v
3737	return s
3738}
3739
3740type ListAttributeGroupsOutput struct {
3741	_ struct{} `type:"structure"`
3742
3743	// This list of attribute groups.
3744	AttributeGroups []*AttributeGroupSummary `locationName:"attributeGroups" type:"list"`
3745
3746	// The token to use to get the next page of results after a previous API call.
3747	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3748}
3749
3750// String returns the string representation
3751func (s ListAttributeGroupsOutput) String() string {
3752	return awsutil.Prettify(s)
3753}
3754
3755// GoString returns the string representation
3756func (s ListAttributeGroupsOutput) GoString() string {
3757	return s.String()
3758}
3759
3760// SetAttributeGroups sets the AttributeGroups field's value.
3761func (s *ListAttributeGroupsOutput) SetAttributeGroups(v []*AttributeGroupSummary) *ListAttributeGroupsOutput {
3762	s.AttributeGroups = v
3763	return s
3764}
3765
3766// SetNextToken sets the NextToken field's value.
3767func (s *ListAttributeGroupsOutput) SetNextToken(v string) *ListAttributeGroupsOutput {
3768	s.NextToken = &v
3769	return s
3770}
3771
3772type ListTagsForResourceInput struct {
3773	_ struct{} `type:"structure"`
3774
3775	// The Amazon resource name (ARN) that specifies the resource.
3776	//
3777	// ResourceArn is a required field
3778	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
3779}
3780
3781// String returns the string representation
3782func (s ListTagsForResourceInput) String() string {
3783	return awsutil.Prettify(s)
3784}
3785
3786// GoString returns the string representation
3787func (s ListTagsForResourceInput) GoString() string {
3788	return s.String()
3789}
3790
3791// Validate inspects the fields of the type to determine if they are valid.
3792func (s *ListTagsForResourceInput) Validate() error {
3793	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
3794	if s.ResourceArn == nil {
3795		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
3796	}
3797	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
3798		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
3799	}
3800
3801	if invalidParams.Len() > 0 {
3802		return invalidParams
3803	}
3804	return nil
3805}
3806
3807// SetResourceArn sets the ResourceArn field's value.
3808func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
3809	s.ResourceArn = &v
3810	return s
3811}
3812
3813type ListTagsForResourceOutput struct {
3814	_ struct{} `type:"structure"`
3815
3816	// The tags on the resource.
3817	Tags map[string]*string `locationName:"tags" type:"map"`
3818}
3819
3820// String returns the string representation
3821func (s ListTagsForResourceOutput) String() string {
3822	return awsutil.Prettify(s)
3823}
3824
3825// GoString returns the string representation
3826func (s ListTagsForResourceOutput) GoString() string {
3827	return s.String()
3828}
3829
3830// SetTags sets the Tags field's value.
3831func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
3832	s.Tags = v
3833	return s
3834}
3835
3836// Information about the resource.
3837type ResourceInfo struct {
3838	_ struct{} `type:"structure"`
3839
3840	// The Amazon resource name (ARN) that specifies the resource across services.
3841	Arn *string `locationName:"arn" type:"string"`
3842
3843	// The name of the resource.
3844	Name *string `locationName:"name" min:"1" type:"string"`
3845}
3846
3847// String returns the string representation
3848func (s ResourceInfo) String() string {
3849	return awsutil.Prettify(s)
3850}
3851
3852// GoString returns the string representation
3853func (s ResourceInfo) GoString() string {
3854	return s.String()
3855}
3856
3857// SetArn sets the Arn field's value.
3858func (s *ResourceInfo) SetArn(v string) *ResourceInfo {
3859	s.Arn = &v
3860	return s
3861}
3862
3863// SetName sets the Name field's value.
3864func (s *ResourceInfo) SetName(v string) *ResourceInfo {
3865	s.Name = &v
3866	return s
3867}
3868
3869// The specified resource does not exist.
3870type ResourceNotFoundException struct {
3871	_            struct{}                  `type:"structure"`
3872	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3873
3874	Message_ *string `locationName:"message" type:"string"`
3875}
3876
3877// String returns the string representation
3878func (s ResourceNotFoundException) String() string {
3879	return awsutil.Prettify(s)
3880}
3881
3882// GoString returns the string representation
3883func (s ResourceNotFoundException) GoString() string {
3884	return s.String()
3885}
3886
3887func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
3888	return &ResourceNotFoundException{
3889		RespMetadata: v,
3890	}
3891}
3892
3893// Code returns the exception type name.
3894func (s *ResourceNotFoundException) Code() string {
3895	return "ResourceNotFoundException"
3896}
3897
3898// Message returns the exception's message.
3899func (s *ResourceNotFoundException) Message() string {
3900	if s.Message_ != nil {
3901		return *s.Message_
3902	}
3903	return ""
3904}
3905
3906// OrigErr always returns nil, satisfies awserr.Error interface.
3907func (s *ResourceNotFoundException) OrigErr() error {
3908	return nil
3909}
3910
3911func (s *ResourceNotFoundException) Error() string {
3912	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3913}
3914
3915// Status code returns the HTTP status code for the request's response error.
3916func (s *ResourceNotFoundException) StatusCode() int {
3917	return s.RespMetadata.StatusCode
3918}
3919
3920// RequestID returns the service's response RequestID for request.
3921func (s *ResourceNotFoundException) RequestID() string {
3922	return s.RespMetadata.RequestID
3923}
3924
3925// The maximum number of resources per account has been reached.
3926type ServiceQuotaExceededException struct {
3927	_            struct{}                  `type:"structure"`
3928	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3929
3930	Message_ *string `locationName:"message" type:"string"`
3931}
3932
3933// String returns the string representation
3934func (s ServiceQuotaExceededException) String() string {
3935	return awsutil.Prettify(s)
3936}
3937
3938// GoString returns the string representation
3939func (s ServiceQuotaExceededException) GoString() string {
3940	return s.String()
3941}
3942
3943func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
3944	return &ServiceQuotaExceededException{
3945		RespMetadata: v,
3946	}
3947}
3948
3949// Code returns the exception type name.
3950func (s *ServiceQuotaExceededException) Code() string {
3951	return "ServiceQuotaExceededException"
3952}
3953
3954// Message returns the exception's message.
3955func (s *ServiceQuotaExceededException) Message() string {
3956	if s.Message_ != nil {
3957		return *s.Message_
3958	}
3959	return ""
3960}
3961
3962// OrigErr always returns nil, satisfies awserr.Error interface.
3963func (s *ServiceQuotaExceededException) OrigErr() error {
3964	return nil
3965}
3966
3967func (s *ServiceQuotaExceededException) Error() string {
3968	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3969}
3970
3971// Status code returns the HTTP status code for the request's response error.
3972func (s *ServiceQuotaExceededException) StatusCode() int {
3973	return s.RespMetadata.StatusCode
3974}
3975
3976// RequestID returns the service's response RequestID for request.
3977func (s *ServiceQuotaExceededException) RequestID() string {
3978	return s.RespMetadata.RequestID
3979}
3980
3981type SyncResourceInput struct {
3982	_ struct{} `type:"structure"`
3983
3984	// An entity you can work with and specify with a name or ID. Examples include
3985	// an Amazon EC2 instance, an AWS CloudFormation stack, or an Amazon S3 bucket.
3986	//
3987	// Resource is a required field
3988	Resource *string `location:"uri" locationName:"resource" min:"1" type:"string" required:"true"`
3989
3990	// The type of resource of which the application will be associated.
3991	//
3992	// ResourceType is a required field
3993	ResourceType *string `location:"uri" locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
3994}
3995
3996// String returns the string representation
3997func (s SyncResourceInput) String() string {
3998	return awsutil.Prettify(s)
3999}
4000
4001// GoString returns the string representation
4002func (s SyncResourceInput) GoString() string {
4003	return s.String()
4004}
4005
4006// Validate inspects the fields of the type to determine if they are valid.
4007func (s *SyncResourceInput) Validate() error {
4008	invalidParams := request.ErrInvalidParams{Context: "SyncResourceInput"}
4009	if s.Resource == nil {
4010		invalidParams.Add(request.NewErrParamRequired("Resource"))
4011	}
4012	if s.Resource != nil && len(*s.Resource) < 1 {
4013		invalidParams.Add(request.NewErrParamMinLen("Resource", 1))
4014	}
4015	if s.ResourceType == nil {
4016		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
4017	}
4018	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
4019		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
4020	}
4021
4022	if invalidParams.Len() > 0 {
4023		return invalidParams
4024	}
4025	return nil
4026}
4027
4028// SetResource sets the Resource field's value.
4029func (s *SyncResourceInput) SetResource(v string) *SyncResourceInput {
4030	s.Resource = &v
4031	return s
4032}
4033
4034// SetResourceType sets the ResourceType field's value.
4035func (s *SyncResourceInput) SetResourceType(v string) *SyncResourceInput {
4036	s.ResourceType = &v
4037	return s
4038}
4039
4040type SyncResourceOutput struct {
4041	_ struct{} `type:"structure"`
4042
4043	// The results of the output if an application is associated with an ARN value,
4044	// which could be syncStarted or None.
4045	ActionTaken *string `locationName:"actionTaken" type:"string" enum:"SyncAction"`
4046
4047	// The Amazon resource name (ARN) that specifies the application.
4048	ApplicationArn *string `locationName:"applicationArn" type:"string"`
4049
4050	// The Amazon resource name (ARN) that specifies the resource.
4051	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string"`
4052}
4053
4054// String returns the string representation
4055func (s SyncResourceOutput) String() string {
4056	return awsutil.Prettify(s)
4057}
4058
4059// GoString returns the string representation
4060func (s SyncResourceOutput) GoString() string {
4061	return s.String()
4062}
4063
4064// SetActionTaken sets the ActionTaken field's value.
4065func (s *SyncResourceOutput) SetActionTaken(v string) *SyncResourceOutput {
4066	s.ActionTaken = &v
4067	return s
4068}
4069
4070// SetApplicationArn sets the ApplicationArn field's value.
4071func (s *SyncResourceOutput) SetApplicationArn(v string) *SyncResourceOutput {
4072	s.ApplicationArn = &v
4073	return s
4074}
4075
4076// SetResourceArn sets the ResourceArn field's value.
4077func (s *SyncResourceOutput) SetResourceArn(v string) *SyncResourceOutput {
4078	s.ResourceArn = &v
4079	return s
4080}
4081
4082type TagResourceInput struct {
4083	_ struct{} `type:"structure"`
4084
4085	// The Amazon resource name (ARN) that specifies the resource.
4086	//
4087	// ResourceArn is a required field
4088	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
4089
4090	// The new or modified tags for the resource.
4091	//
4092	// Tags is a required field
4093	Tags map[string]*string `locationName:"tags" type:"map" required:"true"`
4094}
4095
4096// String returns the string representation
4097func (s TagResourceInput) String() string {
4098	return awsutil.Prettify(s)
4099}
4100
4101// GoString returns the string representation
4102func (s TagResourceInput) GoString() string {
4103	return s.String()
4104}
4105
4106// Validate inspects the fields of the type to determine if they are valid.
4107func (s *TagResourceInput) Validate() error {
4108	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
4109	if s.ResourceArn == nil {
4110		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
4111	}
4112	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
4113		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
4114	}
4115	if s.Tags == nil {
4116		invalidParams.Add(request.NewErrParamRequired("Tags"))
4117	}
4118
4119	if invalidParams.Len() > 0 {
4120		return invalidParams
4121	}
4122	return nil
4123}
4124
4125// SetResourceArn sets the ResourceArn field's value.
4126func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
4127	s.ResourceArn = &v
4128	return s
4129}
4130
4131// SetTags sets the Tags field's value.
4132func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
4133	s.Tags = v
4134	return s
4135}
4136
4137type TagResourceOutput struct {
4138	_ struct{} `type:"structure"`
4139}
4140
4141// String returns the string representation
4142func (s TagResourceOutput) String() string {
4143	return awsutil.Prettify(s)
4144}
4145
4146// GoString returns the string representation
4147func (s TagResourceOutput) GoString() string {
4148	return s.String()
4149}
4150
4151type UntagResourceInput struct {
4152	_ struct{} `type:"structure"`
4153
4154	// The Amazon resource name (ARN) that specifies the resource.
4155	//
4156	// ResourceArn is a required field
4157	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
4158
4159	// A list of the tag keys to remove from the specified resource.
4160	//
4161	// TagKeys is a required field
4162	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
4163}
4164
4165// String returns the string representation
4166func (s UntagResourceInput) String() string {
4167	return awsutil.Prettify(s)
4168}
4169
4170// GoString returns the string representation
4171func (s UntagResourceInput) GoString() string {
4172	return s.String()
4173}
4174
4175// Validate inspects the fields of the type to determine if they are valid.
4176func (s *UntagResourceInput) Validate() error {
4177	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
4178	if s.ResourceArn == nil {
4179		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
4180	}
4181	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
4182		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
4183	}
4184	if s.TagKeys == nil {
4185		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
4186	}
4187
4188	if invalidParams.Len() > 0 {
4189		return invalidParams
4190	}
4191	return nil
4192}
4193
4194// SetResourceArn sets the ResourceArn field's value.
4195func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
4196	s.ResourceArn = &v
4197	return s
4198}
4199
4200// SetTagKeys sets the TagKeys field's value.
4201func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
4202	s.TagKeys = v
4203	return s
4204}
4205
4206type UntagResourceOutput struct {
4207	_ struct{} `type:"structure"`
4208}
4209
4210// String returns the string representation
4211func (s UntagResourceOutput) String() string {
4212	return awsutil.Prettify(s)
4213}
4214
4215// GoString returns the string representation
4216func (s UntagResourceOutput) GoString() string {
4217	return s.String()
4218}
4219
4220type UpdateApplicationInput struct {
4221	_ struct{} `type:"structure"`
4222
4223	// The name or ID of the application that will be updated.
4224	//
4225	// Application is a required field
4226	Application *string `location:"uri" locationName:"application" min:"1" type:"string" required:"true"`
4227
4228	// The new description of the application.
4229	Description *string `locationName:"description" type:"string"`
4230
4231	// The new name of the application. The name must be unique in the region in
4232	// which you are updating the application.
4233	Name *string `locationName:"name" min:"1" type:"string"`
4234}
4235
4236// String returns the string representation
4237func (s UpdateApplicationInput) String() string {
4238	return awsutil.Prettify(s)
4239}
4240
4241// GoString returns the string representation
4242func (s UpdateApplicationInput) GoString() string {
4243	return s.String()
4244}
4245
4246// Validate inspects the fields of the type to determine if they are valid.
4247func (s *UpdateApplicationInput) Validate() error {
4248	invalidParams := request.ErrInvalidParams{Context: "UpdateApplicationInput"}
4249	if s.Application == nil {
4250		invalidParams.Add(request.NewErrParamRequired("Application"))
4251	}
4252	if s.Application != nil && len(*s.Application) < 1 {
4253		invalidParams.Add(request.NewErrParamMinLen("Application", 1))
4254	}
4255	if s.Name != nil && len(*s.Name) < 1 {
4256		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
4257	}
4258
4259	if invalidParams.Len() > 0 {
4260		return invalidParams
4261	}
4262	return nil
4263}
4264
4265// SetApplication sets the Application field's value.
4266func (s *UpdateApplicationInput) SetApplication(v string) *UpdateApplicationInput {
4267	s.Application = &v
4268	return s
4269}
4270
4271// SetDescription sets the Description field's value.
4272func (s *UpdateApplicationInput) SetDescription(v string) *UpdateApplicationInput {
4273	s.Description = &v
4274	return s
4275}
4276
4277// SetName sets the Name field's value.
4278func (s *UpdateApplicationInput) SetName(v string) *UpdateApplicationInput {
4279	s.Name = &v
4280	return s
4281}
4282
4283type UpdateApplicationOutput struct {
4284	_ struct{} `type:"structure"`
4285
4286	// The updated information of the application.
4287	Application *Application `locationName:"application" type:"structure"`
4288}
4289
4290// String returns the string representation
4291func (s UpdateApplicationOutput) String() string {
4292	return awsutil.Prettify(s)
4293}
4294
4295// GoString returns the string representation
4296func (s UpdateApplicationOutput) GoString() string {
4297	return s.String()
4298}
4299
4300// SetApplication sets the Application field's value.
4301func (s *UpdateApplicationOutput) SetApplication(v *Application) *UpdateApplicationOutput {
4302	s.Application = v
4303	return s
4304}
4305
4306type UpdateAttributeGroupInput struct {
4307	_ struct{} `type:"structure"`
4308
4309	// The name or ID of the attribute group that holds the attributes to describe
4310	// the application.
4311	//
4312	// AttributeGroup is a required field
4313	AttributeGroup *string `location:"uri" locationName:"attributeGroup" min:"1" type:"string" required:"true"`
4314
4315	// A JSON string in the form of nested key-value pairs that represent the attributes
4316	// in the group and describes an application and its components.
4317	Attributes *string `locationName:"attributes" min:"1" type:"string"`
4318
4319	// The description of the attribute group that the user provides.
4320	Description *string `locationName:"description" type:"string"`
4321
4322	// The new name of the attribute group. The name must be unique in the region
4323	// in which you are updating the attribute group.
4324	Name *string `locationName:"name" min:"1" type:"string"`
4325}
4326
4327// String returns the string representation
4328func (s UpdateAttributeGroupInput) String() string {
4329	return awsutil.Prettify(s)
4330}
4331
4332// GoString returns the string representation
4333func (s UpdateAttributeGroupInput) GoString() string {
4334	return s.String()
4335}
4336
4337// Validate inspects the fields of the type to determine if they are valid.
4338func (s *UpdateAttributeGroupInput) Validate() error {
4339	invalidParams := request.ErrInvalidParams{Context: "UpdateAttributeGroupInput"}
4340	if s.AttributeGroup == nil {
4341		invalidParams.Add(request.NewErrParamRequired("AttributeGroup"))
4342	}
4343	if s.AttributeGroup != nil && len(*s.AttributeGroup) < 1 {
4344		invalidParams.Add(request.NewErrParamMinLen("AttributeGroup", 1))
4345	}
4346	if s.Attributes != nil && len(*s.Attributes) < 1 {
4347		invalidParams.Add(request.NewErrParamMinLen("Attributes", 1))
4348	}
4349	if s.Name != nil && len(*s.Name) < 1 {
4350		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
4351	}
4352
4353	if invalidParams.Len() > 0 {
4354		return invalidParams
4355	}
4356	return nil
4357}
4358
4359// SetAttributeGroup sets the AttributeGroup field's value.
4360func (s *UpdateAttributeGroupInput) SetAttributeGroup(v string) *UpdateAttributeGroupInput {
4361	s.AttributeGroup = &v
4362	return s
4363}
4364
4365// SetAttributes sets the Attributes field's value.
4366func (s *UpdateAttributeGroupInput) SetAttributes(v string) *UpdateAttributeGroupInput {
4367	s.Attributes = &v
4368	return s
4369}
4370
4371// SetDescription sets the Description field's value.
4372func (s *UpdateAttributeGroupInput) SetDescription(v string) *UpdateAttributeGroupInput {
4373	s.Description = &v
4374	return s
4375}
4376
4377// SetName sets the Name field's value.
4378func (s *UpdateAttributeGroupInput) SetName(v string) *UpdateAttributeGroupInput {
4379	s.Name = &v
4380	return s
4381}
4382
4383type UpdateAttributeGroupOutput struct {
4384	_ struct{} `type:"structure"`
4385
4386	// The updated information of the attribute group.
4387	AttributeGroup *AttributeGroup `locationName:"attributeGroup" type:"structure"`
4388}
4389
4390// String returns the string representation
4391func (s UpdateAttributeGroupOutput) String() string {
4392	return awsutil.Prettify(s)
4393}
4394
4395// GoString returns the string representation
4396func (s UpdateAttributeGroupOutput) GoString() string {
4397	return s.String()
4398}
4399
4400// SetAttributeGroup sets the AttributeGroup field's value.
4401func (s *UpdateAttributeGroupOutput) SetAttributeGroup(v *AttributeGroup) *UpdateAttributeGroupOutput {
4402	s.AttributeGroup = v
4403	return s
4404}
4405
4406// The request has invalid or missing parameters.
4407type ValidationException struct {
4408	_            struct{}                  `type:"structure"`
4409	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4410
4411	Message_ *string `locationName:"message" type:"string"`
4412}
4413
4414// String returns the string representation
4415func (s ValidationException) String() string {
4416	return awsutil.Prettify(s)
4417}
4418
4419// GoString returns the string representation
4420func (s ValidationException) GoString() string {
4421	return s.String()
4422}
4423
4424func newErrorValidationException(v protocol.ResponseMetadata) error {
4425	return &ValidationException{
4426		RespMetadata: v,
4427	}
4428}
4429
4430// Code returns the exception type name.
4431func (s *ValidationException) Code() string {
4432	return "ValidationException"
4433}
4434
4435// Message returns the exception's message.
4436func (s *ValidationException) Message() string {
4437	if s.Message_ != nil {
4438		return *s.Message_
4439	}
4440	return ""
4441}
4442
4443// OrigErr always returns nil, satisfies awserr.Error interface.
4444func (s *ValidationException) OrigErr() error {
4445	return nil
4446}
4447
4448func (s *ValidationException) Error() string {
4449	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4450}
4451
4452// Status code returns the HTTP status code for the request's response error.
4453func (s *ValidationException) StatusCode() int {
4454	return s.RespMetadata.StatusCode
4455}
4456
4457// RequestID returns the service's response RequestID for request.
4458func (s *ValidationException) RequestID() string {
4459	return s.RespMetadata.RequestID
4460}
4461
4462const (
4463	// ResourceTypeCfnStack is a ResourceType enum value
4464	ResourceTypeCfnStack = "CFN_STACK"
4465)
4466
4467// ResourceType_Values returns all elements of the ResourceType enum
4468func ResourceType_Values() []string {
4469	return []string{
4470		ResourceTypeCfnStack,
4471	}
4472}
4473
4474const (
4475	// SyncActionStartSync is a SyncAction enum value
4476	SyncActionStartSync = "START_SYNC"
4477
4478	// SyncActionNoAction is a SyncAction enum value
4479	SyncActionNoAction = "NO_ACTION"
4480)
4481
4482// SyncAction_Values returns all elements of the SyncAction enum
4483func SyncAction_Values() []string {
4484	return []string{
4485		SyncActionStartSync,
4486		SyncActionNoAction,
4487	}
4488}
4489