1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package cloudhsmv2
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12)
13
14const opCopyBackupToRegion = "CopyBackupToRegion"
15
16// CopyBackupToRegionRequest generates a "aws/request.Request" representing the
17// client's request for the CopyBackupToRegion operation. The "output" return
18// value will be populated with the request's response once the request completes
19// successfuly.
20//
21// Use "Send" method on the returned Request to send the API call to the service.
22// the "output" return value is not valid until after Send returns without error.
23//
24// See CopyBackupToRegion for more information on using the CopyBackupToRegion
25// API call, and error handling.
26//
27// This method is useful when you want to inject custom logic or configuration
28// into the SDK's request lifecycle. Such as custom headers, or retry logic.
29//
30//
31//    // Example sending a request using the CopyBackupToRegionRequest method.
32//    req, resp := client.CopyBackupToRegionRequest(params)
33//
34//    err := req.Send()
35//    if err == nil { // resp is now filled
36//        fmt.Println(resp)
37//    }
38//
39// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/CopyBackupToRegion
40func (c *CloudHSMV2) CopyBackupToRegionRequest(input *CopyBackupToRegionInput) (req *request.Request, output *CopyBackupToRegionOutput) {
41	op := &request.Operation{
42		Name:       opCopyBackupToRegion,
43		HTTPMethod: "POST",
44		HTTPPath:   "/",
45	}
46
47	if input == nil {
48		input = &CopyBackupToRegionInput{}
49	}
50
51	output = &CopyBackupToRegionOutput{}
52	req = c.newRequest(op, input, output)
53	return
54}
55
56// CopyBackupToRegion API operation for AWS CloudHSM V2.
57//
58// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
59// with awserr.Error's Code and Message methods to get detailed information about
60// the error.
61//
62// See the AWS API reference guide for AWS CloudHSM V2's
63// API operation CopyBackupToRegion for usage and error information.
64//
65// Returned Error Codes:
66//   * ErrCodeCloudHsmInternalFailureException "CloudHsmInternalFailureException"
67//   The request was rejected because of an AWS CloudHSM internal failure. The
68//   request can be retried.
69//
70//   * ErrCodeCloudHsmServiceException "CloudHsmServiceException"
71//   The request was rejected because an error occurred.
72//
73//   * ErrCodeCloudHsmResourceNotFoundException "CloudHsmResourceNotFoundException"
74//   The request was rejected because it refers to a resource that cannot be found.
75//
76//   * ErrCodeCloudHsmInvalidRequestException "CloudHsmInvalidRequestException"
77//   The request was rejected because it is not a valid request.
78//
79//   * ErrCodeCloudHsmAccessDeniedException "CloudHsmAccessDeniedException"
80//   The request was rejected because the requester does not have permission to
81//   perform the requested operation.
82//
83// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/CopyBackupToRegion
84func (c *CloudHSMV2) CopyBackupToRegion(input *CopyBackupToRegionInput) (*CopyBackupToRegionOutput, error) {
85	req, out := c.CopyBackupToRegionRequest(input)
86	return out, req.Send()
87}
88
89// CopyBackupToRegionWithContext is the same as CopyBackupToRegion with the addition of
90// the ability to pass a context and additional request options.
91//
92// See CopyBackupToRegion for details on how to use this API operation.
93//
94// The context must be non-nil and will be used for request cancellation. If
95// the context is nil a panic will occur. In the future the SDK may create
96// sub-contexts for http.Requests. See https://golang.org/pkg/context/
97// for more information on using Contexts.
98func (c *CloudHSMV2) CopyBackupToRegionWithContext(ctx aws.Context, input *CopyBackupToRegionInput, opts ...request.Option) (*CopyBackupToRegionOutput, error) {
99	req, out := c.CopyBackupToRegionRequest(input)
100	req.SetContext(ctx)
101	req.ApplyOptions(opts...)
102	return out, req.Send()
103}
104
105const opCreateCluster = "CreateCluster"
106
107// CreateClusterRequest generates a "aws/request.Request" representing the
108// client's request for the CreateCluster operation. The "output" return
109// value will be populated with the request's response once the request completes
110// successfuly.
111//
112// Use "Send" method on the returned Request to send the API call to the service.
113// the "output" return value is not valid until after Send returns without error.
114//
115// See CreateCluster for more information on using the CreateCluster
116// API call, and error handling.
117//
118// This method is useful when you want to inject custom logic or configuration
119// into the SDK's request lifecycle. Such as custom headers, or retry logic.
120//
121//
122//    // Example sending a request using the CreateClusterRequest method.
123//    req, resp := client.CreateClusterRequest(params)
124//
125//    err := req.Send()
126//    if err == nil { // resp is now filled
127//        fmt.Println(resp)
128//    }
129//
130// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/CreateCluster
131func (c *CloudHSMV2) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
132	op := &request.Operation{
133		Name:       opCreateCluster,
134		HTTPMethod: "POST",
135		HTTPPath:   "/",
136	}
137
138	if input == nil {
139		input = &CreateClusterInput{}
140	}
141
142	output = &CreateClusterOutput{}
143	req = c.newRequest(op, input, output)
144	return
145}
146
147// CreateCluster API operation for AWS CloudHSM V2.
148//
149// Creates a new AWS CloudHSM cluster.
150//
151// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
152// with awserr.Error's Code and Message methods to get detailed information about
153// the error.
154//
155// See the AWS API reference guide for AWS CloudHSM V2's
156// API operation CreateCluster for usage and error information.
157//
158// Returned Error Codes:
159//   * ErrCodeCloudHsmInternalFailureException "CloudHsmInternalFailureException"
160//   The request was rejected because of an AWS CloudHSM internal failure. The
161//   request can be retried.
162//
163//   * ErrCodeCloudHsmServiceException "CloudHsmServiceException"
164//   The request was rejected because an error occurred.
165//
166//   * ErrCodeCloudHsmResourceNotFoundException "CloudHsmResourceNotFoundException"
167//   The request was rejected because it refers to a resource that cannot be found.
168//
169//   * ErrCodeCloudHsmInvalidRequestException "CloudHsmInvalidRequestException"
170//   The request was rejected because it is not a valid request.
171//
172//   * ErrCodeCloudHsmAccessDeniedException "CloudHsmAccessDeniedException"
173//   The request was rejected because the requester does not have permission to
174//   perform the requested operation.
175//
176// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/CreateCluster
177func (c *CloudHSMV2) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
178	req, out := c.CreateClusterRequest(input)
179	return out, req.Send()
180}
181
182// CreateClusterWithContext is the same as CreateCluster with the addition of
183// the ability to pass a context and additional request options.
184//
185// See CreateCluster for details on how to use this API operation.
186//
187// The context must be non-nil and will be used for request cancellation. If
188// the context is nil a panic will occur. In the future the SDK may create
189// sub-contexts for http.Requests. See https://golang.org/pkg/context/
190// for more information on using Contexts.
191func (c *CloudHSMV2) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) {
192	req, out := c.CreateClusterRequest(input)
193	req.SetContext(ctx)
194	req.ApplyOptions(opts...)
195	return out, req.Send()
196}
197
198const opCreateHsm = "CreateHsm"
199
200// CreateHsmRequest generates a "aws/request.Request" representing the
201// client's request for the CreateHsm operation. The "output" return
202// value will be populated with the request's response once the request completes
203// successfuly.
204//
205// Use "Send" method on the returned Request to send the API call to the service.
206// the "output" return value is not valid until after Send returns without error.
207//
208// See CreateHsm for more information on using the CreateHsm
209// API call, and error handling.
210//
211// This method is useful when you want to inject custom logic or configuration
212// into the SDK's request lifecycle. Such as custom headers, or retry logic.
213//
214//
215//    // Example sending a request using the CreateHsmRequest method.
216//    req, resp := client.CreateHsmRequest(params)
217//
218//    err := req.Send()
219//    if err == nil { // resp is now filled
220//        fmt.Println(resp)
221//    }
222//
223// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/CreateHsm
224func (c *CloudHSMV2) CreateHsmRequest(input *CreateHsmInput) (req *request.Request, output *CreateHsmOutput) {
225	op := &request.Operation{
226		Name:       opCreateHsm,
227		HTTPMethod: "POST",
228		HTTPPath:   "/",
229	}
230
231	if input == nil {
232		input = &CreateHsmInput{}
233	}
234
235	output = &CreateHsmOutput{}
236	req = c.newRequest(op, input, output)
237	return
238}
239
240// CreateHsm API operation for AWS CloudHSM V2.
241//
242// Creates a new hardware security module (HSM) in the specified AWS CloudHSM
243// cluster.
244//
245// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
246// with awserr.Error's Code and Message methods to get detailed information about
247// the error.
248//
249// See the AWS API reference guide for AWS CloudHSM V2's
250// API operation CreateHsm for usage and error information.
251//
252// Returned Error Codes:
253//   * ErrCodeCloudHsmInternalFailureException "CloudHsmInternalFailureException"
254//   The request was rejected because of an AWS CloudHSM internal failure. The
255//   request can be retried.
256//
257//   * ErrCodeCloudHsmServiceException "CloudHsmServiceException"
258//   The request was rejected because an error occurred.
259//
260//   * ErrCodeCloudHsmInvalidRequestException "CloudHsmInvalidRequestException"
261//   The request was rejected because it is not a valid request.
262//
263//   * ErrCodeCloudHsmResourceNotFoundException "CloudHsmResourceNotFoundException"
264//   The request was rejected because it refers to a resource that cannot be found.
265//
266//   * ErrCodeCloudHsmAccessDeniedException "CloudHsmAccessDeniedException"
267//   The request was rejected because the requester does not have permission to
268//   perform the requested operation.
269//
270// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/CreateHsm
271func (c *CloudHSMV2) CreateHsm(input *CreateHsmInput) (*CreateHsmOutput, error) {
272	req, out := c.CreateHsmRequest(input)
273	return out, req.Send()
274}
275
276// CreateHsmWithContext is the same as CreateHsm with the addition of
277// the ability to pass a context and additional request options.
278//
279// See CreateHsm for details on how to use this API operation.
280//
281// The context must be non-nil and will be used for request cancellation. If
282// the context is nil a panic will occur. In the future the SDK may create
283// sub-contexts for http.Requests. See https://golang.org/pkg/context/
284// for more information on using Contexts.
285func (c *CloudHSMV2) CreateHsmWithContext(ctx aws.Context, input *CreateHsmInput, opts ...request.Option) (*CreateHsmOutput, error) {
286	req, out := c.CreateHsmRequest(input)
287	req.SetContext(ctx)
288	req.ApplyOptions(opts...)
289	return out, req.Send()
290}
291
292const opDeleteCluster = "DeleteCluster"
293
294// DeleteClusterRequest generates a "aws/request.Request" representing the
295// client's request for the DeleteCluster operation. The "output" return
296// value will be populated with the request's response once the request completes
297// successfuly.
298//
299// Use "Send" method on the returned Request to send the API call to the service.
300// the "output" return value is not valid until after Send returns without error.
301//
302// See DeleteCluster for more information on using the DeleteCluster
303// API call, and error handling.
304//
305// This method is useful when you want to inject custom logic or configuration
306// into the SDK's request lifecycle. Such as custom headers, or retry logic.
307//
308//
309//    // Example sending a request using the DeleteClusterRequest method.
310//    req, resp := client.DeleteClusterRequest(params)
311//
312//    err := req.Send()
313//    if err == nil { // resp is now filled
314//        fmt.Println(resp)
315//    }
316//
317// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/DeleteCluster
318func (c *CloudHSMV2) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
319	op := &request.Operation{
320		Name:       opDeleteCluster,
321		HTTPMethod: "POST",
322		HTTPPath:   "/",
323	}
324
325	if input == nil {
326		input = &DeleteClusterInput{}
327	}
328
329	output = &DeleteClusterOutput{}
330	req = c.newRequest(op, input, output)
331	return
332}
333
334// DeleteCluster API operation for AWS CloudHSM V2.
335//
336// Deletes the specified AWS CloudHSM cluster. Before you can delete a cluster,
337// you must delete all HSMs in the cluster. To see if the cluster contains any
338// HSMs, use DescribeClusters. To delete an HSM, use DeleteHsm.
339//
340// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
341// with awserr.Error's Code and Message methods to get detailed information about
342// the error.
343//
344// See the AWS API reference guide for AWS CloudHSM V2's
345// API operation DeleteCluster for usage and error information.
346//
347// Returned Error Codes:
348//   * ErrCodeCloudHsmInternalFailureException "CloudHsmInternalFailureException"
349//   The request was rejected because of an AWS CloudHSM internal failure. The
350//   request can be retried.
351//
352//   * ErrCodeCloudHsmServiceException "CloudHsmServiceException"
353//   The request was rejected because an error occurred.
354//
355//   * ErrCodeCloudHsmResourceNotFoundException "CloudHsmResourceNotFoundException"
356//   The request was rejected because it refers to a resource that cannot be found.
357//
358//   * ErrCodeCloudHsmInvalidRequestException "CloudHsmInvalidRequestException"
359//   The request was rejected because it is not a valid request.
360//
361//   * ErrCodeCloudHsmAccessDeniedException "CloudHsmAccessDeniedException"
362//   The request was rejected because the requester does not have permission to
363//   perform the requested operation.
364//
365// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/DeleteCluster
366func (c *CloudHSMV2) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
367	req, out := c.DeleteClusterRequest(input)
368	return out, req.Send()
369}
370
371// DeleteClusterWithContext is the same as DeleteCluster with the addition of
372// the ability to pass a context and additional request options.
373//
374// See DeleteCluster for details on how to use this API operation.
375//
376// The context must be non-nil and will be used for request cancellation. If
377// the context is nil a panic will occur. In the future the SDK may create
378// sub-contexts for http.Requests. See https://golang.org/pkg/context/
379// for more information on using Contexts.
380func (c *CloudHSMV2) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) {
381	req, out := c.DeleteClusterRequest(input)
382	req.SetContext(ctx)
383	req.ApplyOptions(opts...)
384	return out, req.Send()
385}
386
387const opDeleteHsm = "DeleteHsm"
388
389// DeleteHsmRequest generates a "aws/request.Request" representing the
390// client's request for the DeleteHsm operation. The "output" return
391// value will be populated with the request's response once the request completes
392// successfuly.
393//
394// Use "Send" method on the returned Request to send the API call to the service.
395// the "output" return value is not valid until after Send returns without error.
396//
397// See DeleteHsm for more information on using the DeleteHsm
398// API call, and error handling.
399//
400// This method is useful when you want to inject custom logic or configuration
401// into the SDK's request lifecycle. Such as custom headers, or retry logic.
402//
403//
404//    // Example sending a request using the DeleteHsmRequest method.
405//    req, resp := client.DeleteHsmRequest(params)
406//
407//    err := req.Send()
408//    if err == nil { // resp is now filled
409//        fmt.Println(resp)
410//    }
411//
412// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/DeleteHsm
413func (c *CloudHSMV2) DeleteHsmRequest(input *DeleteHsmInput) (req *request.Request, output *DeleteHsmOutput) {
414	op := &request.Operation{
415		Name:       opDeleteHsm,
416		HTTPMethod: "POST",
417		HTTPPath:   "/",
418	}
419
420	if input == nil {
421		input = &DeleteHsmInput{}
422	}
423
424	output = &DeleteHsmOutput{}
425	req = c.newRequest(op, input, output)
426	return
427}
428
429// DeleteHsm API operation for AWS CloudHSM V2.
430//
431// Deletes the specified HSM. To specify an HSM, you can use its identifier
432// (ID), the IP address of the HSM's elastic network interface (ENI), or the
433// ID of the HSM's ENI. You need to specify only one of these values. To find
434// these values, use DescribeClusters.
435//
436// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
437// with awserr.Error's Code and Message methods to get detailed information about
438// the error.
439//
440// See the AWS API reference guide for AWS CloudHSM V2's
441// API operation DeleteHsm for usage and error information.
442//
443// Returned Error Codes:
444//   * ErrCodeCloudHsmInternalFailureException "CloudHsmInternalFailureException"
445//   The request was rejected because of an AWS CloudHSM internal failure. The
446//   request can be retried.
447//
448//   * ErrCodeCloudHsmServiceException "CloudHsmServiceException"
449//   The request was rejected because an error occurred.
450//
451//   * ErrCodeCloudHsmResourceNotFoundException "CloudHsmResourceNotFoundException"
452//   The request was rejected because it refers to a resource that cannot be found.
453//
454//   * ErrCodeCloudHsmInvalidRequestException "CloudHsmInvalidRequestException"
455//   The request was rejected because it is not a valid request.
456//
457//   * ErrCodeCloudHsmAccessDeniedException "CloudHsmAccessDeniedException"
458//   The request was rejected because the requester does not have permission to
459//   perform the requested operation.
460//
461// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/DeleteHsm
462func (c *CloudHSMV2) DeleteHsm(input *DeleteHsmInput) (*DeleteHsmOutput, error) {
463	req, out := c.DeleteHsmRequest(input)
464	return out, req.Send()
465}
466
467// DeleteHsmWithContext is the same as DeleteHsm with the addition of
468// the ability to pass a context and additional request options.
469//
470// See DeleteHsm for details on how to use this API operation.
471//
472// The context must be non-nil and will be used for request cancellation. If
473// the context is nil a panic will occur. In the future the SDK may create
474// sub-contexts for http.Requests. See https://golang.org/pkg/context/
475// for more information on using Contexts.
476func (c *CloudHSMV2) DeleteHsmWithContext(ctx aws.Context, input *DeleteHsmInput, opts ...request.Option) (*DeleteHsmOutput, error) {
477	req, out := c.DeleteHsmRequest(input)
478	req.SetContext(ctx)
479	req.ApplyOptions(opts...)
480	return out, req.Send()
481}
482
483const opDescribeBackups = "DescribeBackups"
484
485// DescribeBackupsRequest generates a "aws/request.Request" representing the
486// client's request for the DescribeBackups operation. The "output" return
487// value will be populated with the request's response once the request completes
488// successfuly.
489//
490// Use "Send" method on the returned Request to send the API call to the service.
491// the "output" return value is not valid until after Send returns without error.
492//
493// See DescribeBackups for more information on using the DescribeBackups
494// API call, and error handling.
495//
496// This method is useful when you want to inject custom logic or configuration
497// into the SDK's request lifecycle. Such as custom headers, or retry logic.
498//
499//
500//    // Example sending a request using the DescribeBackupsRequest method.
501//    req, resp := client.DescribeBackupsRequest(params)
502//
503//    err := req.Send()
504//    if err == nil { // resp is now filled
505//        fmt.Println(resp)
506//    }
507//
508// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/DescribeBackups
509func (c *CloudHSMV2) DescribeBackupsRequest(input *DescribeBackupsInput) (req *request.Request, output *DescribeBackupsOutput) {
510	op := &request.Operation{
511		Name:       opDescribeBackups,
512		HTTPMethod: "POST",
513		HTTPPath:   "/",
514		Paginator: &request.Paginator{
515			InputTokens:     []string{"NextToken"},
516			OutputTokens:    []string{"NextToken"},
517			LimitToken:      "MaxResults",
518			TruncationToken: "",
519		},
520	}
521
522	if input == nil {
523		input = &DescribeBackupsInput{}
524	}
525
526	output = &DescribeBackupsOutput{}
527	req = c.newRequest(op, input, output)
528	return
529}
530
531// DescribeBackups API operation for AWS CloudHSM V2.
532//
533// Gets information about backups of AWS CloudHSM clusters.
534//
535// This is a paginated operation, which means that each response might contain
536// only a subset of all the backups. When the response contains only a subset
537// of backups, it includes a NextToken value. Use this value in a subsequent
538// DescribeBackups request to get more backups. When you receive a response
539// with no NextToken (or an empty or null value), that means there are no more
540// backups to get.
541//
542// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
543// with awserr.Error's Code and Message methods to get detailed information about
544// the error.
545//
546// See the AWS API reference guide for AWS CloudHSM V2's
547// API operation DescribeBackups for usage and error information.
548//
549// Returned Error Codes:
550//   * ErrCodeCloudHsmInternalFailureException "CloudHsmInternalFailureException"
551//   The request was rejected because of an AWS CloudHSM internal failure. The
552//   request can be retried.
553//
554//   * ErrCodeCloudHsmServiceException "CloudHsmServiceException"
555//   The request was rejected because an error occurred.
556//
557//   * ErrCodeCloudHsmResourceNotFoundException "CloudHsmResourceNotFoundException"
558//   The request was rejected because it refers to a resource that cannot be found.
559//
560//   * ErrCodeCloudHsmInvalidRequestException "CloudHsmInvalidRequestException"
561//   The request was rejected because it is not a valid request.
562//
563//   * ErrCodeCloudHsmAccessDeniedException "CloudHsmAccessDeniedException"
564//   The request was rejected because the requester does not have permission to
565//   perform the requested operation.
566//
567// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/DescribeBackups
568func (c *CloudHSMV2) DescribeBackups(input *DescribeBackupsInput) (*DescribeBackupsOutput, error) {
569	req, out := c.DescribeBackupsRequest(input)
570	return out, req.Send()
571}
572
573// DescribeBackupsWithContext is the same as DescribeBackups with the addition of
574// the ability to pass a context and additional request options.
575//
576// See DescribeBackups for details on how to use this API operation.
577//
578// The context must be non-nil and will be used for request cancellation. If
579// the context is nil a panic will occur. In the future the SDK may create
580// sub-contexts for http.Requests. See https://golang.org/pkg/context/
581// for more information on using Contexts.
582func (c *CloudHSMV2) DescribeBackupsWithContext(ctx aws.Context, input *DescribeBackupsInput, opts ...request.Option) (*DescribeBackupsOutput, error) {
583	req, out := c.DescribeBackupsRequest(input)
584	req.SetContext(ctx)
585	req.ApplyOptions(opts...)
586	return out, req.Send()
587}
588
589// DescribeBackupsPages iterates over the pages of a DescribeBackups operation,
590// calling the "fn" function with the response data for each page. To stop
591// iterating, return false from the fn function.
592//
593// See DescribeBackups method for more information on how to use this operation.
594//
595// Note: This operation can generate multiple requests to a service.
596//
597//    // Example iterating over at most 3 pages of a DescribeBackups operation.
598//    pageNum := 0
599//    err := client.DescribeBackupsPages(params,
600//        func(page *DescribeBackupsOutput, lastPage bool) bool {
601//            pageNum++
602//            fmt.Println(page)
603//            return pageNum <= 3
604//        })
605//
606func (c *CloudHSMV2) DescribeBackupsPages(input *DescribeBackupsInput, fn func(*DescribeBackupsOutput, bool) bool) error {
607	return c.DescribeBackupsPagesWithContext(aws.BackgroundContext(), input, fn)
608}
609
610// DescribeBackupsPagesWithContext same as DescribeBackupsPages except
611// it takes a Context and allows setting request options on the pages.
612//
613// The context must be non-nil and will be used for request cancellation. If
614// the context is nil a panic will occur. In the future the SDK may create
615// sub-contexts for http.Requests. See https://golang.org/pkg/context/
616// for more information on using Contexts.
617func (c *CloudHSMV2) DescribeBackupsPagesWithContext(ctx aws.Context, input *DescribeBackupsInput, fn func(*DescribeBackupsOutput, bool) bool, opts ...request.Option) error {
618	p := request.Pagination{
619		NewRequest: func() (*request.Request, error) {
620			var inCpy *DescribeBackupsInput
621			if input != nil {
622				tmp := *input
623				inCpy = &tmp
624			}
625			req, _ := c.DescribeBackupsRequest(inCpy)
626			req.SetContext(ctx)
627			req.ApplyOptions(opts...)
628			return req, nil
629		},
630	}
631
632	cont := true
633	for p.Next() && cont {
634		cont = fn(p.Page().(*DescribeBackupsOutput), !p.HasNextPage())
635	}
636	return p.Err()
637}
638
639const opDescribeClusters = "DescribeClusters"
640
641// DescribeClustersRequest generates a "aws/request.Request" representing the
642// client's request for the DescribeClusters operation. The "output" return
643// value will be populated with the request's response once the request completes
644// successfuly.
645//
646// Use "Send" method on the returned Request to send the API call to the service.
647// the "output" return value is not valid until after Send returns without error.
648//
649// See DescribeClusters for more information on using the DescribeClusters
650// API call, and error handling.
651//
652// This method is useful when you want to inject custom logic or configuration
653// into the SDK's request lifecycle. Such as custom headers, or retry logic.
654//
655//
656//    // Example sending a request using the DescribeClustersRequest method.
657//    req, resp := client.DescribeClustersRequest(params)
658//
659//    err := req.Send()
660//    if err == nil { // resp is now filled
661//        fmt.Println(resp)
662//    }
663//
664// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/DescribeClusters
665func (c *CloudHSMV2) DescribeClustersRequest(input *DescribeClustersInput) (req *request.Request, output *DescribeClustersOutput) {
666	op := &request.Operation{
667		Name:       opDescribeClusters,
668		HTTPMethod: "POST",
669		HTTPPath:   "/",
670		Paginator: &request.Paginator{
671			InputTokens:     []string{"NextToken"},
672			OutputTokens:    []string{"NextToken"},
673			LimitToken:      "MaxResults",
674			TruncationToken: "",
675		},
676	}
677
678	if input == nil {
679		input = &DescribeClustersInput{}
680	}
681
682	output = &DescribeClustersOutput{}
683	req = c.newRequest(op, input, output)
684	return
685}
686
687// DescribeClusters API operation for AWS CloudHSM V2.
688//
689// Gets information about AWS CloudHSM clusters.
690//
691// This is a paginated operation, which means that each response might contain
692// only a subset of all the clusters. When the response contains only a subset
693// of clusters, it includes a NextToken value. Use this value in a subsequent
694// DescribeClusters request to get more clusters. When you receive a response
695// with no NextToken (or an empty or null value), that means there are no more
696// clusters to get.
697//
698// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
699// with awserr.Error's Code and Message methods to get detailed information about
700// the error.
701//
702// See the AWS API reference guide for AWS CloudHSM V2's
703// API operation DescribeClusters for usage and error information.
704//
705// Returned Error Codes:
706//   * ErrCodeCloudHsmInternalFailureException "CloudHsmInternalFailureException"
707//   The request was rejected because of an AWS CloudHSM internal failure. The
708//   request can be retried.
709//
710//   * ErrCodeCloudHsmServiceException "CloudHsmServiceException"
711//   The request was rejected because an error occurred.
712//
713//   * ErrCodeCloudHsmInvalidRequestException "CloudHsmInvalidRequestException"
714//   The request was rejected because it is not a valid request.
715//
716//   * ErrCodeCloudHsmAccessDeniedException "CloudHsmAccessDeniedException"
717//   The request was rejected because the requester does not have permission to
718//   perform the requested operation.
719//
720// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/DescribeClusters
721func (c *CloudHSMV2) DescribeClusters(input *DescribeClustersInput) (*DescribeClustersOutput, error) {
722	req, out := c.DescribeClustersRequest(input)
723	return out, req.Send()
724}
725
726// DescribeClustersWithContext is the same as DescribeClusters with the addition of
727// the ability to pass a context and additional request options.
728//
729// See DescribeClusters for details on how to use this API operation.
730//
731// The context must be non-nil and will be used for request cancellation. If
732// the context is nil a panic will occur. In the future the SDK may create
733// sub-contexts for http.Requests. See https://golang.org/pkg/context/
734// for more information on using Contexts.
735func (c *CloudHSMV2) DescribeClustersWithContext(ctx aws.Context, input *DescribeClustersInput, opts ...request.Option) (*DescribeClustersOutput, error) {
736	req, out := c.DescribeClustersRequest(input)
737	req.SetContext(ctx)
738	req.ApplyOptions(opts...)
739	return out, req.Send()
740}
741
742// DescribeClustersPages iterates over the pages of a DescribeClusters operation,
743// calling the "fn" function with the response data for each page. To stop
744// iterating, return false from the fn function.
745//
746// See DescribeClusters method for more information on how to use this operation.
747//
748// Note: This operation can generate multiple requests to a service.
749//
750//    // Example iterating over at most 3 pages of a DescribeClusters operation.
751//    pageNum := 0
752//    err := client.DescribeClustersPages(params,
753//        func(page *DescribeClustersOutput, lastPage bool) bool {
754//            pageNum++
755//            fmt.Println(page)
756//            return pageNum <= 3
757//        })
758//
759func (c *CloudHSMV2) DescribeClustersPages(input *DescribeClustersInput, fn func(*DescribeClustersOutput, bool) bool) error {
760	return c.DescribeClustersPagesWithContext(aws.BackgroundContext(), input, fn)
761}
762
763// DescribeClustersPagesWithContext same as DescribeClustersPages except
764// it takes a Context and allows setting request options on the pages.
765//
766// The context must be non-nil and will be used for request cancellation. If
767// the context is nil a panic will occur. In the future the SDK may create
768// sub-contexts for http.Requests. See https://golang.org/pkg/context/
769// for more information on using Contexts.
770func (c *CloudHSMV2) DescribeClustersPagesWithContext(ctx aws.Context, input *DescribeClustersInput, fn func(*DescribeClustersOutput, bool) bool, opts ...request.Option) error {
771	p := request.Pagination{
772		NewRequest: func() (*request.Request, error) {
773			var inCpy *DescribeClustersInput
774			if input != nil {
775				tmp := *input
776				inCpy = &tmp
777			}
778			req, _ := c.DescribeClustersRequest(inCpy)
779			req.SetContext(ctx)
780			req.ApplyOptions(opts...)
781			return req, nil
782		},
783	}
784
785	cont := true
786	for p.Next() && cont {
787		cont = fn(p.Page().(*DescribeClustersOutput), !p.HasNextPage())
788	}
789	return p.Err()
790}
791
792const opInitializeCluster = "InitializeCluster"
793
794// InitializeClusterRequest generates a "aws/request.Request" representing the
795// client's request for the InitializeCluster operation. The "output" return
796// value will be populated with the request's response once the request completes
797// successfuly.
798//
799// Use "Send" method on the returned Request to send the API call to the service.
800// the "output" return value is not valid until after Send returns without error.
801//
802// See InitializeCluster for more information on using the InitializeCluster
803// API call, and error handling.
804//
805// This method is useful when you want to inject custom logic or configuration
806// into the SDK's request lifecycle. Such as custom headers, or retry logic.
807//
808//
809//    // Example sending a request using the InitializeClusterRequest method.
810//    req, resp := client.InitializeClusterRequest(params)
811//
812//    err := req.Send()
813//    if err == nil { // resp is now filled
814//        fmt.Println(resp)
815//    }
816//
817// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/InitializeCluster
818func (c *CloudHSMV2) InitializeClusterRequest(input *InitializeClusterInput) (req *request.Request, output *InitializeClusterOutput) {
819	op := &request.Operation{
820		Name:       opInitializeCluster,
821		HTTPMethod: "POST",
822		HTTPPath:   "/",
823	}
824
825	if input == nil {
826		input = &InitializeClusterInput{}
827	}
828
829	output = &InitializeClusterOutput{}
830	req = c.newRequest(op, input, output)
831	return
832}
833
834// InitializeCluster API operation for AWS CloudHSM V2.
835//
836// Claims an AWS CloudHSM cluster by submitting the cluster certificate issued
837// by your issuing certificate authority (CA) and the CA's root certificate.
838// Before you can claim a cluster, you must sign the cluster's certificate signing
839// request (CSR) with your issuing CA. To get the cluster's CSR, use DescribeClusters.
840//
841// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
842// with awserr.Error's Code and Message methods to get detailed information about
843// the error.
844//
845// See the AWS API reference guide for AWS CloudHSM V2's
846// API operation InitializeCluster for usage and error information.
847//
848// Returned Error Codes:
849//   * ErrCodeCloudHsmInternalFailureException "CloudHsmInternalFailureException"
850//   The request was rejected because of an AWS CloudHSM internal failure. The
851//   request can be retried.
852//
853//   * ErrCodeCloudHsmServiceException "CloudHsmServiceException"
854//   The request was rejected because an error occurred.
855//
856//   * ErrCodeCloudHsmResourceNotFoundException "CloudHsmResourceNotFoundException"
857//   The request was rejected because it refers to a resource that cannot be found.
858//
859//   * ErrCodeCloudHsmInvalidRequestException "CloudHsmInvalidRequestException"
860//   The request was rejected because it is not a valid request.
861//
862//   * ErrCodeCloudHsmAccessDeniedException "CloudHsmAccessDeniedException"
863//   The request was rejected because the requester does not have permission to
864//   perform the requested operation.
865//
866// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/InitializeCluster
867func (c *CloudHSMV2) InitializeCluster(input *InitializeClusterInput) (*InitializeClusterOutput, error) {
868	req, out := c.InitializeClusterRequest(input)
869	return out, req.Send()
870}
871
872// InitializeClusterWithContext is the same as InitializeCluster with the addition of
873// the ability to pass a context and additional request options.
874//
875// See InitializeCluster for details on how to use this API operation.
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 *CloudHSMV2) InitializeClusterWithContext(ctx aws.Context, input *InitializeClusterInput, opts ...request.Option) (*InitializeClusterOutput, error) {
882	req, out := c.InitializeClusterRequest(input)
883	req.SetContext(ctx)
884	req.ApplyOptions(opts...)
885	return out, req.Send()
886}
887
888const opListTags = "ListTags"
889
890// ListTagsRequest generates a "aws/request.Request" representing the
891// client's request for the ListTags operation. The "output" return
892// value will be populated with the request's response once the request completes
893// successfuly.
894//
895// Use "Send" method on the returned Request to send the API call to the service.
896// the "output" return value is not valid until after Send returns without error.
897//
898// See ListTags for more information on using the ListTags
899// API call, and error handling.
900//
901// This method is useful when you want to inject custom logic or configuration
902// into the SDK's request lifecycle. Such as custom headers, or retry logic.
903//
904//
905//    // Example sending a request using the ListTagsRequest method.
906//    req, resp := client.ListTagsRequest(params)
907//
908//    err := req.Send()
909//    if err == nil { // resp is now filled
910//        fmt.Println(resp)
911//    }
912//
913// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/ListTags
914func (c *CloudHSMV2) ListTagsRequest(input *ListTagsInput) (req *request.Request, output *ListTagsOutput) {
915	op := &request.Operation{
916		Name:       opListTags,
917		HTTPMethod: "POST",
918		HTTPPath:   "/",
919		Paginator: &request.Paginator{
920			InputTokens:     []string{"NextToken"},
921			OutputTokens:    []string{"NextToken"},
922			LimitToken:      "MaxResults",
923			TruncationToken: "",
924		},
925	}
926
927	if input == nil {
928		input = &ListTagsInput{}
929	}
930
931	output = &ListTagsOutput{}
932	req = c.newRequest(op, input, output)
933	return
934}
935
936// ListTags API operation for AWS CloudHSM V2.
937//
938// Gets a list of tags for the specified AWS CloudHSM cluster.
939//
940// This is a paginated operation, which means that each response might contain
941// only a subset of all the tags. When the response contains only a subset of
942// tags, it includes a NextToken value. Use this value in a subsequent ListTags
943// request to get more tags. When you receive a response with no NextToken (or
944// an empty or null value), that means there are no more tags to get.
945//
946// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
947// with awserr.Error's Code and Message methods to get detailed information about
948// the error.
949//
950// See the AWS API reference guide for AWS CloudHSM V2's
951// API operation ListTags for usage and error information.
952//
953// Returned Error Codes:
954//   * ErrCodeCloudHsmInternalFailureException "CloudHsmInternalFailureException"
955//   The request was rejected because of an AWS CloudHSM internal failure. The
956//   request can be retried.
957//
958//   * ErrCodeCloudHsmServiceException "CloudHsmServiceException"
959//   The request was rejected because an error occurred.
960//
961//   * ErrCodeCloudHsmResourceNotFoundException "CloudHsmResourceNotFoundException"
962//   The request was rejected because it refers to a resource that cannot be found.
963//
964//   * ErrCodeCloudHsmInvalidRequestException "CloudHsmInvalidRequestException"
965//   The request was rejected because it is not a valid request.
966//
967//   * ErrCodeCloudHsmAccessDeniedException "CloudHsmAccessDeniedException"
968//   The request was rejected because the requester does not have permission to
969//   perform the requested operation.
970//
971// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/ListTags
972func (c *CloudHSMV2) ListTags(input *ListTagsInput) (*ListTagsOutput, error) {
973	req, out := c.ListTagsRequest(input)
974	return out, req.Send()
975}
976
977// ListTagsWithContext is the same as ListTags with the addition of
978// the ability to pass a context and additional request options.
979//
980// See ListTags for details on how to use this API operation.
981//
982// The context must be non-nil and will be used for request cancellation. If
983// the context is nil a panic will occur. In the future the SDK may create
984// sub-contexts for http.Requests. See https://golang.org/pkg/context/
985// for more information on using Contexts.
986func (c *CloudHSMV2) ListTagsWithContext(ctx aws.Context, input *ListTagsInput, opts ...request.Option) (*ListTagsOutput, error) {
987	req, out := c.ListTagsRequest(input)
988	req.SetContext(ctx)
989	req.ApplyOptions(opts...)
990	return out, req.Send()
991}
992
993// ListTagsPages iterates over the pages of a ListTags operation,
994// calling the "fn" function with the response data for each page. To stop
995// iterating, return false from the fn function.
996//
997// See ListTags method for more information on how to use this operation.
998//
999// Note: This operation can generate multiple requests to a service.
1000//
1001//    // Example iterating over at most 3 pages of a ListTags operation.
1002//    pageNum := 0
1003//    err := client.ListTagsPages(params,
1004//        func(page *ListTagsOutput, lastPage bool) bool {
1005//            pageNum++
1006//            fmt.Println(page)
1007//            return pageNum <= 3
1008//        })
1009//
1010func (c *CloudHSMV2) ListTagsPages(input *ListTagsInput, fn func(*ListTagsOutput, bool) bool) error {
1011	return c.ListTagsPagesWithContext(aws.BackgroundContext(), input, fn)
1012}
1013
1014// ListTagsPagesWithContext same as ListTagsPages except
1015// it takes a Context and allows setting request options on the pages.
1016//
1017// The context must be non-nil and will be used for request cancellation. If
1018// the context is nil a panic will occur. In the future the SDK may create
1019// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1020// for more information on using Contexts.
1021func (c *CloudHSMV2) ListTagsPagesWithContext(ctx aws.Context, input *ListTagsInput, fn func(*ListTagsOutput, bool) bool, opts ...request.Option) error {
1022	p := request.Pagination{
1023		NewRequest: func() (*request.Request, error) {
1024			var inCpy *ListTagsInput
1025			if input != nil {
1026				tmp := *input
1027				inCpy = &tmp
1028			}
1029			req, _ := c.ListTagsRequest(inCpy)
1030			req.SetContext(ctx)
1031			req.ApplyOptions(opts...)
1032			return req, nil
1033		},
1034	}
1035
1036	cont := true
1037	for p.Next() && cont {
1038		cont = fn(p.Page().(*ListTagsOutput), !p.HasNextPage())
1039	}
1040	return p.Err()
1041}
1042
1043const opTagResource = "TagResource"
1044
1045// TagResourceRequest generates a "aws/request.Request" representing the
1046// client's request for the TagResource operation. The "output" return
1047// value will be populated with the request's response once the request completes
1048// successfuly.
1049//
1050// Use "Send" method on the returned Request to send the API call to the service.
1051// the "output" return value is not valid until after Send returns without error.
1052//
1053// See TagResource for more information on using the TagResource
1054// API call, and error handling.
1055//
1056// This method is useful when you want to inject custom logic or configuration
1057// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1058//
1059//
1060//    // Example sending a request using the TagResourceRequest method.
1061//    req, resp := client.TagResourceRequest(params)
1062//
1063//    err := req.Send()
1064//    if err == nil { // resp is now filled
1065//        fmt.Println(resp)
1066//    }
1067//
1068// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/TagResource
1069func (c *CloudHSMV2) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
1070	op := &request.Operation{
1071		Name:       opTagResource,
1072		HTTPMethod: "POST",
1073		HTTPPath:   "/",
1074	}
1075
1076	if input == nil {
1077		input = &TagResourceInput{}
1078	}
1079
1080	output = &TagResourceOutput{}
1081	req = c.newRequest(op, input, output)
1082	return
1083}
1084
1085// TagResource API operation for AWS CloudHSM V2.
1086//
1087// Adds or overwrites one or more tags for the specified AWS CloudHSM cluster.
1088//
1089// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1090// with awserr.Error's Code and Message methods to get detailed information about
1091// the error.
1092//
1093// See the AWS API reference guide for AWS CloudHSM V2's
1094// API operation TagResource for usage and error information.
1095//
1096// Returned Error Codes:
1097//   * ErrCodeCloudHsmInternalFailureException "CloudHsmInternalFailureException"
1098//   The request was rejected because of an AWS CloudHSM internal failure. The
1099//   request can be retried.
1100//
1101//   * ErrCodeCloudHsmServiceException "CloudHsmServiceException"
1102//   The request was rejected because an error occurred.
1103//
1104//   * ErrCodeCloudHsmResourceNotFoundException "CloudHsmResourceNotFoundException"
1105//   The request was rejected because it refers to a resource that cannot be found.
1106//
1107//   * ErrCodeCloudHsmInvalidRequestException "CloudHsmInvalidRequestException"
1108//   The request was rejected because it is not a valid request.
1109//
1110//   * ErrCodeCloudHsmAccessDeniedException "CloudHsmAccessDeniedException"
1111//   The request was rejected because the requester does not have permission to
1112//   perform the requested operation.
1113//
1114// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/TagResource
1115func (c *CloudHSMV2) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
1116	req, out := c.TagResourceRequest(input)
1117	return out, req.Send()
1118}
1119
1120// TagResourceWithContext is the same as TagResource with the addition of
1121// the ability to pass a context and additional request options.
1122//
1123// See TagResource for details on how to use this API operation.
1124//
1125// The context must be non-nil and will be used for request cancellation. If
1126// the context is nil a panic will occur. In the future the SDK may create
1127// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1128// for more information on using Contexts.
1129func (c *CloudHSMV2) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
1130	req, out := c.TagResourceRequest(input)
1131	req.SetContext(ctx)
1132	req.ApplyOptions(opts...)
1133	return out, req.Send()
1134}
1135
1136const opUntagResource = "UntagResource"
1137
1138// UntagResourceRequest generates a "aws/request.Request" representing the
1139// client's request for the UntagResource operation. The "output" return
1140// value will be populated with the request's response once the request completes
1141// successfuly.
1142//
1143// Use "Send" method on the returned Request to send the API call to the service.
1144// the "output" return value is not valid until after Send returns without error.
1145//
1146// See UntagResource for more information on using the UntagResource
1147// API call, and error handling.
1148//
1149// This method is useful when you want to inject custom logic or configuration
1150// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1151//
1152//
1153//    // Example sending a request using the UntagResourceRequest method.
1154//    req, resp := client.UntagResourceRequest(params)
1155//
1156//    err := req.Send()
1157//    if err == nil { // resp is now filled
1158//        fmt.Println(resp)
1159//    }
1160//
1161// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/UntagResource
1162func (c *CloudHSMV2) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
1163	op := &request.Operation{
1164		Name:       opUntagResource,
1165		HTTPMethod: "POST",
1166		HTTPPath:   "/",
1167	}
1168
1169	if input == nil {
1170		input = &UntagResourceInput{}
1171	}
1172
1173	output = &UntagResourceOutput{}
1174	req = c.newRequest(op, input, output)
1175	return
1176}
1177
1178// UntagResource API operation for AWS CloudHSM V2.
1179//
1180// Removes the specified tag or tags from the specified AWS CloudHSM cluster.
1181//
1182// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1183// with awserr.Error's Code and Message methods to get detailed information about
1184// the error.
1185//
1186// See the AWS API reference guide for AWS CloudHSM V2's
1187// API operation UntagResource for usage and error information.
1188//
1189// Returned Error Codes:
1190//   * ErrCodeCloudHsmInternalFailureException "CloudHsmInternalFailureException"
1191//   The request was rejected because of an AWS CloudHSM internal failure. The
1192//   request can be retried.
1193//
1194//   * ErrCodeCloudHsmServiceException "CloudHsmServiceException"
1195//   The request was rejected because an error occurred.
1196//
1197//   * ErrCodeCloudHsmResourceNotFoundException "CloudHsmResourceNotFoundException"
1198//   The request was rejected because it refers to a resource that cannot be found.
1199//
1200//   * ErrCodeCloudHsmInvalidRequestException "CloudHsmInvalidRequestException"
1201//   The request was rejected because it is not a valid request.
1202//
1203//   * ErrCodeCloudHsmAccessDeniedException "CloudHsmAccessDeniedException"
1204//   The request was rejected because the requester does not have permission to
1205//   perform the requested operation.
1206//
1207// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudhsmv2-2017-04-28/UntagResource
1208func (c *CloudHSMV2) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
1209	req, out := c.UntagResourceRequest(input)
1210	return out, req.Send()
1211}
1212
1213// UntagResourceWithContext is the same as UntagResource with the addition of
1214// the ability to pass a context and additional request options.
1215//
1216// See UntagResource for details on how to use this API operation.
1217//
1218// The context must be non-nil and will be used for request cancellation. If
1219// the context is nil a panic will occur. In the future the SDK may create
1220// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1221// for more information on using Contexts.
1222func (c *CloudHSMV2) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
1223	req, out := c.UntagResourceRequest(input)
1224	req.SetContext(ctx)
1225	req.ApplyOptions(opts...)
1226	return out, req.Send()
1227}
1228
1229// Contains information about a backup of an AWS CloudHSM cluster.
1230type Backup struct {
1231	_ struct{} `type:"structure"`
1232
1233	// The identifier (ID) of the backup.
1234	//
1235	// BackupId is a required field
1236	BackupId *string `type:"string" required:"true"`
1237
1238	// The state of the backup.
1239	BackupState *string `type:"string" enum:"BackupState"`
1240
1241	// The identifier (ID) of the cluster that was backed up.
1242	ClusterId *string `type:"string"`
1243
1244	CopyTimestamp *time.Time `type:"timestamp"`
1245
1246	// The date and time when the backup was created.
1247	CreateTimestamp *time.Time `type:"timestamp"`
1248
1249	SourceBackup *string `type:"string"`
1250
1251	SourceCluster *string `type:"string"`
1252
1253	SourceRegion *string `type:"string"`
1254}
1255
1256// String returns the string representation
1257func (s Backup) String() string {
1258	return awsutil.Prettify(s)
1259}
1260
1261// GoString returns the string representation
1262func (s Backup) GoString() string {
1263	return s.String()
1264}
1265
1266// SetBackupId sets the BackupId field's value.
1267func (s *Backup) SetBackupId(v string) *Backup {
1268	s.BackupId = &v
1269	return s
1270}
1271
1272// SetBackupState sets the BackupState field's value.
1273func (s *Backup) SetBackupState(v string) *Backup {
1274	s.BackupState = &v
1275	return s
1276}
1277
1278// SetClusterId sets the ClusterId field's value.
1279func (s *Backup) SetClusterId(v string) *Backup {
1280	s.ClusterId = &v
1281	return s
1282}
1283
1284// SetCopyTimestamp sets the CopyTimestamp field's value.
1285func (s *Backup) SetCopyTimestamp(v time.Time) *Backup {
1286	s.CopyTimestamp = &v
1287	return s
1288}
1289
1290// SetCreateTimestamp sets the CreateTimestamp field's value.
1291func (s *Backup) SetCreateTimestamp(v time.Time) *Backup {
1292	s.CreateTimestamp = &v
1293	return s
1294}
1295
1296// SetSourceBackup sets the SourceBackup field's value.
1297func (s *Backup) SetSourceBackup(v string) *Backup {
1298	s.SourceBackup = &v
1299	return s
1300}
1301
1302// SetSourceCluster sets the SourceCluster field's value.
1303func (s *Backup) SetSourceCluster(v string) *Backup {
1304	s.SourceCluster = &v
1305	return s
1306}
1307
1308// SetSourceRegion sets the SourceRegion field's value.
1309func (s *Backup) SetSourceRegion(v string) *Backup {
1310	s.SourceRegion = &v
1311	return s
1312}
1313
1314// Contains one or more certificates or a certificate signing request (CSR).
1315type Certificates struct {
1316	_ struct{} `type:"structure"`
1317
1318	// The HSM hardware certificate issued (signed) by AWS CloudHSM.
1319	AwsHardwareCertificate *string `type:"string"`
1320
1321	// The cluster certificate issued (signed) by the issuing certificate authority
1322	// (CA) of the cluster's owner.
1323	ClusterCertificate *string `type:"string"`
1324
1325	// The cluster's certificate signing request (CSR). The CSR exists only when
1326	// the cluster's state is UNINITIALIZED.
1327	ClusterCsr *string `type:"string"`
1328
1329	// The HSM certificate issued (signed) by the HSM hardware.
1330	HsmCertificate *string `type:"string"`
1331
1332	// The HSM hardware certificate issued (signed) by the hardware manufacturer.
1333	ManufacturerHardwareCertificate *string `type:"string"`
1334}
1335
1336// String returns the string representation
1337func (s Certificates) String() string {
1338	return awsutil.Prettify(s)
1339}
1340
1341// GoString returns the string representation
1342func (s Certificates) GoString() string {
1343	return s.String()
1344}
1345
1346// SetAwsHardwareCertificate sets the AwsHardwareCertificate field's value.
1347func (s *Certificates) SetAwsHardwareCertificate(v string) *Certificates {
1348	s.AwsHardwareCertificate = &v
1349	return s
1350}
1351
1352// SetClusterCertificate sets the ClusterCertificate field's value.
1353func (s *Certificates) SetClusterCertificate(v string) *Certificates {
1354	s.ClusterCertificate = &v
1355	return s
1356}
1357
1358// SetClusterCsr sets the ClusterCsr field's value.
1359func (s *Certificates) SetClusterCsr(v string) *Certificates {
1360	s.ClusterCsr = &v
1361	return s
1362}
1363
1364// SetHsmCertificate sets the HsmCertificate field's value.
1365func (s *Certificates) SetHsmCertificate(v string) *Certificates {
1366	s.HsmCertificate = &v
1367	return s
1368}
1369
1370// SetManufacturerHardwareCertificate sets the ManufacturerHardwareCertificate field's value.
1371func (s *Certificates) SetManufacturerHardwareCertificate(v string) *Certificates {
1372	s.ManufacturerHardwareCertificate = &v
1373	return s
1374}
1375
1376// Contains information about an AWS CloudHSM cluster.
1377type Cluster struct {
1378	_ struct{} `type:"structure"`
1379
1380	// The cluster's backup policy.
1381	BackupPolicy *string `type:"string" enum:"BackupPolicy"`
1382
1383	// Contains one or more certificates or a certificate signing request (CSR).
1384	Certificates *Certificates `type:"structure"`
1385
1386	// The cluster's identifier (ID).
1387	ClusterId *string `type:"string"`
1388
1389	// The date and time when the cluster was created.
1390	CreateTimestamp *time.Time `type:"timestamp"`
1391
1392	// The type of HSM that the cluster contains.
1393	HsmType *string `type:"string"`
1394
1395	// Contains information about the HSMs in the cluster.
1396	Hsms []*Hsm `type:"list"`
1397
1398	// The default password for the cluster's Pre-Crypto Officer (PRECO) user.
1399	PreCoPassword *string `min:"7" type:"string"`
1400
1401	// The identifier (ID) of the cluster's security group.
1402	SecurityGroup *string `type:"string"`
1403
1404	// The identifier (ID) of the backup used to create the cluster. This value
1405	// exists only when the cluster was created from a backup.
1406	SourceBackupId *string `type:"string"`
1407
1408	// The cluster's state.
1409	State *string `type:"string" enum:"ClusterState"`
1410
1411	// A description of the cluster's state.
1412	StateMessage *string `type:"string"`
1413
1414	// A map of the cluster's subnets and their corresponding Availability Zones.
1415	SubnetMapping map[string]*string `type:"map"`
1416
1417	// The identifier (ID) of the virtual private cloud (VPC) that contains the
1418	// cluster.
1419	VpcId *string `type:"string"`
1420}
1421
1422// String returns the string representation
1423func (s Cluster) String() string {
1424	return awsutil.Prettify(s)
1425}
1426
1427// GoString returns the string representation
1428func (s Cluster) GoString() string {
1429	return s.String()
1430}
1431
1432// SetBackupPolicy sets the BackupPolicy field's value.
1433func (s *Cluster) SetBackupPolicy(v string) *Cluster {
1434	s.BackupPolicy = &v
1435	return s
1436}
1437
1438// SetCertificates sets the Certificates field's value.
1439func (s *Cluster) SetCertificates(v *Certificates) *Cluster {
1440	s.Certificates = v
1441	return s
1442}
1443
1444// SetClusterId sets the ClusterId field's value.
1445func (s *Cluster) SetClusterId(v string) *Cluster {
1446	s.ClusterId = &v
1447	return s
1448}
1449
1450// SetCreateTimestamp sets the CreateTimestamp field's value.
1451func (s *Cluster) SetCreateTimestamp(v time.Time) *Cluster {
1452	s.CreateTimestamp = &v
1453	return s
1454}
1455
1456// SetHsmType sets the HsmType field's value.
1457func (s *Cluster) SetHsmType(v string) *Cluster {
1458	s.HsmType = &v
1459	return s
1460}
1461
1462// SetHsms sets the Hsms field's value.
1463func (s *Cluster) SetHsms(v []*Hsm) *Cluster {
1464	s.Hsms = v
1465	return s
1466}
1467
1468// SetPreCoPassword sets the PreCoPassword field's value.
1469func (s *Cluster) SetPreCoPassword(v string) *Cluster {
1470	s.PreCoPassword = &v
1471	return s
1472}
1473
1474// SetSecurityGroup sets the SecurityGroup field's value.
1475func (s *Cluster) SetSecurityGroup(v string) *Cluster {
1476	s.SecurityGroup = &v
1477	return s
1478}
1479
1480// SetSourceBackupId sets the SourceBackupId field's value.
1481func (s *Cluster) SetSourceBackupId(v string) *Cluster {
1482	s.SourceBackupId = &v
1483	return s
1484}
1485
1486// SetState sets the State field's value.
1487func (s *Cluster) SetState(v string) *Cluster {
1488	s.State = &v
1489	return s
1490}
1491
1492// SetStateMessage sets the StateMessage field's value.
1493func (s *Cluster) SetStateMessage(v string) *Cluster {
1494	s.StateMessage = &v
1495	return s
1496}
1497
1498// SetSubnetMapping sets the SubnetMapping field's value.
1499func (s *Cluster) SetSubnetMapping(v map[string]*string) *Cluster {
1500	s.SubnetMapping = v
1501	return s
1502}
1503
1504// SetVpcId sets the VpcId field's value.
1505func (s *Cluster) SetVpcId(v string) *Cluster {
1506	s.VpcId = &v
1507	return s
1508}
1509
1510type CopyBackupToRegionInput struct {
1511	_ struct{} `type:"structure"`
1512
1513	// BackupId is a required field
1514	BackupId *string `type:"string" required:"true"`
1515
1516	// DestinationRegion is a required field
1517	DestinationRegion *string `type:"string" required:"true"`
1518}
1519
1520// String returns the string representation
1521func (s CopyBackupToRegionInput) String() string {
1522	return awsutil.Prettify(s)
1523}
1524
1525// GoString returns the string representation
1526func (s CopyBackupToRegionInput) GoString() string {
1527	return s.String()
1528}
1529
1530// Validate inspects the fields of the type to determine if they are valid.
1531func (s *CopyBackupToRegionInput) Validate() error {
1532	invalidParams := request.ErrInvalidParams{Context: "CopyBackupToRegionInput"}
1533	if s.BackupId == nil {
1534		invalidParams.Add(request.NewErrParamRequired("BackupId"))
1535	}
1536	if s.DestinationRegion == nil {
1537		invalidParams.Add(request.NewErrParamRequired("DestinationRegion"))
1538	}
1539
1540	if invalidParams.Len() > 0 {
1541		return invalidParams
1542	}
1543	return nil
1544}
1545
1546// SetBackupId sets the BackupId field's value.
1547func (s *CopyBackupToRegionInput) SetBackupId(v string) *CopyBackupToRegionInput {
1548	s.BackupId = &v
1549	return s
1550}
1551
1552// SetDestinationRegion sets the DestinationRegion field's value.
1553func (s *CopyBackupToRegionInput) SetDestinationRegion(v string) *CopyBackupToRegionInput {
1554	s.DestinationRegion = &v
1555	return s
1556}
1557
1558type CopyBackupToRegionOutput struct {
1559	_ struct{} `type:"structure"`
1560
1561	DestinationBackup *DestinationBackup `type:"structure"`
1562}
1563
1564// String returns the string representation
1565func (s CopyBackupToRegionOutput) String() string {
1566	return awsutil.Prettify(s)
1567}
1568
1569// GoString returns the string representation
1570func (s CopyBackupToRegionOutput) GoString() string {
1571	return s.String()
1572}
1573
1574// SetDestinationBackup sets the DestinationBackup field's value.
1575func (s *CopyBackupToRegionOutput) SetDestinationBackup(v *DestinationBackup) *CopyBackupToRegionOutput {
1576	s.DestinationBackup = v
1577	return s
1578}
1579
1580type CreateClusterInput struct {
1581	_ struct{} `type:"structure"`
1582
1583	// The type of HSM to use in the cluster. Currently the only allowed value is
1584	// hsm1.medium.
1585	//
1586	// HsmType is a required field
1587	HsmType *string `type:"string" required:"true"`
1588
1589	// The identifier (ID) of the cluster backup to restore. Use this value to restore
1590	// the cluster from a backup instead of creating a new cluster. To find the
1591	// backup ID, use DescribeBackups.
1592	SourceBackupId *string `type:"string"`
1593
1594	// The identifiers (IDs) of the subnets where you are creating the cluster.
1595	// You must specify at least one subnet. If you specify multiple subnets, they
1596	// must meet the following criteria:
1597	//
1598	//    * All subnets must be in the same virtual private cloud (VPC).
1599	//
1600	//    * You can specify only one subnet per Availability Zone.
1601	//
1602	// SubnetIds is a required field
1603	SubnetIds []*string `min:"1" type:"list" required:"true"`
1604}
1605
1606// String returns the string representation
1607func (s CreateClusterInput) String() string {
1608	return awsutil.Prettify(s)
1609}
1610
1611// GoString returns the string representation
1612func (s CreateClusterInput) GoString() string {
1613	return s.String()
1614}
1615
1616// Validate inspects the fields of the type to determine if they are valid.
1617func (s *CreateClusterInput) Validate() error {
1618	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
1619	if s.HsmType == nil {
1620		invalidParams.Add(request.NewErrParamRequired("HsmType"))
1621	}
1622	if s.SubnetIds == nil {
1623		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
1624	}
1625	if s.SubnetIds != nil && len(s.SubnetIds) < 1 {
1626		invalidParams.Add(request.NewErrParamMinLen("SubnetIds", 1))
1627	}
1628
1629	if invalidParams.Len() > 0 {
1630		return invalidParams
1631	}
1632	return nil
1633}
1634
1635// SetHsmType sets the HsmType field's value.
1636func (s *CreateClusterInput) SetHsmType(v string) *CreateClusterInput {
1637	s.HsmType = &v
1638	return s
1639}
1640
1641// SetSourceBackupId sets the SourceBackupId field's value.
1642func (s *CreateClusterInput) SetSourceBackupId(v string) *CreateClusterInput {
1643	s.SourceBackupId = &v
1644	return s
1645}
1646
1647// SetSubnetIds sets the SubnetIds field's value.
1648func (s *CreateClusterInput) SetSubnetIds(v []*string) *CreateClusterInput {
1649	s.SubnetIds = v
1650	return s
1651}
1652
1653type CreateClusterOutput struct {
1654	_ struct{} `type:"structure"`
1655
1656	// Information about the cluster that was created.
1657	Cluster *Cluster `type:"structure"`
1658}
1659
1660// String returns the string representation
1661func (s CreateClusterOutput) String() string {
1662	return awsutil.Prettify(s)
1663}
1664
1665// GoString returns the string representation
1666func (s CreateClusterOutput) GoString() string {
1667	return s.String()
1668}
1669
1670// SetCluster sets the Cluster field's value.
1671func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
1672	s.Cluster = v
1673	return s
1674}
1675
1676type CreateHsmInput struct {
1677	_ struct{} `type:"structure"`
1678
1679	// The Availability Zone where you are creating the HSM. To find the cluster's
1680	// Availability Zones, use DescribeClusters.
1681	//
1682	// AvailabilityZone is a required field
1683	AvailabilityZone *string `type:"string" required:"true"`
1684
1685	// The identifier (ID) of the HSM's cluster. To find the cluster ID, use DescribeClusters.
1686	//
1687	// ClusterId is a required field
1688	ClusterId *string `type:"string" required:"true"`
1689
1690	// The HSM's IP address. If you specify an IP address, use an available address
1691	// from the subnet that maps to the Availability Zone where you are creating
1692	// the HSM. If you don't specify an IP address, one is chosen for you from that
1693	// subnet.
1694	IpAddress *string `type:"string"`
1695}
1696
1697// String returns the string representation
1698func (s CreateHsmInput) String() string {
1699	return awsutil.Prettify(s)
1700}
1701
1702// GoString returns the string representation
1703func (s CreateHsmInput) GoString() string {
1704	return s.String()
1705}
1706
1707// Validate inspects the fields of the type to determine if they are valid.
1708func (s *CreateHsmInput) Validate() error {
1709	invalidParams := request.ErrInvalidParams{Context: "CreateHsmInput"}
1710	if s.AvailabilityZone == nil {
1711		invalidParams.Add(request.NewErrParamRequired("AvailabilityZone"))
1712	}
1713	if s.ClusterId == nil {
1714		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
1715	}
1716
1717	if invalidParams.Len() > 0 {
1718		return invalidParams
1719	}
1720	return nil
1721}
1722
1723// SetAvailabilityZone sets the AvailabilityZone field's value.
1724func (s *CreateHsmInput) SetAvailabilityZone(v string) *CreateHsmInput {
1725	s.AvailabilityZone = &v
1726	return s
1727}
1728
1729// SetClusterId sets the ClusterId field's value.
1730func (s *CreateHsmInput) SetClusterId(v string) *CreateHsmInput {
1731	s.ClusterId = &v
1732	return s
1733}
1734
1735// SetIpAddress sets the IpAddress field's value.
1736func (s *CreateHsmInput) SetIpAddress(v string) *CreateHsmInput {
1737	s.IpAddress = &v
1738	return s
1739}
1740
1741type CreateHsmOutput struct {
1742	_ struct{} `type:"structure"`
1743
1744	// Information about the HSM that was created.
1745	Hsm *Hsm `type:"structure"`
1746}
1747
1748// String returns the string representation
1749func (s CreateHsmOutput) String() string {
1750	return awsutil.Prettify(s)
1751}
1752
1753// GoString returns the string representation
1754func (s CreateHsmOutput) GoString() string {
1755	return s.String()
1756}
1757
1758// SetHsm sets the Hsm field's value.
1759func (s *CreateHsmOutput) SetHsm(v *Hsm) *CreateHsmOutput {
1760	s.Hsm = v
1761	return s
1762}
1763
1764type DeleteClusterInput struct {
1765	_ struct{} `type:"structure"`
1766
1767	// The identifier (ID) of the cluster that you are deleting. To find the cluster
1768	// ID, use DescribeClusters.
1769	//
1770	// ClusterId is a required field
1771	ClusterId *string `type:"string" required:"true"`
1772}
1773
1774// String returns the string representation
1775func (s DeleteClusterInput) String() string {
1776	return awsutil.Prettify(s)
1777}
1778
1779// GoString returns the string representation
1780func (s DeleteClusterInput) GoString() string {
1781	return s.String()
1782}
1783
1784// Validate inspects the fields of the type to determine if they are valid.
1785func (s *DeleteClusterInput) Validate() error {
1786	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
1787	if s.ClusterId == nil {
1788		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
1789	}
1790
1791	if invalidParams.Len() > 0 {
1792		return invalidParams
1793	}
1794	return nil
1795}
1796
1797// SetClusterId sets the ClusterId field's value.
1798func (s *DeleteClusterInput) SetClusterId(v string) *DeleteClusterInput {
1799	s.ClusterId = &v
1800	return s
1801}
1802
1803type DeleteClusterOutput struct {
1804	_ struct{} `type:"structure"`
1805
1806	// Information about the cluster that was deleted.
1807	Cluster *Cluster `type:"structure"`
1808}
1809
1810// String returns the string representation
1811func (s DeleteClusterOutput) String() string {
1812	return awsutil.Prettify(s)
1813}
1814
1815// GoString returns the string representation
1816func (s DeleteClusterOutput) GoString() string {
1817	return s.String()
1818}
1819
1820// SetCluster sets the Cluster field's value.
1821func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
1822	s.Cluster = v
1823	return s
1824}
1825
1826type DeleteHsmInput struct {
1827	_ struct{} `type:"structure"`
1828
1829	// The identifier (ID) of the cluster that contains the HSM that you are deleting.
1830	//
1831	// ClusterId is a required field
1832	ClusterId *string `type:"string" required:"true"`
1833
1834	// The identifier (ID) of the elastic network interface (ENI) of the HSM that
1835	// you are deleting.
1836	EniId *string `type:"string"`
1837
1838	// The IP address of the elastic network interface (ENI) of the HSM that you
1839	// are deleting.
1840	EniIp *string `type:"string"`
1841
1842	// The identifier (ID) of the HSM that you are deleting.
1843	HsmId *string `type:"string"`
1844}
1845
1846// String returns the string representation
1847func (s DeleteHsmInput) String() string {
1848	return awsutil.Prettify(s)
1849}
1850
1851// GoString returns the string representation
1852func (s DeleteHsmInput) GoString() string {
1853	return s.String()
1854}
1855
1856// Validate inspects the fields of the type to determine if they are valid.
1857func (s *DeleteHsmInput) Validate() error {
1858	invalidParams := request.ErrInvalidParams{Context: "DeleteHsmInput"}
1859	if s.ClusterId == nil {
1860		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
1861	}
1862
1863	if invalidParams.Len() > 0 {
1864		return invalidParams
1865	}
1866	return nil
1867}
1868
1869// SetClusterId sets the ClusterId field's value.
1870func (s *DeleteHsmInput) SetClusterId(v string) *DeleteHsmInput {
1871	s.ClusterId = &v
1872	return s
1873}
1874
1875// SetEniId sets the EniId field's value.
1876func (s *DeleteHsmInput) SetEniId(v string) *DeleteHsmInput {
1877	s.EniId = &v
1878	return s
1879}
1880
1881// SetEniIp sets the EniIp field's value.
1882func (s *DeleteHsmInput) SetEniIp(v string) *DeleteHsmInput {
1883	s.EniIp = &v
1884	return s
1885}
1886
1887// SetHsmId sets the HsmId field's value.
1888func (s *DeleteHsmInput) SetHsmId(v string) *DeleteHsmInput {
1889	s.HsmId = &v
1890	return s
1891}
1892
1893type DeleteHsmOutput struct {
1894	_ struct{} `type:"structure"`
1895
1896	// The identifier (ID) of the HSM that was deleted.
1897	HsmId *string `type:"string"`
1898}
1899
1900// String returns the string representation
1901func (s DeleteHsmOutput) String() string {
1902	return awsutil.Prettify(s)
1903}
1904
1905// GoString returns the string representation
1906func (s DeleteHsmOutput) GoString() string {
1907	return s.String()
1908}
1909
1910// SetHsmId sets the HsmId field's value.
1911func (s *DeleteHsmOutput) SetHsmId(v string) *DeleteHsmOutput {
1912	s.HsmId = &v
1913	return s
1914}
1915
1916type DescribeBackupsInput struct {
1917	_ struct{} `type:"structure"`
1918
1919	// One or more filters to limit the items returned in the response.
1920	//
1921	// Use the backupIds filter to return only the specified backups. Specify backups
1922	// by their backup identifier (ID).
1923	//
1924	// Use the clusterIds filter to return only the backups for the specified clusters.
1925	// Specify clusters by their cluster identifier (ID).
1926	//
1927	// Use the states filter to return only backups that match the specified state.
1928	Filters map[string][]*string `type:"map"`
1929
1930	// The maximum number of backups to return in the response. When there are more
1931	// backups than the number you specify, the response contains a NextToken value.
1932	MaxResults *int64 `min:"1" type:"integer"`
1933
1934	// The NextToken value that you received in the previous response. Use this
1935	// value to get more backups.
1936	NextToken *string `type:"string"`
1937
1938	SortAscending *bool `type:"boolean"`
1939}
1940
1941// String returns the string representation
1942func (s DescribeBackupsInput) String() string {
1943	return awsutil.Prettify(s)
1944}
1945
1946// GoString returns the string representation
1947func (s DescribeBackupsInput) GoString() string {
1948	return s.String()
1949}
1950
1951// Validate inspects the fields of the type to determine if they are valid.
1952func (s *DescribeBackupsInput) Validate() error {
1953	invalidParams := request.ErrInvalidParams{Context: "DescribeBackupsInput"}
1954	if s.MaxResults != nil && *s.MaxResults < 1 {
1955		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
1956	}
1957
1958	if invalidParams.Len() > 0 {
1959		return invalidParams
1960	}
1961	return nil
1962}
1963
1964// SetFilters sets the Filters field's value.
1965func (s *DescribeBackupsInput) SetFilters(v map[string][]*string) *DescribeBackupsInput {
1966	s.Filters = v
1967	return s
1968}
1969
1970// SetMaxResults sets the MaxResults field's value.
1971func (s *DescribeBackupsInput) SetMaxResults(v int64) *DescribeBackupsInput {
1972	s.MaxResults = &v
1973	return s
1974}
1975
1976// SetNextToken sets the NextToken field's value.
1977func (s *DescribeBackupsInput) SetNextToken(v string) *DescribeBackupsInput {
1978	s.NextToken = &v
1979	return s
1980}
1981
1982// SetSortAscending sets the SortAscending field's value.
1983func (s *DescribeBackupsInput) SetSortAscending(v bool) *DescribeBackupsInput {
1984	s.SortAscending = &v
1985	return s
1986}
1987
1988type DescribeBackupsOutput struct {
1989	_ struct{} `type:"structure"`
1990
1991	// A list of backups.
1992	Backups []*Backup `type:"list"`
1993
1994	// An opaque string that indicates that the response contains only a subset
1995	// of backups. Use this value in a subsequent DescribeBackups request to get
1996	// more backups.
1997	NextToken *string `type:"string"`
1998}
1999
2000// String returns the string representation
2001func (s DescribeBackupsOutput) String() string {
2002	return awsutil.Prettify(s)
2003}
2004
2005// GoString returns the string representation
2006func (s DescribeBackupsOutput) GoString() string {
2007	return s.String()
2008}
2009
2010// SetBackups sets the Backups field's value.
2011func (s *DescribeBackupsOutput) SetBackups(v []*Backup) *DescribeBackupsOutput {
2012	s.Backups = v
2013	return s
2014}
2015
2016// SetNextToken sets the NextToken field's value.
2017func (s *DescribeBackupsOutput) SetNextToken(v string) *DescribeBackupsOutput {
2018	s.NextToken = &v
2019	return s
2020}
2021
2022type DescribeClustersInput struct {
2023	_ struct{} `type:"structure"`
2024
2025	// One or more filters to limit the items returned in the response.
2026	//
2027	// Use the clusterIds filter to return only the specified clusters. Specify
2028	// clusters by their cluster identifier (ID).
2029	//
2030	// Use the vpcIds filter to return only the clusters in the specified virtual
2031	// private clouds (VPCs). Specify VPCs by their VPC identifier (ID).
2032	//
2033	// Use the states filter to return only clusters that match the specified state.
2034	Filters map[string][]*string `type:"map"`
2035
2036	// The maximum number of clusters to return in the response. When there are
2037	// more clusters than the number you specify, the response contains a NextToken
2038	// value.
2039	MaxResults *int64 `min:"1" type:"integer"`
2040
2041	// The NextToken value that you received in the previous response. Use this
2042	// value to get more clusters.
2043	NextToken *string `type:"string"`
2044}
2045
2046// String returns the string representation
2047func (s DescribeClustersInput) String() string {
2048	return awsutil.Prettify(s)
2049}
2050
2051// GoString returns the string representation
2052func (s DescribeClustersInput) GoString() string {
2053	return s.String()
2054}
2055
2056// Validate inspects the fields of the type to determine if they are valid.
2057func (s *DescribeClustersInput) Validate() error {
2058	invalidParams := request.ErrInvalidParams{Context: "DescribeClustersInput"}
2059	if s.MaxResults != nil && *s.MaxResults < 1 {
2060		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
2061	}
2062
2063	if invalidParams.Len() > 0 {
2064		return invalidParams
2065	}
2066	return nil
2067}
2068
2069// SetFilters sets the Filters field's value.
2070func (s *DescribeClustersInput) SetFilters(v map[string][]*string) *DescribeClustersInput {
2071	s.Filters = v
2072	return s
2073}
2074
2075// SetMaxResults sets the MaxResults field's value.
2076func (s *DescribeClustersInput) SetMaxResults(v int64) *DescribeClustersInput {
2077	s.MaxResults = &v
2078	return s
2079}
2080
2081// SetNextToken sets the NextToken field's value.
2082func (s *DescribeClustersInput) SetNextToken(v string) *DescribeClustersInput {
2083	s.NextToken = &v
2084	return s
2085}
2086
2087type DescribeClustersOutput struct {
2088	_ struct{} `type:"structure"`
2089
2090	// A list of clusters.
2091	Clusters []*Cluster `type:"list"`
2092
2093	// An opaque string that indicates that the response contains only a subset
2094	// of clusters. Use this value in a subsequent DescribeClusters request to get
2095	// more clusters.
2096	NextToken *string `type:"string"`
2097}
2098
2099// String returns the string representation
2100func (s DescribeClustersOutput) String() string {
2101	return awsutil.Prettify(s)
2102}
2103
2104// GoString returns the string representation
2105func (s DescribeClustersOutput) GoString() string {
2106	return s.String()
2107}
2108
2109// SetClusters sets the Clusters field's value.
2110func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
2111	s.Clusters = v
2112	return s
2113}
2114
2115// SetNextToken sets the NextToken field's value.
2116func (s *DescribeClustersOutput) SetNextToken(v string) *DescribeClustersOutput {
2117	s.NextToken = &v
2118	return s
2119}
2120
2121type DestinationBackup struct {
2122	_ struct{} `type:"structure"`
2123
2124	CreateTimestamp *time.Time `type:"timestamp"`
2125
2126	SourceBackup *string `type:"string"`
2127
2128	SourceCluster *string `type:"string"`
2129
2130	SourceRegion *string `type:"string"`
2131}
2132
2133// String returns the string representation
2134func (s DestinationBackup) String() string {
2135	return awsutil.Prettify(s)
2136}
2137
2138// GoString returns the string representation
2139func (s DestinationBackup) GoString() string {
2140	return s.String()
2141}
2142
2143// SetCreateTimestamp sets the CreateTimestamp field's value.
2144func (s *DestinationBackup) SetCreateTimestamp(v time.Time) *DestinationBackup {
2145	s.CreateTimestamp = &v
2146	return s
2147}
2148
2149// SetSourceBackup sets the SourceBackup field's value.
2150func (s *DestinationBackup) SetSourceBackup(v string) *DestinationBackup {
2151	s.SourceBackup = &v
2152	return s
2153}
2154
2155// SetSourceCluster sets the SourceCluster field's value.
2156func (s *DestinationBackup) SetSourceCluster(v string) *DestinationBackup {
2157	s.SourceCluster = &v
2158	return s
2159}
2160
2161// SetSourceRegion sets the SourceRegion field's value.
2162func (s *DestinationBackup) SetSourceRegion(v string) *DestinationBackup {
2163	s.SourceRegion = &v
2164	return s
2165}
2166
2167// Contains information about a hardware security module (HSM) in an AWS CloudHSM
2168// cluster.
2169type Hsm struct {
2170	_ struct{} `type:"structure"`
2171
2172	// The Availability Zone that contains the HSM.
2173	AvailabilityZone *string `type:"string"`
2174
2175	// The identifier (ID) of the cluster that contains the HSM.
2176	ClusterId *string `type:"string"`
2177
2178	// The identifier (ID) of the HSM's elastic network interface (ENI).
2179	EniId *string `type:"string"`
2180
2181	// The IP address of the HSM's elastic network interface (ENI).
2182	EniIp *string `type:"string"`
2183
2184	// The HSM's identifier (ID).
2185	//
2186	// HsmId is a required field
2187	HsmId *string `type:"string" required:"true"`
2188
2189	// The HSM's state.
2190	State *string `type:"string" enum:"HsmState"`
2191
2192	// A description of the HSM's state.
2193	StateMessage *string `type:"string"`
2194
2195	// The subnet that contains the HSM's elastic network interface (ENI).
2196	SubnetId *string `type:"string"`
2197}
2198
2199// String returns the string representation
2200func (s Hsm) String() string {
2201	return awsutil.Prettify(s)
2202}
2203
2204// GoString returns the string representation
2205func (s Hsm) GoString() string {
2206	return s.String()
2207}
2208
2209// SetAvailabilityZone sets the AvailabilityZone field's value.
2210func (s *Hsm) SetAvailabilityZone(v string) *Hsm {
2211	s.AvailabilityZone = &v
2212	return s
2213}
2214
2215// SetClusterId sets the ClusterId field's value.
2216func (s *Hsm) SetClusterId(v string) *Hsm {
2217	s.ClusterId = &v
2218	return s
2219}
2220
2221// SetEniId sets the EniId field's value.
2222func (s *Hsm) SetEniId(v string) *Hsm {
2223	s.EniId = &v
2224	return s
2225}
2226
2227// SetEniIp sets the EniIp field's value.
2228func (s *Hsm) SetEniIp(v string) *Hsm {
2229	s.EniIp = &v
2230	return s
2231}
2232
2233// SetHsmId sets the HsmId field's value.
2234func (s *Hsm) SetHsmId(v string) *Hsm {
2235	s.HsmId = &v
2236	return s
2237}
2238
2239// SetState sets the State field's value.
2240func (s *Hsm) SetState(v string) *Hsm {
2241	s.State = &v
2242	return s
2243}
2244
2245// SetStateMessage sets the StateMessage field's value.
2246func (s *Hsm) SetStateMessage(v string) *Hsm {
2247	s.StateMessage = &v
2248	return s
2249}
2250
2251// SetSubnetId sets the SubnetId field's value.
2252func (s *Hsm) SetSubnetId(v string) *Hsm {
2253	s.SubnetId = &v
2254	return s
2255}
2256
2257type InitializeClusterInput struct {
2258	_ struct{} `type:"structure"`
2259
2260	// The identifier (ID) of the cluster that you are claiming. To find the cluster
2261	// ID, use DescribeClusters.
2262	//
2263	// ClusterId is a required field
2264	ClusterId *string `type:"string" required:"true"`
2265
2266	// The cluster certificate issued (signed) by your issuing certificate authority
2267	// (CA). The certificate must be in PEM format and can contain a maximum of
2268	// 5000 characters.
2269	//
2270	// SignedCert is a required field
2271	SignedCert *string `type:"string" required:"true"`
2272
2273	// The issuing certificate of the issuing certificate authority (CA) that issued
2274	// (signed) the cluster certificate. This can be a root (self-signed) certificate
2275	// or a certificate chain that begins with the certificate that issued the cluster
2276	// certificate and ends with a root certificate. The certificate or certificate
2277	// chain must be in PEM format and can contain a maximum of 5000 characters.
2278	//
2279	// TrustAnchor is a required field
2280	TrustAnchor *string `type:"string" required:"true"`
2281}
2282
2283// String returns the string representation
2284func (s InitializeClusterInput) String() string {
2285	return awsutil.Prettify(s)
2286}
2287
2288// GoString returns the string representation
2289func (s InitializeClusterInput) GoString() string {
2290	return s.String()
2291}
2292
2293// Validate inspects the fields of the type to determine if they are valid.
2294func (s *InitializeClusterInput) Validate() error {
2295	invalidParams := request.ErrInvalidParams{Context: "InitializeClusterInput"}
2296	if s.ClusterId == nil {
2297		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
2298	}
2299	if s.SignedCert == nil {
2300		invalidParams.Add(request.NewErrParamRequired("SignedCert"))
2301	}
2302	if s.TrustAnchor == nil {
2303		invalidParams.Add(request.NewErrParamRequired("TrustAnchor"))
2304	}
2305
2306	if invalidParams.Len() > 0 {
2307		return invalidParams
2308	}
2309	return nil
2310}
2311
2312// SetClusterId sets the ClusterId field's value.
2313func (s *InitializeClusterInput) SetClusterId(v string) *InitializeClusterInput {
2314	s.ClusterId = &v
2315	return s
2316}
2317
2318// SetSignedCert sets the SignedCert field's value.
2319func (s *InitializeClusterInput) SetSignedCert(v string) *InitializeClusterInput {
2320	s.SignedCert = &v
2321	return s
2322}
2323
2324// SetTrustAnchor sets the TrustAnchor field's value.
2325func (s *InitializeClusterInput) SetTrustAnchor(v string) *InitializeClusterInput {
2326	s.TrustAnchor = &v
2327	return s
2328}
2329
2330type InitializeClusterOutput struct {
2331	_ struct{} `type:"structure"`
2332
2333	// The cluster's state.
2334	State *string `type:"string" enum:"ClusterState"`
2335
2336	// A description of the cluster's state.
2337	StateMessage *string `type:"string"`
2338}
2339
2340// String returns the string representation
2341func (s InitializeClusterOutput) String() string {
2342	return awsutil.Prettify(s)
2343}
2344
2345// GoString returns the string representation
2346func (s InitializeClusterOutput) GoString() string {
2347	return s.String()
2348}
2349
2350// SetState sets the State field's value.
2351func (s *InitializeClusterOutput) SetState(v string) *InitializeClusterOutput {
2352	s.State = &v
2353	return s
2354}
2355
2356// SetStateMessage sets the StateMessage field's value.
2357func (s *InitializeClusterOutput) SetStateMessage(v string) *InitializeClusterOutput {
2358	s.StateMessage = &v
2359	return s
2360}
2361
2362type ListTagsInput struct {
2363	_ struct{} `type:"structure"`
2364
2365	// The maximum number of tags to return in the response. When there are more
2366	// tags than the number you specify, the response contains a NextToken value.
2367	MaxResults *int64 `min:"1" type:"integer"`
2368
2369	// The NextToken value that you received in the previous response. Use this
2370	// value to get more tags.
2371	NextToken *string `type:"string"`
2372
2373	// The cluster identifier (ID) for the cluster whose tags you are getting. To
2374	// find the cluster ID, use DescribeClusters.
2375	//
2376	// ResourceId is a required field
2377	ResourceId *string `type:"string" required:"true"`
2378}
2379
2380// String returns the string representation
2381func (s ListTagsInput) String() string {
2382	return awsutil.Prettify(s)
2383}
2384
2385// GoString returns the string representation
2386func (s ListTagsInput) GoString() string {
2387	return s.String()
2388}
2389
2390// Validate inspects the fields of the type to determine if they are valid.
2391func (s *ListTagsInput) Validate() error {
2392	invalidParams := request.ErrInvalidParams{Context: "ListTagsInput"}
2393	if s.MaxResults != nil && *s.MaxResults < 1 {
2394		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
2395	}
2396	if s.ResourceId == nil {
2397		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
2398	}
2399
2400	if invalidParams.Len() > 0 {
2401		return invalidParams
2402	}
2403	return nil
2404}
2405
2406// SetMaxResults sets the MaxResults field's value.
2407func (s *ListTagsInput) SetMaxResults(v int64) *ListTagsInput {
2408	s.MaxResults = &v
2409	return s
2410}
2411
2412// SetNextToken sets the NextToken field's value.
2413func (s *ListTagsInput) SetNextToken(v string) *ListTagsInput {
2414	s.NextToken = &v
2415	return s
2416}
2417
2418// SetResourceId sets the ResourceId field's value.
2419func (s *ListTagsInput) SetResourceId(v string) *ListTagsInput {
2420	s.ResourceId = &v
2421	return s
2422}
2423
2424type ListTagsOutput struct {
2425	_ struct{} `type:"structure"`
2426
2427	// An opaque string that indicates that the response contains only a subset
2428	// of tags. Use this value in a subsequent ListTags request to get more tags.
2429	NextToken *string `type:"string"`
2430
2431	// A list of tags.
2432	//
2433	// TagList is a required field
2434	TagList []*Tag `min:"1" type:"list" required:"true"`
2435}
2436
2437// String returns the string representation
2438func (s ListTagsOutput) String() string {
2439	return awsutil.Prettify(s)
2440}
2441
2442// GoString returns the string representation
2443func (s ListTagsOutput) GoString() string {
2444	return s.String()
2445}
2446
2447// SetNextToken sets the NextToken field's value.
2448func (s *ListTagsOutput) SetNextToken(v string) *ListTagsOutput {
2449	s.NextToken = &v
2450	return s
2451}
2452
2453// SetTagList sets the TagList field's value.
2454func (s *ListTagsOutput) SetTagList(v []*Tag) *ListTagsOutput {
2455	s.TagList = v
2456	return s
2457}
2458
2459// Contains a tag. A tag is a key-value pair.
2460type Tag struct {
2461	_ struct{} `type:"structure"`
2462
2463	// The key of the tag.
2464	//
2465	// Key is a required field
2466	Key *string `min:"1" type:"string" required:"true"`
2467
2468	// The value of the tag.
2469	//
2470	// Value is a required field
2471	Value *string `type:"string" required:"true"`
2472}
2473
2474// String returns the string representation
2475func (s Tag) String() string {
2476	return awsutil.Prettify(s)
2477}
2478
2479// GoString returns the string representation
2480func (s Tag) GoString() string {
2481	return s.String()
2482}
2483
2484// Validate inspects the fields of the type to determine if they are valid.
2485func (s *Tag) Validate() error {
2486	invalidParams := request.ErrInvalidParams{Context: "Tag"}
2487	if s.Key == nil {
2488		invalidParams.Add(request.NewErrParamRequired("Key"))
2489	}
2490	if s.Key != nil && len(*s.Key) < 1 {
2491		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
2492	}
2493	if s.Value == nil {
2494		invalidParams.Add(request.NewErrParamRequired("Value"))
2495	}
2496
2497	if invalidParams.Len() > 0 {
2498		return invalidParams
2499	}
2500	return nil
2501}
2502
2503// SetKey sets the Key field's value.
2504func (s *Tag) SetKey(v string) *Tag {
2505	s.Key = &v
2506	return s
2507}
2508
2509// SetValue sets the Value field's value.
2510func (s *Tag) SetValue(v string) *Tag {
2511	s.Value = &v
2512	return s
2513}
2514
2515type TagResourceInput struct {
2516	_ struct{} `type:"structure"`
2517
2518	// The cluster identifier (ID) for the cluster that you are tagging. To find
2519	// the cluster ID, use DescribeClusters.
2520	//
2521	// ResourceId is a required field
2522	ResourceId *string `type:"string" required:"true"`
2523
2524	// A list of one or more tags.
2525	//
2526	// TagList is a required field
2527	TagList []*Tag `min:"1" type:"list" required:"true"`
2528}
2529
2530// String returns the string representation
2531func (s TagResourceInput) String() string {
2532	return awsutil.Prettify(s)
2533}
2534
2535// GoString returns the string representation
2536func (s TagResourceInput) GoString() string {
2537	return s.String()
2538}
2539
2540// Validate inspects the fields of the type to determine if they are valid.
2541func (s *TagResourceInput) Validate() error {
2542	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
2543	if s.ResourceId == nil {
2544		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
2545	}
2546	if s.TagList == nil {
2547		invalidParams.Add(request.NewErrParamRequired("TagList"))
2548	}
2549	if s.TagList != nil && len(s.TagList) < 1 {
2550		invalidParams.Add(request.NewErrParamMinLen("TagList", 1))
2551	}
2552	if s.TagList != nil {
2553		for i, v := range s.TagList {
2554			if v == nil {
2555				continue
2556			}
2557			if err := v.Validate(); err != nil {
2558				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagList", i), err.(request.ErrInvalidParams))
2559			}
2560		}
2561	}
2562
2563	if invalidParams.Len() > 0 {
2564		return invalidParams
2565	}
2566	return nil
2567}
2568
2569// SetResourceId sets the ResourceId field's value.
2570func (s *TagResourceInput) SetResourceId(v string) *TagResourceInput {
2571	s.ResourceId = &v
2572	return s
2573}
2574
2575// SetTagList sets the TagList field's value.
2576func (s *TagResourceInput) SetTagList(v []*Tag) *TagResourceInput {
2577	s.TagList = v
2578	return s
2579}
2580
2581type TagResourceOutput struct {
2582	_ struct{} `type:"structure"`
2583}
2584
2585// String returns the string representation
2586func (s TagResourceOutput) String() string {
2587	return awsutil.Prettify(s)
2588}
2589
2590// GoString returns the string representation
2591func (s TagResourceOutput) GoString() string {
2592	return s.String()
2593}
2594
2595type UntagResourceInput struct {
2596	_ struct{} `type:"structure"`
2597
2598	// The cluster identifier (ID) for the cluster whose tags you are removing.
2599	// To find the cluster ID, use DescribeClusters.
2600	//
2601	// ResourceId is a required field
2602	ResourceId *string `type:"string" required:"true"`
2603
2604	// A list of one or more tag keys for the tags that you are removing. Specify
2605	// only the tag keys, not the tag values.
2606	//
2607	// TagKeyList is a required field
2608	TagKeyList []*string `min:"1" type:"list" required:"true"`
2609}
2610
2611// String returns the string representation
2612func (s UntagResourceInput) String() string {
2613	return awsutil.Prettify(s)
2614}
2615
2616// GoString returns the string representation
2617func (s UntagResourceInput) GoString() string {
2618	return s.String()
2619}
2620
2621// Validate inspects the fields of the type to determine if they are valid.
2622func (s *UntagResourceInput) Validate() error {
2623	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
2624	if s.ResourceId == nil {
2625		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
2626	}
2627	if s.TagKeyList == nil {
2628		invalidParams.Add(request.NewErrParamRequired("TagKeyList"))
2629	}
2630	if s.TagKeyList != nil && len(s.TagKeyList) < 1 {
2631		invalidParams.Add(request.NewErrParamMinLen("TagKeyList", 1))
2632	}
2633
2634	if invalidParams.Len() > 0 {
2635		return invalidParams
2636	}
2637	return nil
2638}
2639
2640// SetResourceId sets the ResourceId field's value.
2641func (s *UntagResourceInput) SetResourceId(v string) *UntagResourceInput {
2642	s.ResourceId = &v
2643	return s
2644}
2645
2646// SetTagKeyList sets the TagKeyList field's value.
2647func (s *UntagResourceInput) SetTagKeyList(v []*string) *UntagResourceInput {
2648	s.TagKeyList = v
2649	return s
2650}
2651
2652type UntagResourceOutput struct {
2653	_ struct{} `type:"structure"`
2654}
2655
2656// String returns the string representation
2657func (s UntagResourceOutput) String() string {
2658	return awsutil.Prettify(s)
2659}
2660
2661// GoString returns the string representation
2662func (s UntagResourceOutput) GoString() string {
2663	return s.String()
2664}
2665
2666const (
2667	// BackupPolicyDefault is a BackupPolicy enum value
2668	BackupPolicyDefault = "DEFAULT"
2669)
2670
2671const (
2672	// BackupStateCreateInProgress is a BackupState enum value
2673	BackupStateCreateInProgress = "CREATE_IN_PROGRESS"
2674
2675	// BackupStateReady is a BackupState enum value
2676	BackupStateReady = "READY"
2677
2678	// BackupStateDeleted is a BackupState enum value
2679	BackupStateDeleted = "DELETED"
2680)
2681
2682const (
2683	// ClusterStateCreateInProgress is a ClusterState enum value
2684	ClusterStateCreateInProgress = "CREATE_IN_PROGRESS"
2685
2686	// ClusterStateUninitialized is a ClusterState enum value
2687	ClusterStateUninitialized = "UNINITIALIZED"
2688
2689	// ClusterStateInitializeInProgress is a ClusterState enum value
2690	ClusterStateInitializeInProgress = "INITIALIZE_IN_PROGRESS"
2691
2692	// ClusterStateInitialized is a ClusterState enum value
2693	ClusterStateInitialized = "INITIALIZED"
2694
2695	// ClusterStateActive is a ClusterState enum value
2696	ClusterStateActive = "ACTIVE"
2697
2698	// ClusterStateUpdateInProgress is a ClusterState enum value
2699	ClusterStateUpdateInProgress = "UPDATE_IN_PROGRESS"
2700
2701	// ClusterStateDeleteInProgress is a ClusterState enum value
2702	ClusterStateDeleteInProgress = "DELETE_IN_PROGRESS"
2703
2704	// ClusterStateDeleted is a ClusterState enum value
2705	ClusterStateDeleted = "DELETED"
2706
2707	// ClusterStateDegraded is a ClusterState enum value
2708	ClusterStateDegraded = "DEGRADED"
2709)
2710
2711const (
2712	// HsmStateCreateInProgress is a HsmState enum value
2713	HsmStateCreateInProgress = "CREATE_IN_PROGRESS"
2714
2715	// HsmStateActive is a HsmState enum value
2716	HsmStateActive = "ACTIVE"
2717
2718	// HsmStateDegraded is a HsmState enum value
2719	HsmStateDegraded = "DEGRADED"
2720
2721	// HsmStateDeleteInProgress is a HsmState enum value
2722	HsmStateDeleteInProgress = "DELETE_IN_PROGRESS"
2723
2724	// HsmStateDeleted is a HsmState enum value
2725	HsmStateDeleted = "DELETED"
2726)
2727