1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package opsworkscm
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/jsonrpc"
14)
15
16const opAssociateNode = "AssociateNode"
17
18// AssociateNodeRequest generates a "aws/request.Request" representing the
19// client's request for the AssociateNode 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 AssociateNode for more information on using the AssociateNode
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 AssociateNodeRequest method.
34//    req, resp := client.AssociateNodeRequest(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/opsworkscm-2016-11-01/AssociateNode
42func (c *OpsWorksCM) AssociateNodeRequest(input *AssociateNodeInput) (req *request.Request, output *AssociateNodeOutput) {
43	op := &request.Operation{
44		Name:       opAssociateNode,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AssociateNodeInput{}
51	}
52
53	output = &AssociateNodeOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// AssociateNode API operation for AWS OpsWorks CM.
59//
60// Associates a new node with the server. For more information about how to
61// disassociate a node, see DisassociateNode.
62//
63// On a Chef server: This command is an alternative to knife bootstrap.
64//
65// Example (Chef): aws opsworks-cm associate-node --server-name MyServer --node-name
66// MyManagedNode --engine-attributes "Name=CHEF_ORGANIZATION,Value=default"
67// "Name=CHEF_NODE_PUBLIC_KEY,Value=public-key-pem"
68//
69// On a Puppet server, this command is an alternative to the puppet cert sign
70// command that signs a Puppet node CSR.
71//
72// Example (Puppet): aws opsworks-cm associate-node --server-name MyServer --node-name
73// MyManagedNode --engine-attributes "Name=PUPPET_NODE_CSR,Value=csr-pem"
74//
75// A node can can only be associated with servers that are in a HEALTHY state.
76// Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException
77// is thrown when the server does not exist. A ValidationException is raised
78// when parameters of the request are not valid. The AssociateNode API call
79// can be integrated into Auto Scaling configurations, AWS Cloudformation templates,
80// or the user data of a server's instance.
81//
82// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
83// with awserr.Error's Code and Message methods to get detailed information about
84// the error.
85//
86// See the AWS API reference guide for AWS OpsWorks CM's
87// API operation AssociateNode for usage and error information.
88//
89// Returned Error Types:
90//   * InvalidStateException
91//   The resource is in a state that does not allow you to perform a specified
92//   action.
93//
94//   * ResourceNotFoundException
95//   The requested resource does not exist, or access was denied.
96//
97//   * ValidationException
98//   One or more of the provided request parameters are not valid.
99//
100// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/AssociateNode
101func (c *OpsWorksCM) AssociateNode(input *AssociateNodeInput) (*AssociateNodeOutput, error) {
102	req, out := c.AssociateNodeRequest(input)
103	return out, req.Send()
104}
105
106// AssociateNodeWithContext is the same as AssociateNode with the addition of
107// the ability to pass a context and additional request options.
108//
109// See AssociateNode for details on how to use this API operation.
110//
111// The context must be non-nil and will be used for request cancellation. If
112// the context is nil a panic will occur. In the future the SDK may create
113// sub-contexts for http.Requests. See https://golang.org/pkg/context/
114// for more information on using Contexts.
115func (c *OpsWorksCM) AssociateNodeWithContext(ctx aws.Context, input *AssociateNodeInput, opts ...request.Option) (*AssociateNodeOutput, error) {
116	req, out := c.AssociateNodeRequest(input)
117	req.SetContext(ctx)
118	req.ApplyOptions(opts...)
119	return out, req.Send()
120}
121
122const opCreateBackup = "CreateBackup"
123
124// CreateBackupRequest generates a "aws/request.Request" representing the
125// client's request for the CreateBackup operation. The "output" return
126// value will be populated with the request's response once the request completes
127// successfully.
128//
129// Use "Send" method on the returned Request to send the API call to the service.
130// the "output" return value is not valid until after Send returns without error.
131//
132// See CreateBackup for more information on using the CreateBackup
133// API call, and error handling.
134//
135// This method is useful when you want to inject custom logic or configuration
136// into the SDK's request lifecycle. Such as custom headers, or retry logic.
137//
138//
139//    // Example sending a request using the CreateBackupRequest method.
140//    req, resp := client.CreateBackupRequest(params)
141//
142//    err := req.Send()
143//    if err == nil { // resp is now filled
144//        fmt.Println(resp)
145//    }
146//
147// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/CreateBackup
148func (c *OpsWorksCM) CreateBackupRequest(input *CreateBackupInput) (req *request.Request, output *CreateBackupOutput) {
149	op := &request.Operation{
150		Name:       opCreateBackup,
151		HTTPMethod: "POST",
152		HTTPPath:   "/",
153	}
154
155	if input == nil {
156		input = &CreateBackupInput{}
157	}
158
159	output = &CreateBackupOutput{}
160	req = c.newRequest(op, input, output)
161	return
162}
163
164// CreateBackup API operation for AWS OpsWorks CM.
165//
166// Creates an application-level backup of a server. While the server is in the
167// BACKING_UP state, the server cannot be changed, and no additional backup
168// can be created.
169//
170// Backups can be created for servers in RUNNING, HEALTHY, and UNHEALTHY states.
171// By default, you can create a maximum of 50 manual backups.
172//
173// This operation is asynchronous.
174//
175// A LimitExceededException is thrown when the maximum number of manual backups
176// is reached. An InvalidStateException is thrown when the server is not in
177// any of the following states: RUNNING, HEALTHY, or UNHEALTHY. A ResourceNotFoundException
178// is thrown when the server is not found. A ValidationException is thrown when
179// parameters of the request are not valid.
180//
181// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
182// with awserr.Error's Code and Message methods to get detailed information about
183// the error.
184//
185// See the AWS API reference guide for AWS OpsWorks CM's
186// API operation CreateBackup for usage and error information.
187//
188// Returned Error Types:
189//   * InvalidStateException
190//   The resource is in a state that does not allow you to perform a specified
191//   action.
192//
193//   * LimitExceededException
194//   The limit of servers or backups has been reached.
195//
196//   * ResourceNotFoundException
197//   The requested resource does not exist, or access was denied.
198//
199//   * ValidationException
200//   One or more of the provided request parameters are not valid.
201//
202// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/CreateBackup
203func (c *OpsWorksCM) CreateBackup(input *CreateBackupInput) (*CreateBackupOutput, error) {
204	req, out := c.CreateBackupRequest(input)
205	return out, req.Send()
206}
207
208// CreateBackupWithContext is the same as CreateBackup with the addition of
209// the ability to pass a context and additional request options.
210//
211// See CreateBackup for details on how to use this API operation.
212//
213// The context must be non-nil and will be used for request cancellation. If
214// the context is nil a panic will occur. In the future the SDK may create
215// sub-contexts for http.Requests. See https://golang.org/pkg/context/
216// for more information on using Contexts.
217func (c *OpsWorksCM) CreateBackupWithContext(ctx aws.Context, input *CreateBackupInput, opts ...request.Option) (*CreateBackupOutput, error) {
218	req, out := c.CreateBackupRequest(input)
219	req.SetContext(ctx)
220	req.ApplyOptions(opts...)
221	return out, req.Send()
222}
223
224const opCreateServer = "CreateServer"
225
226// CreateServerRequest generates a "aws/request.Request" representing the
227// client's request for the CreateServer operation. The "output" return
228// value will be populated with the request's response once the request completes
229// successfully.
230//
231// Use "Send" method on the returned Request to send the API call to the service.
232// the "output" return value is not valid until after Send returns without error.
233//
234// See CreateServer for more information on using the CreateServer
235// API call, and error handling.
236//
237// This method is useful when you want to inject custom logic or configuration
238// into the SDK's request lifecycle. Such as custom headers, or retry logic.
239//
240//
241//    // Example sending a request using the CreateServerRequest method.
242//    req, resp := client.CreateServerRequest(params)
243//
244//    err := req.Send()
245//    if err == nil { // resp is now filled
246//        fmt.Println(resp)
247//    }
248//
249// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/CreateServer
250func (c *OpsWorksCM) CreateServerRequest(input *CreateServerInput) (req *request.Request, output *CreateServerOutput) {
251	op := &request.Operation{
252		Name:       opCreateServer,
253		HTTPMethod: "POST",
254		HTTPPath:   "/",
255	}
256
257	if input == nil {
258		input = &CreateServerInput{}
259	}
260
261	output = &CreateServerOutput{}
262	req = c.newRequest(op, input, output)
263	return
264}
265
266// CreateServer API operation for AWS OpsWorks CM.
267//
268// Creates and immedately starts a new server. The server is ready to use when
269// it is in the HEALTHY state. By default, you can create a maximum of 10 servers.
270//
271// This operation is asynchronous.
272//
273// A LimitExceededException is thrown when you have created the maximum number
274// of servers (10). A ResourceAlreadyExistsException is thrown when a server
275// with the same name already exists in the account. A ResourceNotFoundException
276// is thrown when you specify a backup ID that is not valid or is for a backup
277// that does not exist. A ValidationException is thrown when parameters of the
278// request are not valid.
279//
280// If you do not specify a security group by adding the SecurityGroupIds parameter,
281// AWS OpsWorks creates a new security group.
282//
283// Chef Automate: The default security group opens the Chef server to the world
284// on TCP port 443. If a KeyName is present, AWS OpsWorks enables SSH access.
285// SSH is also open to the world on TCP port 22.
286//
287// Puppet Enterprise: The default security group opens TCP ports 22, 443, 4433,
288// 8140, 8142, 8143, and 8170. If a KeyName is present, AWS OpsWorks enables
289// SSH access. SSH is also open to the world on TCP port 22.
290//
291// By default, your server is accessible from any IP address. We recommend that
292// you update your security group rules to allow access from known IP addresses
293// and address ranges only. To edit security group rules, open Security Groups
294// in the navigation pane of the EC2 management console.
295//
296// To specify your own domain for a server, and provide your own self-signed
297// or CA-signed certificate and private key, specify values for CustomDomain,
298// CustomCertificate, and CustomPrivateKey.
299//
300// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
301// with awserr.Error's Code and Message methods to get detailed information about
302// the error.
303//
304// See the AWS API reference guide for AWS OpsWorks CM's
305// API operation CreateServer for usage and error information.
306//
307// Returned Error Types:
308//   * LimitExceededException
309//   The limit of servers or backups has been reached.
310//
311//   * ResourceAlreadyExistsException
312//   The requested resource cannot be created because it already exists.
313//
314//   * ResourceNotFoundException
315//   The requested resource does not exist, or access was denied.
316//
317//   * ValidationException
318//   One or more of the provided request parameters are not valid.
319//
320// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/CreateServer
321func (c *OpsWorksCM) CreateServer(input *CreateServerInput) (*CreateServerOutput, error) {
322	req, out := c.CreateServerRequest(input)
323	return out, req.Send()
324}
325
326// CreateServerWithContext is the same as CreateServer with the addition of
327// the ability to pass a context and additional request options.
328//
329// See CreateServer for details on how to use this API operation.
330//
331// The context must be non-nil and will be used for request cancellation. If
332// the context is nil a panic will occur. In the future the SDK may create
333// sub-contexts for http.Requests. See https://golang.org/pkg/context/
334// for more information on using Contexts.
335func (c *OpsWorksCM) CreateServerWithContext(ctx aws.Context, input *CreateServerInput, opts ...request.Option) (*CreateServerOutput, error) {
336	req, out := c.CreateServerRequest(input)
337	req.SetContext(ctx)
338	req.ApplyOptions(opts...)
339	return out, req.Send()
340}
341
342const opDeleteBackup = "DeleteBackup"
343
344// DeleteBackupRequest generates a "aws/request.Request" representing the
345// client's request for the DeleteBackup operation. The "output" return
346// value will be populated with the request's response once the request completes
347// successfully.
348//
349// Use "Send" method on the returned Request to send the API call to the service.
350// the "output" return value is not valid until after Send returns without error.
351//
352// See DeleteBackup for more information on using the DeleteBackup
353// API call, and error handling.
354//
355// This method is useful when you want to inject custom logic or configuration
356// into the SDK's request lifecycle. Such as custom headers, or retry logic.
357//
358//
359//    // Example sending a request using the DeleteBackupRequest method.
360//    req, resp := client.DeleteBackupRequest(params)
361//
362//    err := req.Send()
363//    if err == nil { // resp is now filled
364//        fmt.Println(resp)
365//    }
366//
367// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DeleteBackup
368func (c *OpsWorksCM) DeleteBackupRequest(input *DeleteBackupInput) (req *request.Request, output *DeleteBackupOutput) {
369	op := &request.Operation{
370		Name:       opDeleteBackup,
371		HTTPMethod: "POST",
372		HTTPPath:   "/",
373	}
374
375	if input == nil {
376		input = &DeleteBackupInput{}
377	}
378
379	output = &DeleteBackupOutput{}
380	req = c.newRequest(op, input, output)
381	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
382	return
383}
384
385// DeleteBackup API operation for AWS OpsWorks CM.
386//
387// Deletes a backup. You can delete both manual and automated backups. This
388// operation is asynchronous.
389//
390// An InvalidStateException is thrown when a backup deletion is already in progress.
391// A ResourceNotFoundException is thrown when the backup does not exist. A ValidationException
392// is thrown when parameters of the request are not valid.
393//
394// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
395// with awserr.Error's Code and Message methods to get detailed information about
396// the error.
397//
398// See the AWS API reference guide for AWS OpsWorks CM's
399// API operation DeleteBackup for usage and error information.
400//
401// Returned Error Types:
402//   * InvalidStateException
403//   The resource is in a state that does not allow you to perform a specified
404//   action.
405//
406//   * ResourceNotFoundException
407//   The requested resource does not exist, or access was denied.
408//
409//   * ValidationException
410//   One or more of the provided request parameters are not valid.
411//
412// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DeleteBackup
413func (c *OpsWorksCM) DeleteBackup(input *DeleteBackupInput) (*DeleteBackupOutput, error) {
414	req, out := c.DeleteBackupRequest(input)
415	return out, req.Send()
416}
417
418// DeleteBackupWithContext is the same as DeleteBackup with the addition of
419// the ability to pass a context and additional request options.
420//
421// See DeleteBackup for details on how to use this API operation.
422//
423// The context must be non-nil and will be used for request cancellation. If
424// the context is nil a panic will occur. In the future the SDK may create
425// sub-contexts for http.Requests. See https://golang.org/pkg/context/
426// for more information on using Contexts.
427func (c *OpsWorksCM) DeleteBackupWithContext(ctx aws.Context, input *DeleteBackupInput, opts ...request.Option) (*DeleteBackupOutput, error) {
428	req, out := c.DeleteBackupRequest(input)
429	req.SetContext(ctx)
430	req.ApplyOptions(opts...)
431	return out, req.Send()
432}
433
434const opDeleteServer = "DeleteServer"
435
436// DeleteServerRequest generates a "aws/request.Request" representing the
437// client's request for the DeleteServer operation. The "output" return
438// value will be populated with the request's response once the request completes
439// successfully.
440//
441// Use "Send" method on the returned Request to send the API call to the service.
442// the "output" return value is not valid until after Send returns without error.
443//
444// See DeleteServer for more information on using the DeleteServer
445// API call, and error handling.
446//
447// This method is useful when you want to inject custom logic or configuration
448// into the SDK's request lifecycle. Such as custom headers, or retry logic.
449//
450//
451//    // Example sending a request using the DeleteServerRequest method.
452//    req, resp := client.DeleteServerRequest(params)
453//
454//    err := req.Send()
455//    if err == nil { // resp is now filled
456//        fmt.Println(resp)
457//    }
458//
459// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DeleteServer
460func (c *OpsWorksCM) DeleteServerRequest(input *DeleteServerInput) (req *request.Request, output *DeleteServerOutput) {
461	op := &request.Operation{
462		Name:       opDeleteServer,
463		HTTPMethod: "POST",
464		HTTPPath:   "/",
465	}
466
467	if input == nil {
468		input = &DeleteServerInput{}
469	}
470
471	output = &DeleteServerOutput{}
472	req = c.newRequest(op, input, output)
473	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
474	return
475}
476
477// DeleteServer API operation for AWS OpsWorks CM.
478//
479// Deletes the server and the underlying AWS CloudFormation stacks (including
480// the server's EC2 instance). When you run this command, the server state is
481// updated to DELETING. After the server is deleted, it is no longer returned
482// by DescribeServer requests. If the AWS CloudFormation stack cannot be deleted,
483// the server cannot be deleted.
484//
485// This operation is asynchronous.
486//
487// An InvalidStateException is thrown when a server deletion is already in progress.
488// A ResourceNotFoundException is thrown when the server does not exist. A ValidationException
489// is raised when parameters of the request are not valid.
490//
491// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
492// with awserr.Error's Code and Message methods to get detailed information about
493// the error.
494//
495// See the AWS API reference guide for AWS OpsWorks CM's
496// API operation DeleteServer for usage and error information.
497//
498// Returned Error Types:
499//   * InvalidStateException
500//   The resource is in a state that does not allow you to perform a specified
501//   action.
502//
503//   * ResourceNotFoundException
504//   The requested resource does not exist, or access was denied.
505//
506//   * ValidationException
507//   One or more of the provided request parameters are not valid.
508//
509// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DeleteServer
510func (c *OpsWorksCM) DeleteServer(input *DeleteServerInput) (*DeleteServerOutput, error) {
511	req, out := c.DeleteServerRequest(input)
512	return out, req.Send()
513}
514
515// DeleteServerWithContext is the same as DeleteServer with the addition of
516// the ability to pass a context and additional request options.
517//
518// See DeleteServer for details on how to use this API operation.
519//
520// The context must be non-nil and will be used for request cancellation. If
521// the context is nil a panic will occur. In the future the SDK may create
522// sub-contexts for http.Requests. See https://golang.org/pkg/context/
523// for more information on using Contexts.
524func (c *OpsWorksCM) DeleteServerWithContext(ctx aws.Context, input *DeleteServerInput, opts ...request.Option) (*DeleteServerOutput, error) {
525	req, out := c.DeleteServerRequest(input)
526	req.SetContext(ctx)
527	req.ApplyOptions(opts...)
528	return out, req.Send()
529}
530
531const opDescribeAccountAttributes = "DescribeAccountAttributes"
532
533// DescribeAccountAttributesRequest generates a "aws/request.Request" representing the
534// client's request for the DescribeAccountAttributes operation. The "output" return
535// value will be populated with the request's response once the request completes
536// successfully.
537//
538// Use "Send" method on the returned Request to send the API call to the service.
539// the "output" return value is not valid until after Send returns without error.
540//
541// See DescribeAccountAttributes for more information on using the DescribeAccountAttributes
542// API call, and error handling.
543//
544// This method is useful when you want to inject custom logic or configuration
545// into the SDK's request lifecycle. Such as custom headers, or retry logic.
546//
547//
548//    // Example sending a request using the DescribeAccountAttributesRequest method.
549//    req, resp := client.DescribeAccountAttributesRequest(params)
550//
551//    err := req.Send()
552//    if err == nil { // resp is now filled
553//        fmt.Println(resp)
554//    }
555//
556// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DescribeAccountAttributes
557func (c *OpsWorksCM) DescribeAccountAttributesRequest(input *DescribeAccountAttributesInput) (req *request.Request, output *DescribeAccountAttributesOutput) {
558	op := &request.Operation{
559		Name:       opDescribeAccountAttributes,
560		HTTPMethod: "POST",
561		HTTPPath:   "/",
562	}
563
564	if input == nil {
565		input = &DescribeAccountAttributesInput{}
566	}
567
568	output = &DescribeAccountAttributesOutput{}
569	req = c.newRequest(op, input, output)
570	return
571}
572
573// DescribeAccountAttributes API operation for AWS OpsWorks CM.
574//
575// Describes your OpsWorks-CM account attributes.
576//
577// This operation is synchronous.
578//
579// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
580// with awserr.Error's Code and Message methods to get detailed information about
581// the error.
582//
583// See the AWS API reference guide for AWS OpsWorks CM's
584// API operation DescribeAccountAttributes for usage and error information.
585// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DescribeAccountAttributes
586func (c *OpsWorksCM) DescribeAccountAttributes(input *DescribeAccountAttributesInput) (*DescribeAccountAttributesOutput, error) {
587	req, out := c.DescribeAccountAttributesRequest(input)
588	return out, req.Send()
589}
590
591// DescribeAccountAttributesWithContext is the same as DescribeAccountAttributes with the addition of
592// the ability to pass a context and additional request options.
593//
594// See DescribeAccountAttributes for details on how to use this API operation.
595//
596// The context must be non-nil and will be used for request cancellation. If
597// the context is nil a panic will occur. In the future the SDK may create
598// sub-contexts for http.Requests. See https://golang.org/pkg/context/
599// for more information on using Contexts.
600func (c *OpsWorksCM) DescribeAccountAttributesWithContext(ctx aws.Context, input *DescribeAccountAttributesInput, opts ...request.Option) (*DescribeAccountAttributesOutput, error) {
601	req, out := c.DescribeAccountAttributesRequest(input)
602	req.SetContext(ctx)
603	req.ApplyOptions(opts...)
604	return out, req.Send()
605}
606
607const opDescribeBackups = "DescribeBackups"
608
609// DescribeBackupsRequest generates a "aws/request.Request" representing the
610// client's request for the DescribeBackups operation. The "output" return
611// value will be populated with the request's response once the request completes
612// successfully.
613//
614// Use "Send" method on the returned Request to send the API call to the service.
615// the "output" return value is not valid until after Send returns without error.
616//
617// See DescribeBackups for more information on using the DescribeBackups
618// API call, and error handling.
619//
620// This method is useful when you want to inject custom logic or configuration
621// into the SDK's request lifecycle. Such as custom headers, or retry logic.
622//
623//
624//    // Example sending a request using the DescribeBackupsRequest method.
625//    req, resp := client.DescribeBackupsRequest(params)
626//
627//    err := req.Send()
628//    if err == nil { // resp is now filled
629//        fmt.Println(resp)
630//    }
631//
632// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DescribeBackups
633func (c *OpsWorksCM) DescribeBackupsRequest(input *DescribeBackupsInput) (req *request.Request, output *DescribeBackupsOutput) {
634	op := &request.Operation{
635		Name:       opDescribeBackups,
636		HTTPMethod: "POST",
637		HTTPPath:   "/",
638		Paginator: &request.Paginator{
639			InputTokens:     []string{"NextToken"},
640			OutputTokens:    []string{"NextToken"},
641			LimitToken:      "MaxResults",
642			TruncationToken: "",
643		},
644	}
645
646	if input == nil {
647		input = &DescribeBackupsInput{}
648	}
649
650	output = &DescribeBackupsOutput{}
651	req = c.newRequest(op, input, output)
652	return
653}
654
655// DescribeBackups API operation for AWS OpsWorks CM.
656//
657// Describes backups. The results are ordered by time, with newest backups first.
658// If you do not specify a BackupId or ServerName, the command returns all backups.
659//
660// This operation is synchronous.
661//
662// A ResourceNotFoundException is thrown when the backup does not exist. A ValidationException
663// is raised when parameters of the request are not valid.
664//
665// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
666// with awserr.Error's Code and Message methods to get detailed information about
667// the error.
668//
669// See the AWS API reference guide for AWS OpsWorks CM's
670// API operation DescribeBackups for usage and error information.
671//
672// Returned Error Types:
673//   * ValidationException
674//   One or more of the provided request parameters are not valid.
675//
676//   * ResourceNotFoundException
677//   The requested resource does not exist, or access was denied.
678//
679//   * InvalidNextTokenException
680//   This occurs when the provided nextToken is not valid.
681//
682// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DescribeBackups
683func (c *OpsWorksCM) DescribeBackups(input *DescribeBackupsInput) (*DescribeBackupsOutput, error) {
684	req, out := c.DescribeBackupsRequest(input)
685	return out, req.Send()
686}
687
688// DescribeBackupsWithContext is the same as DescribeBackups with the addition of
689// the ability to pass a context and additional request options.
690//
691// See DescribeBackups for details on how to use this API operation.
692//
693// The context must be non-nil and will be used for request cancellation. If
694// the context is nil a panic will occur. In the future the SDK may create
695// sub-contexts for http.Requests. See https://golang.org/pkg/context/
696// for more information on using Contexts.
697func (c *OpsWorksCM) DescribeBackupsWithContext(ctx aws.Context, input *DescribeBackupsInput, opts ...request.Option) (*DescribeBackupsOutput, error) {
698	req, out := c.DescribeBackupsRequest(input)
699	req.SetContext(ctx)
700	req.ApplyOptions(opts...)
701	return out, req.Send()
702}
703
704// DescribeBackupsPages iterates over the pages of a DescribeBackups operation,
705// calling the "fn" function with the response data for each page. To stop
706// iterating, return false from the fn function.
707//
708// See DescribeBackups method for more information on how to use this operation.
709//
710// Note: This operation can generate multiple requests to a service.
711//
712//    // Example iterating over at most 3 pages of a DescribeBackups operation.
713//    pageNum := 0
714//    err := client.DescribeBackupsPages(params,
715//        func(page *opsworkscm.DescribeBackupsOutput, lastPage bool) bool {
716//            pageNum++
717//            fmt.Println(page)
718//            return pageNum <= 3
719//        })
720//
721func (c *OpsWorksCM) DescribeBackupsPages(input *DescribeBackupsInput, fn func(*DescribeBackupsOutput, bool) bool) error {
722	return c.DescribeBackupsPagesWithContext(aws.BackgroundContext(), input, fn)
723}
724
725// DescribeBackupsPagesWithContext same as DescribeBackupsPages except
726// it takes a Context and allows setting request options on the pages.
727//
728// The context must be non-nil and will be used for request cancellation. If
729// the context is nil a panic will occur. In the future the SDK may create
730// sub-contexts for http.Requests. See https://golang.org/pkg/context/
731// for more information on using Contexts.
732func (c *OpsWorksCM) DescribeBackupsPagesWithContext(ctx aws.Context, input *DescribeBackupsInput, fn func(*DescribeBackupsOutput, bool) bool, opts ...request.Option) error {
733	p := request.Pagination{
734		NewRequest: func() (*request.Request, error) {
735			var inCpy *DescribeBackupsInput
736			if input != nil {
737				tmp := *input
738				inCpy = &tmp
739			}
740			req, _ := c.DescribeBackupsRequest(inCpy)
741			req.SetContext(ctx)
742			req.ApplyOptions(opts...)
743			return req, nil
744		},
745	}
746
747	for p.Next() {
748		if !fn(p.Page().(*DescribeBackupsOutput), !p.HasNextPage()) {
749			break
750		}
751	}
752
753	return p.Err()
754}
755
756const opDescribeEvents = "DescribeEvents"
757
758// DescribeEventsRequest generates a "aws/request.Request" representing the
759// client's request for the DescribeEvents operation. The "output" return
760// value will be populated with the request's response once the request completes
761// successfully.
762//
763// Use "Send" method on the returned Request to send the API call to the service.
764// the "output" return value is not valid until after Send returns without error.
765//
766// See DescribeEvents for more information on using the DescribeEvents
767// API call, and error handling.
768//
769// This method is useful when you want to inject custom logic or configuration
770// into the SDK's request lifecycle. Such as custom headers, or retry logic.
771//
772//
773//    // Example sending a request using the DescribeEventsRequest method.
774//    req, resp := client.DescribeEventsRequest(params)
775//
776//    err := req.Send()
777//    if err == nil { // resp is now filled
778//        fmt.Println(resp)
779//    }
780//
781// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DescribeEvents
782func (c *OpsWorksCM) DescribeEventsRequest(input *DescribeEventsInput) (req *request.Request, output *DescribeEventsOutput) {
783	op := &request.Operation{
784		Name:       opDescribeEvents,
785		HTTPMethod: "POST",
786		HTTPPath:   "/",
787		Paginator: &request.Paginator{
788			InputTokens:     []string{"NextToken"},
789			OutputTokens:    []string{"NextToken"},
790			LimitToken:      "MaxResults",
791			TruncationToken: "",
792		},
793	}
794
795	if input == nil {
796		input = &DescribeEventsInput{}
797	}
798
799	output = &DescribeEventsOutput{}
800	req = c.newRequest(op, input, output)
801	return
802}
803
804// DescribeEvents API operation for AWS OpsWorks CM.
805//
806// Describes events for a specified server. Results are ordered by time, with
807// newest events first.
808//
809// This operation is synchronous.
810//
811// A ResourceNotFoundException is thrown when the server does not exist. A ValidationException
812// is raised when parameters of the request are not valid.
813//
814// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
815// with awserr.Error's Code and Message methods to get detailed information about
816// the error.
817//
818// See the AWS API reference guide for AWS OpsWorks CM's
819// API operation DescribeEvents for usage and error information.
820//
821// Returned Error Types:
822//   * ValidationException
823//   One or more of the provided request parameters are not valid.
824//
825//   * InvalidNextTokenException
826//   This occurs when the provided nextToken is not valid.
827//
828//   * ResourceNotFoundException
829//   The requested resource does not exist, or access was denied.
830//
831// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DescribeEvents
832func (c *OpsWorksCM) DescribeEvents(input *DescribeEventsInput) (*DescribeEventsOutput, error) {
833	req, out := c.DescribeEventsRequest(input)
834	return out, req.Send()
835}
836
837// DescribeEventsWithContext is the same as DescribeEvents with the addition of
838// the ability to pass a context and additional request options.
839//
840// See DescribeEvents for details on how to use this API operation.
841//
842// The context must be non-nil and will be used for request cancellation. If
843// the context is nil a panic will occur. In the future the SDK may create
844// sub-contexts for http.Requests. See https://golang.org/pkg/context/
845// for more information on using Contexts.
846func (c *OpsWorksCM) DescribeEventsWithContext(ctx aws.Context, input *DescribeEventsInput, opts ...request.Option) (*DescribeEventsOutput, error) {
847	req, out := c.DescribeEventsRequest(input)
848	req.SetContext(ctx)
849	req.ApplyOptions(opts...)
850	return out, req.Send()
851}
852
853// DescribeEventsPages iterates over the pages of a DescribeEvents operation,
854// calling the "fn" function with the response data for each page. To stop
855// iterating, return false from the fn function.
856//
857// See DescribeEvents method for more information on how to use this operation.
858//
859// Note: This operation can generate multiple requests to a service.
860//
861//    // Example iterating over at most 3 pages of a DescribeEvents operation.
862//    pageNum := 0
863//    err := client.DescribeEventsPages(params,
864//        func(page *opsworkscm.DescribeEventsOutput, lastPage bool) bool {
865//            pageNum++
866//            fmt.Println(page)
867//            return pageNum <= 3
868//        })
869//
870func (c *OpsWorksCM) DescribeEventsPages(input *DescribeEventsInput, fn func(*DescribeEventsOutput, bool) bool) error {
871	return c.DescribeEventsPagesWithContext(aws.BackgroundContext(), input, fn)
872}
873
874// DescribeEventsPagesWithContext same as DescribeEventsPages except
875// it takes a Context and allows setting request options on the pages.
876//
877// The context must be non-nil and will be used for request cancellation. If
878// the context is nil a panic will occur. In the future the SDK may create
879// sub-contexts for http.Requests. See https://golang.org/pkg/context/
880// for more information on using Contexts.
881func (c *OpsWorksCM) DescribeEventsPagesWithContext(ctx aws.Context, input *DescribeEventsInput, fn func(*DescribeEventsOutput, bool) bool, opts ...request.Option) error {
882	p := request.Pagination{
883		NewRequest: func() (*request.Request, error) {
884			var inCpy *DescribeEventsInput
885			if input != nil {
886				tmp := *input
887				inCpy = &tmp
888			}
889			req, _ := c.DescribeEventsRequest(inCpy)
890			req.SetContext(ctx)
891			req.ApplyOptions(opts...)
892			return req, nil
893		},
894	}
895
896	for p.Next() {
897		if !fn(p.Page().(*DescribeEventsOutput), !p.HasNextPage()) {
898			break
899		}
900	}
901
902	return p.Err()
903}
904
905const opDescribeNodeAssociationStatus = "DescribeNodeAssociationStatus"
906
907// DescribeNodeAssociationStatusRequest generates a "aws/request.Request" representing the
908// client's request for the DescribeNodeAssociationStatus operation. The "output" return
909// value will be populated with the request's response once the request completes
910// successfully.
911//
912// Use "Send" method on the returned Request to send the API call to the service.
913// the "output" return value is not valid until after Send returns without error.
914//
915// See DescribeNodeAssociationStatus for more information on using the DescribeNodeAssociationStatus
916// API call, and error handling.
917//
918// This method is useful when you want to inject custom logic or configuration
919// into the SDK's request lifecycle. Such as custom headers, or retry logic.
920//
921//
922//    // Example sending a request using the DescribeNodeAssociationStatusRequest method.
923//    req, resp := client.DescribeNodeAssociationStatusRequest(params)
924//
925//    err := req.Send()
926//    if err == nil { // resp is now filled
927//        fmt.Println(resp)
928//    }
929//
930// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DescribeNodeAssociationStatus
931func (c *OpsWorksCM) DescribeNodeAssociationStatusRequest(input *DescribeNodeAssociationStatusInput) (req *request.Request, output *DescribeNodeAssociationStatusOutput) {
932	op := &request.Operation{
933		Name:       opDescribeNodeAssociationStatus,
934		HTTPMethod: "POST",
935		HTTPPath:   "/",
936	}
937
938	if input == nil {
939		input = &DescribeNodeAssociationStatusInput{}
940	}
941
942	output = &DescribeNodeAssociationStatusOutput{}
943	req = c.newRequest(op, input, output)
944	return
945}
946
947// DescribeNodeAssociationStatus API operation for AWS OpsWorks CM.
948//
949// Returns the current status of an existing association or disassociation request.
950//
951// A ResourceNotFoundException is thrown when no recent association or disassociation
952// request with the specified token is found, or when the server does not exist.
953// A ValidationException is raised when parameters of the request are not valid.
954//
955// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
956// with awserr.Error's Code and Message methods to get detailed information about
957// the error.
958//
959// See the AWS API reference guide for AWS OpsWorks CM's
960// API operation DescribeNodeAssociationStatus for usage and error information.
961//
962// Returned Error Types:
963//   * ResourceNotFoundException
964//   The requested resource does not exist, or access was denied.
965//
966//   * ValidationException
967//   One or more of the provided request parameters are not valid.
968//
969// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DescribeNodeAssociationStatus
970func (c *OpsWorksCM) DescribeNodeAssociationStatus(input *DescribeNodeAssociationStatusInput) (*DescribeNodeAssociationStatusOutput, error) {
971	req, out := c.DescribeNodeAssociationStatusRequest(input)
972	return out, req.Send()
973}
974
975// DescribeNodeAssociationStatusWithContext is the same as DescribeNodeAssociationStatus with the addition of
976// the ability to pass a context and additional request options.
977//
978// See DescribeNodeAssociationStatus for details on how to use this API operation.
979//
980// The context must be non-nil and will be used for request cancellation. If
981// the context is nil a panic will occur. In the future the SDK may create
982// sub-contexts for http.Requests. See https://golang.org/pkg/context/
983// for more information on using Contexts.
984func (c *OpsWorksCM) DescribeNodeAssociationStatusWithContext(ctx aws.Context, input *DescribeNodeAssociationStatusInput, opts ...request.Option) (*DescribeNodeAssociationStatusOutput, error) {
985	req, out := c.DescribeNodeAssociationStatusRequest(input)
986	req.SetContext(ctx)
987	req.ApplyOptions(opts...)
988	return out, req.Send()
989}
990
991const opDescribeServers = "DescribeServers"
992
993// DescribeServersRequest generates a "aws/request.Request" representing the
994// client's request for the DescribeServers operation. The "output" return
995// value will be populated with the request's response once the request completes
996// successfully.
997//
998// Use "Send" method on the returned Request to send the API call to the service.
999// the "output" return value is not valid until after Send returns without error.
1000//
1001// See DescribeServers for more information on using the DescribeServers
1002// API call, and error handling.
1003//
1004// This method is useful when you want to inject custom logic or configuration
1005// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1006//
1007//
1008//    // Example sending a request using the DescribeServersRequest method.
1009//    req, resp := client.DescribeServersRequest(params)
1010//
1011//    err := req.Send()
1012//    if err == nil { // resp is now filled
1013//        fmt.Println(resp)
1014//    }
1015//
1016// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DescribeServers
1017func (c *OpsWorksCM) DescribeServersRequest(input *DescribeServersInput) (req *request.Request, output *DescribeServersOutput) {
1018	op := &request.Operation{
1019		Name:       opDescribeServers,
1020		HTTPMethod: "POST",
1021		HTTPPath:   "/",
1022		Paginator: &request.Paginator{
1023			InputTokens:     []string{"NextToken"},
1024			OutputTokens:    []string{"NextToken"},
1025			LimitToken:      "MaxResults",
1026			TruncationToken: "",
1027		},
1028	}
1029
1030	if input == nil {
1031		input = &DescribeServersInput{}
1032	}
1033
1034	output = &DescribeServersOutput{}
1035	req = c.newRequest(op, input, output)
1036	return
1037}
1038
1039// DescribeServers API operation for AWS OpsWorks CM.
1040//
1041// Lists all configuration management servers that are identified with your
1042// account. Only the stored results from Amazon DynamoDB are returned. AWS OpsWorks
1043// CM does not query other services.
1044//
1045// This operation is synchronous.
1046//
1047// A ResourceNotFoundException is thrown when the server does not exist. A ValidationException
1048// is raised when parameters of the request are not valid.
1049//
1050// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1051// with awserr.Error's Code and Message methods to get detailed information about
1052// the error.
1053//
1054// See the AWS API reference guide for AWS OpsWorks CM's
1055// API operation DescribeServers for usage and error information.
1056//
1057// Returned Error Types:
1058//   * ValidationException
1059//   One or more of the provided request parameters are not valid.
1060//
1061//   * ResourceNotFoundException
1062//   The requested resource does not exist, or access was denied.
1063//
1064//   * InvalidNextTokenException
1065//   This occurs when the provided nextToken is not valid.
1066//
1067// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DescribeServers
1068func (c *OpsWorksCM) DescribeServers(input *DescribeServersInput) (*DescribeServersOutput, error) {
1069	req, out := c.DescribeServersRequest(input)
1070	return out, req.Send()
1071}
1072
1073// DescribeServersWithContext is the same as DescribeServers with the addition of
1074// the ability to pass a context and additional request options.
1075//
1076// See DescribeServers for details on how to use this API operation.
1077//
1078// The context must be non-nil and will be used for request cancellation. If
1079// the context is nil a panic will occur. In the future the SDK may create
1080// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1081// for more information on using Contexts.
1082func (c *OpsWorksCM) DescribeServersWithContext(ctx aws.Context, input *DescribeServersInput, opts ...request.Option) (*DescribeServersOutput, error) {
1083	req, out := c.DescribeServersRequest(input)
1084	req.SetContext(ctx)
1085	req.ApplyOptions(opts...)
1086	return out, req.Send()
1087}
1088
1089// DescribeServersPages iterates over the pages of a DescribeServers operation,
1090// calling the "fn" function with the response data for each page. To stop
1091// iterating, return false from the fn function.
1092//
1093// See DescribeServers method for more information on how to use this operation.
1094//
1095// Note: This operation can generate multiple requests to a service.
1096//
1097//    // Example iterating over at most 3 pages of a DescribeServers operation.
1098//    pageNum := 0
1099//    err := client.DescribeServersPages(params,
1100//        func(page *opsworkscm.DescribeServersOutput, lastPage bool) bool {
1101//            pageNum++
1102//            fmt.Println(page)
1103//            return pageNum <= 3
1104//        })
1105//
1106func (c *OpsWorksCM) DescribeServersPages(input *DescribeServersInput, fn func(*DescribeServersOutput, bool) bool) error {
1107	return c.DescribeServersPagesWithContext(aws.BackgroundContext(), input, fn)
1108}
1109
1110// DescribeServersPagesWithContext same as DescribeServersPages except
1111// it takes a Context and allows setting request options on the pages.
1112//
1113// The context must be non-nil and will be used for request cancellation. If
1114// the context is nil a panic will occur. In the future the SDK may create
1115// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1116// for more information on using Contexts.
1117func (c *OpsWorksCM) DescribeServersPagesWithContext(ctx aws.Context, input *DescribeServersInput, fn func(*DescribeServersOutput, bool) bool, opts ...request.Option) error {
1118	p := request.Pagination{
1119		NewRequest: func() (*request.Request, error) {
1120			var inCpy *DescribeServersInput
1121			if input != nil {
1122				tmp := *input
1123				inCpy = &tmp
1124			}
1125			req, _ := c.DescribeServersRequest(inCpy)
1126			req.SetContext(ctx)
1127			req.ApplyOptions(opts...)
1128			return req, nil
1129		},
1130	}
1131
1132	for p.Next() {
1133		if !fn(p.Page().(*DescribeServersOutput), !p.HasNextPage()) {
1134			break
1135		}
1136	}
1137
1138	return p.Err()
1139}
1140
1141const opDisassociateNode = "DisassociateNode"
1142
1143// DisassociateNodeRequest generates a "aws/request.Request" representing the
1144// client's request for the DisassociateNode operation. The "output" return
1145// value will be populated with the request's response once the request completes
1146// successfully.
1147//
1148// Use "Send" method on the returned Request to send the API call to the service.
1149// the "output" return value is not valid until after Send returns without error.
1150//
1151// See DisassociateNode for more information on using the DisassociateNode
1152// API call, and error handling.
1153//
1154// This method is useful when you want to inject custom logic or configuration
1155// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1156//
1157//
1158//    // Example sending a request using the DisassociateNodeRequest method.
1159//    req, resp := client.DisassociateNodeRequest(params)
1160//
1161//    err := req.Send()
1162//    if err == nil { // resp is now filled
1163//        fmt.Println(resp)
1164//    }
1165//
1166// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DisassociateNode
1167func (c *OpsWorksCM) DisassociateNodeRequest(input *DisassociateNodeInput) (req *request.Request, output *DisassociateNodeOutput) {
1168	op := &request.Operation{
1169		Name:       opDisassociateNode,
1170		HTTPMethod: "POST",
1171		HTTPPath:   "/",
1172	}
1173
1174	if input == nil {
1175		input = &DisassociateNodeInput{}
1176	}
1177
1178	output = &DisassociateNodeOutput{}
1179	req = c.newRequest(op, input, output)
1180	return
1181}
1182
1183// DisassociateNode API operation for AWS OpsWorks CM.
1184//
1185// Disassociates a node from an AWS OpsWorks CM server, and removes the node
1186// from the server's managed nodes. After a node is disassociated, the node
1187// key pair is no longer valid for accessing the configuration manager's API.
1188// For more information about how to associate a node, see AssociateNode.
1189//
1190// A node can can only be disassociated from a server that is in a HEALTHY state.
1191// Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException
1192// is thrown when the server does not exist. A ValidationException is raised
1193// when parameters of the request are not valid.
1194//
1195// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1196// with awserr.Error's Code and Message methods to get detailed information about
1197// the error.
1198//
1199// See the AWS API reference guide for AWS OpsWorks CM's
1200// API operation DisassociateNode for usage and error information.
1201//
1202// Returned Error Types:
1203//   * InvalidStateException
1204//   The resource is in a state that does not allow you to perform a specified
1205//   action.
1206//
1207//   * ResourceNotFoundException
1208//   The requested resource does not exist, or access was denied.
1209//
1210//   * ValidationException
1211//   One or more of the provided request parameters are not valid.
1212//
1213// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/DisassociateNode
1214func (c *OpsWorksCM) DisassociateNode(input *DisassociateNodeInput) (*DisassociateNodeOutput, error) {
1215	req, out := c.DisassociateNodeRequest(input)
1216	return out, req.Send()
1217}
1218
1219// DisassociateNodeWithContext is the same as DisassociateNode with the addition of
1220// the ability to pass a context and additional request options.
1221//
1222// See DisassociateNode for details on how to use this API operation.
1223//
1224// The context must be non-nil and will be used for request cancellation. If
1225// the context is nil a panic will occur. In the future the SDK may create
1226// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1227// for more information on using Contexts.
1228func (c *OpsWorksCM) DisassociateNodeWithContext(ctx aws.Context, input *DisassociateNodeInput, opts ...request.Option) (*DisassociateNodeOutput, error) {
1229	req, out := c.DisassociateNodeRequest(input)
1230	req.SetContext(ctx)
1231	req.ApplyOptions(opts...)
1232	return out, req.Send()
1233}
1234
1235const opExportServerEngineAttribute = "ExportServerEngineAttribute"
1236
1237// ExportServerEngineAttributeRequest generates a "aws/request.Request" representing the
1238// client's request for the ExportServerEngineAttribute operation. The "output" return
1239// value will be populated with the request's response once the request completes
1240// successfully.
1241//
1242// Use "Send" method on the returned Request to send the API call to the service.
1243// the "output" return value is not valid until after Send returns without error.
1244//
1245// See ExportServerEngineAttribute for more information on using the ExportServerEngineAttribute
1246// API call, and error handling.
1247//
1248// This method is useful when you want to inject custom logic or configuration
1249// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1250//
1251//
1252//    // Example sending a request using the ExportServerEngineAttributeRequest method.
1253//    req, resp := client.ExportServerEngineAttributeRequest(params)
1254//
1255//    err := req.Send()
1256//    if err == nil { // resp is now filled
1257//        fmt.Println(resp)
1258//    }
1259//
1260// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/ExportServerEngineAttribute
1261func (c *OpsWorksCM) ExportServerEngineAttributeRequest(input *ExportServerEngineAttributeInput) (req *request.Request, output *ExportServerEngineAttributeOutput) {
1262	op := &request.Operation{
1263		Name:       opExportServerEngineAttribute,
1264		HTTPMethod: "POST",
1265		HTTPPath:   "/",
1266	}
1267
1268	if input == nil {
1269		input = &ExportServerEngineAttributeInput{}
1270	}
1271
1272	output = &ExportServerEngineAttributeOutput{}
1273	req = c.newRequest(op, input, output)
1274	return
1275}
1276
1277// ExportServerEngineAttribute API operation for AWS OpsWorks CM.
1278//
1279// Exports a specified server engine attribute as a base64-encoded string. For
1280// example, you can export user data that you can use in EC2 to associate nodes
1281// with a server.
1282//
1283// This operation is synchronous.
1284//
1285// A ValidationException is raised when parameters of the request are not valid.
1286// A ResourceNotFoundException is thrown when the server does not exist. An
1287// InvalidStateException is thrown when the server is in any of the following
1288// states: CREATING, TERMINATED, FAILED or DELETING.
1289//
1290// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1291// with awserr.Error's Code and Message methods to get detailed information about
1292// the error.
1293//
1294// See the AWS API reference guide for AWS OpsWorks CM's
1295// API operation ExportServerEngineAttribute for usage and error information.
1296//
1297// Returned Error Types:
1298//   * ValidationException
1299//   One or more of the provided request parameters are not valid.
1300//
1301//   * ResourceNotFoundException
1302//   The requested resource does not exist, or access was denied.
1303//
1304//   * InvalidStateException
1305//   The resource is in a state that does not allow you to perform a specified
1306//   action.
1307//
1308// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/ExportServerEngineAttribute
1309func (c *OpsWorksCM) ExportServerEngineAttribute(input *ExportServerEngineAttributeInput) (*ExportServerEngineAttributeOutput, error) {
1310	req, out := c.ExportServerEngineAttributeRequest(input)
1311	return out, req.Send()
1312}
1313
1314// ExportServerEngineAttributeWithContext is the same as ExportServerEngineAttribute with the addition of
1315// the ability to pass a context and additional request options.
1316//
1317// See ExportServerEngineAttribute for details on how to use this API operation.
1318//
1319// The context must be non-nil and will be used for request cancellation. If
1320// the context is nil a panic will occur. In the future the SDK may create
1321// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1322// for more information on using Contexts.
1323func (c *OpsWorksCM) ExportServerEngineAttributeWithContext(ctx aws.Context, input *ExportServerEngineAttributeInput, opts ...request.Option) (*ExportServerEngineAttributeOutput, error) {
1324	req, out := c.ExportServerEngineAttributeRequest(input)
1325	req.SetContext(ctx)
1326	req.ApplyOptions(opts...)
1327	return out, req.Send()
1328}
1329
1330const opListTagsForResource = "ListTagsForResource"
1331
1332// ListTagsForResourceRequest generates a "aws/request.Request" representing the
1333// client's request for the ListTagsForResource operation. The "output" return
1334// value will be populated with the request's response once the request completes
1335// successfully.
1336//
1337// Use "Send" method on the returned Request to send the API call to the service.
1338// the "output" return value is not valid until after Send returns without error.
1339//
1340// See ListTagsForResource for more information on using the ListTagsForResource
1341// API call, and error handling.
1342//
1343// This method is useful when you want to inject custom logic or configuration
1344// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1345//
1346//
1347//    // Example sending a request using the ListTagsForResourceRequest method.
1348//    req, resp := client.ListTagsForResourceRequest(params)
1349//
1350//    err := req.Send()
1351//    if err == nil { // resp is now filled
1352//        fmt.Println(resp)
1353//    }
1354//
1355// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/ListTagsForResource
1356func (c *OpsWorksCM) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
1357	op := &request.Operation{
1358		Name:       opListTagsForResource,
1359		HTTPMethod: "POST",
1360		HTTPPath:   "/",
1361		Paginator: &request.Paginator{
1362			InputTokens:     []string{"NextToken"},
1363			OutputTokens:    []string{"NextToken"},
1364			LimitToken:      "MaxResults",
1365			TruncationToken: "",
1366		},
1367	}
1368
1369	if input == nil {
1370		input = &ListTagsForResourceInput{}
1371	}
1372
1373	output = &ListTagsForResourceOutput{}
1374	req = c.newRequest(op, input, output)
1375	return
1376}
1377
1378// ListTagsForResource API operation for AWS OpsWorks CM.
1379//
1380// Returns a list of tags that are applied to the specified AWS OpsWorks for
1381// Chef Automate or AWS OpsWorks for Puppet Enterprise servers or backups.
1382//
1383// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1384// with awserr.Error's Code and Message methods to get detailed information about
1385// the error.
1386//
1387// See the AWS API reference guide for AWS OpsWorks CM's
1388// API operation ListTagsForResource for usage and error information.
1389//
1390// Returned Error Types:
1391//   * ResourceNotFoundException
1392//   The requested resource does not exist, or access was denied.
1393//
1394//   * ValidationException
1395//   One or more of the provided request parameters are not valid.
1396//
1397// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/ListTagsForResource
1398func (c *OpsWorksCM) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
1399	req, out := c.ListTagsForResourceRequest(input)
1400	return out, req.Send()
1401}
1402
1403// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
1404// the ability to pass a context and additional request options.
1405//
1406// See ListTagsForResource for details on how to use this API operation.
1407//
1408// The context must be non-nil and will be used for request cancellation. If
1409// the context is nil a panic will occur. In the future the SDK may create
1410// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1411// for more information on using Contexts.
1412func (c *OpsWorksCM) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
1413	req, out := c.ListTagsForResourceRequest(input)
1414	req.SetContext(ctx)
1415	req.ApplyOptions(opts...)
1416	return out, req.Send()
1417}
1418
1419// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
1420// calling the "fn" function with the response data for each page. To stop
1421// iterating, return false from the fn function.
1422//
1423// See ListTagsForResource method for more information on how to use this operation.
1424//
1425// Note: This operation can generate multiple requests to a service.
1426//
1427//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
1428//    pageNum := 0
1429//    err := client.ListTagsForResourcePages(params,
1430//        func(page *opsworkscm.ListTagsForResourceOutput, lastPage bool) bool {
1431//            pageNum++
1432//            fmt.Println(page)
1433//            return pageNum <= 3
1434//        })
1435//
1436func (c *OpsWorksCM) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
1437	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
1438}
1439
1440// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
1441// it takes a Context and allows setting request options on the pages.
1442//
1443// The context must be non-nil and will be used for request cancellation. If
1444// the context is nil a panic will occur. In the future the SDK may create
1445// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1446// for more information on using Contexts.
1447func (c *OpsWorksCM) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
1448	p := request.Pagination{
1449		NewRequest: func() (*request.Request, error) {
1450			var inCpy *ListTagsForResourceInput
1451			if input != nil {
1452				tmp := *input
1453				inCpy = &tmp
1454			}
1455			req, _ := c.ListTagsForResourceRequest(inCpy)
1456			req.SetContext(ctx)
1457			req.ApplyOptions(opts...)
1458			return req, nil
1459		},
1460	}
1461
1462	for p.Next() {
1463		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
1464			break
1465		}
1466	}
1467
1468	return p.Err()
1469}
1470
1471const opRestoreServer = "RestoreServer"
1472
1473// RestoreServerRequest generates a "aws/request.Request" representing the
1474// client's request for the RestoreServer operation. The "output" return
1475// value will be populated with the request's response once the request completes
1476// successfully.
1477//
1478// Use "Send" method on the returned Request to send the API call to the service.
1479// the "output" return value is not valid until after Send returns without error.
1480//
1481// See RestoreServer for more information on using the RestoreServer
1482// API call, and error handling.
1483//
1484// This method is useful when you want to inject custom logic or configuration
1485// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1486//
1487//
1488//    // Example sending a request using the RestoreServerRequest method.
1489//    req, resp := client.RestoreServerRequest(params)
1490//
1491//    err := req.Send()
1492//    if err == nil { // resp is now filled
1493//        fmt.Println(resp)
1494//    }
1495//
1496// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/RestoreServer
1497func (c *OpsWorksCM) RestoreServerRequest(input *RestoreServerInput) (req *request.Request, output *RestoreServerOutput) {
1498	op := &request.Operation{
1499		Name:       opRestoreServer,
1500		HTTPMethod: "POST",
1501		HTTPPath:   "/",
1502	}
1503
1504	if input == nil {
1505		input = &RestoreServerInput{}
1506	}
1507
1508	output = &RestoreServerOutput{}
1509	req = c.newRequest(op, input, output)
1510	return
1511}
1512
1513// RestoreServer API operation for AWS OpsWorks CM.
1514//
1515// Restores a backup to a server that is in a CONNECTION_LOST, HEALTHY, RUNNING,
1516// UNHEALTHY, or TERMINATED state. When you run RestoreServer, the server's
1517// EC2 instance is deleted, and a new EC2 instance is configured. RestoreServer
1518// maintains the existing server endpoint, so configuration management of the
1519// server's client devices (nodes) should continue to work.
1520//
1521// Restoring from a backup is performed by creating a new EC2 instance. If restoration
1522// is successful, and the server is in a HEALTHY state, AWS OpsWorks CM switches
1523// traffic over to the new instance. After restoration is finished, the old
1524// EC2 instance is maintained in a Running or Stopped state, but is eventually
1525// terminated.
1526//
1527// This operation is asynchronous.
1528//
1529// An InvalidStateException is thrown when the server is not in a valid state.
1530// A ResourceNotFoundException is thrown when the server does not exist. A ValidationException
1531// is raised when parameters of the request are not valid.
1532//
1533// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1534// with awserr.Error's Code and Message methods to get detailed information about
1535// the error.
1536//
1537// See the AWS API reference guide for AWS OpsWorks CM's
1538// API operation RestoreServer for usage and error information.
1539//
1540// Returned Error Types:
1541//   * InvalidStateException
1542//   The resource is in a state that does not allow you to perform a specified
1543//   action.
1544//
1545//   * ResourceNotFoundException
1546//   The requested resource does not exist, or access was denied.
1547//
1548//   * ValidationException
1549//   One or more of the provided request parameters are not valid.
1550//
1551// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/RestoreServer
1552func (c *OpsWorksCM) RestoreServer(input *RestoreServerInput) (*RestoreServerOutput, error) {
1553	req, out := c.RestoreServerRequest(input)
1554	return out, req.Send()
1555}
1556
1557// RestoreServerWithContext is the same as RestoreServer with the addition of
1558// the ability to pass a context and additional request options.
1559//
1560// See RestoreServer for details on how to use this API operation.
1561//
1562// The context must be non-nil and will be used for request cancellation. If
1563// the context is nil a panic will occur. In the future the SDK may create
1564// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1565// for more information on using Contexts.
1566func (c *OpsWorksCM) RestoreServerWithContext(ctx aws.Context, input *RestoreServerInput, opts ...request.Option) (*RestoreServerOutput, error) {
1567	req, out := c.RestoreServerRequest(input)
1568	req.SetContext(ctx)
1569	req.ApplyOptions(opts...)
1570	return out, req.Send()
1571}
1572
1573const opStartMaintenance = "StartMaintenance"
1574
1575// StartMaintenanceRequest generates a "aws/request.Request" representing the
1576// client's request for the StartMaintenance operation. The "output" return
1577// value will be populated with the request's response once the request completes
1578// successfully.
1579//
1580// Use "Send" method on the returned Request to send the API call to the service.
1581// the "output" return value is not valid until after Send returns without error.
1582//
1583// See StartMaintenance for more information on using the StartMaintenance
1584// API call, and error handling.
1585//
1586// This method is useful when you want to inject custom logic or configuration
1587// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1588//
1589//
1590//    // Example sending a request using the StartMaintenanceRequest method.
1591//    req, resp := client.StartMaintenanceRequest(params)
1592//
1593//    err := req.Send()
1594//    if err == nil { // resp is now filled
1595//        fmt.Println(resp)
1596//    }
1597//
1598// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/StartMaintenance
1599func (c *OpsWorksCM) StartMaintenanceRequest(input *StartMaintenanceInput) (req *request.Request, output *StartMaintenanceOutput) {
1600	op := &request.Operation{
1601		Name:       opStartMaintenance,
1602		HTTPMethod: "POST",
1603		HTTPPath:   "/",
1604	}
1605
1606	if input == nil {
1607		input = &StartMaintenanceInput{}
1608	}
1609
1610	output = &StartMaintenanceOutput{}
1611	req = c.newRequest(op, input, output)
1612	return
1613}
1614
1615// StartMaintenance API operation for AWS OpsWorks CM.
1616//
1617// Manually starts server maintenance. This command can be useful if an earlier
1618// maintenance attempt failed, and the underlying cause of maintenance failure
1619// has been resolved. The server is in an UNDER_MAINTENANCE state while maintenance
1620// is in progress.
1621//
1622// Maintenance can only be started on servers in HEALTHY and UNHEALTHY states.
1623// Otherwise, an InvalidStateException is thrown. A ResourceNotFoundException
1624// is thrown when the server does not exist. A ValidationException is raised
1625// when parameters of the request are not valid.
1626//
1627// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1628// with awserr.Error's Code and Message methods to get detailed information about
1629// the error.
1630//
1631// See the AWS API reference guide for AWS OpsWorks CM's
1632// API operation StartMaintenance for usage and error information.
1633//
1634// Returned Error Types:
1635//   * InvalidStateException
1636//   The resource is in a state that does not allow you to perform a specified
1637//   action.
1638//
1639//   * ResourceNotFoundException
1640//   The requested resource does not exist, or access was denied.
1641//
1642//   * ValidationException
1643//   One or more of the provided request parameters are not valid.
1644//
1645// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/StartMaintenance
1646func (c *OpsWorksCM) StartMaintenance(input *StartMaintenanceInput) (*StartMaintenanceOutput, error) {
1647	req, out := c.StartMaintenanceRequest(input)
1648	return out, req.Send()
1649}
1650
1651// StartMaintenanceWithContext is the same as StartMaintenance with the addition of
1652// the ability to pass a context and additional request options.
1653//
1654// See StartMaintenance for details on how to use this API operation.
1655//
1656// The context must be non-nil and will be used for request cancellation. If
1657// the context is nil a panic will occur. In the future the SDK may create
1658// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1659// for more information on using Contexts.
1660func (c *OpsWorksCM) StartMaintenanceWithContext(ctx aws.Context, input *StartMaintenanceInput, opts ...request.Option) (*StartMaintenanceOutput, error) {
1661	req, out := c.StartMaintenanceRequest(input)
1662	req.SetContext(ctx)
1663	req.ApplyOptions(opts...)
1664	return out, req.Send()
1665}
1666
1667const opTagResource = "TagResource"
1668
1669// TagResourceRequest generates a "aws/request.Request" representing the
1670// client's request for the TagResource operation. The "output" return
1671// value will be populated with the request's response once the request completes
1672// successfully.
1673//
1674// Use "Send" method on the returned Request to send the API call to the service.
1675// the "output" return value is not valid until after Send returns without error.
1676//
1677// See TagResource for more information on using the TagResource
1678// API call, and error handling.
1679//
1680// This method is useful when you want to inject custom logic or configuration
1681// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1682//
1683//
1684//    // Example sending a request using the TagResourceRequest method.
1685//    req, resp := client.TagResourceRequest(params)
1686//
1687//    err := req.Send()
1688//    if err == nil { // resp is now filled
1689//        fmt.Println(resp)
1690//    }
1691//
1692// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/TagResource
1693func (c *OpsWorksCM) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
1694	op := &request.Operation{
1695		Name:       opTagResource,
1696		HTTPMethod: "POST",
1697		HTTPPath:   "/",
1698	}
1699
1700	if input == nil {
1701		input = &TagResourceInput{}
1702	}
1703
1704	output = &TagResourceOutput{}
1705	req = c.newRequest(op, input, output)
1706	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1707	return
1708}
1709
1710// TagResource API operation for AWS OpsWorks CM.
1711//
1712// Applies tags to an AWS OpsWorks for Chef Automate or AWS OpsWorks for Puppet
1713// Enterprise server, or to server backups.
1714//
1715// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1716// with awserr.Error's Code and Message methods to get detailed information about
1717// the error.
1718//
1719// See the AWS API reference guide for AWS OpsWorks CM's
1720// API operation TagResource for usage and error information.
1721//
1722// Returned Error Types:
1723//   * ResourceNotFoundException
1724//   The requested resource does not exist, or access was denied.
1725//
1726//   * ValidationException
1727//   One or more of the provided request parameters are not valid.
1728//
1729//   * InvalidStateException
1730//   The resource is in a state that does not allow you to perform a specified
1731//   action.
1732//
1733// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/TagResource
1734func (c *OpsWorksCM) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
1735	req, out := c.TagResourceRequest(input)
1736	return out, req.Send()
1737}
1738
1739// TagResourceWithContext is the same as TagResource with the addition of
1740// the ability to pass a context and additional request options.
1741//
1742// See TagResource for details on how to use this API operation.
1743//
1744// The context must be non-nil and will be used for request cancellation. If
1745// the context is nil a panic will occur. In the future the SDK may create
1746// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1747// for more information on using Contexts.
1748func (c *OpsWorksCM) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
1749	req, out := c.TagResourceRequest(input)
1750	req.SetContext(ctx)
1751	req.ApplyOptions(opts...)
1752	return out, req.Send()
1753}
1754
1755const opUntagResource = "UntagResource"
1756
1757// UntagResourceRequest generates a "aws/request.Request" representing the
1758// client's request for the UntagResource operation. The "output" return
1759// value will be populated with the request's response once the request completes
1760// successfully.
1761//
1762// Use "Send" method on the returned Request to send the API call to the service.
1763// the "output" return value is not valid until after Send returns without error.
1764//
1765// See UntagResource for more information on using the UntagResource
1766// API call, and error handling.
1767//
1768// This method is useful when you want to inject custom logic or configuration
1769// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1770//
1771//
1772//    // Example sending a request using the UntagResourceRequest method.
1773//    req, resp := client.UntagResourceRequest(params)
1774//
1775//    err := req.Send()
1776//    if err == nil { // resp is now filled
1777//        fmt.Println(resp)
1778//    }
1779//
1780// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/UntagResource
1781func (c *OpsWorksCM) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
1782	op := &request.Operation{
1783		Name:       opUntagResource,
1784		HTTPMethod: "POST",
1785		HTTPPath:   "/",
1786	}
1787
1788	if input == nil {
1789		input = &UntagResourceInput{}
1790	}
1791
1792	output = &UntagResourceOutput{}
1793	req = c.newRequest(op, input, output)
1794	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1795	return
1796}
1797
1798// UntagResource API operation for AWS OpsWorks CM.
1799//
1800// Removes specified tags from an AWS OpsWorks-CM server or backup.
1801//
1802// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1803// with awserr.Error's Code and Message methods to get detailed information about
1804// the error.
1805//
1806// See the AWS API reference guide for AWS OpsWorks CM's
1807// API operation UntagResource for usage and error information.
1808//
1809// Returned Error Types:
1810//   * ResourceNotFoundException
1811//   The requested resource does not exist, or access was denied.
1812//
1813//   * ValidationException
1814//   One or more of the provided request parameters are not valid.
1815//
1816//   * InvalidStateException
1817//   The resource is in a state that does not allow you to perform a specified
1818//   action.
1819//
1820// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/UntagResource
1821func (c *OpsWorksCM) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
1822	req, out := c.UntagResourceRequest(input)
1823	return out, req.Send()
1824}
1825
1826// UntagResourceWithContext is the same as UntagResource with the addition of
1827// the ability to pass a context and additional request options.
1828//
1829// See UntagResource for details on how to use this API operation.
1830//
1831// The context must be non-nil and will be used for request cancellation. If
1832// the context is nil a panic will occur. In the future the SDK may create
1833// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1834// for more information on using Contexts.
1835func (c *OpsWorksCM) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
1836	req, out := c.UntagResourceRequest(input)
1837	req.SetContext(ctx)
1838	req.ApplyOptions(opts...)
1839	return out, req.Send()
1840}
1841
1842const opUpdateServer = "UpdateServer"
1843
1844// UpdateServerRequest generates a "aws/request.Request" representing the
1845// client's request for the UpdateServer operation. The "output" return
1846// value will be populated with the request's response once the request completes
1847// successfully.
1848//
1849// Use "Send" method on the returned Request to send the API call to the service.
1850// the "output" return value is not valid until after Send returns without error.
1851//
1852// See UpdateServer for more information on using the UpdateServer
1853// API call, and error handling.
1854//
1855// This method is useful when you want to inject custom logic or configuration
1856// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1857//
1858//
1859//    // Example sending a request using the UpdateServerRequest method.
1860//    req, resp := client.UpdateServerRequest(params)
1861//
1862//    err := req.Send()
1863//    if err == nil { // resp is now filled
1864//        fmt.Println(resp)
1865//    }
1866//
1867// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/UpdateServer
1868func (c *OpsWorksCM) UpdateServerRequest(input *UpdateServerInput) (req *request.Request, output *UpdateServerOutput) {
1869	op := &request.Operation{
1870		Name:       opUpdateServer,
1871		HTTPMethod: "POST",
1872		HTTPPath:   "/",
1873	}
1874
1875	if input == nil {
1876		input = &UpdateServerInput{}
1877	}
1878
1879	output = &UpdateServerOutput{}
1880	req = c.newRequest(op, input, output)
1881	return
1882}
1883
1884// UpdateServer API operation for AWS OpsWorks CM.
1885//
1886// Updates settings for a server.
1887//
1888// This operation is synchronous.
1889//
1890// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1891// with awserr.Error's Code and Message methods to get detailed information about
1892// the error.
1893//
1894// See the AWS API reference guide for AWS OpsWorks CM's
1895// API operation UpdateServer for usage and error information.
1896//
1897// Returned Error Types:
1898//   * InvalidStateException
1899//   The resource is in a state that does not allow you to perform a specified
1900//   action.
1901//
1902//   * ResourceNotFoundException
1903//   The requested resource does not exist, or access was denied.
1904//
1905//   * ValidationException
1906//   One or more of the provided request parameters are not valid.
1907//
1908// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/UpdateServer
1909func (c *OpsWorksCM) UpdateServer(input *UpdateServerInput) (*UpdateServerOutput, error) {
1910	req, out := c.UpdateServerRequest(input)
1911	return out, req.Send()
1912}
1913
1914// UpdateServerWithContext is the same as UpdateServer with the addition of
1915// the ability to pass a context and additional request options.
1916//
1917// See UpdateServer for details on how to use this API operation.
1918//
1919// The context must be non-nil and will be used for request cancellation. If
1920// the context is nil a panic will occur. In the future the SDK may create
1921// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1922// for more information on using Contexts.
1923func (c *OpsWorksCM) UpdateServerWithContext(ctx aws.Context, input *UpdateServerInput, opts ...request.Option) (*UpdateServerOutput, error) {
1924	req, out := c.UpdateServerRequest(input)
1925	req.SetContext(ctx)
1926	req.ApplyOptions(opts...)
1927	return out, req.Send()
1928}
1929
1930const opUpdateServerEngineAttributes = "UpdateServerEngineAttributes"
1931
1932// UpdateServerEngineAttributesRequest generates a "aws/request.Request" representing the
1933// client's request for the UpdateServerEngineAttributes operation. The "output" return
1934// value will be populated with the request's response once the request completes
1935// successfully.
1936//
1937// Use "Send" method on the returned Request to send the API call to the service.
1938// the "output" return value is not valid until after Send returns without error.
1939//
1940// See UpdateServerEngineAttributes for more information on using the UpdateServerEngineAttributes
1941// API call, and error handling.
1942//
1943// This method is useful when you want to inject custom logic or configuration
1944// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1945//
1946//
1947//    // Example sending a request using the UpdateServerEngineAttributesRequest method.
1948//    req, resp := client.UpdateServerEngineAttributesRequest(params)
1949//
1950//    err := req.Send()
1951//    if err == nil { // resp is now filled
1952//        fmt.Println(resp)
1953//    }
1954//
1955// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/UpdateServerEngineAttributes
1956func (c *OpsWorksCM) UpdateServerEngineAttributesRequest(input *UpdateServerEngineAttributesInput) (req *request.Request, output *UpdateServerEngineAttributesOutput) {
1957	op := &request.Operation{
1958		Name:       opUpdateServerEngineAttributes,
1959		HTTPMethod: "POST",
1960		HTTPPath:   "/",
1961	}
1962
1963	if input == nil {
1964		input = &UpdateServerEngineAttributesInput{}
1965	}
1966
1967	output = &UpdateServerEngineAttributesOutput{}
1968	req = c.newRequest(op, input, output)
1969	return
1970}
1971
1972// UpdateServerEngineAttributes API operation for AWS OpsWorks CM.
1973//
1974// Updates engine-specific attributes on a specified server. The server enters
1975// the MODIFYING state when this operation is in progress. Only one update can
1976// occur at a time. You can use this command to reset a Chef server's public
1977// key (CHEF_PIVOTAL_KEY) or a Puppet server's admin password (PUPPET_ADMIN_PASSWORD).
1978//
1979// This operation is asynchronous.
1980//
1981// This operation can only be called for servers in HEALTHY or UNHEALTHY states.
1982// Otherwise, an InvalidStateException is raised. A ResourceNotFoundException
1983// is thrown when the server does not exist. A ValidationException is raised
1984// when parameters of the request are not valid.
1985//
1986// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1987// with awserr.Error's Code and Message methods to get detailed information about
1988// the error.
1989//
1990// See the AWS API reference guide for AWS OpsWorks CM's
1991// API operation UpdateServerEngineAttributes for usage and error information.
1992//
1993// Returned Error Types:
1994//   * InvalidStateException
1995//   The resource is in a state that does not allow you to perform a specified
1996//   action.
1997//
1998//   * ResourceNotFoundException
1999//   The requested resource does not exist, or access was denied.
2000//
2001//   * ValidationException
2002//   One or more of the provided request parameters are not valid.
2003//
2004// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/UpdateServerEngineAttributes
2005func (c *OpsWorksCM) UpdateServerEngineAttributes(input *UpdateServerEngineAttributesInput) (*UpdateServerEngineAttributesOutput, error) {
2006	req, out := c.UpdateServerEngineAttributesRequest(input)
2007	return out, req.Send()
2008}
2009
2010// UpdateServerEngineAttributesWithContext is the same as UpdateServerEngineAttributes with the addition of
2011// the ability to pass a context and additional request options.
2012//
2013// See UpdateServerEngineAttributes for details on how to use this API operation.
2014//
2015// The context must be non-nil and will be used for request cancellation. If
2016// the context is nil a panic will occur. In the future the SDK may create
2017// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2018// for more information on using Contexts.
2019func (c *OpsWorksCM) UpdateServerEngineAttributesWithContext(ctx aws.Context, input *UpdateServerEngineAttributesInput, opts ...request.Option) (*UpdateServerEngineAttributesOutput, error) {
2020	req, out := c.UpdateServerEngineAttributesRequest(input)
2021	req.SetContext(ctx)
2022	req.ApplyOptions(opts...)
2023	return out, req.Send()
2024}
2025
2026// Stores account attributes.
2027type AccountAttribute struct {
2028	_ struct{} `type:"structure"`
2029
2030	// The maximum allowed value.
2031	Maximum *int64 `type:"integer"`
2032
2033	// The attribute name. The following are supported attribute names.
2034	//
2035	//    * ServerLimit: The number of current servers/maximum number of servers
2036	//    allowed. By default, you can have a maximum of 10 servers.
2037	//
2038	//    * ManualBackupLimit: The number of current manual backups/maximum number
2039	//    of backups allowed. By default, you can have a maximum of 50 manual backups
2040	//    saved.
2041	Name *string `type:"string"`
2042
2043	// The current usage, such as the current number of servers that are associated
2044	// with the account.
2045	Used *int64 `type:"integer"`
2046}
2047
2048// String returns the string representation.
2049//
2050// API parameter values that are decorated as "sensitive" in the API will not
2051// be included in the string output. The member name will be present, but the
2052// value will be replaced with "sensitive".
2053func (s AccountAttribute) String() string {
2054	return awsutil.Prettify(s)
2055}
2056
2057// GoString returns the string representation.
2058//
2059// API parameter values that are decorated as "sensitive" in the API will not
2060// be included in the string output. The member name will be present, but the
2061// value will be replaced with "sensitive".
2062func (s AccountAttribute) GoString() string {
2063	return s.String()
2064}
2065
2066// SetMaximum sets the Maximum field's value.
2067func (s *AccountAttribute) SetMaximum(v int64) *AccountAttribute {
2068	s.Maximum = &v
2069	return s
2070}
2071
2072// SetName sets the Name field's value.
2073func (s *AccountAttribute) SetName(v string) *AccountAttribute {
2074	s.Name = &v
2075	return s
2076}
2077
2078// SetUsed sets the Used field's value.
2079func (s *AccountAttribute) SetUsed(v int64) *AccountAttribute {
2080	s.Used = &v
2081	return s
2082}
2083
2084type AssociateNodeInput struct {
2085	_ struct{} `type:"structure"`
2086
2087	// Engine attributes used for associating the node.
2088	//
2089	// Attributes accepted in a AssociateNode request for Chef
2090	//
2091	//    * CHEF_ORGANIZATION: The Chef organization with which the node is associated.
2092	//    By default only one organization named default can exist.
2093	//
2094	//    * CHEF_NODE_PUBLIC_KEY: A PEM-formatted public key. This key is required
2095	//    for the chef-client agent to access the Chef API.
2096	//
2097	// Attributes accepted in a AssociateNode request for Puppet
2098	//
2099	//    * PUPPET_NODE_CSR: A PEM-formatted certificate-signing request (CSR) that
2100	//    is created by the node.
2101	//
2102	// EngineAttributes is a required field
2103	EngineAttributes []*EngineAttribute `type:"list" required:"true"`
2104
2105	// The name of the node.
2106	//
2107	// NodeName is a required field
2108	NodeName *string `type:"string" required:"true"`
2109
2110	// The name of the server with which to associate the node.
2111	//
2112	// ServerName is a required field
2113	ServerName *string `min:"1" type:"string" required:"true"`
2114}
2115
2116// String returns the string representation.
2117//
2118// API parameter values that are decorated as "sensitive" in the API will not
2119// be included in the string output. The member name will be present, but the
2120// value will be replaced with "sensitive".
2121func (s AssociateNodeInput) String() string {
2122	return awsutil.Prettify(s)
2123}
2124
2125// GoString returns the string representation.
2126//
2127// API parameter values that are decorated as "sensitive" in the API will not
2128// be included in the string output. The member name will be present, but the
2129// value will be replaced with "sensitive".
2130func (s AssociateNodeInput) GoString() string {
2131	return s.String()
2132}
2133
2134// Validate inspects the fields of the type to determine if they are valid.
2135func (s *AssociateNodeInput) Validate() error {
2136	invalidParams := request.ErrInvalidParams{Context: "AssociateNodeInput"}
2137	if s.EngineAttributes == nil {
2138		invalidParams.Add(request.NewErrParamRequired("EngineAttributes"))
2139	}
2140	if s.NodeName == nil {
2141		invalidParams.Add(request.NewErrParamRequired("NodeName"))
2142	}
2143	if s.ServerName == nil {
2144		invalidParams.Add(request.NewErrParamRequired("ServerName"))
2145	}
2146	if s.ServerName != nil && len(*s.ServerName) < 1 {
2147		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
2148	}
2149
2150	if invalidParams.Len() > 0 {
2151		return invalidParams
2152	}
2153	return nil
2154}
2155
2156// SetEngineAttributes sets the EngineAttributes field's value.
2157func (s *AssociateNodeInput) SetEngineAttributes(v []*EngineAttribute) *AssociateNodeInput {
2158	s.EngineAttributes = v
2159	return s
2160}
2161
2162// SetNodeName sets the NodeName field's value.
2163func (s *AssociateNodeInput) SetNodeName(v string) *AssociateNodeInput {
2164	s.NodeName = &v
2165	return s
2166}
2167
2168// SetServerName sets the ServerName field's value.
2169func (s *AssociateNodeInput) SetServerName(v string) *AssociateNodeInput {
2170	s.ServerName = &v
2171	return s
2172}
2173
2174type AssociateNodeOutput struct {
2175	_ struct{} `type:"structure"`
2176
2177	// Contains a token which can be passed to the DescribeNodeAssociationStatus
2178	// API call to get the status of the association request.
2179	NodeAssociationStatusToken *string `type:"string"`
2180}
2181
2182// String returns the string representation.
2183//
2184// API parameter values that are decorated as "sensitive" in the API will not
2185// be included in the string output. The member name will be present, but the
2186// value will be replaced with "sensitive".
2187func (s AssociateNodeOutput) String() string {
2188	return awsutil.Prettify(s)
2189}
2190
2191// GoString returns the string representation.
2192//
2193// API parameter values that are decorated as "sensitive" in the API will not
2194// be included in the string output. The member name will be present, but the
2195// value will be replaced with "sensitive".
2196func (s AssociateNodeOutput) GoString() string {
2197	return s.String()
2198}
2199
2200// SetNodeAssociationStatusToken sets the NodeAssociationStatusToken field's value.
2201func (s *AssociateNodeOutput) SetNodeAssociationStatusToken(v string) *AssociateNodeOutput {
2202	s.NodeAssociationStatusToken = &v
2203	return s
2204}
2205
2206// Describes a single backup.
2207type Backup struct {
2208	_ struct{} `type:"structure"`
2209
2210	// The ARN of the backup.
2211	BackupArn *string `type:"string"`
2212
2213	// The generated ID of the backup. Example: myServerName-yyyyMMddHHmmssSSS
2214	BackupId *string `type:"string"`
2215
2216	// The backup type. Valid values are automated or manual.
2217	BackupType *string `type:"string" enum:"BackupType"`
2218
2219	// The time stamp when the backup was created in the database. Example: 2016-07-29T13:38:47.520Z
2220	CreatedAt *time.Time `type:"timestamp"`
2221
2222	// A user-provided description for a manual backup. This field is empty for
2223	// automated backups.
2224	Description *string `type:"string"`
2225
2226	// The engine type that is obtained from the server when the backup is created.
2227	Engine *string `type:"string"`
2228
2229	// The engine model that is obtained from the server when the backup is created.
2230	EngineModel *string `type:"string"`
2231
2232	// The engine version that is obtained from the server when the backup is created.
2233	EngineVersion *string `type:"string"`
2234
2235	// The EC2 instance profile ARN that is obtained from the server when the backup
2236	// is created. Because this value is stored, you are not required to provide
2237	// the InstanceProfileArn again if you restore a backup.
2238	InstanceProfileArn *string `type:"string"`
2239
2240	// The instance type that is obtained from the server when the backup is created.
2241	InstanceType *string `type:"string"`
2242
2243	// The key pair that is obtained from the server when the backup is created.
2244	KeyPair *string `type:"string"`
2245
2246	// The preferred backup period that is obtained from the server when the backup
2247	// is created.
2248	PreferredBackupWindow *string `type:"string"`
2249
2250	// The preferred maintenance period that is obtained from the server when the
2251	// backup is created.
2252	PreferredMaintenanceWindow *string `type:"string"`
2253
2254	// This field is deprecated and is no longer used.
2255	//
2256	// Deprecated: S3DataSize has been deprecated
2257	S3DataSize *int64 `deprecated:"true" type:"integer"`
2258
2259	// This field is deprecated and is no longer used.
2260	//
2261	// Deprecated: S3DataUrl has been deprecated
2262	S3DataUrl *string `deprecated:"true" type:"string"`
2263
2264	// The Amazon S3 URL of the backup's log file.
2265	S3LogUrl *string `type:"string"`
2266
2267	// The security group IDs that are obtained from the server when the backup
2268	// is created.
2269	SecurityGroupIds []*string `type:"list"`
2270
2271	// The name of the server from which the backup was made.
2272	ServerName *string `min:"1" type:"string"`
2273
2274	// The service role ARN that is obtained from the server when the backup is
2275	// created.
2276	ServiceRoleArn *string `type:"string"`
2277
2278	// The status of a backup while in progress.
2279	Status *string `type:"string" enum:"BackupStatus"`
2280
2281	// An informational message about backup status.
2282	StatusDescription *string `type:"string"`
2283
2284	// The subnet IDs that are obtained from the server when the backup is created.
2285	SubnetIds []*string `type:"list"`
2286
2287	// The version of AWS OpsWorks CM-specific tools that is obtained from the server
2288	// when the backup is created.
2289	ToolsVersion *string `type:"string"`
2290
2291	// The IAM user ARN of the requester for manual backups. This field is empty
2292	// for automated backups.
2293	UserArn *string `type:"string"`
2294}
2295
2296// String returns the string representation.
2297//
2298// API parameter values that are decorated as "sensitive" in the API will not
2299// be included in the string output. The member name will be present, but the
2300// value will be replaced with "sensitive".
2301func (s Backup) String() string {
2302	return awsutil.Prettify(s)
2303}
2304
2305// GoString returns the string representation.
2306//
2307// API parameter values that are decorated as "sensitive" in the API will not
2308// be included in the string output. The member name will be present, but the
2309// value will be replaced with "sensitive".
2310func (s Backup) GoString() string {
2311	return s.String()
2312}
2313
2314// SetBackupArn sets the BackupArn field's value.
2315func (s *Backup) SetBackupArn(v string) *Backup {
2316	s.BackupArn = &v
2317	return s
2318}
2319
2320// SetBackupId sets the BackupId field's value.
2321func (s *Backup) SetBackupId(v string) *Backup {
2322	s.BackupId = &v
2323	return s
2324}
2325
2326// SetBackupType sets the BackupType field's value.
2327func (s *Backup) SetBackupType(v string) *Backup {
2328	s.BackupType = &v
2329	return s
2330}
2331
2332// SetCreatedAt sets the CreatedAt field's value.
2333func (s *Backup) SetCreatedAt(v time.Time) *Backup {
2334	s.CreatedAt = &v
2335	return s
2336}
2337
2338// SetDescription sets the Description field's value.
2339func (s *Backup) SetDescription(v string) *Backup {
2340	s.Description = &v
2341	return s
2342}
2343
2344// SetEngine sets the Engine field's value.
2345func (s *Backup) SetEngine(v string) *Backup {
2346	s.Engine = &v
2347	return s
2348}
2349
2350// SetEngineModel sets the EngineModel field's value.
2351func (s *Backup) SetEngineModel(v string) *Backup {
2352	s.EngineModel = &v
2353	return s
2354}
2355
2356// SetEngineVersion sets the EngineVersion field's value.
2357func (s *Backup) SetEngineVersion(v string) *Backup {
2358	s.EngineVersion = &v
2359	return s
2360}
2361
2362// SetInstanceProfileArn sets the InstanceProfileArn field's value.
2363func (s *Backup) SetInstanceProfileArn(v string) *Backup {
2364	s.InstanceProfileArn = &v
2365	return s
2366}
2367
2368// SetInstanceType sets the InstanceType field's value.
2369func (s *Backup) SetInstanceType(v string) *Backup {
2370	s.InstanceType = &v
2371	return s
2372}
2373
2374// SetKeyPair sets the KeyPair field's value.
2375func (s *Backup) SetKeyPair(v string) *Backup {
2376	s.KeyPair = &v
2377	return s
2378}
2379
2380// SetPreferredBackupWindow sets the PreferredBackupWindow field's value.
2381func (s *Backup) SetPreferredBackupWindow(v string) *Backup {
2382	s.PreferredBackupWindow = &v
2383	return s
2384}
2385
2386// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
2387func (s *Backup) SetPreferredMaintenanceWindow(v string) *Backup {
2388	s.PreferredMaintenanceWindow = &v
2389	return s
2390}
2391
2392// SetS3DataSize sets the S3DataSize field's value.
2393func (s *Backup) SetS3DataSize(v int64) *Backup {
2394	s.S3DataSize = &v
2395	return s
2396}
2397
2398// SetS3DataUrl sets the S3DataUrl field's value.
2399func (s *Backup) SetS3DataUrl(v string) *Backup {
2400	s.S3DataUrl = &v
2401	return s
2402}
2403
2404// SetS3LogUrl sets the S3LogUrl field's value.
2405func (s *Backup) SetS3LogUrl(v string) *Backup {
2406	s.S3LogUrl = &v
2407	return s
2408}
2409
2410// SetSecurityGroupIds sets the SecurityGroupIds field's value.
2411func (s *Backup) SetSecurityGroupIds(v []*string) *Backup {
2412	s.SecurityGroupIds = v
2413	return s
2414}
2415
2416// SetServerName sets the ServerName field's value.
2417func (s *Backup) SetServerName(v string) *Backup {
2418	s.ServerName = &v
2419	return s
2420}
2421
2422// SetServiceRoleArn sets the ServiceRoleArn field's value.
2423func (s *Backup) SetServiceRoleArn(v string) *Backup {
2424	s.ServiceRoleArn = &v
2425	return s
2426}
2427
2428// SetStatus sets the Status field's value.
2429func (s *Backup) SetStatus(v string) *Backup {
2430	s.Status = &v
2431	return s
2432}
2433
2434// SetStatusDescription sets the StatusDescription field's value.
2435func (s *Backup) SetStatusDescription(v string) *Backup {
2436	s.StatusDescription = &v
2437	return s
2438}
2439
2440// SetSubnetIds sets the SubnetIds field's value.
2441func (s *Backup) SetSubnetIds(v []*string) *Backup {
2442	s.SubnetIds = v
2443	return s
2444}
2445
2446// SetToolsVersion sets the ToolsVersion field's value.
2447func (s *Backup) SetToolsVersion(v string) *Backup {
2448	s.ToolsVersion = &v
2449	return s
2450}
2451
2452// SetUserArn sets the UserArn field's value.
2453func (s *Backup) SetUserArn(v string) *Backup {
2454	s.UserArn = &v
2455	return s
2456}
2457
2458type CreateBackupInput struct {
2459	_ struct{} `type:"structure"`
2460
2461	// A user-defined description of the backup.
2462	Description *string `type:"string"`
2463
2464	// The name of the server that you want to back up.
2465	//
2466	// ServerName is a required field
2467	ServerName *string `min:"1" type:"string" required:"true"`
2468
2469	// A map that contains tag keys and tag values to attach to an AWS OpsWorks-CM
2470	// server backup.
2471	//
2472	//    * The key cannot be empty.
2473	//
2474	//    * The key can be a maximum of 127 characters, and can contain only Unicode
2475	//    letters, numbers, or separators, or the following special characters:
2476	//    + - = . _ : /
2477	//
2478	//    * The value can be a maximum 255 characters, and contain only Unicode
2479	//    letters, numbers, or separators, or the following special characters:
2480	//    + - = . _ : /
2481	//
2482	//    * Leading and trailing white spaces are trimmed from both the key and
2483	//    value.
2484	//
2485	//    * A maximum of 50 user-applied tags is allowed for tag-supported AWS OpsWorks-CM
2486	//    resources.
2487	Tags []*Tag `type:"list"`
2488}
2489
2490// String returns the string representation.
2491//
2492// API parameter values that are decorated as "sensitive" in the API will not
2493// be included in the string output. The member name will be present, but the
2494// value will be replaced with "sensitive".
2495func (s CreateBackupInput) String() string {
2496	return awsutil.Prettify(s)
2497}
2498
2499// GoString returns the string representation.
2500//
2501// API parameter values that are decorated as "sensitive" in the API will not
2502// be included in the string output. The member name will be present, but the
2503// value will be replaced with "sensitive".
2504func (s CreateBackupInput) GoString() string {
2505	return s.String()
2506}
2507
2508// Validate inspects the fields of the type to determine if they are valid.
2509func (s *CreateBackupInput) Validate() error {
2510	invalidParams := request.ErrInvalidParams{Context: "CreateBackupInput"}
2511	if s.ServerName == nil {
2512		invalidParams.Add(request.NewErrParamRequired("ServerName"))
2513	}
2514	if s.ServerName != nil && len(*s.ServerName) < 1 {
2515		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
2516	}
2517	if s.Tags != nil {
2518		for i, v := range s.Tags {
2519			if v == nil {
2520				continue
2521			}
2522			if err := v.Validate(); err != nil {
2523				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
2524			}
2525		}
2526	}
2527
2528	if invalidParams.Len() > 0 {
2529		return invalidParams
2530	}
2531	return nil
2532}
2533
2534// SetDescription sets the Description field's value.
2535func (s *CreateBackupInput) SetDescription(v string) *CreateBackupInput {
2536	s.Description = &v
2537	return s
2538}
2539
2540// SetServerName sets the ServerName field's value.
2541func (s *CreateBackupInput) SetServerName(v string) *CreateBackupInput {
2542	s.ServerName = &v
2543	return s
2544}
2545
2546// SetTags sets the Tags field's value.
2547func (s *CreateBackupInput) SetTags(v []*Tag) *CreateBackupInput {
2548	s.Tags = v
2549	return s
2550}
2551
2552type CreateBackupOutput struct {
2553	_ struct{} `type:"structure"`
2554
2555	// Backup created by request.
2556	Backup *Backup `type:"structure"`
2557}
2558
2559// String returns the string representation.
2560//
2561// API parameter values that are decorated as "sensitive" in the API will not
2562// be included in the string output. The member name will be present, but the
2563// value will be replaced with "sensitive".
2564func (s CreateBackupOutput) String() string {
2565	return awsutil.Prettify(s)
2566}
2567
2568// GoString returns the string representation.
2569//
2570// API parameter values that are decorated as "sensitive" in the API will not
2571// be included in the string output. The member name will be present, but the
2572// value will be replaced with "sensitive".
2573func (s CreateBackupOutput) GoString() string {
2574	return s.String()
2575}
2576
2577// SetBackup sets the Backup field's value.
2578func (s *CreateBackupOutput) SetBackup(v *Backup) *CreateBackupOutput {
2579	s.Backup = v
2580	return s
2581}
2582
2583type CreateServerInput struct {
2584	_ struct{} `type:"structure"`
2585
2586	// Associate a public IP address with a server that you are launching. Valid
2587	// values are true or false. The default value is true.
2588	AssociatePublicIpAddress *bool `type:"boolean"`
2589
2590	// If you specify this field, AWS OpsWorks CM creates the server by using the
2591	// backup represented by BackupId.
2592	BackupId *string `type:"string"`
2593
2594	// The number of automated backups that you want to keep. Whenever a new backup
2595	// is created, AWS OpsWorks CM deletes the oldest backups if this number is
2596	// exceeded. The default value is 1.
2597	BackupRetentionCount *int64 `min:"1" type:"integer"`
2598
2599	// A PEM-formatted HTTPS certificate. The value can be be a single, self-signed
2600	// certificate, or a certificate chain. If you specify a custom certificate,
2601	// you must also specify values for CustomDomain and CustomPrivateKey. The following
2602	// are requirements for the CustomCertificate value:
2603	//
2604	//    * You can provide either a self-signed, custom certificate, or the full
2605	//    certificate chain.
2606	//
2607	//    * The certificate must be a valid X509 certificate, or a certificate chain
2608	//    in PEM format.
2609	//
2610	//    * The certificate must be valid at the time of upload. A certificate can't
2611	//    be used before its validity period begins (the certificate's NotBefore
2612	//    date), or after it expires (the certificate's NotAfter date).
2613	//
2614	//    * The certificate’s common name or subject alternative names (SANs),
2615	//    if present, must match the value of CustomDomain.
2616	//
2617	//    * The certificate must match the value of CustomPrivateKey.
2618	CustomCertificate *string `type:"string"`
2619
2620	// An optional public endpoint of a server, such as https://aws.my-company.com.
2621	// To access the server, create a CNAME DNS record in your preferred DNS service
2622	// that points the custom domain to the endpoint that is generated when the
2623	// server is created (the value of the CreateServer Endpoint attribute). You
2624	// cannot access the server by using the generated Endpoint value if the server
2625	// is using a custom domain. If you specify a custom domain, you must also specify
2626	// values for CustomCertificate and CustomPrivateKey.
2627	CustomDomain *string `type:"string"`
2628
2629	// A private key in PEM format for connecting to the server by using HTTPS.
2630	// The private key must not be encrypted; it cannot be protected by a password
2631	// or passphrase. If you specify a custom private key, you must also specify
2632	// values for CustomDomain and CustomCertificate.
2633	//
2634	// CustomPrivateKey is a sensitive parameter and its value will be
2635	// replaced with "sensitive" in string returned by CreateServerInput's
2636	// String and GoString methods.
2637	CustomPrivateKey *string `type:"string" sensitive:"true"`
2638
2639	// Enable or disable scheduled backups. Valid values are true or false. The
2640	// default value is true.
2641	DisableAutomatedBackup *bool `type:"boolean"`
2642
2643	// The configuration management engine to use. Valid values include ChefAutomate
2644	// and Puppet.
2645	//
2646	// Engine is a required field
2647	Engine *string `type:"string" required:"true"`
2648
2649	// Optional engine attributes on a specified server.
2650	//
2651	// Attributes accepted in a Chef createServer request:
2652	//
2653	//    * CHEF_AUTOMATE_PIVOTAL_KEY: A base64-encoded RSA public key. The corresponding
2654	//    private key is required to access the Chef API. When no CHEF_AUTOMATE_PIVOTAL_KEY
2655	//    is set, a private key is generated and returned in the response.
2656	//
2657	//    * CHEF_AUTOMATE_ADMIN_PASSWORD: The password for the administrative user
2658	//    in the Chef Automate web-based dashboard. The password length is a minimum
2659	//    of eight characters, and a maximum of 32. The password can contain letters,
2660	//    numbers, and special characters (!/@#$%^&+=_). The password must contain
2661	//    at least one lower case letter, one upper case letter, one number, and
2662	//    one special character. When no CHEF_AUTOMATE_ADMIN_PASSWORD is set, one
2663	//    is generated and returned in the response.
2664	//
2665	// Attributes accepted in a Puppet createServer request:
2666	//
2667	//    * PUPPET_ADMIN_PASSWORD: To work with the Puppet Enterprise console, a
2668	//    password must use ASCII characters.
2669	//
2670	//    * PUPPET_R10K_REMOTE: The r10k remote is the URL of your control repository
2671	//    (for example, ssh://git@your.git-repo.com:user/control-repo.git). Specifying
2672	//    an r10k remote opens TCP port 8170.
2673	//
2674	//    * PUPPET_R10K_PRIVATE_KEY: If you are using a private Git repository,
2675	//    add PUPPET_R10K_PRIVATE_KEY to specify a PEM-encoded private SSH key.
2676	EngineAttributes []*EngineAttribute `type:"list"`
2677
2678	// The engine model of the server. Valid values in this release include Monolithic
2679	// for Puppet and Single for Chef.
2680	EngineModel *string `type:"string"`
2681
2682	// The major release version of the engine that you want to use. For a Chef
2683	// server, the valid value for EngineVersion is currently 2. For a Puppet server,
2684	// valid values are 2019 or 2017.
2685	EngineVersion *string `type:"string"`
2686
2687	// The ARN of the instance profile that your Amazon EC2 instances use. Although
2688	// the AWS OpsWorks console typically creates the instance profile for you,
2689	// if you are using API commands instead, run the service-role-creation.yaml
2690	// AWS CloudFormation template, located at https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
2691	// This template creates a CloudFormation stack that includes the instance profile
2692	// you need.
2693	//
2694	// InstanceProfileArn is a required field
2695	InstanceProfileArn *string `type:"string" required:"true"`
2696
2697	// The Amazon EC2 instance type to use. For example, m5.large.
2698	//
2699	// InstanceType is a required field
2700	InstanceType *string `type:"string" required:"true"`
2701
2702	// The Amazon EC2 key pair to set for the instance. This parameter is optional;
2703	// if desired, you may specify this parameter to connect to your instances by
2704	// using SSH.
2705	KeyPair *string `type:"string"`
2706
2707	// The start time for a one-hour period during which AWS OpsWorks CM backs up
2708	// application-level data on your server if automated backups are enabled. Valid
2709	// values must be specified in one of the following formats:
2710	//
2711	//    * HH:MM for daily backups
2712	//
2713	//    * DDD:HH:MM for weekly backups
2714	//
2715	// MM must be specified as 00. The specified time is in coordinated universal
2716	// time (UTC). The default value is a random, daily start time.
2717	//
2718	// Example: 08:00, which represents a daily start time of 08:00 UTC.
2719	//
2720	// Example: Mon:08:00, which represents a start time of every Monday at 08:00
2721	// UTC. (8:00 a.m.)
2722	PreferredBackupWindow *string `type:"string"`
2723
2724	// The start time for a one-hour period each week during which AWS OpsWorks
2725	// CM performs maintenance on the instance. Valid values must be specified in
2726	// the following format: DDD:HH:MM. MM must be specified as 00. The specified
2727	// time is in coordinated universal time (UTC). The default value is a random
2728	// one-hour period on Tuesday, Wednesday, or Friday. See TimeWindowDefinition
2729	// for more information.
2730	//
2731	// Example: Mon:08:00, which represents a start time of every Monday at 08:00
2732	// UTC. (8:00 a.m.)
2733	PreferredMaintenanceWindow *string `type:"string"`
2734
2735	// A list of security group IDs to attach to the Amazon EC2 instance. If you
2736	// add this parameter, the specified security groups must be within the VPC
2737	// that is specified by SubnetIds.
2738	//
2739	// If you do not specify this parameter, AWS OpsWorks CM creates one new security
2740	// group that uses TCP ports 22 and 443, open to 0.0.0.0/0 (everyone).
2741	SecurityGroupIds []*string `type:"list"`
2742
2743	// The name of the server. The server name must be unique within your AWS account,
2744	// within each region. Server names must start with a letter; then letters,
2745	// numbers, or hyphens (-) are allowed, up to a maximum of 40 characters.
2746	//
2747	// ServerName is a required field
2748	ServerName *string `min:"1" type:"string" required:"true"`
2749
2750	// The service role that the AWS OpsWorks CM service backend uses to work with
2751	// your account. Although the AWS OpsWorks management console typically creates
2752	// the service role for you, if you are using the AWS CLI or API commands, run
2753	// the service-role-creation.yaml AWS CloudFormation template, located at https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
2754	// This template creates a CloudFormation stack that includes the service role
2755	// and instance profile that you need.
2756	//
2757	// ServiceRoleArn is a required field
2758	ServiceRoleArn *string `type:"string" required:"true"`
2759
2760	// The IDs of subnets in which to launch the server EC2 instance.
2761	//
2762	// Amazon EC2-Classic customers: This field is required. All servers must run
2763	// within a VPC. The VPC must have "Auto Assign Public IP" enabled.
2764	//
2765	// EC2-VPC customers: This field is optional. If you do not specify subnet IDs,
2766	// your EC2 instances are created in a default subnet that is selected by Amazon
2767	// EC2. If you specify subnet IDs, the VPC must have "Auto Assign Public IP"
2768	// enabled.
2769	//
2770	// For more information about supported Amazon EC2 platforms, see Supported
2771	// Platforms (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html).
2772	SubnetIds []*string `type:"list"`
2773
2774	// A map that contains tag keys and tag values to attach to an AWS OpsWorks
2775	// for Chef Automate or AWS OpsWorks for Puppet Enterprise server.
2776	//
2777	//    * The key cannot be empty.
2778	//
2779	//    * The key can be a maximum of 127 characters, and can contain only Unicode
2780	//    letters, numbers, or separators, or the following special characters:
2781	//    + - = . _ : / @
2782	//
2783	//    * The value can be a maximum 255 characters, and contain only Unicode
2784	//    letters, numbers, or separators, or the following special characters:
2785	//    + - = . _ : / @
2786	//
2787	//    * Leading and trailing white spaces are trimmed from both the key and
2788	//    value.
2789	//
2790	//    * A maximum of 50 user-applied tags is allowed for any AWS OpsWorks-CM
2791	//    server.
2792	Tags []*Tag `type:"list"`
2793}
2794
2795// String returns the string representation.
2796//
2797// API parameter values that are decorated as "sensitive" in the API will not
2798// be included in the string output. The member name will be present, but the
2799// value will be replaced with "sensitive".
2800func (s CreateServerInput) String() string {
2801	return awsutil.Prettify(s)
2802}
2803
2804// GoString returns the string representation.
2805//
2806// API parameter values that are decorated as "sensitive" in the API will not
2807// be included in the string output. The member name will be present, but the
2808// value will be replaced with "sensitive".
2809func (s CreateServerInput) GoString() string {
2810	return s.String()
2811}
2812
2813// Validate inspects the fields of the type to determine if they are valid.
2814func (s *CreateServerInput) Validate() error {
2815	invalidParams := request.ErrInvalidParams{Context: "CreateServerInput"}
2816	if s.BackupRetentionCount != nil && *s.BackupRetentionCount < 1 {
2817		invalidParams.Add(request.NewErrParamMinValue("BackupRetentionCount", 1))
2818	}
2819	if s.Engine == nil {
2820		invalidParams.Add(request.NewErrParamRequired("Engine"))
2821	}
2822	if s.InstanceProfileArn == nil {
2823		invalidParams.Add(request.NewErrParamRequired("InstanceProfileArn"))
2824	}
2825	if s.InstanceType == nil {
2826		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
2827	}
2828	if s.ServerName == nil {
2829		invalidParams.Add(request.NewErrParamRequired("ServerName"))
2830	}
2831	if s.ServerName != nil && len(*s.ServerName) < 1 {
2832		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
2833	}
2834	if s.ServiceRoleArn == nil {
2835		invalidParams.Add(request.NewErrParamRequired("ServiceRoleArn"))
2836	}
2837	if s.Tags != nil {
2838		for i, v := range s.Tags {
2839			if v == nil {
2840				continue
2841			}
2842			if err := v.Validate(); err != nil {
2843				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
2844			}
2845		}
2846	}
2847
2848	if invalidParams.Len() > 0 {
2849		return invalidParams
2850	}
2851	return nil
2852}
2853
2854// SetAssociatePublicIpAddress sets the AssociatePublicIpAddress field's value.
2855func (s *CreateServerInput) SetAssociatePublicIpAddress(v bool) *CreateServerInput {
2856	s.AssociatePublicIpAddress = &v
2857	return s
2858}
2859
2860// SetBackupId sets the BackupId field's value.
2861func (s *CreateServerInput) SetBackupId(v string) *CreateServerInput {
2862	s.BackupId = &v
2863	return s
2864}
2865
2866// SetBackupRetentionCount sets the BackupRetentionCount field's value.
2867func (s *CreateServerInput) SetBackupRetentionCount(v int64) *CreateServerInput {
2868	s.BackupRetentionCount = &v
2869	return s
2870}
2871
2872// SetCustomCertificate sets the CustomCertificate field's value.
2873func (s *CreateServerInput) SetCustomCertificate(v string) *CreateServerInput {
2874	s.CustomCertificate = &v
2875	return s
2876}
2877
2878// SetCustomDomain sets the CustomDomain field's value.
2879func (s *CreateServerInput) SetCustomDomain(v string) *CreateServerInput {
2880	s.CustomDomain = &v
2881	return s
2882}
2883
2884// SetCustomPrivateKey sets the CustomPrivateKey field's value.
2885func (s *CreateServerInput) SetCustomPrivateKey(v string) *CreateServerInput {
2886	s.CustomPrivateKey = &v
2887	return s
2888}
2889
2890// SetDisableAutomatedBackup sets the DisableAutomatedBackup field's value.
2891func (s *CreateServerInput) SetDisableAutomatedBackup(v bool) *CreateServerInput {
2892	s.DisableAutomatedBackup = &v
2893	return s
2894}
2895
2896// SetEngine sets the Engine field's value.
2897func (s *CreateServerInput) SetEngine(v string) *CreateServerInput {
2898	s.Engine = &v
2899	return s
2900}
2901
2902// SetEngineAttributes sets the EngineAttributes field's value.
2903func (s *CreateServerInput) SetEngineAttributes(v []*EngineAttribute) *CreateServerInput {
2904	s.EngineAttributes = v
2905	return s
2906}
2907
2908// SetEngineModel sets the EngineModel field's value.
2909func (s *CreateServerInput) SetEngineModel(v string) *CreateServerInput {
2910	s.EngineModel = &v
2911	return s
2912}
2913
2914// SetEngineVersion sets the EngineVersion field's value.
2915func (s *CreateServerInput) SetEngineVersion(v string) *CreateServerInput {
2916	s.EngineVersion = &v
2917	return s
2918}
2919
2920// SetInstanceProfileArn sets the InstanceProfileArn field's value.
2921func (s *CreateServerInput) SetInstanceProfileArn(v string) *CreateServerInput {
2922	s.InstanceProfileArn = &v
2923	return s
2924}
2925
2926// SetInstanceType sets the InstanceType field's value.
2927func (s *CreateServerInput) SetInstanceType(v string) *CreateServerInput {
2928	s.InstanceType = &v
2929	return s
2930}
2931
2932// SetKeyPair sets the KeyPair field's value.
2933func (s *CreateServerInput) SetKeyPair(v string) *CreateServerInput {
2934	s.KeyPair = &v
2935	return s
2936}
2937
2938// SetPreferredBackupWindow sets the PreferredBackupWindow field's value.
2939func (s *CreateServerInput) SetPreferredBackupWindow(v string) *CreateServerInput {
2940	s.PreferredBackupWindow = &v
2941	return s
2942}
2943
2944// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
2945func (s *CreateServerInput) SetPreferredMaintenanceWindow(v string) *CreateServerInput {
2946	s.PreferredMaintenanceWindow = &v
2947	return s
2948}
2949
2950// SetSecurityGroupIds sets the SecurityGroupIds field's value.
2951func (s *CreateServerInput) SetSecurityGroupIds(v []*string) *CreateServerInput {
2952	s.SecurityGroupIds = v
2953	return s
2954}
2955
2956// SetServerName sets the ServerName field's value.
2957func (s *CreateServerInput) SetServerName(v string) *CreateServerInput {
2958	s.ServerName = &v
2959	return s
2960}
2961
2962// SetServiceRoleArn sets the ServiceRoleArn field's value.
2963func (s *CreateServerInput) SetServiceRoleArn(v string) *CreateServerInput {
2964	s.ServiceRoleArn = &v
2965	return s
2966}
2967
2968// SetSubnetIds sets the SubnetIds field's value.
2969func (s *CreateServerInput) SetSubnetIds(v []*string) *CreateServerInput {
2970	s.SubnetIds = v
2971	return s
2972}
2973
2974// SetTags sets the Tags field's value.
2975func (s *CreateServerInput) SetTags(v []*Tag) *CreateServerInput {
2976	s.Tags = v
2977	return s
2978}
2979
2980type CreateServerOutput struct {
2981	_ struct{} `type:"structure"`
2982
2983	// The server that is created by the request.
2984	Server *Server `type:"structure"`
2985}
2986
2987// String returns the string representation.
2988//
2989// API parameter values that are decorated as "sensitive" in the API will not
2990// be included in the string output. The member name will be present, but the
2991// value will be replaced with "sensitive".
2992func (s CreateServerOutput) String() string {
2993	return awsutil.Prettify(s)
2994}
2995
2996// GoString returns the string representation.
2997//
2998// API parameter values that are decorated as "sensitive" in the API will not
2999// be included in the string output. The member name will be present, but the
3000// value will be replaced with "sensitive".
3001func (s CreateServerOutput) GoString() string {
3002	return s.String()
3003}
3004
3005// SetServer sets the Server field's value.
3006func (s *CreateServerOutput) SetServer(v *Server) *CreateServerOutput {
3007	s.Server = v
3008	return s
3009}
3010
3011type DeleteBackupInput struct {
3012	_ struct{} `type:"structure"`
3013
3014	// The ID of the backup to delete. Run the DescribeBackups command to get a
3015	// list of backup IDs. Backup IDs are in the format ServerName-yyyyMMddHHmmssSSS.
3016	//
3017	// BackupId is a required field
3018	BackupId *string `type:"string" required:"true"`
3019}
3020
3021// String returns the string representation.
3022//
3023// API parameter values that are decorated as "sensitive" in the API will not
3024// be included in the string output. The member name will be present, but the
3025// value will be replaced with "sensitive".
3026func (s DeleteBackupInput) String() string {
3027	return awsutil.Prettify(s)
3028}
3029
3030// GoString returns the string representation.
3031//
3032// API parameter values that are decorated as "sensitive" in the API will not
3033// be included in the string output. The member name will be present, but the
3034// value will be replaced with "sensitive".
3035func (s DeleteBackupInput) GoString() string {
3036	return s.String()
3037}
3038
3039// Validate inspects the fields of the type to determine if they are valid.
3040func (s *DeleteBackupInput) Validate() error {
3041	invalidParams := request.ErrInvalidParams{Context: "DeleteBackupInput"}
3042	if s.BackupId == nil {
3043		invalidParams.Add(request.NewErrParamRequired("BackupId"))
3044	}
3045
3046	if invalidParams.Len() > 0 {
3047		return invalidParams
3048	}
3049	return nil
3050}
3051
3052// SetBackupId sets the BackupId field's value.
3053func (s *DeleteBackupInput) SetBackupId(v string) *DeleteBackupInput {
3054	s.BackupId = &v
3055	return s
3056}
3057
3058type DeleteBackupOutput struct {
3059	_ struct{} `type:"structure"`
3060}
3061
3062// String returns the string representation.
3063//
3064// API parameter values that are decorated as "sensitive" in the API will not
3065// be included in the string output. The member name will be present, but the
3066// value will be replaced with "sensitive".
3067func (s DeleteBackupOutput) String() string {
3068	return awsutil.Prettify(s)
3069}
3070
3071// GoString returns the string representation.
3072//
3073// API parameter values that are decorated as "sensitive" in the API will not
3074// be included in the string output. The member name will be present, but the
3075// value will be replaced with "sensitive".
3076func (s DeleteBackupOutput) GoString() string {
3077	return s.String()
3078}
3079
3080type DeleteServerInput struct {
3081	_ struct{} `type:"structure"`
3082
3083	// The ID of the server to delete.
3084	//
3085	// ServerName is a required field
3086	ServerName *string `min:"1" type:"string" required:"true"`
3087}
3088
3089// String returns the string representation.
3090//
3091// API parameter values that are decorated as "sensitive" in the API will not
3092// be included in the string output. The member name will be present, but the
3093// value will be replaced with "sensitive".
3094func (s DeleteServerInput) String() string {
3095	return awsutil.Prettify(s)
3096}
3097
3098// GoString returns the string representation.
3099//
3100// API parameter values that are decorated as "sensitive" in the API will not
3101// be included in the string output. The member name will be present, but the
3102// value will be replaced with "sensitive".
3103func (s DeleteServerInput) GoString() string {
3104	return s.String()
3105}
3106
3107// Validate inspects the fields of the type to determine if they are valid.
3108func (s *DeleteServerInput) Validate() error {
3109	invalidParams := request.ErrInvalidParams{Context: "DeleteServerInput"}
3110	if s.ServerName == nil {
3111		invalidParams.Add(request.NewErrParamRequired("ServerName"))
3112	}
3113	if s.ServerName != nil && len(*s.ServerName) < 1 {
3114		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
3115	}
3116
3117	if invalidParams.Len() > 0 {
3118		return invalidParams
3119	}
3120	return nil
3121}
3122
3123// SetServerName sets the ServerName field's value.
3124func (s *DeleteServerInput) SetServerName(v string) *DeleteServerInput {
3125	s.ServerName = &v
3126	return s
3127}
3128
3129type DeleteServerOutput struct {
3130	_ struct{} `type:"structure"`
3131}
3132
3133// String returns the string representation.
3134//
3135// API parameter values that are decorated as "sensitive" in the API will not
3136// be included in the string output. The member name will be present, but the
3137// value will be replaced with "sensitive".
3138func (s DeleteServerOutput) String() string {
3139	return awsutil.Prettify(s)
3140}
3141
3142// GoString returns the string representation.
3143//
3144// API parameter values that are decorated as "sensitive" in the API will not
3145// be included in the string output. The member name will be present, but the
3146// value will be replaced with "sensitive".
3147func (s DeleteServerOutput) GoString() string {
3148	return s.String()
3149}
3150
3151type DescribeAccountAttributesInput struct {
3152	_ struct{} `type:"structure"`
3153}
3154
3155// String returns the string representation.
3156//
3157// API parameter values that are decorated as "sensitive" in the API will not
3158// be included in the string output. The member name will be present, but the
3159// value will be replaced with "sensitive".
3160func (s DescribeAccountAttributesInput) String() string {
3161	return awsutil.Prettify(s)
3162}
3163
3164// GoString returns the string representation.
3165//
3166// API parameter values that are decorated as "sensitive" in the API will not
3167// be included in the string output. The member name will be present, but the
3168// value will be replaced with "sensitive".
3169func (s DescribeAccountAttributesInput) GoString() string {
3170	return s.String()
3171}
3172
3173type DescribeAccountAttributesOutput struct {
3174	_ struct{} `type:"structure"`
3175
3176	// The attributes that are currently set for the account.
3177	Attributes []*AccountAttribute `type:"list"`
3178}
3179
3180// String returns the string representation.
3181//
3182// API parameter values that are decorated as "sensitive" in the API will not
3183// be included in the string output. The member name will be present, but the
3184// value will be replaced with "sensitive".
3185func (s DescribeAccountAttributesOutput) String() string {
3186	return awsutil.Prettify(s)
3187}
3188
3189// GoString returns the string representation.
3190//
3191// API parameter values that are decorated as "sensitive" in the API will not
3192// be included in the string output. The member name will be present, but the
3193// value will be replaced with "sensitive".
3194func (s DescribeAccountAttributesOutput) GoString() string {
3195	return s.String()
3196}
3197
3198// SetAttributes sets the Attributes field's value.
3199func (s *DescribeAccountAttributesOutput) SetAttributes(v []*AccountAttribute) *DescribeAccountAttributesOutput {
3200	s.Attributes = v
3201	return s
3202}
3203
3204type DescribeBackupsInput struct {
3205	_ struct{} `type:"structure"`
3206
3207	// Describes a single backup.
3208	BackupId *string `type:"string"`
3209
3210	// This is not currently implemented for DescribeBackups requests.
3211	MaxResults *int64 `min:"1" type:"integer"`
3212
3213	// This is not currently implemented for DescribeBackups requests.
3214	NextToken *string `type:"string"`
3215
3216	// Returns backups for the server with the specified ServerName.
3217	ServerName *string `min:"1" type:"string"`
3218}
3219
3220// String returns the string representation.
3221//
3222// API parameter values that are decorated as "sensitive" in the API will not
3223// be included in the string output. The member name will be present, but the
3224// value will be replaced with "sensitive".
3225func (s DescribeBackupsInput) String() string {
3226	return awsutil.Prettify(s)
3227}
3228
3229// GoString returns the string representation.
3230//
3231// API parameter values that are decorated as "sensitive" in the API will not
3232// be included in the string output. The member name will be present, but the
3233// value will be replaced with "sensitive".
3234func (s DescribeBackupsInput) GoString() string {
3235	return s.String()
3236}
3237
3238// Validate inspects the fields of the type to determine if they are valid.
3239func (s *DescribeBackupsInput) Validate() error {
3240	invalidParams := request.ErrInvalidParams{Context: "DescribeBackupsInput"}
3241	if s.MaxResults != nil && *s.MaxResults < 1 {
3242		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3243	}
3244	if s.ServerName != nil && len(*s.ServerName) < 1 {
3245		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
3246	}
3247
3248	if invalidParams.Len() > 0 {
3249		return invalidParams
3250	}
3251	return nil
3252}
3253
3254// SetBackupId sets the BackupId field's value.
3255func (s *DescribeBackupsInput) SetBackupId(v string) *DescribeBackupsInput {
3256	s.BackupId = &v
3257	return s
3258}
3259
3260// SetMaxResults sets the MaxResults field's value.
3261func (s *DescribeBackupsInput) SetMaxResults(v int64) *DescribeBackupsInput {
3262	s.MaxResults = &v
3263	return s
3264}
3265
3266// SetNextToken sets the NextToken field's value.
3267func (s *DescribeBackupsInput) SetNextToken(v string) *DescribeBackupsInput {
3268	s.NextToken = &v
3269	return s
3270}
3271
3272// SetServerName sets the ServerName field's value.
3273func (s *DescribeBackupsInput) SetServerName(v string) *DescribeBackupsInput {
3274	s.ServerName = &v
3275	return s
3276}
3277
3278type DescribeBackupsOutput struct {
3279	_ struct{} `type:"structure"`
3280
3281	// Contains the response to a DescribeBackups request.
3282	Backups []*Backup `type:"list"`
3283
3284	// This is not currently implemented for DescribeBackups requests.
3285	NextToken *string `type:"string"`
3286}
3287
3288// String returns the string representation.
3289//
3290// API parameter values that are decorated as "sensitive" in the API will not
3291// be included in the string output. The member name will be present, but the
3292// value will be replaced with "sensitive".
3293func (s DescribeBackupsOutput) String() string {
3294	return awsutil.Prettify(s)
3295}
3296
3297// GoString returns the string representation.
3298//
3299// API parameter values that are decorated as "sensitive" in the API will not
3300// be included in the string output. The member name will be present, but the
3301// value will be replaced with "sensitive".
3302func (s DescribeBackupsOutput) GoString() string {
3303	return s.String()
3304}
3305
3306// SetBackups sets the Backups field's value.
3307func (s *DescribeBackupsOutput) SetBackups(v []*Backup) *DescribeBackupsOutput {
3308	s.Backups = v
3309	return s
3310}
3311
3312// SetNextToken sets the NextToken field's value.
3313func (s *DescribeBackupsOutput) SetNextToken(v string) *DescribeBackupsOutput {
3314	s.NextToken = &v
3315	return s
3316}
3317
3318type DescribeEventsInput struct {
3319	_ struct{} `type:"structure"`
3320
3321	// To receive a paginated response, use this parameter to specify the maximum
3322	// number of results to be returned with a single call. If the number of available
3323	// results exceeds this maximum, the response includes a NextToken value that
3324	// you can assign to the NextToken request parameter to get the next set of
3325	// results.
3326	MaxResults *int64 `min:"1" type:"integer"`
3327
3328	// NextToken is a string that is returned in some command responses. It indicates
3329	// that not all entries have been returned, and that you must run at least one
3330	// more request to get remaining items. To get remaining results, call DescribeEvents
3331	// again, and assign the token from the previous results as the value of the
3332	// nextToken parameter. If there are no more results, the response object's
3333	// nextToken parameter value is null. Setting a nextToken value that was not
3334	// returned in your previous results causes an InvalidNextTokenException to
3335	// occur.
3336	NextToken *string `type:"string"`
3337
3338	// The name of the server for which you want to view events.
3339	//
3340	// ServerName is a required field
3341	ServerName *string `min:"1" type:"string" required:"true"`
3342}
3343
3344// String returns the string representation.
3345//
3346// API parameter values that are decorated as "sensitive" in the API will not
3347// be included in the string output. The member name will be present, but the
3348// value will be replaced with "sensitive".
3349func (s DescribeEventsInput) String() string {
3350	return awsutil.Prettify(s)
3351}
3352
3353// GoString returns the string representation.
3354//
3355// API parameter values that are decorated as "sensitive" in the API will not
3356// be included in the string output. The member name will be present, but the
3357// value will be replaced with "sensitive".
3358func (s DescribeEventsInput) GoString() string {
3359	return s.String()
3360}
3361
3362// Validate inspects the fields of the type to determine if they are valid.
3363func (s *DescribeEventsInput) Validate() error {
3364	invalidParams := request.ErrInvalidParams{Context: "DescribeEventsInput"}
3365	if s.MaxResults != nil && *s.MaxResults < 1 {
3366		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3367	}
3368	if s.ServerName == nil {
3369		invalidParams.Add(request.NewErrParamRequired("ServerName"))
3370	}
3371	if s.ServerName != nil && len(*s.ServerName) < 1 {
3372		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
3373	}
3374
3375	if invalidParams.Len() > 0 {
3376		return invalidParams
3377	}
3378	return nil
3379}
3380
3381// SetMaxResults sets the MaxResults field's value.
3382func (s *DescribeEventsInput) SetMaxResults(v int64) *DescribeEventsInput {
3383	s.MaxResults = &v
3384	return s
3385}
3386
3387// SetNextToken sets the NextToken field's value.
3388func (s *DescribeEventsInput) SetNextToken(v string) *DescribeEventsInput {
3389	s.NextToken = &v
3390	return s
3391}
3392
3393// SetServerName sets the ServerName field's value.
3394func (s *DescribeEventsInput) SetServerName(v string) *DescribeEventsInput {
3395	s.ServerName = &v
3396	return s
3397}
3398
3399type DescribeEventsOutput struct {
3400	_ struct{} `type:"structure"`
3401
3402	// NextToken is a string that is returned in some command responses. It indicates
3403	// that not all entries have been returned, and that you must run at least one
3404	// more request to get remaining items. To get remaining results, call DescribeEvents
3405	// again, and assign the token from the previous results as the value of the
3406	// nextToken parameter. If there are no more results, the response object's
3407	// nextToken parameter value is null. Setting a nextToken value that was not
3408	// returned in your previous results causes an InvalidNextTokenException to
3409	// occur.
3410	NextToken *string `type:"string"`
3411
3412	// Contains the response to a DescribeEvents request.
3413	ServerEvents []*ServerEvent `type:"list"`
3414}
3415
3416// String returns the string representation.
3417//
3418// API parameter values that are decorated as "sensitive" in the API will not
3419// be included in the string output. The member name will be present, but the
3420// value will be replaced with "sensitive".
3421func (s DescribeEventsOutput) String() string {
3422	return awsutil.Prettify(s)
3423}
3424
3425// GoString returns the string representation.
3426//
3427// API parameter values that are decorated as "sensitive" in the API will not
3428// be included in the string output. The member name will be present, but the
3429// value will be replaced with "sensitive".
3430func (s DescribeEventsOutput) GoString() string {
3431	return s.String()
3432}
3433
3434// SetNextToken sets the NextToken field's value.
3435func (s *DescribeEventsOutput) SetNextToken(v string) *DescribeEventsOutput {
3436	s.NextToken = &v
3437	return s
3438}
3439
3440// SetServerEvents sets the ServerEvents field's value.
3441func (s *DescribeEventsOutput) SetServerEvents(v []*ServerEvent) *DescribeEventsOutput {
3442	s.ServerEvents = v
3443	return s
3444}
3445
3446type DescribeNodeAssociationStatusInput struct {
3447	_ struct{} `type:"structure"`
3448
3449	// The token returned in either the AssociateNodeResponse or the DisassociateNodeResponse.
3450	//
3451	// NodeAssociationStatusToken is a required field
3452	NodeAssociationStatusToken *string `type:"string" required:"true"`
3453
3454	// The name of the server from which to disassociate the node.
3455	//
3456	// ServerName is a required field
3457	ServerName *string `min:"1" type:"string" required:"true"`
3458}
3459
3460// String returns the string representation.
3461//
3462// API parameter values that are decorated as "sensitive" in the API will not
3463// be included in the string output. The member name will be present, but the
3464// value will be replaced with "sensitive".
3465func (s DescribeNodeAssociationStatusInput) String() string {
3466	return awsutil.Prettify(s)
3467}
3468
3469// GoString returns the string representation.
3470//
3471// API parameter values that are decorated as "sensitive" in the API will not
3472// be included in the string output. The member name will be present, but the
3473// value will be replaced with "sensitive".
3474func (s DescribeNodeAssociationStatusInput) GoString() string {
3475	return s.String()
3476}
3477
3478// Validate inspects the fields of the type to determine if they are valid.
3479func (s *DescribeNodeAssociationStatusInput) Validate() error {
3480	invalidParams := request.ErrInvalidParams{Context: "DescribeNodeAssociationStatusInput"}
3481	if s.NodeAssociationStatusToken == nil {
3482		invalidParams.Add(request.NewErrParamRequired("NodeAssociationStatusToken"))
3483	}
3484	if s.ServerName == nil {
3485		invalidParams.Add(request.NewErrParamRequired("ServerName"))
3486	}
3487	if s.ServerName != nil && len(*s.ServerName) < 1 {
3488		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
3489	}
3490
3491	if invalidParams.Len() > 0 {
3492		return invalidParams
3493	}
3494	return nil
3495}
3496
3497// SetNodeAssociationStatusToken sets the NodeAssociationStatusToken field's value.
3498func (s *DescribeNodeAssociationStatusInput) SetNodeAssociationStatusToken(v string) *DescribeNodeAssociationStatusInput {
3499	s.NodeAssociationStatusToken = &v
3500	return s
3501}
3502
3503// SetServerName sets the ServerName field's value.
3504func (s *DescribeNodeAssociationStatusInput) SetServerName(v string) *DescribeNodeAssociationStatusInput {
3505	s.ServerName = &v
3506	return s
3507}
3508
3509type DescribeNodeAssociationStatusOutput struct {
3510	_ struct{} `type:"structure"`
3511
3512	// Attributes specific to the node association. In Puppet, the attibute PUPPET_NODE_CERT
3513	// contains the signed certificate (the result of the CSR).
3514	EngineAttributes []*EngineAttribute `type:"list"`
3515
3516	// The status of the association or disassociation request.
3517	//
3518	// Possible values:
3519	//
3520	//    * SUCCESS: The association or disassociation succeeded.
3521	//
3522	//    * FAILED: The association or disassociation failed.
3523	//
3524	//    * IN_PROGRESS: The association or disassociation is still in progress.
3525	NodeAssociationStatus *string `type:"string" enum:"NodeAssociationStatus"`
3526}
3527
3528// String returns the string representation.
3529//
3530// API parameter values that are decorated as "sensitive" in the API will not
3531// be included in the string output. The member name will be present, but the
3532// value will be replaced with "sensitive".
3533func (s DescribeNodeAssociationStatusOutput) String() string {
3534	return awsutil.Prettify(s)
3535}
3536
3537// GoString returns the string representation.
3538//
3539// API parameter values that are decorated as "sensitive" in the API will not
3540// be included in the string output. The member name will be present, but the
3541// value will be replaced with "sensitive".
3542func (s DescribeNodeAssociationStatusOutput) GoString() string {
3543	return s.String()
3544}
3545
3546// SetEngineAttributes sets the EngineAttributes field's value.
3547func (s *DescribeNodeAssociationStatusOutput) SetEngineAttributes(v []*EngineAttribute) *DescribeNodeAssociationStatusOutput {
3548	s.EngineAttributes = v
3549	return s
3550}
3551
3552// SetNodeAssociationStatus sets the NodeAssociationStatus field's value.
3553func (s *DescribeNodeAssociationStatusOutput) SetNodeAssociationStatus(v string) *DescribeNodeAssociationStatusOutput {
3554	s.NodeAssociationStatus = &v
3555	return s
3556}
3557
3558type DescribeServersInput struct {
3559	_ struct{} `type:"structure"`
3560
3561	// This is not currently implemented for DescribeServers requests.
3562	MaxResults *int64 `min:"1" type:"integer"`
3563
3564	// This is not currently implemented for DescribeServers requests.
3565	NextToken *string `type:"string"`
3566
3567	// Describes the server with the specified ServerName.
3568	ServerName *string `min:"1" type:"string"`
3569}
3570
3571// String returns the string representation.
3572//
3573// API parameter values that are decorated as "sensitive" in the API will not
3574// be included in the string output. The member name will be present, but the
3575// value will be replaced with "sensitive".
3576func (s DescribeServersInput) String() string {
3577	return awsutil.Prettify(s)
3578}
3579
3580// GoString returns the string representation.
3581//
3582// API parameter values that are decorated as "sensitive" in the API will not
3583// be included in the string output. The member name will be present, but the
3584// value will be replaced with "sensitive".
3585func (s DescribeServersInput) GoString() string {
3586	return s.String()
3587}
3588
3589// Validate inspects the fields of the type to determine if they are valid.
3590func (s *DescribeServersInput) Validate() error {
3591	invalidParams := request.ErrInvalidParams{Context: "DescribeServersInput"}
3592	if s.MaxResults != nil && *s.MaxResults < 1 {
3593		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3594	}
3595	if s.ServerName != nil && len(*s.ServerName) < 1 {
3596		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
3597	}
3598
3599	if invalidParams.Len() > 0 {
3600		return invalidParams
3601	}
3602	return nil
3603}
3604
3605// SetMaxResults sets the MaxResults field's value.
3606func (s *DescribeServersInput) SetMaxResults(v int64) *DescribeServersInput {
3607	s.MaxResults = &v
3608	return s
3609}
3610
3611// SetNextToken sets the NextToken field's value.
3612func (s *DescribeServersInput) SetNextToken(v string) *DescribeServersInput {
3613	s.NextToken = &v
3614	return s
3615}
3616
3617// SetServerName sets the ServerName field's value.
3618func (s *DescribeServersInput) SetServerName(v string) *DescribeServersInput {
3619	s.ServerName = &v
3620	return s
3621}
3622
3623type DescribeServersOutput struct {
3624	_ struct{} `type:"structure"`
3625
3626	// This is not currently implemented for DescribeServers requests.
3627	NextToken *string `type:"string"`
3628
3629	// Contains the response to a DescribeServers request.
3630	//
3631	// For Chef Automate servers: If DescribeServersResponse$Servers$EngineAttributes
3632	// includes CHEF_MAJOR_UPGRADE_AVAILABLE, you can upgrade the Chef Automate
3633	// server to Chef Automate 2. To be eligible for upgrade, a server running Chef
3634	// Automate 1 must have had at least one successful maintenance run after November
3635	// 1, 2019.
3636	//
3637	// For Puppet servers: DescribeServersResponse$Servers$EngineAttributes contains
3638	// the following two responses:
3639	//
3640	//    * PUPPET_API_CA_CERT, the PEM-encoded CA certificate that is used by the
3641	//    Puppet API over TCP port number 8140. The CA certificate is also used
3642	//    to sign node certificates.
3643	//
3644	//    * PUPPET_API_CRL, a certificate revocation list. The certificate revocation
3645	//    list is for internal maintenance purposes only. For more information about
3646	//    the Puppet certificate revocation list, see Man Page: puppet certificate_revocation_list
3647	//    (https://puppet.com/docs/puppet/5.5/man/certificate_revocation_list.html)
3648	//    in the Puppet documentation.
3649	Servers []*Server `type:"list"`
3650}
3651
3652// String returns the string representation.
3653//
3654// API parameter values that are decorated as "sensitive" in the API will not
3655// be included in the string output. The member name will be present, but the
3656// value will be replaced with "sensitive".
3657func (s DescribeServersOutput) String() string {
3658	return awsutil.Prettify(s)
3659}
3660
3661// GoString returns the string representation.
3662//
3663// API parameter values that are decorated as "sensitive" in the API will not
3664// be included in the string output. The member name will be present, but the
3665// value will be replaced with "sensitive".
3666func (s DescribeServersOutput) GoString() string {
3667	return s.String()
3668}
3669
3670// SetNextToken sets the NextToken field's value.
3671func (s *DescribeServersOutput) SetNextToken(v string) *DescribeServersOutput {
3672	s.NextToken = &v
3673	return s
3674}
3675
3676// SetServers sets the Servers field's value.
3677func (s *DescribeServersOutput) SetServers(v []*Server) *DescribeServersOutput {
3678	s.Servers = v
3679	return s
3680}
3681
3682type DisassociateNodeInput struct {
3683	_ struct{} `type:"structure"`
3684
3685	// Engine attributes that are used for disassociating the node. No attributes
3686	// are required for Puppet.
3687	//
3688	// Attributes required in a DisassociateNode request for Chef
3689	//
3690	//    * CHEF_ORGANIZATION: The Chef organization with which the node was associated.
3691	//    By default only one organization named default can exist.
3692	EngineAttributes []*EngineAttribute `type:"list"`
3693
3694	// The name of the client node.
3695	//
3696	// NodeName is a required field
3697	NodeName *string `type:"string" required:"true"`
3698
3699	// The name of the server from which to disassociate the node.
3700	//
3701	// ServerName is a required field
3702	ServerName *string `min:"1" type:"string" required:"true"`
3703}
3704
3705// String returns the string representation.
3706//
3707// API parameter values that are decorated as "sensitive" in the API will not
3708// be included in the string output. The member name will be present, but the
3709// value will be replaced with "sensitive".
3710func (s DisassociateNodeInput) String() string {
3711	return awsutil.Prettify(s)
3712}
3713
3714// GoString returns the string representation.
3715//
3716// API parameter values that are decorated as "sensitive" in the API will not
3717// be included in the string output. The member name will be present, but the
3718// value will be replaced with "sensitive".
3719func (s DisassociateNodeInput) GoString() string {
3720	return s.String()
3721}
3722
3723// Validate inspects the fields of the type to determine if they are valid.
3724func (s *DisassociateNodeInput) Validate() error {
3725	invalidParams := request.ErrInvalidParams{Context: "DisassociateNodeInput"}
3726	if s.NodeName == nil {
3727		invalidParams.Add(request.NewErrParamRequired("NodeName"))
3728	}
3729	if s.ServerName == nil {
3730		invalidParams.Add(request.NewErrParamRequired("ServerName"))
3731	}
3732	if s.ServerName != nil && len(*s.ServerName) < 1 {
3733		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
3734	}
3735
3736	if invalidParams.Len() > 0 {
3737		return invalidParams
3738	}
3739	return nil
3740}
3741
3742// SetEngineAttributes sets the EngineAttributes field's value.
3743func (s *DisassociateNodeInput) SetEngineAttributes(v []*EngineAttribute) *DisassociateNodeInput {
3744	s.EngineAttributes = v
3745	return s
3746}
3747
3748// SetNodeName sets the NodeName field's value.
3749func (s *DisassociateNodeInput) SetNodeName(v string) *DisassociateNodeInput {
3750	s.NodeName = &v
3751	return s
3752}
3753
3754// SetServerName sets the ServerName field's value.
3755func (s *DisassociateNodeInput) SetServerName(v string) *DisassociateNodeInput {
3756	s.ServerName = &v
3757	return s
3758}
3759
3760type DisassociateNodeOutput struct {
3761	_ struct{} `type:"structure"`
3762
3763	// Contains a token which can be passed to the DescribeNodeAssociationStatus
3764	// API call to get the status of the disassociation request.
3765	NodeAssociationStatusToken *string `type:"string"`
3766}
3767
3768// String returns the string representation.
3769//
3770// API parameter values that are decorated as "sensitive" in the API will not
3771// be included in the string output. The member name will be present, but the
3772// value will be replaced with "sensitive".
3773func (s DisassociateNodeOutput) String() string {
3774	return awsutil.Prettify(s)
3775}
3776
3777// GoString returns the string representation.
3778//
3779// API parameter values that are decorated as "sensitive" in the API will not
3780// be included in the string output. The member name will be present, but the
3781// value will be replaced with "sensitive".
3782func (s DisassociateNodeOutput) GoString() string {
3783	return s.String()
3784}
3785
3786// SetNodeAssociationStatusToken sets the NodeAssociationStatusToken field's value.
3787func (s *DisassociateNodeOutput) SetNodeAssociationStatusToken(v string) *DisassociateNodeOutput {
3788	s.NodeAssociationStatusToken = &v
3789	return s
3790}
3791
3792// A name and value pair that is specific to the engine of the server.
3793type EngineAttribute struct {
3794	_ struct{} `type:"structure"`
3795
3796	// The name of the engine attribute.
3797	Name *string `type:"string"`
3798
3799	// The value of the engine attribute.
3800	//
3801	// Value is a sensitive parameter and its value will be
3802	// replaced with "sensitive" in string returned by EngineAttribute's
3803	// String and GoString methods.
3804	Value *string `type:"string" sensitive:"true"`
3805}
3806
3807// String returns the string representation.
3808//
3809// API parameter values that are decorated as "sensitive" in the API will not
3810// be included in the string output. The member name will be present, but the
3811// value will be replaced with "sensitive".
3812func (s EngineAttribute) String() string {
3813	return awsutil.Prettify(s)
3814}
3815
3816// GoString returns the string representation.
3817//
3818// API parameter values that are decorated as "sensitive" in the API will not
3819// be included in the string output. The member name will be present, but the
3820// value will be replaced with "sensitive".
3821func (s EngineAttribute) GoString() string {
3822	return s.String()
3823}
3824
3825// SetName sets the Name field's value.
3826func (s *EngineAttribute) SetName(v string) *EngineAttribute {
3827	s.Name = &v
3828	return s
3829}
3830
3831// SetValue sets the Value field's value.
3832func (s *EngineAttribute) SetValue(v string) *EngineAttribute {
3833	s.Value = &v
3834	return s
3835}
3836
3837type ExportServerEngineAttributeInput struct {
3838	_ struct{} `type:"structure"`
3839
3840	// The name of the export attribute. Currently, the supported export attribute
3841	// is Userdata. This exports a user data script that includes parameters and
3842	// values provided in the InputAttributes list.
3843	//
3844	// ExportAttributeName is a required field
3845	ExportAttributeName *string `type:"string" required:"true"`
3846
3847	// The list of engine attributes. The list type is EngineAttribute. An EngineAttribute
3848	// list item is a pair that includes an attribute name and its value. For the
3849	// Userdata ExportAttributeName, the following are supported engine attribute
3850	// names.
3851	//
3852	//    * RunList In Chef, a list of roles or recipes that are run in the specified
3853	//    order. In Puppet, this parameter is ignored.
3854	//
3855	//    * OrganizationName In Chef, an organization name. AWS OpsWorks for Chef
3856	//    Automate always creates the organization default. In Puppet, this parameter
3857	//    is ignored.
3858	//
3859	//    * NodeEnvironment In Chef, a node environment (for example, development,
3860	//    staging, or one-box). In Puppet, this parameter is ignored.
3861	//
3862	//    * NodeClientVersion In Chef, the version of the Chef engine (three numbers
3863	//    separated by dots, such as 13.8.5). If this attribute is empty, OpsWorks
3864	//    for Chef Automate uses the most current version. In Puppet, this parameter
3865	//    is ignored.
3866	InputAttributes []*EngineAttribute `type:"list"`
3867
3868	// The name of the server from which you are exporting the attribute.
3869	//
3870	// ServerName is a required field
3871	ServerName *string `min:"1" type:"string" required:"true"`
3872}
3873
3874// String returns the string representation.
3875//
3876// API parameter values that are decorated as "sensitive" in the API will not
3877// be included in the string output. The member name will be present, but the
3878// value will be replaced with "sensitive".
3879func (s ExportServerEngineAttributeInput) String() string {
3880	return awsutil.Prettify(s)
3881}
3882
3883// GoString returns the string representation.
3884//
3885// API parameter values that are decorated as "sensitive" in the API will not
3886// be included in the string output. The member name will be present, but the
3887// value will be replaced with "sensitive".
3888func (s ExportServerEngineAttributeInput) GoString() string {
3889	return s.String()
3890}
3891
3892// Validate inspects the fields of the type to determine if they are valid.
3893func (s *ExportServerEngineAttributeInput) Validate() error {
3894	invalidParams := request.ErrInvalidParams{Context: "ExportServerEngineAttributeInput"}
3895	if s.ExportAttributeName == nil {
3896		invalidParams.Add(request.NewErrParamRequired("ExportAttributeName"))
3897	}
3898	if s.ServerName == nil {
3899		invalidParams.Add(request.NewErrParamRequired("ServerName"))
3900	}
3901	if s.ServerName != nil && len(*s.ServerName) < 1 {
3902		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
3903	}
3904
3905	if invalidParams.Len() > 0 {
3906		return invalidParams
3907	}
3908	return nil
3909}
3910
3911// SetExportAttributeName sets the ExportAttributeName field's value.
3912func (s *ExportServerEngineAttributeInput) SetExportAttributeName(v string) *ExportServerEngineAttributeInput {
3913	s.ExportAttributeName = &v
3914	return s
3915}
3916
3917// SetInputAttributes sets the InputAttributes field's value.
3918func (s *ExportServerEngineAttributeInput) SetInputAttributes(v []*EngineAttribute) *ExportServerEngineAttributeInput {
3919	s.InputAttributes = v
3920	return s
3921}
3922
3923// SetServerName sets the ServerName field's value.
3924func (s *ExportServerEngineAttributeInput) SetServerName(v string) *ExportServerEngineAttributeInput {
3925	s.ServerName = &v
3926	return s
3927}
3928
3929type ExportServerEngineAttributeOutput struct {
3930	_ struct{} `type:"structure"`
3931
3932	// The requested engine attribute pair with attribute name and value.
3933	EngineAttribute *EngineAttribute `type:"structure"`
3934
3935	// The server name used in the request.
3936	ServerName *string `min:"1" type:"string"`
3937}
3938
3939// String returns the string representation.
3940//
3941// API parameter values that are decorated as "sensitive" in the API will not
3942// be included in the string output. The member name will be present, but the
3943// value will be replaced with "sensitive".
3944func (s ExportServerEngineAttributeOutput) String() string {
3945	return awsutil.Prettify(s)
3946}
3947
3948// GoString returns the string representation.
3949//
3950// API parameter values that are decorated as "sensitive" in the API will not
3951// be included in the string output. The member name will be present, but the
3952// value will be replaced with "sensitive".
3953func (s ExportServerEngineAttributeOutput) GoString() string {
3954	return s.String()
3955}
3956
3957// SetEngineAttribute sets the EngineAttribute field's value.
3958func (s *ExportServerEngineAttributeOutput) SetEngineAttribute(v *EngineAttribute) *ExportServerEngineAttributeOutput {
3959	s.EngineAttribute = v
3960	return s
3961}
3962
3963// SetServerName sets the ServerName field's value.
3964func (s *ExportServerEngineAttributeOutput) SetServerName(v string) *ExportServerEngineAttributeOutput {
3965	s.ServerName = &v
3966	return s
3967}
3968
3969// This occurs when the provided nextToken is not valid.
3970type InvalidNextTokenException struct {
3971	_            struct{}                  `type:"structure"`
3972	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3973
3974	// Error or informational message that can contain more detail about a nextToken
3975	// failure.
3976	Message_ *string `locationName:"Message" type:"string"`
3977}
3978
3979// String returns the string representation.
3980//
3981// API parameter values that are decorated as "sensitive" in the API will not
3982// be included in the string output. The member name will be present, but the
3983// value will be replaced with "sensitive".
3984func (s InvalidNextTokenException) String() string {
3985	return awsutil.Prettify(s)
3986}
3987
3988// GoString returns the string representation.
3989//
3990// API parameter values that are decorated as "sensitive" in the API will not
3991// be included in the string output. The member name will be present, but the
3992// value will be replaced with "sensitive".
3993func (s InvalidNextTokenException) GoString() string {
3994	return s.String()
3995}
3996
3997func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
3998	return &InvalidNextTokenException{
3999		RespMetadata: v,
4000	}
4001}
4002
4003// Code returns the exception type name.
4004func (s *InvalidNextTokenException) Code() string {
4005	return "InvalidNextTokenException"
4006}
4007
4008// Message returns the exception's message.
4009func (s *InvalidNextTokenException) Message() string {
4010	if s.Message_ != nil {
4011		return *s.Message_
4012	}
4013	return ""
4014}
4015
4016// OrigErr always returns nil, satisfies awserr.Error interface.
4017func (s *InvalidNextTokenException) OrigErr() error {
4018	return nil
4019}
4020
4021func (s *InvalidNextTokenException) Error() string {
4022	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4023}
4024
4025// Status code returns the HTTP status code for the request's response error.
4026func (s *InvalidNextTokenException) StatusCode() int {
4027	return s.RespMetadata.StatusCode
4028}
4029
4030// RequestID returns the service's response RequestID for request.
4031func (s *InvalidNextTokenException) RequestID() string {
4032	return s.RespMetadata.RequestID
4033}
4034
4035// The resource is in a state that does not allow you to perform a specified
4036// action.
4037type InvalidStateException struct {
4038	_            struct{}                  `type:"structure"`
4039	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4040
4041	// Error or informational message that provides more detail if a resource is
4042	// in a state that is not valid for performing a specified action.
4043	Message_ *string `locationName:"Message" type:"string"`
4044}
4045
4046// String returns the string representation.
4047//
4048// API parameter values that are decorated as "sensitive" in the API will not
4049// be included in the string output. The member name will be present, but the
4050// value will be replaced with "sensitive".
4051func (s InvalidStateException) String() string {
4052	return awsutil.Prettify(s)
4053}
4054
4055// GoString returns the string representation.
4056//
4057// API parameter values that are decorated as "sensitive" in the API will not
4058// be included in the string output. The member name will be present, but the
4059// value will be replaced with "sensitive".
4060func (s InvalidStateException) GoString() string {
4061	return s.String()
4062}
4063
4064func newErrorInvalidStateException(v protocol.ResponseMetadata) error {
4065	return &InvalidStateException{
4066		RespMetadata: v,
4067	}
4068}
4069
4070// Code returns the exception type name.
4071func (s *InvalidStateException) Code() string {
4072	return "InvalidStateException"
4073}
4074
4075// Message returns the exception's message.
4076func (s *InvalidStateException) Message() string {
4077	if s.Message_ != nil {
4078		return *s.Message_
4079	}
4080	return ""
4081}
4082
4083// OrigErr always returns nil, satisfies awserr.Error interface.
4084func (s *InvalidStateException) OrigErr() error {
4085	return nil
4086}
4087
4088func (s *InvalidStateException) Error() string {
4089	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4090}
4091
4092// Status code returns the HTTP status code for the request's response error.
4093func (s *InvalidStateException) StatusCode() int {
4094	return s.RespMetadata.StatusCode
4095}
4096
4097// RequestID returns the service's response RequestID for request.
4098func (s *InvalidStateException) RequestID() string {
4099	return s.RespMetadata.RequestID
4100}
4101
4102// The limit of servers or backups has been reached.
4103type LimitExceededException struct {
4104	_            struct{}                  `type:"structure"`
4105	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4106
4107	// Error or informational message that the maximum allowed number of servers
4108	// or backups has been exceeded.
4109	Message_ *string `locationName:"Message" type:"string"`
4110}
4111
4112// String returns the string representation.
4113//
4114// API parameter values that are decorated as "sensitive" in the API will not
4115// be included in the string output. The member name will be present, but the
4116// value will be replaced with "sensitive".
4117func (s LimitExceededException) String() string {
4118	return awsutil.Prettify(s)
4119}
4120
4121// GoString returns the string representation.
4122//
4123// API parameter values that are decorated as "sensitive" in the API will not
4124// be included in the string output. The member name will be present, but the
4125// value will be replaced with "sensitive".
4126func (s LimitExceededException) GoString() string {
4127	return s.String()
4128}
4129
4130func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
4131	return &LimitExceededException{
4132		RespMetadata: v,
4133	}
4134}
4135
4136// Code returns the exception type name.
4137func (s *LimitExceededException) Code() string {
4138	return "LimitExceededException"
4139}
4140
4141// Message returns the exception's message.
4142func (s *LimitExceededException) Message() string {
4143	if s.Message_ != nil {
4144		return *s.Message_
4145	}
4146	return ""
4147}
4148
4149// OrigErr always returns nil, satisfies awserr.Error interface.
4150func (s *LimitExceededException) OrigErr() error {
4151	return nil
4152}
4153
4154func (s *LimitExceededException) Error() string {
4155	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4156}
4157
4158// Status code returns the HTTP status code for the request's response error.
4159func (s *LimitExceededException) StatusCode() int {
4160	return s.RespMetadata.StatusCode
4161}
4162
4163// RequestID returns the service's response RequestID for request.
4164func (s *LimitExceededException) RequestID() string {
4165	return s.RespMetadata.RequestID
4166}
4167
4168type ListTagsForResourceInput struct {
4169	_ struct{} `type:"structure"`
4170
4171	// To receive a paginated response, use this parameter to specify the maximum
4172	// number of results to be returned with a single call. If the number of available
4173	// results exceeds this maximum, the response includes a NextToken value that
4174	// you can assign to the NextToken request parameter to get the next set of
4175	// results.
4176	MaxResults *int64 `min:"1" type:"integer"`
4177
4178	// NextToken is a string that is returned in some command responses. It indicates
4179	// that not all entries have been returned, and that you must run at least one
4180	// more request to get remaining items. To get remaining results, call ListTagsForResource
4181	// again, and assign the token from the previous results as the value of the
4182	// nextToken parameter. If there are no more results, the response object's
4183	// nextToken parameter value is null. Setting a nextToken value that was not
4184	// returned in your previous results causes an InvalidNextTokenException to
4185	// occur.
4186	NextToken *string `type:"string"`
4187
4188	// The Amazon Resource Number (ARN) of an AWS OpsWorks for Chef Automate or
4189	// AWS OpsWorks for Puppet Enterprise server for which you want to show applied
4190	// tags. For example, arn:aws:opsworks-cm:us-west-2:123456789012:server/test-owcm-server/EXAMPLE-66b0-4196-8274-d1a2bEXAMPLE.
4191	//
4192	// ResourceArn is a required field
4193	ResourceArn *string `type:"string" required:"true"`
4194}
4195
4196// String returns the string representation.
4197//
4198// API parameter values that are decorated as "sensitive" in the API will not
4199// be included in the string output. The member name will be present, but the
4200// value will be replaced with "sensitive".
4201func (s ListTagsForResourceInput) String() string {
4202	return awsutil.Prettify(s)
4203}
4204
4205// GoString returns the string representation.
4206//
4207// API parameter values that are decorated as "sensitive" in the API will not
4208// be included in the string output. The member name will be present, but the
4209// value will be replaced with "sensitive".
4210func (s ListTagsForResourceInput) GoString() string {
4211	return s.String()
4212}
4213
4214// Validate inspects the fields of the type to determine if they are valid.
4215func (s *ListTagsForResourceInput) Validate() error {
4216	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
4217	if s.MaxResults != nil && *s.MaxResults < 1 {
4218		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4219	}
4220	if s.ResourceArn == nil {
4221		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
4222	}
4223
4224	if invalidParams.Len() > 0 {
4225		return invalidParams
4226	}
4227	return nil
4228}
4229
4230// SetMaxResults sets the MaxResults field's value.
4231func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
4232	s.MaxResults = &v
4233	return s
4234}
4235
4236// SetNextToken sets the NextToken field's value.
4237func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
4238	s.NextToken = &v
4239	return s
4240}
4241
4242// SetResourceArn sets the ResourceArn field's value.
4243func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
4244	s.ResourceArn = &v
4245	return s
4246}
4247
4248type ListTagsForResourceOutput struct {
4249	_ struct{} `type:"structure"`
4250
4251	// A token that you can use as the value of NextToken in subsequent calls to
4252	// the API to show more results.
4253	NextToken *string `type:"string"`
4254
4255	// Tags that have been applied to the resource.
4256	Tags []*Tag `type:"list"`
4257}
4258
4259// String returns the string representation.
4260//
4261// API parameter values that are decorated as "sensitive" in the API will not
4262// be included in the string output. The member name will be present, but the
4263// value will be replaced with "sensitive".
4264func (s ListTagsForResourceOutput) String() string {
4265	return awsutil.Prettify(s)
4266}
4267
4268// GoString returns the string representation.
4269//
4270// API parameter values that are decorated as "sensitive" in the API will not
4271// be included in the string output. The member name will be present, but the
4272// value will be replaced with "sensitive".
4273func (s ListTagsForResourceOutput) GoString() string {
4274	return s.String()
4275}
4276
4277// SetNextToken sets the NextToken field's value.
4278func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
4279	s.NextToken = &v
4280	return s
4281}
4282
4283// SetTags sets the Tags field's value.
4284func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
4285	s.Tags = v
4286	return s
4287}
4288
4289// The requested resource cannot be created because it already exists.
4290type ResourceAlreadyExistsException struct {
4291	_            struct{}                  `type:"structure"`
4292	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4293
4294	// Error or informational message in response to a CreateServer request that
4295	// a resource cannot be created because it already exists.
4296	Message_ *string `locationName:"Message" type:"string"`
4297}
4298
4299// String returns the string representation.
4300//
4301// API parameter values that are decorated as "sensitive" in the API will not
4302// be included in the string output. The member name will be present, but the
4303// value will be replaced with "sensitive".
4304func (s ResourceAlreadyExistsException) String() string {
4305	return awsutil.Prettify(s)
4306}
4307
4308// GoString returns the string representation.
4309//
4310// API parameter values that are decorated as "sensitive" in the API will not
4311// be included in the string output. The member name will be present, but the
4312// value will be replaced with "sensitive".
4313func (s ResourceAlreadyExistsException) GoString() string {
4314	return s.String()
4315}
4316
4317func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
4318	return &ResourceAlreadyExistsException{
4319		RespMetadata: v,
4320	}
4321}
4322
4323// Code returns the exception type name.
4324func (s *ResourceAlreadyExistsException) Code() string {
4325	return "ResourceAlreadyExistsException"
4326}
4327
4328// Message returns the exception's message.
4329func (s *ResourceAlreadyExistsException) Message() string {
4330	if s.Message_ != nil {
4331		return *s.Message_
4332	}
4333	return ""
4334}
4335
4336// OrigErr always returns nil, satisfies awserr.Error interface.
4337func (s *ResourceAlreadyExistsException) OrigErr() error {
4338	return nil
4339}
4340
4341func (s *ResourceAlreadyExistsException) Error() string {
4342	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4343}
4344
4345// Status code returns the HTTP status code for the request's response error.
4346func (s *ResourceAlreadyExistsException) StatusCode() int {
4347	return s.RespMetadata.StatusCode
4348}
4349
4350// RequestID returns the service's response RequestID for request.
4351func (s *ResourceAlreadyExistsException) RequestID() string {
4352	return s.RespMetadata.RequestID
4353}
4354
4355// The requested resource does not exist, or access was denied.
4356type ResourceNotFoundException struct {
4357	_            struct{}                  `type:"structure"`
4358	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4359
4360	// Error or informational message that can contain more detail about problems
4361	// locating or accessing a resource.
4362	Message_ *string `locationName:"Message" type:"string"`
4363}
4364
4365// String returns the string representation.
4366//
4367// API parameter values that are decorated as "sensitive" in the API will not
4368// be included in the string output. The member name will be present, but the
4369// value will be replaced with "sensitive".
4370func (s ResourceNotFoundException) String() string {
4371	return awsutil.Prettify(s)
4372}
4373
4374// GoString returns the string representation.
4375//
4376// API parameter values that are decorated as "sensitive" in the API will not
4377// be included in the string output. The member name will be present, but the
4378// value will be replaced with "sensitive".
4379func (s ResourceNotFoundException) GoString() string {
4380	return s.String()
4381}
4382
4383func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
4384	return &ResourceNotFoundException{
4385		RespMetadata: v,
4386	}
4387}
4388
4389// Code returns the exception type name.
4390func (s *ResourceNotFoundException) Code() string {
4391	return "ResourceNotFoundException"
4392}
4393
4394// Message returns the exception's message.
4395func (s *ResourceNotFoundException) Message() string {
4396	if s.Message_ != nil {
4397		return *s.Message_
4398	}
4399	return ""
4400}
4401
4402// OrigErr always returns nil, satisfies awserr.Error interface.
4403func (s *ResourceNotFoundException) OrigErr() error {
4404	return nil
4405}
4406
4407func (s *ResourceNotFoundException) Error() string {
4408	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4409}
4410
4411// Status code returns the HTTP status code for the request's response error.
4412func (s *ResourceNotFoundException) StatusCode() int {
4413	return s.RespMetadata.StatusCode
4414}
4415
4416// RequestID returns the service's response RequestID for request.
4417func (s *ResourceNotFoundException) RequestID() string {
4418	return s.RespMetadata.RequestID
4419}
4420
4421type RestoreServerInput struct {
4422	_ struct{} `type:"structure"`
4423
4424	// The ID of the backup that you want to use to restore a server.
4425	//
4426	// BackupId is a required field
4427	BackupId *string `type:"string" required:"true"`
4428
4429	// The type of instance to restore. Valid values must be specified in the following
4430	// format: ^([cm][34]|t2).* For example, m5.large. Valid values are m5.large,
4431	// r5.xlarge, and r5.2xlarge. If you do not specify this parameter, RestoreServer
4432	// uses the instance type from the specified backup.
4433	InstanceType *string `type:"string"`
4434
4435	// The name of the key pair to set on the new EC2 instance. This can be helpful
4436	// if the administrator no longer has the SSH key.
4437	KeyPair *string `type:"string"`
4438
4439	// The name of the server that you want to restore.
4440	//
4441	// ServerName is a required field
4442	ServerName *string `min:"1" type:"string" required:"true"`
4443}
4444
4445// String returns the string representation.
4446//
4447// API parameter values that are decorated as "sensitive" in the API will not
4448// be included in the string output. The member name will be present, but the
4449// value will be replaced with "sensitive".
4450func (s RestoreServerInput) String() string {
4451	return awsutil.Prettify(s)
4452}
4453
4454// GoString returns the string representation.
4455//
4456// API parameter values that are decorated as "sensitive" in the API will not
4457// be included in the string output. The member name will be present, but the
4458// value will be replaced with "sensitive".
4459func (s RestoreServerInput) GoString() string {
4460	return s.String()
4461}
4462
4463// Validate inspects the fields of the type to determine if they are valid.
4464func (s *RestoreServerInput) Validate() error {
4465	invalidParams := request.ErrInvalidParams{Context: "RestoreServerInput"}
4466	if s.BackupId == nil {
4467		invalidParams.Add(request.NewErrParamRequired("BackupId"))
4468	}
4469	if s.ServerName == nil {
4470		invalidParams.Add(request.NewErrParamRequired("ServerName"))
4471	}
4472	if s.ServerName != nil && len(*s.ServerName) < 1 {
4473		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
4474	}
4475
4476	if invalidParams.Len() > 0 {
4477		return invalidParams
4478	}
4479	return nil
4480}
4481
4482// SetBackupId sets the BackupId field's value.
4483func (s *RestoreServerInput) SetBackupId(v string) *RestoreServerInput {
4484	s.BackupId = &v
4485	return s
4486}
4487
4488// SetInstanceType sets the InstanceType field's value.
4489func (s *RestoreServerInput) SetInstanceType(v string) *RestoreServerInput {
4490	s.InstanceType = &v
4491	return s
4492}
4493
4494// SetKeyPair sets the KeyPair field's value.
4495func (s *RestoreServerInput) SetKeyPair(v string) *RestoreServerInput {
4496	s.KeyPair = &v
4497	return s
4498}
4499
4500// SetServerName sets the ServerName field's value.
4501func (s *RestoreServerInput) SetServerName(v string) *RestoreServerInput {
4502	s.ServerName = &v
4503	return s
4504}
4505
4506type RestoreServerOutput struct {
4507	_ struct{} `type:"structure"`
4508
4509	// Describes a configuration management server.
4510	Server *Server `type:"structure"`
4511}
4512
4513// String returns the string representation.
4514//
4515// API parameter values that are decorated as "sensitive" in the API will not
4516// be included in the string output. The member name will be present, but the
4517// value will be replaced with "sensitive".
4518func (s RestoreServerOutput) String() string {
4519	return awsutil.Prettify(s)
4520}
4521
4522// GoString returns the string representation.
4523//
4524// API parameter values that are decorated as "sensitive" in the API will not
4525// be included in the string output. The member name will be present, but the
4526// value will be replaced with "sensitive".
4527func (s RestoreServerOutput) GoString() string {
4528	return s.String()
4529}
4530
4531// SetServer sets the Server field's value.
4532func (s *RestoreServerOutput) SetServer(v *Server) *RestoreServerOutput {
4533	s.Server = v
4534	return s
4535}
4536
4537// Describes a configuration management server.
4538type Server struct {
4539	_ struct{} `type:"structure"`
4540
4541	// Associate a public IP address with a server that you are launching.
4542	AssociatePublicIpAddress *bool `type:"boolean"`
4543
4544	// The number of automated backups to keep.
4545	BackupRetentionCount *int64 `type:"integer"`
4546
4547	// The ARN of the CloudFormation stack that was used to create the server.
4548	CloudFormationStackArn *string `type:"string"`
4549
4550	// Time stamp of server creation. Example 2016-07-29T13:38:47.520Z
4551	CreatedAt *time.Time `type:"timestamp"`
4552
4553	// An optional public endpoint of a server, such as https://aws.my-company.com.
4554	// You cannot access the server by using the Endpoint value if the server has
4555	// a CustomDomain specified.
4556	CustomDomain *string `type:"string"`
4557
4558	// Disables automated backups. The number of stored backups is dependent on
4559	// the value of PreferredBackupCount.
4560	DisableAutomatedBackup *bool `type:"boolean"`
4561
4562	// A DNS name that can be used to access the engine. Example: myserver-asdfghjkl.us-east-1.opsworks.io.
4563	// You cannot access the server by using the Endpoint value if the server has
4564	// a CustomDomain specified.
4565	Endpoint *string `type:"string"`
4566
4567	// The engine type of the server. Valid values in this release include ChefAutomate
4568	// and Puppet.
4569	Engine *string `type:"string"`
4570
4571	// The response of a createServer() request returns the master credential to
4572	// access the server in EngineAttributes. These credentials are not stored by
4573	// AWS OpsWorks CM; they are returned only as part of the result of createServer().
4574	//
4575	// Attributes returned in a createServer response for Chef
4576	//
4577	//    * CHEF_AUTOMATE_PIVOTAL_KEY: A base64-encoded RSA private key that is
4578	//    generated by AWS OpsWorks for Chef Automate. This private key is required
4579	//    to access the Chef API.
4580	//
4581	//    * CHEF_STARTER_KIT: A base64-encoded ZIP file. The ZIP file contains a
4582	//    Chef starter kit, which includes a README, a configuration file, and the
4583	//    required RSA private key. Save this file, unzip it, and then change to
4584	//    the directory where you've unzipped the file contents. From this directory,
4585	//    you can run Knife commands.
4586	//
4587	// Attributes returned in a createServer response for Puppet
4588	//
4589	//    * PUPPET_STARTER_KIT: A base64-encoded ZIP file. The ZIP file contains
4590	//    a Puppet starter kit, including a README and a required private key. Save
4591	//    this file, unzip it, and then change to the directory where you've unzipped
4592	//    the file contents.
4593	//
4594	//    * PUPPET_ADMIN_PASSWORD: An administrator password that you can use to
4595	//    sign in to the Puppet Enterprise console after the server is online.
4596	EngineAttributes []*EngineAttribute `type:"list"`
4597
4598	// The engine model of the server. Valid values in this release include Monolithic
4599	// for Puppet and Single for Chef.
4600	EngineModel *string `type:"string"`
4601
4602	// The engine version of the server. For a Chef server, the valid value for
4603	// EngineVersion is currently 2. For a Puppet server, specify either 2019 or
4604	// 2017.
4605	EngineVersion *string `type:"string"`
4606
4607	// The instance profile ARN of the server.
4608	InstanceProfileArn *string `type:"string"`
4609
4610	// The instance type for the server, as specified in the CloudFormation stack.
4611	// This might not be the same instance type that is shown in the EC2 console.
4612	InstanceType *string `type:"string"`
4613
4614	// The key pair associated with the server.
4615	KeyPair *string `type:"string"`
4616
4617	// The status of the most recent server maintenance run. Shows SUCCESS or FAILED.
4618	MaintenanceStatus *string `type:"string" enum:"MaintenanceStatus"`
4619
4620	// The preferred backup period specified for the server.
4621	PreferredBackupWindow *string `type:"string"`
4622
4623	// The preferred maintenance period specified for the server.
4624	PreferredMaintenanceWindow *string `type:"string"`
4625
4626	// The security group IDs for the server, as specified in the CloudFormation
4627	// stack. These might not be the same security groups that are shown in the
4628	// EC2 console.
4629	SecurityGroupIds []*string `type:"list"`
4630
4631	// The ARN of the server.
4632	ServerArn *string `type:"string"`
4633
4634	// The name of the server.
4635	ServerName *string `type:"string"`
4636
4637	// The service role ARN used to create the server.
4638	ServiceRoleArn *string `type:"string"`
4639
4640	// The server's status. This field displays the states of actions in progress,
4641	// such as creating, running, or backing up the server, as well as the server's
4642	// health state.
4643	Status *string `type:"string" enum:"ServerStatus"`
4644
4645	// Depending on the server status, this field has either a human-readable message
4646	// (such as a create or backup error), or an escaped block of JSON (used for
4647	// health check results).
4648	StatusReason *string `type:"string"`
4649
4650	// The subnet IDs specified in a CreateServer request.
4651	SubnetIds []*string `type:"list"`
4652}
4653
4654// String returns the string representation.
4655//
4656// API parameter values that are decorated as "sensitive" in the API will not
4657// be included in the string output. The member name will be present, but the
4658// value will be replaced with "sensitive".
4659func (s Server) String() string {
4660	return awsutil.Prettify(s)
4661}
4662
4663// GoString returns the string representation.
4664//
4665// API parameter values that are decorated as "sensitive" in the API will not
4666// be included in the string output. The member name will be present, but the
4667// value will be replaced with "sensitive".
4668func (s Server) GoString() string {
4669	return s.String()
4670}
4671
4672// SetAssociatePublicIpAddress sets the AssociatePublicIpAddress field's value.
4673func (s *Server) SetAssociatePublicIpAddress(v bool) *Server {
4674	s.AssociatePublicIpAddress = &v
4675	return s
4676}
4677
4678// SetBackupRetentionCount sets the BackupRetentionCount field's value.
4679func (s *Server) SetBackupRetentionCount(v int64) *Server {
4680	s.BackupRetentionCount = &v
4681	return s
4682}
4683
4684// SetCloudFormationStackArn sets the CloudFormationStackArn field's value.
4685func (s *Server) SetCloudFormationStackArn(v string) *Server {
4686	s.CloudFormationStackArn = &v
4687	return s
4688}
4689
4690// SetCreatedAt sets the CreatedAt field's value.
4691func (s *Server) SetCreatedAt(v time.Time) *Server {
4692	s.CreatedAt = &v
4693	return s
4694}
4695
4696// SetCustomDomain sets the CustomDomain field's value.
4697func (s *Server) SetCustomDomain(v string) *Server {
4698	s.CustomDomain = &v
4699	return s
4700}
4701
4702// SetDisableAutomatedBackup sets the DisableAutomatedBackup field's value.
4703func (s *Server) SetDisableAutomatedBackup(v bool) *Server {
4704	s.DisableAutomatedBackup = &v
4705	return s
4706}
4707
4708// SetEndpoint sets the Endpoint field's value.
4709func (s *Server) SetEndpoint(v string) *Server {
4710	s.Endpoint = &v
4711	return s
4712}
4713
4714// SetEngine sets the Engine field's value.
4715func (s *Server) SetEngine(v string) *Server {
4716	s.Engine = &v
4717	return s
4718}
4719
4720// SetEngineAttributes sets the EngineAttributes field's value.
4721func (s *Server) SetEngineAttributes(v []*EngineAttribute) *Server {
4722	s.EngineAttributes = v
4723	return s
4724}
4725
4726// SetEngineModel sets the EngineModel field's value.
4727func (s *Server) SetEngineModel(v string) *Server {
4728	s.EngineModel = &v
4729	return s
4730}
4731
4732// SetEngineVersion sets the EngineVersion field's value.
4733func (s *Server) SetEngineVersion(v string) *Server {
4734	s.EngineVersion = &v
4735	return s
4736}
4737
4738// SetInstanceProfileArn sets the InstanceProfileArn field's value.
4739func (s *Server) SetInstanceProfileArn(v string) *Server {
4740	s.InstanceProfileArn = &v
4741	return s
4742}
4743
4744// SetInstanceType sets the InstanceType field's value.
4745func (s *Server) SetInstanceType(v string) *Server {
4746	s.InstanceType = &v
4747	return s
4748}
4749
4750// SetKeyPair sets the KeyPair field's value.
4751func (s *Server) SetKeyPair(v string) *Server {
4752	s.KeyPair = &v
4753	return s
4754}
4755
4756// SetMaintenanceStatus sets the MaintenanceStatus field's value.
4757func (s *Server) SetMaintenanceStatus(v string) *Server {
4758	s.MaintenanceStatus = &v
4759	return s
4760}
4761
4762// SetPreferredBackupWindow sets the PreferredBackupWindow field's value.
4763func (s *Server) SetPreferredBackupWindow(v string) *Server {
4764	s.PreferredBackupWindow = &v
4765	return s
4766}
4767
4768// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
4769func (s *Server) SetPreferredMaintenanceWindow(v string) *Server {
4770	s.PreferredMaintenanceWindow = &v
4771	return s
4772}
4773
4774// SetSecurityGroupIds sets the SecurityGroupIds field's value.
4775func (s *Server) SetSecurityGroupIds(v []*string) *Server {
4776	s.SecurityGroupIds = v
4777	return s
4778}
4779
4780// SetServerArn sets the ServerArn field's value.
4781func (s *Server) SetServerArn(v string) *Server {
4782	s.ServerArn = &v
4783	return s
4784}
4785
4786// SetServerName sets the ServerName field's value.
4787func (s *Server) SetServerName(v string) *Server {
4788	s.ServerName = &v
4789	return s
4790}
4791
4792// SetServiceRoleArn sets the ServiceRoleArn field's value.
4793func (s *Server) SetServiceRoleArn(v string) *Server {
4794	s.ServiceRoleArn = &v
4795	return s
4796}
4797
4798// SetStatus sets the Status field's value.
4799func (s *Server) SetStatus(v string) *Server {
4800	s.Status = &v
4801	return s
4802}
4803
4804// SetStatusReason sets the StatusReason field's value.
4805func (s *Server) SetStatusReason(v string) *Server {
4806	s.StatusReason = &v
4807	return s
4808}
4809
4810// SetSubnetIds sets the SubnetIds field's value.
4811func (s *Server) SetSubnetIds(v []*string) *Server {
4812	s.SubnetIds = v
4813	return s
4814}
4815
4816// An event that is related to the server, such as the start of maintenance
4817// or backup.
4818type ServerEvent struct {
4819	_ struct{} `type:"structure"`
4820
4821	// The time when the event occurred.
4822	CreatedAt *time.Time `type:"timestamp"`
4823
4824	// The Amazon S3 URL of the event's log file.
4825	LogUrl *string `type:"string"`
4826
4827	// A human-readable informational or status message.
4828	Message *string `type:"string"`
4829
4830	// The name of the server on or for which the event occurred.
4831	ServerName *string `type:"string"`
4832}
4833
4834// String returns the string representation.
4835//
4836// API parameter values that are decorated as "sensitive" in the API will not
4837// be included in the string output. The member name will be present, but the
4838// value will be replaced with "sensitive".
4839func (s ServerEvent) String() string {
4840	return awsutil.Prettify(s)
4841}
4842
4843// GoString returns the string representation.
4844//
4845// API parameter values that are decorated as "sensitive" in the API will not
4846// be included in the string output. The member name will be present, but the
4847// value will be replaced with "sensitive".
4848func (s ServerEvent) GoString() string {
4849	return s.String()
4850}
4851
4852// SetCreatedAt sets the CreatedAt field's value.
4853func (s *ServerEvent) SetCreatedAt(v time.Time) *ServerEvent {
4854	s.CreatedAt = &v
4855	return s
4856}
4857
4858// SetLogUrl sets the LogUrl field's value.
4859func (s *ServerEvent) SetLogUrl(v string) *ServerEvent {
4860	s.LogUrl = &v
4861	return s
4862}
4863
4864// SetMessage sets the Message field's value.
4865func (s *ServerEvent) SetMessage(v string) *ServerEvent {
4866	s.Message = &v
4867	return s
4868}
4869
4870// SetServerName sets the ServerName field's value.
4871func (s *ServerEvent) SetServerName(v string) *ServerEvent {
4872	s.ServerName = &v
4873	return s
4874}
4875
4876type StartMaintenanceInput struct {
4877	_ struct{} `type:"structure"`
4878
4879	// Engine attributes that are specific to the server on which you want to run
4880	// maintenance.
4881	//
4882	// Attributes accepted in a StartMaintenance request for Chef
4883	//
4884	//    * CHEF_MAJOR_UPGRADE: If a Chef Automate server is eligible for upgrade
4885	//    to Chef Automate 2, add this engine attribute to a StartMaintenance request
4886	//    and set the value to true to upgrade the server to Chef Automate 2. For
4887	//    more information, see Upgrade an AWS OpsWorks for Chef Automate Server
4888	//    to Chef Automate 2 (https://docs.aws.amazon.com/opsworks/latest/userguide/opscm-a2upgrade.html).
4889	EngineAttributes []*EngineAttribute `type:"list"`
4890
4891	// The name of the server on which to run maintenance.
4892	//
4893	// ServerName is a required field
4894	ServerName *string `min:"1" type:"string" required:"true"`
4895}
4896
4897// String returns the string representation.
4898//
4899// API parameter values that are decorated as "sensitive" in the API will not
4900// be included in the string output. The member name will be present, but the
4901// value will be replaced with "sensitive".
4902func (s StartMaintenanceInput) String() string {
4903	return awsutil.Prettify(s)
4904}
4905
4906// GoString returns the string representation.
4907//
4908// API parameter values that are decorated as "sensitive" in the API will not
4909// be included in the string output. The member name will be present, but the
4910// value will be replaced with "sensitive".
4911func (s StartMaintenanceInput) GoString() string {
4912	return s.String()
4913}
4914
4915// Validate inspects the fields of the type to determine if they are valid.
4916func (s *StartMaintenanceInput) Validate() error {
4917	invalidParams := request.ErrInvalidParams{Context: "StartMaintenanceInput"}
4918	if s.ServerName == nil {
4919		invalidParams.Add(request.NewErrParamRequired("ServerName"))
4920	}
4921	if s.ServerName != nil && len(*s.ServerName) < 1 {
4922		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
4923	}
4924
4925	if invalidParams.Len() > 0 {
4926		return invalidParams
4927	}
4928	return nil
4929}
4930
4931// SetEngineAttributes sets the EngineAttributes field's value.
4932func (s *StartMaintenanceInput) SetEngineAttributes(v []*EngineAttribute) *StartMaintenanceInput {
4933	s.EngineAttributes = v
4934	return s
4935}
4936
4937// SetServerName sets the ServerName field's value.
4938func (s *StartMaintenanceInput) SetServerName(v string) *StartMaintenanceInput {
4939	s.ServerName = &v
4940	return s
4941}
4942
4943type StartMaintenanceOutput struct {
4944	_ struct{} `type:"structure"`
4945
4946	// Contains the response to a StartMaintenance request.
4947	Server *Server `type:"structure"`
4948}
4949
4950// String returns the string representation.
4951//
4952// API parameter values that are decorated as "sensitive" in the API will not
4953// be included in the string output. The member name will be present, but the
4954// value will be replaced with "sensitive".
4955func (s StartMaintenanceOutput) String() string {
4956	return awsutil.Prettify(s)
4957}
4958
4959// GoString returns the string representation.
4960//
4961// API parameter values that are decorated as "sensitive" in the API will not
4962// be included in the string output. The member name will be present, but the
4963// value will be replaced with "sensitive".
4964func (s StartMaintenanceOutput) GoString() string {
4965	return s.String()
4966}
4967
4968// SetServer sets the Server field's value.
4969func (s *StartMaintenanceOutput) SetServer(v *Server) *StartMaintenanceOutput {
4970	s.Server = v
4971	return s
4972}
4973
4974// A map that contains tag keys and tag values to attach to an AWS OpsWorks
4975// for Chef Automate or AWS OpsWorks for Puppet Enterprise server. Leading and
4976// trailing white spaces are trimmed from both the key and value. A maximum
4977// of 50 user-applied tags is allowed for tag-supported AWS OpsWorks-CM resources.
4978type Tag struct {
4979	_ struct{} `type:"structure"`
4980
4981	// A tag key, such as Stage or Name. A tag key cannot be empty. The key can
4982	// be a maximum of 127 characters, and can contain only Unicode letters, numbers,
4983	// or separators, or the following special characters: + - = . _ : /
4984	//
4985	// Key is a required field
4986	Key *string `min:"1" type:"string" required:"true"`
4987
4988	// An optional tag value, such as Production or test-owcm-server. The value
4989	// can be a maximum of 255 characters, and contain only Unicode letters, numbers,
4990	// or separators, or the following special characters: + - = . _ : /
4991	//
4992	// Value is a required field
4993	Value *string `type:"string" required:"true"`
4994}
4995
4996// String returns the string representation.
4997//
4998// API parameter values that are decorated as "sensitive" in the API will not
4999// be included in the string output. The member name will be present, but the
5000// value will be replaced with "sensitive".
5001func (s Tag) String() string {
5002	return awsutil.Prettify(s)
5003}
5004
5005// GoString returns the string representation.
5006//
5007// API parameter values that are decorated as "sensitive" in the API will not
5008// be included in the string output. The member name will be present, but the
5009// value will be replaced with "sensitive".
5010func (s Tag) GoString() string {
5011	return s.String()
5012}
5013
5014// Validate inspects the fields of the type to determine if they are valid.
5015func (s *Tag) Validate() error {
5016	invalidParams := request.ErrInvalidParams{Context: "Tag"}
5017	if s.Key == nil {
5018		invalidParams.Add(request.NewErrParamRequired("Key"))
5019	}
5020	if s.Key != nil && len(*s.Key) < 1 {
5021		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
5022	}
5023	if s.Value == nil {
5024		invalidParams.Add(request.NewErrParamRequired("Value"))
5025	}
5026
5027	if invalidParams.Len() > 0 {
5028		return invalidParams
5029	}
5030	return nil
5031}
5032
5033// SetKey sets the Key field's value.
5034func (s *Tag) SetKey(v string) *Tag {
5035	s.Key = &v
5036	return s
5037}
5038
5039// SetValue sets the Value field's value.
5040func (s *Tag) SetValue(v string) *Tag {
5041	s.Value = &v
5042	return s
5043}
5044
5045type TagResourceInput struct {
5046	_ struct{} `type:"structure"`
5047
5048	// The Amazon Resource Number (ARN) of a resource to which you want to apply
5049	// tags. For example, arn:aws:opsworks-cm:us-west-2:123456789012:server/test-owcm-server/EXAMPLE-66b0-4196-8274-d1a2bEXAMPLE.
5050	//
5051	// ResourceArn is a required field
5052	ResourceArn *string `type:"string" required:"true"`
5053
5054	// A map that contains tag keys and tag values to attach to AWS OpsWorks-CM
5055	// servers or backups.
5056	//
5057	//    * The key cannot be empty.
5058	//
5059	//    * The key can be a maximum of 127 characters, and can contain only Unicode
5060	//    letters, numbers, or separators, or the following special characters:
5061	//    + - = . _ : /
5062	//
5063	//    * The value can be a maximum 255 characters, and contain only Unicode
5064	//    letters, numbers, or separators, or the following special characters:
5065	//    + - = . _ : /
5066	//
5067	//    * Leading and trailing white spaces are trimmed from both the key and
5068	//    value.
5069	//
5070	//    * A maximum of 50 user-applied tags is allowed for any AWS OpsWorks-CM
5071	//    server or backup.
5072	//
5073	// Tags is a required field
5074	Tags []*Tag `type:"list" required:"true"`
5075}
5076
5077// String returns the string representation.
5078//
5079// API parameter values that are decorated as "sensitive" in the API will not
5080// be included in the string output. The member name will be present, but the
5081// value will be replaced with "sensitive".
5082func (s TagResourceInput) String() string {
5083	return awsutil.Prettify(s)
5084}
5085
5086// GoString returns the string representation.
5087//
5088// API parameter values that are decorated as "sensitive" in the API will not
5089// be included in the string output. The member name will be present, but the
5090// value will be replaced with "sensitive".
5091func (s TagResourceInput) GoString() string {
5092	return s.String()
5093}
5094
5095// Validate inspects the fields of the type to determine if they are valid.
5096func (s *TagResourceInput) Validate() error {
5097	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
5098	if s.ResourceArn == nil {
5099		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
5100	}
5101	if s.Tags == nil {
5102		invalidParams.Add(request.NewErrParamRequired("Tags"))
5103	}
5104	if s.Tags != nil {
5105		for i, v := range s.Tags {
5106			if v == nil {
5107				continue
5108			}
5109			if err := v.Validate(); err != nil {
5110				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5111			}
5112		}
5113	}
5114
5115	if invalidParams.Len() > 0 {
5116		return invalidParams
5117	}
5118	return nil
5119}
5120
5121// SetResourceArn sets the ResourceArn field's value.
5122func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
5123	s.ResourceArn = &v
5124	return s
5125}
5126
5127// SetTags sets the Tags field's value.
5128func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
5129	s.Tags = v
5130	return s
5131}
5132
5133type TagResourceOutput struct {
5134	_ struct{} `type:"structure"`
5135}
5136
5137// String returns the string representation.
5138//
5139// API parameter values that are decorated as "sensitive" in the API will not
5140// be included in the string output. The member name will be present, but the
5141// value will be replaced with "sensitive".
5142func (s TagResourceOutput) String() string {
5143	return awsutil.Prettify(s)
5144}
5145
5146// GoString returns the string representation.
5147//
5148// API parameter values that are decorated as "sensitive" in the API will not
5149// be included in the string output. The member name will be present, but the
5150// value will be replaced with "sensitive".
5151func (s TagResourceOutput) GoString() string {
5152	return s.String()
5153}
5154
5155type UntagResourceInput struct {
5156	_ struct{} `type:"structure"`
5157
5158	// The Amazon Resource Number (ARN) of a resource from which you want to remove
5159	// tags. For example, arn:aws:opsworks-cm:us-west-2:123456789012:server/test-owcm-server/EXAMPLE-66b0-4196-8274-d1a2bEXAMPLE.
5160	//
5161	// ResourceArn is a required field
5162	ResourceArn *string `type:"string" required:"true"`
5163
5164	// The keys of tags that you want to remove.
5165	//
5166	// TagKeys is a required field
5167	TagKeys []*string `type:"list" required:"true"`
5168}
5169
5170// String returns the string representation.
5171//
5172// API parameter values that are decorated as "sensitive" in the API will not
5173// be included in the string output. The member name will be present, but the
5174// value will be replaced with "sensitive".
5175func (s UntagResourceInput) String() string {
5176	return awsutil.Prettify(s)
5177}
5178
5179// GoString returns the string representation.
5180//
5181// API parameter values that are decorated as "sensitive" in the API will not
5182// be included in the string output. The member name will be present, but the
5183// value will be replaced with "sensitive".
5184func (s UntagResourceInput) GoString() string {
5185	return s.String()
5186}
5187
5188// Validate inspects the fields of the type to determine if they are valid.
5189func (s *UntagResourceInput) Validate() error {
5190	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
5191	if s.ResourceArn == nil {
5192		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
5193	}
5194	if s.TagKeys == nil {
5195		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
5196	}
5197
5198	if invalidParams.Len() > 0 {
5199		return invalidParams
5200	}
5201	return nil
5202}
5203
5204// SetResourceArn sets the ResourceArn field's value.
5205func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
5206	s.ResourceArn = &v
5207	return s
5208}
5209
5210// SetTagKeys sets the TagKeys field's value.
5211func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
5212	s.TagKeys = v
5213	return s
5214}
5215
5216type UntagResourceOutput struct {
5217	_ struct{} `type:"structure"`
5218}
5219
5220// String returns the string representation.
5221//
5222// API parameter values that are decorated as "sensitive" in the API will not
5223// be included in the string output. The member name will be present, but the
5224// value will be replaced with "sensitive".
5225func (s UntagResourceOutput) String() string {
5226	return awsutil.Prettify(s)
5227}
5228
5229// GoString returns the string representation.
5230//
5231// API parameter values that are decorated as "sensitive" in the API will not
5232// be included in the string output. The member name will be present, but the
5233// value will be replaced with "sensitive".
5234func (s UntagResourceOutput) GoString() string {
5235	return s.String()
5236}
5237
5238type UpdateServerEngineAttributesInput struct {
5239	_ struct{} `type:"structure"`
5240
5241	// The name of the engine attribute to update.
5242	//
5243	// AttributeName is a required field
5244	AttributeName *string `min:"1" type:"string" required:"true"`
5245
5246	// The value to set for the attribute.
5247	AttributeValue *string `type:"string"`
5248
5249	// The name of the server to update.
5250	//
5251	// ServerName is a required field
5252	ServerName *string `min:"1" type:"string" required:"true"`
5253}
5254
5255// String returns the string representation.
5256//
5257// API parameter values that are decorated as "sensitive" in the API will not
5258// be included in the string output. The member name will be present, but the
5259// value will be replaced with "sensitive".
5260func (s UpdateServerEngineAttributesInput) String() string {
5261	return awsutil.Prettify(s)
5262}
5263
5264// GoString returns the string representation.
5265//
5266// API parameter values that are decorated as "sensitive" in the API will not
5267// be included in the string output. The member name will be present, but the
5268// value will be replaced with "sensitive".
5269func (s UpdateServerEngineAttributesInput) GoString() string {
5270	return s.String()
5271}
5272
5273// Validate inspects the fields of the type to determine if they are valid.
5274func (s *UpdateServerEngineAttributesInput) Validate() error {
5275	invalidParams := request.ErrInvalidParams{Context: "UpdateServerEngineAttributesInput"}
5276	if s.AttributeName == nil {
5277		invalidParams.Add(request.NewErrParamRequired("AttributeName"))
5278	}
5279	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
5280		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
5281	}
5282	if s.ServerName == nil {
5283		invalidParams.Add(request.NewErrParamRequired("ServerName"))
5284	}
5285	if s.ServerName != nil && len(*s.ServerName) < 1 {
5286		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
5287	}
5288
5289	if invalidParams.Len() > 0 {
5290		return invalidParams
5291	}
5292	return nil
5293}
5294
5295// SetAttributeName sets the AttributeName field's value.
5296func (s *UpdateServerEngineAttributesInput) SetAttributeName(v string) *UpdateServerEngineAttributesInput {
5297	s.AttributeName = &v
5298	return s
5299}
5300
5301// SetAttributeValue sets the AttributeValue field's value.
5302func (s *UpdateServerEngineAttributesInput) SetAttributeValue(v string) *UpdateServerEngineAttributesInput {
5303	s.AttributeValue = &v
5304	return s
5305}
5306
5307// SetServerName sets the ServerName field's value.
5308func (s *UpdateServerEngineAttributesInput) SetServerName(v string) *UpdateServerEngineAttributesInput {
5309	s.ServerName = &v
5310	return s
5311}
5312
5313type UpdateServerEngineAttributesOutput struct {
5314	_ struct{} `type:"structure"`
5315
5316	// Contains the response to an UpdateServerEngineAttributes request.
5317	Server *Server `type:"structure"`
5318}
5319
5320// String returns the string representation.
5321//
5322// API parameter values that are decorated as "sensitive" in the API will not
5323// be included in the string output. The member name will be present, but the
5324// value will be replaced with "sensitive".
5325func (s UpdateServerEngineAttributesOutput) String() string {
5326	return awsutil.Prettify(s)
5327}
5328
5329// GoString returns the string representation.
5330//
5331// API parameter values that are decorated as "sensitive" in the API will not
5332// be included in the string output. The member name will be present, but the
5333// value will be replaced with "sensitive".
5334func (s UpdateServerEngineAttributesOutput) GoString() string {
5335	return s.String()
5336}
5337
5338// SetServer sets the Server field's value.
5339func (s *UpdateServerEngineAttributesOutput) SetServer(v *Server) *UpdateServerEngineAttributesOutput {
5340	s.Server = v
5341	return s
5342}
5343
5344type UpdateServerInput struct {
5345	_ struct{} `type:"structure"`
5346
5347	// Sets the number of automated backups that you want to keep.
5348	BackupRetentionCount *int64 `type:"integer"`
5349
5350	// Setting DisableAutomatedBackup to true disables automated or scheduled backups.
5351	// Automated backups are enabled by default.
5352	DisableAutomatedBackup *bool `type:"boolean"`
5353
5354	// DDD:HH:MM (weekly start time) or HH:MM (daily start time).
5355	//
5356	// Time windows always use coordinated universal time (UTC). Valid strings for
5357	// day of week (DDD) are: Mon, Tue, Wed, Thr, Fri, Sat, or Sun.
5358	PreferredBackupWindow *string `type:"string"`
5359
5360	// DDD:HH:MM (weekly start time) or HH:MM (daily start time).
5361	//
5362	// Time windows always use coordinated universal time (UTC). Valid strings for
5363	// day of week (DDD) are: Mon, Tue, Wed, Thr, Fri, Sat, or Sun.
5364	PreferredMaintenanceWindow *string `type:"string"`
5365
5366	// The name of the server to update.
5367	//
5368	// ServerName is a required field
5369	ServerName *string `min:"1" type:"string" required:"true"`
5370}
5371
5372// String returns the string representation.
5373//
5374// API parameter values that are decorated as "sensitive" in the API will not
5375// be included in the string output. The member name will be present, but the
5376// value will be replaced with "sensitive".
5377func (s UpdateServerInput) String() string {
5378	return awsutil.Prettify(s)
5379}
5380
5381// GoString returns the string representation.
5382//
5383// API parameter values that are decorated as "sensitive" in the API will not
5384// be included in the string output. The member name will be present, but the
5385// value will be replaced with "sensitive".
5386func (s UpdateServerInput) GoString() string {
5387	return s.String()
5388}
5389
5390// Validate inspects the fields of the type to determine if they are valid.
5391func (s *UpdateServerInput) Validate() error {
5392	invalidParams := request.ErrInvalidParams{Context: "UpdateServerInput"}
5393	if s.ServerName == nil {
5394		invalidParams.Add(request.NewErrParamRequired("ServerName"))
5395	}
5396	if s.ServerName != nil && len(*s.ServerName) < 1 {
5397		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
5398	}
5399
5400	if invalidParams.Len() > 0 {
5401		return invalidParams
5402	}
5403	return nil
5404}
5405
5406// SetBackupRetentionCount sets the BackupRetentionCount field's value.
5407func (s *UpdateServerInput) SetBackupRetentionCount(v int64) *UpdateServerInput {
5408	s.BackupRetentionCount = &v
5409	return s
5410}
5411
5412// SetDisableAutomatedBackup sets the DisableAutomatedBackup field's value.
5413func (s *UpdateServerInput) SetDisableAutomatedBackup(v bool) *UpdateServerInput {
5414	s.DisableAutomatedBackup = &v
5415	return s
5416}
5417
5418// SetPreferredBackupWindow sets the PreferredBackupWindow field's value.
5419func (s *UpdateServerInput) SetPreferredBackupWindow(v string) *UpdateServerInput {
5420	s.PreferredBackupWindow = &v
5421	return s
5422}
5423
5424// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
5425func (s *UpdateServerInput) SetPreferredMaintenanceWindow(v string) *UpdateServerInput {
5426	s.PreferredMaintenanceWindow = &v
5427	return s
5428}
5429
5430// SetServerName sets the ServerName field's value.
5431func (s *UpdateServerInput) SetServerName(v string) *UpdateServerInput {
5432	s.ServerName = &v
5433	return s
5434}
5435
5436type UpdateServerOutput struct {
5437	_ struct{} `type:"structure"`
5438
5439	// Contains the response to a UpdateServer request.
5440	Server *Server `type:"structure"`
5441}
5442
5443// String returns the string representation.
5444//
5445// API parameter values that are decorated as "sensitive" in the API will not
5446// be included in the string output. The member name will be present, but the
5447// value will be replaced with "sensitive".
5448func (s UpdateServerOutput) String() string {
5449	return awsutil.Prettify(s)
5450}
5451
5452// GoString returns the string representation.
5453//
5454// API parameter values that are decorated as "sensitive" in the API will not
5455// be included in the string output. The member name will be present, but the
5456// value will be replaced with "sensitive".
5457func (s UpdateServerOutput) GoString() string {
5458	return s.String()
5459}
5460
5461// SetServer sets the Server field's value.
5462func (s *UpdateServerOutput) SetServer(v *Server) *UpdateServerOutput {
5463	s.Server = v
5464	return s
5465}
5466
5467// One or more of the provided request parameters are not valid.
5468type ValidationException struct {
5469	_            struct{}                  `type:"structure"`
5470	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5471
5472	// Error or informational message that can contain more detail about a validation
5473	// failure.
5474	Message_ *string `locationName:"Message" type:"string"`
5475}
5476
5477// String returns the string representation.
5478//
5479// API parameter values that are decorated as "sensitive" in the API will not
5480// be included in the string output. The member name will be present, but the
5481// value will be replaced with "sensitive".
5482func (s ValidationException) String() string {
5483	return awsutil.Prettify(s)
5484}
5485
5486// GoString returns the string representation.
5487//
5488// API parameter values that are decorated as "sensitive" in the API will not
5489// be included in the string output. The member name will be present, but the
5490// value will be replaced with "sensitive".
5491func (s ValidationException) GoString() string {
5492	return s.String()
5493}
5494
5495func newErrorValidationException(v protocol.ResponseMetadata) error {
5496	return &ValidationException{
5497		RespMetadata: v,
5498	}
5499}
5500
5501// Code returns the exception type name.
5502func (s *ValidationException) Code() string {
5503	return "ValidationException"
5504}
5505
5506// Message returns the exception's message.
5507func (s *ValidationException) Message() string {
5508	if s.Message_ != nil {
5509		return *s.Message_
5510	}
5511	return ""
5512}
5513
5514// OrigErr always returns nil, satisfies awserr.Error interface.
5515func (s *ValidationException) OrigErr() error {
5516	return nil
5517}
5518
5519func (s *ValidationException) Error() string {
5520	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5521}
5522
5523// Status code returns the HTTP status code for the request's response error.
5524func (s *ValidationException) StatusCode() int {
5525	return s.RespMetadata.StatusCode
5526}
5527
5528// RequestID returns the service's response RequestID for request.
5529func (s *ValidationException) RequestID() string {
5530	return s.RespMetadata.RequestID
5531}
5532
5533const (
5534	// BackupStatusInProgress is a BackupStatus enum value
5535	BackupStatusInProgress = "IN_PROGRESS"
5536
5537	// BackupStatusOk is a BackupStatus enum value
5538	BackupStatusOk = "OK"
5539
5540	// BackupStatusFailed is a BackupStatus enum value
5541	BackupStatusFailed = "FAILED"
5542
5543	// BackupStatusDeleting is a BackupStatus enum value
5544	BackupStatusDeleting = "DELETING"
5545)
5546
5547// BackupStatus_Values returns all elements of the BackupStatus enum
5548func BackupStatus_Values() []string {
5549	return []string{
5550		BackupStatusInProgress,
5551		BackupStatusOk,
5552		BackupStatusFailed,
5553		BackupStatusDeleting,
5554	}
5555}
5556
5557const (
5558	// BackupTypeAutomated is a BackupType enum value
5559	BackupTypeAutomated = "AUTOMATED"
5560
5561	// BackupTypeManual is a BackupType enum value
5562	BackupTypeManual = "MANUAL"
5563)
5564
5565// BackupType_Values returns all elements of the BackupType enum
5566func BackupType_Values() []string {
5567	return []string{
5568		BackupTypeAutomated,
5569		BackupTypeManual,
5570	}
5571}
5572
5573const (
5574	// MaintenanceStatusSuccess is a MaintenanceStatus enum value
5575	MaintenanceStatusSuccess = "SUCCESS"
5576
5577	// MaintenanceStatusFailed is a MaintenanceStatus enum value
5578	MaintenanceStatusFailed = "FAILED"
5579)
5580
5581// MaintenanceStatus_Values returns all elements of the MaintenanceStatus enum
5582func MaintenanceStatus_Values() []string {
5583	return []string{
5584		MaintenanceStatusSuccess,
5585		MaintenanceStatusFailed,
5586	}
5587}
5588
5589// The status of the association or disassociation request.
5590//
5591// Possible values:
5592//
5593//    * SUCCESS: The association or disassociation succeeded.
5594//
5595//    * FAILED: The association or disassociation failed.
5596//
5597//    * IN_PROGRESS: The association or disassociation is still in progress.
5598const (
5599	// NodeAssociationStatusSuccess is a NodeAssociationStatus enum value
5600	NodeAssociationStatusSuccess = "SUCCESS"
5601
5602	// NodeAssociationStatusFailed is a NodeAssociationStatus enum value
5603	NodeAssociationStatusFailed = "FAILED"
5604
5605	// NodeAssociationStatusInProgress is a NodeAssociationStatus enum value
5606	NodeAssociationStatusInProgress = "IN_PROGRESS"
5607)
5608
5609// NodeAssociationStatus_Values returns all elements of the NodeAssociationStatus enum
5610func NodeAssociationStatus_Values() []string {
5611	return []string{
5612		NodeAssociationStatusSuccess,
5613		NodeAssociationStatusFailed,
5614		NodeAssociationStatusInProgress,
5615	}
5616}
5617
5618const (
5619	// ServerStatusBackingUp is a ServerStatus enum value
5620	ServerStatusBackingUp = "BACKING_UP"
5621
5622	// ServerStatusConnectionLost is a ServerStatus enum value
5623	ServerStatusConnectionLost = "CONNECTION_LOST"
5624
5625	// ServerStatusCreating is a ServerStatus enum value
5626	ServerStatusCreating = "CREATING"
5627
5628	// ServerStatusDeleting is a ServerStatus enum value
5629	ServerStatusDeleting = "DELETING"
5630
5631	// ServerStatusModifying is a ServerStatus enum value
5632	ServerStatusModifying = "MODIFYING"
5633
5634	// ServerStatusFailed is a ServerStatus enum value
5635	ServerStatusFailed = "FAILED"
5636
5637	// ServerStatusHealthy is a ServerStatus enum value
5638	ServerStatusHealthy = "HEALTHY"
5639
5640	// ServerStatusRunning is a ServerStatus enum value
5641	ServerStatusRunning = "RUNNING"
5642
5643	// ServerStatusRestoring is a ServerStatus enum value
5644	ServerStatusRestoring = "RESTORING"
5645
5646	// ServerStatusSetup is a ServerStatus enum value
5647	ServerStatusSetup = "SETUP"
5648
5649	// ServerStatusUnderMaintenance is a ServerStatus enum value
5650	ServerStatusUnderMaintenance = "UNDER_MAINTENANCE"
5651
5652	// ServerStatusUnhealthy is a ServerStatus enum value
5653	ServerStatusUnhealthy = "UNHEALTHY"
5654
5655	// ServerStatusTerminated is a ServerStatus enum value
5656	ServerStatusTerminated = "TERMINATED"
5657)
5658
5659// ServerStatus_Values returns all elements of the ServerStatus enum
5660func ServerStatus_Values() []string {
5661	return []string{
5662		ServerStatusBackingUp,
5663		ServerStatusConnectionLost,
5664		ServerStatusCreating,
5665		ServerStatusDeleting,
5666		ServerStatusModifying,
5667		ServerStatusFailed,
5668		ServerStatusHealthy,
5669		ServerStatusRunning,
5670		ServerStatusRestoring,
5671		ServerStatusSetup,
5672		ServerStatusUnderMaintenance,
5673		ServerStatusUnhealthy,
5674		ServerStatusTerminated,
5675	}
5676}
5677