1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package elasticsearchservice
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restjson"
14)
15
16const opAddTags = "AddTags"
17
18// AddTagsRequest generates a "aws/request.Request" representing the
19// client's request for the AddTags operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See AddTags for more information on using the AddTags
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the AddTagsRequest method.
34//    req, resp := client.AddTagsRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40func (c *ElasticsearchService) AddTagsRequest(input *AddTagsInput) (req *request.Request, output *AddTagsOutput) {
41	op := &request.Operation{
42		Name:       opAddTags,
43		HTTPMethod: "POST",
44		HTTPPath:   "/2015-01-01/tags",
45	}
46
47	if input == nil {
48		input = &AddTagsInput{}
49	}
50
51	output = &AddTagsOutput{}
52	req = c.newRequest(op, input, output)
53	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
54	return
55}
56
57// AddTags API operation for Amazon Elasticsearch Service.
58//
59// Attaches tags to an existing Elasticsearch domain. Tags are a set of case-sensitive
60// key value pairs. An Elasticsearch domain may have up to 10 tags. See Tagging
61// Amazon Elasticsearch Service Domains for more information. (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-awsresorcetagging)
62//
63// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
64// with awserr.Error's Code and Message methods to get detailed information about
65// the error.
66//
67// See the AWS API reference guide for Amazon Elasticsearch Service's
68// API operation AddTags for usage and error information.
69//
70// Returned Error Codes:
71//   * ErrCodeBaseException "BaseException"
72//   An error occurred while processing the request.
73//
74//   * ErrCodeLimitExceededException "LimitExceededException"
75//   An exception for trying to create more than allowed resources or sub-resources.
76//   Gives http status code of 409.
77//
78//   * ErrCodeValidationException "ValidationException"
79//   An exception for missing / invalid input fields. Gives http status code of
80//   400.
81//
82//   * ErrCodeInternalException "InternalException"
83//   The request processing has failed because of an unknown error, exception
84//   or failure (the failure is internal to the service) . Gives http status code
85//   of 500.
86//
87func (c *ElasticsearchService) AddTags(input *AddTagsInput) (*AddTagsOutput, error) {
88	req, out := c.AddTagsRequest(input)
89	return out, req.Send()
90}
91
92// AddTagsWithContext is the same as AddTags with the addition of
93// the ability to pass a context and additional request options.
94//
95// See AddTags for details on how to use this API operation.
96//
97// The context must be non-nil and will be used for request cancellation. If
98// the context is nil a panic will occur. In the future the SDK may create
99// sub-contexts for http.Requests. See https://golang.org/pkg/context/
100// for more information on using Contexts.
101func (c *ElasticsearchService) AddTagsWithContext(ctx aws.Context, input *AddTagsInput, opts ...request.Option) (*AddTagsOutput, error) {
102	req, out := c.AddTagsRequest(input)
103	req.SetContext(ctx)
104	req.ApplyOptions(opts...)
105	return out, req.Send()
106}
107
108const opCancelElasticsearchServiceSoftwareUpdate = "CancelElasticsearchServiceSoftwareUpdate"
109
110// CancelElasticsearchServiceSoftwareUpdateRequest generates a "aws/request.Request" representing the
111// client's request for the CancelElasticsearchServiceSoftwareUpdate operation. The "output" return
112// value will be populated with the request's response once the request completes
113// successfully.
114//
115// Use "Send" method on the returned Request to send the API call to the service.
116// the "output" return value is not valid until after Send returns without error.
117//
118// See CancelElasticsearchServiceSoftwareUpdate for more information on using the CancelElasticsearchServiceSoftwareUpdate
119// API call, and error handling.
120//
121// This method is useful when you want to inject custom logic or configuration
122// into the SDK's request lifecycle. Such as custom headers, or retry logic.
123//
124//
125//    // Example sending a request using the CancelElasticsearchServiceSoftwareUpdateRequest method.
126//    req, resp := client.CancelElasticsearchServiceSoftwareUpdateRequest(params)
127//
128//    err := req.Send()
129//    if err == nil { // resp is now filled
130//        fmt.Println(resp)
131//    }
132func (c *ElasticsearchService) CancelElasticsearchServiceSoftwareUpdateRequest(input *CancelElasticsearchServiceSoftwareUpdateInput) (req *request.Request, output *CancelElasticsearchServiceSoftwareUpdateOutput) {
133	op := &request.Operation{
134		Name:       opCancelElasticsearchServiceSoftwareUpdate,
135		HTTPMethod: "POST",
136		HTTPPath:   "/2015-01-01/es/serviceSoftwareUpdate/cancel",
137	}
138
139	if input == nil {
140		input = &CancelElasticsearchServiceSoftwareUpdateInput{}
141	}
142
143	output = &CancelElasticsearchServiceSoftwareUpdateOutput{}
144	req = c.newRequest(op, input, output)
145	return
146}
147
148// CancelElasticsearchServiceSoftwareUpdate API operation for Amazon Elasticsearch Service.
149//
150// Cancels a scheduled service software update for an Amazon ES domain. You
151// can only perform this operation before the AutomatedUpdateDate and when the
152// UpdateStatus is in the PENDING_UPDATE state.
153//
154// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
155// with awserr.Error's Code and Message methods to get detailed information about
156// the error.
157//
158// See the AWS API reference guide for Amazon Elasticsearch Service's
159// API operation CancelElasticsearchServiceSoftwareUpdate for usage and error information.
160//
161// Returned Error Codes:
162//   * ErrCodeBaseException "BaseException"
163//   An error occurred while processing the request.
164//
165//   * ErrCodeInternalException "InternalException"
166//   The request processing has failed because of an unknown error, exception
167//   or failure (the failure is internal to the service) . Gives http status code
168//   of 500.
169//
170//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
171//   An exception for accessing or deleting a resource that does not exist. Gives
172//   http status code of 400.
173//
174//   * ErrCodeValidationException "ValidationException"
175//   An exception for missing / invalid input fields. Gives http status code of
176//   400.
177//
178func (c *ElasticsearchService) CancelElasticsearchServiceSoftwareUpdate(input *CancelElasticsearchServiceSoftwareUpdateInput) (*CancelElasticsearchServiceSoftwareUpdateOutput, error) {
179	req, out := c.CancelElasticsearchServiceSoftwareUpdateRequest(input)
180	return out, req.Send()
181}
182
183// CancelElasticsearchServiceSoftwareUpdateWithContext is the same as CancelElasticsearchServiceSoftwareUpdate with the addition of
184// the ability to pass a context and additional request options.
185//
186// See CancelElasticsearchServiceSoftwareUpdate for details on how to use this API operation.
187//
188// The context must be non-nil and will be used for request cancellation. If
189// the context is nil a panic will occur. In the future the SDK may create
190// sub-contexts for http.Requests. See https://golang.org/pkg/context/
191// for more information on using Contexts.
192func (c *ElasticsearchService) CancelElasticsearchServiceSoftwareUpdateWithContext(ctx aws.Context, input *CancelElasticsearchServiceSoftwareUpdateInput, opts ...request.Option) (*CancelElasticsearchServiceSoftwareUpdateOutput, error) {
193	req, out := c.CancelElasticsearchServiceSoftwareUpdateRequest(input)
194	req.SetContext(ctx)
195	req.ApplyOptions(opts...)
196	return out, req.Send()
197}
198
199const opCreateElasticsearchDomain = "CreateElasticsearchDomain"
200
201// CreateElasticsearchDomainRequest generates a "aws/request.Request" representing the
202// client's request for the CreateElasticsearchDomain operation. The "output" return
203// value will be populated with the request's response once the request completes
204// successfully.
205//
206// Use "Send" method on the returned Request to send the API call to the service.
207// the "output" return value is not valid until after Send returns without error.
208//
209// See CreateElasticsearchDomain for more information on using the CreateElasticsearchDomain
210// API call, and error handling.
211//
212// This method is useful when you want to inject custom logic or configuration
213// into the SDK's request lifecycle. Such as custom headers, or retry logic.
214//
215//
216//    // Example sending a request using the CreateElasticsearchDomainRequest method.
217//    req, resp := client.CreateElasticsearchDomainRequest(params)
218//
219//    err := req.Send()
220//    if err == nil { // resp is now filled
221//        fmt.Println(resp)
222//    }
223func (c *ElasticsearchService) CreateElasticsearchDomainRequest(input *CreateElasticsearchDomainInput) (req *request.Request, output *CreateElasticsearchDomainOutput) {
224	op := &request.Operation{
225		Name:       opCreateElasticsearchDomain,
226		HTTPMethod: "POST",
227		HTTPPath:   "/2015-01-01/es/domain",
228	}
229
230	if input == nil {
231		input = &CreateElasticsearchDomainInput{}
232	}
233
234	output = &CreateElasticsearchDomainOutput{}
235	req = c.newRequest(op, input, output)
236	return
237}
238
239// CreateElasticsearchDomain API operation for Amazon Elasticsearch Service.
240//
241// Creates a new Elasticsearch domain. For more information, see Creating Elasticsearch
242// Domains (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomains)
243// in the Amazon Elasticsearch Service Developer Guide.
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 Amazon Elasticsearch Service's
250// API operation CreateElasticsearchDomain for usage and error information.
251//
252// Returned Error Codes:
253//   * ErrCodeBaseException "BaseException"
254//   An error occurred while processing the request.
255//
256//   * ErrCodeDisabledOperationException "DisabledOperationException"
257//   An error occured because the client wanted to access a not supported operation.
258//   Gives http status code of 409.
259//
260//   * ErrCodeInternalException "InternalException"
261//   The request processing has failed because of an unknown error, exception
262//   or failure (the failure is internal to the service) . Gives http status code
263//   of 500.
264//
265//   * ErrCodeInvalidTypeException "InvalidTypeException"
266//   An exception for trying to create or access sub-resource that is either invalid
267//   or not supported. Gives http status code of 409.
268//
269//   * ErrCodeLimitExceededException "LimitExceededException"
270//   An exception for trying to create more than allowed resources or sub-resources.
271//   Gives http status code of 409.
272//
273//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
274//   An exception for creating a resource that already exists. Gives http status
275//   code of 400.
276//
277//   * ErrCodeValidationException "ValidationException"
278//   An exception for missing / invalid input fields. Gives http status code of
279//   400.
280//
281func (c *ElasticsearchService) CreateElasticsearchDomain(input *CreateElasticsearchDomainInput) (*CreateElasticsearchDomainOutput, error) {
282	req, out := c.CreateElasticsearchDomainRequest(input)
283	return out, req.Send()
284}
285
286// CreateElasticsearchDomainWithContext is the same as CreateElasticsearchDomain with the addition of
287// the ability to pass a context and additional request options.
288//
289// See CreateElasticsearchDomain for details on how to use this API operation.
290//
291// The context must be non-nil and will be used for request cancellation. If
292// the context is nil a panic will occur. In the future the SDK may create
293// sub-contexts for http.Requests. See https://golang.org/pkg/context/
294// for more information on using Contexts.
295func (c *ElasticsearchService) CreateElasticsearchDomainWithContext(ctx aws.Context, input *CreateElasticsearchDomainInput, opts ...request.Option) (*CreateElasticsearchDomainOutput, error) {
296	req, out := c.CreateElasticsearchDomainRequest(input)
297	req.SetContext(ctx)
298	req.ApplyOptions(opts...)
299	return out, req.Send()
300}
301
302const opDeleteElasticsearchDomain = "DeleteElasticsearchDomain"
303
304// DeleteElasticsearchDomainRequest generates a "aws/request.Request" representing the
305// client's request for the DeleteElasticsearchDomain operation. The "output" return
306// value will be populated with the request's response once the request completes
307// successfully.
308//
309// Use "Send" method on the returned Request to send the API call to the service.
310// the "output" return value is not valid until after Send returns without error.
311//
312// See DeleteElasticsearchDomain for more information on using the DeleteElasticsearchDomain
313// API call, and error handling.
314//
315// This method is useful when you want to inject custom logic or configuration
316// into the SDK's request lifecycle. Such as custom headers, or retry logic.
317//
318//
319//    // Example sending a request using the DeleteElasticsearchDomainRequest method.
320//    req, resp := client.DeleteElasticsearchDomainRequest(params)
321//
322//    err := req.Send()
323//    if err == nil { // resp is now filled
324//        fmt.Println(resp)
325//    }
326func (c *ElasticsearchService) DeleteElasticsearchDomainRequest(input *DeleteElasticsearchDomainInput) (req *request.Request, output *DeleteElasticsearchDomainOutput) {
327	op := &request.Operation{
328		Name:       opDeleteElasticsearchDomain,
329		HTTPMethod: "DELETE",
330		HTTPPath:   "/2015-01-01/es/domain/{DomainName}",
331	}
332
333	if input == nil {
334		input = &DeleteElasticsearchDomainInput{}
335	}
336
337	output = &DeleteElasticsearchDomainOutput{}
338	req = c.newRequest(op, input, output)
339	return
340}
341
342// DeleteElasticsearchDomain API operation for Amazon Elasticsearch Service.
343//
344// Permanently deletes the specified Elasticsearch domain and all of its data.
345// Once a domain is deleted, it cannot be recovered.
346//
347// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
348// with awserr.Error's Code and Message methods to get detailed information about
349// the error.
350//
351// See the AWS API reference guide for Amazon Elasticsearch Service's
352// API operation DeleteElasticsearchDomain for usage and error information.
353//
354// Returned Error Codes:
355//   * ErrCodeBaseException "BaseException"
356//   An error occurred while processing the request.
357//
358//   * ErrCodeInternalException "InternalException"
359//   The request processing has failed because of an unknown error, exception
360//   or failure (the failure is internal to the service) . Gives http status code
361//   of 500.
362//
363//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
364//   An exception for accessing or deleting a resource that does not exist. Gives
365//   http status code of 400.
366//
367//   * ErrCodeValidationException "ValidationException"
368//   An exception for missing / invalid input fields. Gives http status code of
369//   400.
370//
371func (c *ElasticsearchService) DeleteElasticsearchDomain(input *DeleteElasticsearchDomainInput) (*DeleteElasticsearchDomainOutput, error) {
372	req, out := c.DeleteElasticsearchDomainRequest(input)
373	return out, req.Send()
374}
375
376// DeleteElasticsearchDomainWithContext is the same as DeleteElasticsearchDomain with the addition of
377// the ability to pass a context and additional request options.
378//
379// See DeleteElasticsearchDomain for details on how to use this API operation.
380//
381// The context must be non-nil and will be used for request cancellation. If
382// the context is nil a panic will occur. In the future the SDK may create
383// sub-contexts for http.Requests. See https://golang.org/pkg/context/
384// for more information on using Contexts.
385func (c *ElasticsearchService) DeleteElasticsearchDomainWithContext(ctx aws.Context, input *DeleteElasticsearchDomainInput, opts ...request.Option) (*DeleteElasticsearchDomainOutput, error) {
386	req, out := c.DeleteElasticsearchDomainRequest(input)
387	req.SetContext(ctx)
388	req.ApplyOptions(opts...)
389	return out, req.Send()
390}
391
392const opDeleteElasticsearchServiceRole = "DeleteElasticsearchServiceRole"
393
394// DeleteElasticsearchServiceRoleRequest generates a "aws/request.Request" representing the
395// client's request for the DeleteElasticsearchServiceRole operation. The "output" return
396// value will be populated with the request's response once the request completes
397// successfully.
398//
399// Use "Send" method on the returned Request to send the API call to the service.
400// the "output" return value is not valid until after Send returns without error.
401//
402// See DeleteElasticsearchServiceRole for more information on using the DeleteElasticsearchServiceRole
403// API call, and error handling.
404//
405// This method is useful when you want to inject custom logic or configuration
406// into the SDK's request lifecycle. Such as custom headers, or retry logic.
407//
408//
409//    // Example sending a request using the DeleteElasticsearchServiceRoleRequest method.
410//    req, resp := client.DeleteElasticsearchServiceRoleRequest(params)
411//
412//    err := req.Send()
413//    if err == nil { // resp is now filled
414//        fmt.Println(resp)
415//    }
416func (c *ElasticsearchService) DeleteElasticsearchServiceRoleRequest(input *DeleteElasticsearchServiceRoleInput) (req *request.Request, output *DeleteElasticsearchServiceRoleOutput) {
417	op := &request.Operation{
418		Name:       opDeleteElasticsearchServiceRole,
419		HTTPMethod: "DELETE",
420		HTTPPath:   "/2015-01-01/es/role",
421	}
422
423	if input == nil {
424		input = &DeleteElasticsearchServiceRoleInput{}
425	}
426
427	output = &DeleteElasticsearchServiceRoleOutput{}
428	req = c.newRequest(op, input, output)
429	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
430	return
431}
432
433// DeleteElasticsearchServiceRole API operation for Amazon Elasticsearch Service.
434//
435// Deletes the service-linked role that Elasticsearch Service uses to manage
436// and maintain VPC domains. Role deletion will fail if any existing VPC domains
437// use the role. You must delete any such Elasticsearch domains before deleting
438// the role. See Deleting Elasticsearch Service Role (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-enabling-slr)
439// in VPC Endpoints for Amazon Elasticsearch Service Domains.
440//
441// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
442// with awserr.Error's Code and Message methods to get detailed information about
443// the error.
444//
445// See the AWS API reference guide for Amazon Elasticsearch Service's
446// API operation DeleteElasticsearchServiceRole for usage and error information.
447//
448// Returned Error Codes:
449//   * ErrCodeBaseException "BaseException"
450//   An error occurred while processing the request.
451//
452//   * ErrCodeInternalException "InternalException"
453//   The request processing has failed because of an unknown error, exception
454//   or failure (the failure is internal to the service) . Gives http status code
455//   of 500.
456//
457//   * ErrCodeValidationException "ValidationException"
458//   An exception for missing / invalid input fields. Gives http status code of
459//   400.
460//
461func (c *ElasticsearchService) DeleteElasticsearchServiceRole(input *DeleteElasticsearchServiceRoleInput) (*DeleteElasticsearchServiceRoleOutput, error) {
462	req, out := c.DeleteElasticsearchServiceRoleRequest(input)
463	return out, req.Send()
464}
465
466// DeleteElasticsearchServiceRoleWithContext is the same as DeleteElasticsearchServiceRole with the addition of
467// the ability to pass a context and additional request options.
468//
469// See DeleteElasticsearchServiceRole for details on how to use this API operation.
470//
471// The context must be non-nil and will be used for request cancellation. If
472// the context is nil a panic will occur. In the future the SDK may create
473// sub-contexts for http.Requests. See https://golang.org/pkg/context/
474// for more information on using Contexts.
475func (c *ElasticsearchService) DeleteElasticsearchServiceRoleWithContext(ctx aws.Context, input *DeleteElasticsearchServiceRoleInput, opts ...request.Option) (*DeleteElasticsearchServiceRoleOutput, error) {
476	req, out := c.DeleteElasticsearchServiceRoleRequest(input)
477	req.SetContext(ctx)
478	req.ApplyOptions(opts...)
479	return out, req.Send()
480}
481
482const opDescribeElasticsearchDomain = "DescribeElasticsearchDomain"
483
484// DescribeElasticsearchDomainRequest generates a "aws/request.Request" representing the
485// client's request for the DescribeElasticsearchDomain operation. The "output" return
486// value will be populated with the request's response once the request completes
487// successfully.
488//
489// Use "Send" method on the returned Request to send the API call to the service.
490// the "output" return value is not valid until after Send returns without error.
491//
492// See DescribeElasticsearchDomain for more information on using the DescribeElasticsearchDomain
493// API call, and error handling.
494//
495// This method is useful when you want to inject custom logic or configuration
496// into the SDK's request lifecycle. Such as custom headers, or retry logic.
497//
498//
499//    // Example sending a request using the DescribeElasticsearchDomainRequest method.
500//    req, resp := client.DescribeElasticsearchDomainRequest(params)
501//
502//    err := req.Send()
503//    if err == nil { // resp is now filled
504//        fmt.Println(resp)
505//    }
506func (c *ElasticsearchService) DescribeElasticsearchDomainRequest(input *DescribeElasticsearchDomainInput) (req *request.Request, output *DescribeElasticsearchDomainOutput) {
507	op := &request.Operation{
508		Name:       opDescribeElasticsearchDomain,
509		HTTPMethod: "GET",
510		HTTPPath:   "/2015-01-01/es/domain/{DomainName}",
511	}
512
513	if input == nil {
514		input = &DescribeElasticsearchDomainInput{}
515	}
516
517	output = &DescribeElasticsearchDomainOutput{}
518	req = c.newRequest(op, input, output)
519	return
520}
521
522// DescribeElasticsearchDomain API operation for Amazon Elasticsearch Service.
523//
524// Returns domain configuration information about the specified Elasticsearch
525// domain, including the domain ID, domain endpoint, and domain ARN.
526//
527// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
528// with awserr.Error's Code and Message methods to get detailed information about
529// the error.
530//
531// See the AWS API reference guide for Amazon Elasticsearch Service's
532// API operation DescribeElasticsearchDomain for usage and error information.
533//
534// Returned Error Codes:
535//   * ErrCodeBaseException "BaseException"
536//   An error occurred while processing the request.
537//
538//   * ErrCodeInternalException "InternalException"
539//   The request processing has failed because of an unknown error, exception
540//   or failure (the failure is internal to the service) . Gives http status code
541//   of 500.
542//
543//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
544//   An exception for accessing or deleting a resource that does not exist. Gives
545//   http status code of 400.
546//
547//   * ErrCodeValidationException "ValidationException"
548//   An exception for missing / invalid input fields. Gives http status code of
549//   400.
550//
551func (c *ElasticsearchService) DescribeElasticsearchDomain(input *DescribeElasticsearchDomainInput) (*DescribeElasticsearchDomainOutput, error) {
552	req, out := c.DescribeElasticsearchDomainRequest(input)
553	return out, req.Send()
554}
555
556// DescribeElasticsearchDomainWithContext is the same as DescribeElasticsearchDomain with the addition of
557// the ability to pass a context and additional request options.
558//
559// See DescribeElasticsearchDomain for details on how to use this API operation.
560//
561// The context must be non-nil and will be used for request cancellation. If
562// the context is nil a panic will occur. In the future the SDK may create
563// sub-contexts for http.Requests. See https://golang.org/pkg/context/
564// for more information on using Contexts.
565func (c *ElasticsearchService) DescribeElasticsearchDomainWithContext(ctx aws.Context, input *DescribeElasticsearchDomainInput, opts ...request.Option) (*DescribeElasticsearchDomainOutput, error) {
566	req, out := c.DescribeElasticsearchDomainRequest(input)
567	req.SetContext(ctx)
568	req.ApplyOptions(opts...)
569	return out, req.Send()
570}
571
572const opDescribeElasticsearchDomainConfig = "DescribeElasticsearchDomainConfig"
573
574// DescribeElasticsearchDomainConfigRequest generates a "aws/request.Request" representing the
575// client's request for the DescribeElasticsearchDomainConfig operation. The "output" return
576// value will be populated with the request's response once the request completes
577// successfully.
578//
579// Use "Send" method on the returned Request to send the API call to the service.
580// the "output" return value is not valid until after Send returns without error.
581//
582// See DescribeElasticsearchDomainConfig for more information on using the DescribeElasticsearchDomainConfig
583// API call, and error handling.
584//
585// This method is useful when you want to inject custom logic or configuration
586// into the SDK's request lifecycle. Such as custom headers, or retry logic.
587//
588//
589//    // Example sending a request using the DescribeElasticsearchDomainConfigRequest method.
590//    req, resp := client.DescribeElasticsearchDomainConfigRequest(params)
591//
592//    err := req.Send()
593//    if err == nil { // resp is now filled
594//        fmt.Println(resp)
595//    }
596func (c *ElasticsearchService) DescribeElasticsearchDomainConfigRequest(input *DescribeElasticsearchDomainConfigInput) (req *request.Request, output *DescribeElasticsearchDomainConfigOutput) {
597	op := &request.Operation{
598		Name:       opDescribeElasticsearchDomainConfig,
599		HTTPMethod: "GET",
600		HTTPPath:   "/2015-01-01/es/domain/{DomainName}/config",
601	}
602
603	if input == nil {
604		input = &DescribeElasticsearchDomainConfigInput{}
605	}
606
607	output = &DescribeElasticsearchDomainConfigOutput{}
608	req = c.newRequest(op, input, output)
609	return
610}
611
612// DescribeElasticsearchDomainConfig API operation for Amazon Elasticsearch Service.
613//
614// Provides cluster configuration information about the specified Elasticsearch
615// domain, such as the state, creation date, update version, and update date
616// for cluster options.
617//
618// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
619// with awserr.Error's Code and Message methods to get detailed information about
620// the error.
621//
622// See the AWS API reference guide for Amazon Elasticsearch Service's
623// API operation DescribeElasticsearchDomainConfig for usage and error information.
624//
625// Returned Error Codes:
626//   * ErrCodeBaseException "BaseException"
627//   An error occurred while processing the request.
628//
629//   * ErrCodeInternalException "InternalException"
630//   The request processing has failed because of an unknown error, exception
631//   or failure (the failure is internal to the service) . Gives http status code
632//   of 500.
633//
634//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
635//   An exception for accessing or deleting a resource that does not exist. Gives
636//   http status code of 400.
637//
638//   * ErrCodeValidationException "ValidationException"
639//   An exception for missing / invalid input fields. Gives http status code of
640//   400.
641//
642func (c *ElasticsearchService) DescribeElasticsearchDomainConfig(input *DescribeElasticsearchDomainConfigInput) (*DescribeElasticsearchDomainConfigOutput, error) {
643	req, out := c.DescribeElasticsearchDomainConfigRequest(input)
644	return out, req.Send()
645}
646
647// DescribeElasticsearchDomainConfigWithContext is the same as DescribeElasticsearchDomainConfig with the addition of
648// the ability to pass a context and additional request options.
649//
650// See DescribeElasticsearchDomainConfig for details on how to use this API operation.
651//
652// The context must be non-nil and will be used for request cancellation. If
653// the context is nil a panic will occur. In the future the SDK may create
654// sub-contexts for http.Requests. See https://golang.org/pkg/context/
655// for more information on using Contexts.
656func (c *ElasticsearchService) DescribeElasticsearchDomainConfigWithContext(ctx aws.Context, input *DescribeElasticsearchDomainConfigInput, opts ...request.Option) (*DescribeElasticsearchDomainConfigOutput, error) {
657	req, out := c.DescribeElasticsearchDomainConfigRequest(input)
658	req.SetContext(ctx)
659	req.ApplyOptions(opts...)
660	return out, req.Send()
661}
662
663const opDescribeElasticsearchDomains = "DescribeElasticsearchDomains"
664
665// DescribeElasticsearchDomainsRequest generates a "aws/request.Request" representing the
666// client's request for the DescribeElasticsearchDomains operation. The "output" return
667// value will be populated with the request's response once the request completes
668// successfully.
669//
670// Use "Send" method on the returned Request to send the API call to the service.
671// the "output" return value is not valid until after Send returns without error.
672//
673// See DescribeElasticsearchDomains for more information on using the DescribeElasticsearchDomains
674// API call, and error handling.
675//
676// This method is useful when you want to inject custom logic or configuration
677// into the SDK's request lifecycle. Such as custom headers, or retry logic.
678//
679//
680//    // Example sending a request using the DescribeElasticsearchDomainsRequest method.
681//    req, resp := client.DescribeElasticsearchDomainsRequest(params)
682//
683//    err := req.Send()
684//    if err == nil { // resp is now filled
685//        fmt.Println(resp)
686//    }
687func (c *ElasticsearchService) DescribeElasticsearchDomainsRequest(input *DescribeElasticsearchDomainsInput) (req *request.Request, output *DescribeElasticsearchDomainsOutput) {
688	op := &request.Operation{
689		Name:       opDescribeElasticsearchDomains,
690		HTTPMethod: "POST",
691		HTTPPath:   "/2015-01-01/es/domain-info",
692	}
693
694	if input == nil {
695		input = &DescribeElasticsearchDomainsInput{}
696	}
697
698	output = &DescribeElasticsearchDomainsOutput{}
699	req = c.newRequest(op, input, output)
700	return
701}
702
703// DescribeElasticsearchDomains API operation for Amazon Elasticsearch Service.
704//
705// Returns domain configuration information about the specified Elasticsearch
706// domains, including the domain ID, domain endpoint, and domain ARN.
707//
708// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
709// with awserr.Error's Code and Message methods to get detailed information about
710// the error.
711//
712// See the AWS API reference guide for Amazon Elasticsearch Service's
713// API operation DescribeElasticsearchDomains for usage and error information.
714//
715// Returned Error Codes:
716//   * ErrCodeBaseException "BaseException"
717//   An error occurred while processing the request.
718//
719//   * ErrCodeInternalException "InternalException"
720//   The request processing has failed because of an unknown error, exception
721//   or failure (the failure is internal to the service) . Gives http status code
722//   of 500.
723//
724//   * ErrCodeValidationException "ValidationException"
725//   An exception for missing / invalid input fields. Gives http status code of
726//   400.
727//
728func (c *ElasticsearchService) DescribeElasticsearchDomains(input *DescribeElasticsearchDomainsInput) (*DescribeElasticsearchDomainsOutput, error) {
729	req, out := c.DescribeElasticsearchDomainsRequest(input)
730	return out, req.Send()
731}
732
733// DescribeElasticsearchDomainsWithContext is the same as DescribeElasticsearchDomains with the addition of
734// the ability to pass a context and additional request options.
735//
736// See DescribeElasticsearchDomains for details on how to use this API operation.
737//
738// The context must be non-nil and will be used for request cancellation. If
739// the context is nil a panic will occur. In the future the SDK may create
740// sub-contexts for http.Requests. See https://golang.org/pkg/context/
741// for more information on using Contexts.
742func (c *ElasticsearchService) DescribeElasticsearchDomainsWithContext(ctx aws.Context, input *DescribeElasticsearchDomainsInput, opts ...request.Option) (*DescribeElasticsearchDomainsOutput, error) {
743	req, out := c.DescribeElasticsearchDomainsRequest(input)
744	req.SetContext(ctx)
745	req.ApplyOptions(opts...)
746	return out, req.Send()
747}
748
749const opDescribeElasticsearchInstanceTypeLimits = "DescribeElasticsearchInstanceTypeLimits"
750
751// DescribeElasticsearchInstanceTypeLimitsRequest generates a "aws/request.Request" representing the
752// client's request for the DescribeElasticsearchInstanceTypeLimits operation. The "output" return
753// value will be populated with the request's response once the request completes
754// successfully.
755//
756// Use "Send" method on the returned Request to send the API call to the service.
757// the "output" return value is not valid until after Send returns without error.
758//
759// See DescribeElasticsearchInstanceTypeLimits for more information on using the DescribeElasticsearchInstanceTypeLimits
760// API call, and error handling.
761//
762// This method is useful when you want to inject custom logic or configuration
763// into the SDK's request lifecycle. Such as custom headers, or retry logic.
764//
765//
766//    // Example sending a request using the DescribeElasticsearchInstanceTypeLimitsRequest method.
767//    req, resp := client.DescribeElasticsearchInstanceTypeLimitsRequest(params)
768//
769//    err := req.Send()
770//    if err == nil { // resp is now filled
771//        fmt.Println(resp)
772//    }
773func (c *ElasticsearchService) DescribeElasticsearchInstanceTypeLimitsRequest(input *DescribeElasticsearchInstanceTypeLimitsInput) (req *request.Request, output *DescribeElasticsearchInstanceTypeLimitsOutput) {
774	op := &request.Operation{
775		Name:       opDescribeElasticsearchInstanceTypeLimits,
776		HTTPMethod: "GET",
777		HTTPPath:   "/2015-01-01/es/instanceTypeLimits/{ElasticsearchVersion}/{InstanceType}",
778	}
779
780	if input == nil {
781		input = &DescribeElasticsearchInstanceTypeLimitsInput{}
782	}
783
784	output = &DescribeElasticsearchInstanceTypeLimitsOutput{}
785	req = c.newRequest(op, input, output)
786	return
787}
788
789// DescribeElasticsearchInstanceTypeLimits API operation for Amazon Elasticsearch Service.
790//
791// Describe Elasticsearch Limits for a given InstanceType and ElasticsearchVersion.
792// When modifying existing Domain, specify the DomainName to know what Limits
793// are supported for modifying.
794//
795// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
796// with awserr.Error's Code and Message methods to get detailed information about
797// the error.
798//
799// See the AWS API reference guide for Amazon Elasticsearch Service's
800// API operation DescribeElasticsearchInstanceTypeLimits for usage and error information.
801//
802// Returned Error Codes:
803//   * ErrCodeBaseException "BaseException"
804//   An error occurred while processing the request.
805//
806//   * ErrCodeInternalException "InternalException"
807//   The request processing has failed because of an unknown error, exception
808//   or failure (the failure is internal to the service) . Gives http status code
809//   of 500.
810//
811//   * ErrCodeInvalidTypeException "InvalidTypeException"
812//   An exception for trying to create or access sub-resource that is either invalid
813//   or not supported. Gives http status code of 409.
814//
815//   * ErrCodeLimitExceededException "LimitExceededException"
816//   An exception for trying to create more than allowed resources or sub-resources.
817//   Gives http status code of 409.
818//
819//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
820//   An exception for accessing or deleting a resource that does not exist. Gives
821//   http status code of 400.
822//
823//   * ErrCodeValidationException "ValidationException"
824//   An exception for missing / invalid input fields. Gives http status code of
825//   400.
826//
827func (c *ElasticsearchService) DescribeElasticsearchInstanceTypeLimits(input *DescribeElasticsearchInstanceTypeLimitsInput) (*DescribeElasticsearchInstanceTypeLimitsOutput, error) {
828	req, out := c.DescribeElasticsearchInstanceTypeLimitsRequest(input)
829	return out, req.Send()
830}
831
832// DescribeElasticsearchInstanceTypeLimitsWithContext is the same as DescribeElasticsearchInstanceTypeLimits with the addition of
833// the ability to pass a context and additional request options.
834//
835// See DescribeElasticsearchInstanceTypeLimits for details on how to use this API operation.
836//
837// The context must be non-nil and will be used for request cancellation. If
838// the context is nil a panic will occur. In the future the SDK may create
839// sub-contexts for http.Requests. See https://golang.org/pkg/context/
840// for more information on using Contexts.
841func (c *ElasticsearchService) DescribeElasticsearchInstanceTypeLimitsWithContext(ctx aws.Context, input *DescribeElasticsearchInstanceTypeLimitsInput, opts ...request.Option) (*DescribeElasticsearchInstanceTypeLimitsOutput, error) {
842	req, out := c.DescribeElasticsearchInstanceTypeLimitsRequest(input)
843	req.SetContext(ctx)
844	req.ApplyOptions(opts...)
845	return out, req.Send()
846}
847
848const opDescribeReservedElasticsearchInstanceOfferings = "DescribeReservedElasticsearchInstanceOfferings"
849
850// DescribeReservedElasticsearchInstanceOfferingsRequest generates a "aws/request.Request" representing the
851// client's request for the DescribeReservedElasticsearchInstanceOfferings operation. The "output" return
852// value will be populated with the request's response once the request completes
853// successfully.
854//
855// Use "Send" method on the returned Request to send the API call to the service.
856// the "output" return value is not valid until after Send returns without error.
857//
858// See DescribeReservedElasticsearchInstanceOfferings for more information on using the DescribeReservedElasticsearchInstanceOfferings
859// API call, and error handling.
860//
861// This method is useful when you want to inject custom logic or configuration
862// into the SDK's request lifecycle. Such as custom headers, or retry logic.
863//
864//
865//    // Example sending a request using the DescribeReservedElasticsearchInstanceOfferingsRequest method.
866//    req, resp := client.DescribeReservedElasticsearchInstanceOfferingsRequest(params)
867//
868//    err := req.Send()
869//    if err == nil { // resp is now filled
870//        fmt.Println(resp)
871//    }
872func (c *ElasticsearchService) DescribeReservedElasticsearchInstanceOfferingsRequest(input *DescribeReservedElasticsearchInstanceOfferingsInput) (req *request.Request, output *DescribeReservedElasticsearchInstanceOfferingsOutput) {
873	op := &request.Operation{
874		Name:       opDescribeReservedElasticsearchInstanceOfferings,
875		HTTPMethod: "GET",
876		HTTPPath:   "/2015-01-01/es/reservedInstanceOfferings",
877		Paginator: &request.Paginator{
878			InputTokens:     []string{"NextToken"},
879			OutputTokens:    []string{"NextToken"},
880			LimitToken:      "MaxResults",
881			TruncationToken: "",
882		},
883	}
884
885	if input == nil {
886		input = &DescribeReservedElasticsearchInstanceOfferingsInput{}
887	}
888
889	output = &DescribeReservedElasticsearchInstanceOfferingsOutput{}
890	req = c.newRequest(op, input, output)
891	return
892}
893
894// DescribeReservedElasticsearchInstanceOfferings API operation for Amazon Elasticsearch Service.
895//
896// Lists available reserved Elasticsearch instance offerings.
897//
898// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
899// with awserr.Error's Code and Message methods to get detailed information about
900// the error.
901//
902// See the AWS API reference guide for Amazon Elasticsearch Service's
903// API operation DescribeReservedElasticsearchInstanceOfferings for usage and error information.
904//
905// Returned Error Codes:
906//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
907//   An exception for accessing or deleting a resource that does not exist. Gives
908//   http status code of 400.
909//
910//   * ErrCodeValidationException "ValidationException"
911//   An exception for missing / invalid input fields. Gives http status code of
912//   400.
913//
914//   * ErrCodeDisabledOperationException "DisabledOperationException"
915//   An error occured because the client wanted to access a not supported operation.
916//   Gives http status code of 409.
917//
918//   * ErrCodeInternalException "InternalException"
919//   The request processing has failed because of an unknown error, exception
920//   or failure (the failure is internal to the service) . Gives http status code
921//   of 500.
922//
923func (c *ElasticsearchService) DescribeReservedElasticsearchInstanceOfferings(input *DescribeReservedElasticsearchInstanceOfferingsInput) (*DescribeReservedElasticsearchInstanceOfferingsOutput, error) {
924	req, out := c.DescribeReservedElasticsearchInstanceOfferingsRequest(input)
925	return out, req.Send()
926}
927
928// DescribeReservedElasticsearchInstanceOfferingsWithContext is the same as DescribeReservedElasticsearchInstanceOfferings with the addition of
929// the ability to pass a context and additional request options.
930//
931// See DescribeReservedElasticsearchInstanceOfferings for details on how to use this API operation.
932//
933// The context must be non-nil and will be used for request cancellation. If
934// the context is nil a panic will occur. In the future the SDK may create
935// sub-contexts for http.Requests. See https://golang.org/pkg/context/
936// for more information on using Contexts.
937func (c *ElasticsearchService) DescribeReservedElasticsearchInstanceOfferingsWithContext(ctx aws.Context, input *DescribeReservedElasticsearchInstanceOfferingsInput, opts ...request.Option) (*DescribeReservedElasticsearchInstanceOfferingsOutput, error) {
938	req, out := c.DescribeReservedElasticsearchInstanceOfferingsRequest(input)
939	req.SetContext(ctx)
940	req.ApplyOptions(opts...)
941	return out, req.Send()
942}
943
944// DescribeReservedElasticsearchInstanceOfferingsPages iterates over the pages of a DescribeReservedElasticsearchInstanceOfferings operation,
945// calling the "fn" function with the response data for each page. To stop
946// iterating, return false from the fn function.
947//
948// See DescribeReservedElasticsearchInstanceOfferings method for more information on how to use this operation.
949//
950// Note: This operation can generate multiple requests to a service.
951//
952//    // Example iterating over at most 3 pages of a DescribeReservedElasticsearchInstanceOfferings operation.
953//    pageNum := 0
954//    err := client.DescribeReservedElasticsearchInstanceOfferingsPages(params,
955//        func(page *elasticsearchservice.DescribeReservedElasticsearchInstanceOfferingsOutput, lastPage bool) bool {
956//            pageNum++
957//            fmt.Println(page)
958//            return pageNum <= 3
959//        })
960//
961func (c *ElasticsearchService) DescribeReservedElasticsearchInstanceOfferingsPages(input *DescribeReservedElasticsearchInstanceOfferingsInput, fn func(*DescribeReservedElasticsearchInstanceOfferingsOutput, bool) bool) error {
962	return c.DescribeReservedElasticsearchInstanceOfferingsPagesWithContext(aws.BackgroundContext(), input, fn)
963}
964
965// DescribeReservedElasticsearchInstanceOfferingsPagesWithContext same as DescribeReservedElasticsearchInstanceOfferingsPages except
966// it takes a Context and allows setting request options on the pages.
967//
968// The context must be non-nil and will be used for request cancellation. If
969// the context is nil a panic will occur. In the future the SDK may create
970// sub-contexts for http.Requests. See https://golang.org/pkg/context/
971// for more information on using Contexts.
972func (c *ElasticsearchService) DescribeReservedElasticsearchInstanceOfferingsPagesWithContext(ctx aws.Context, input *DescribeReservedElasticsearchInstanceOfferingsInput, fn func(*DescribeReservedElasticsearchInstanceOfferingsOutput, bool) bool, opts ...request.Option) error {
973	p := request.Pagination{
974		NewRequest: func() (*request.Request, error) {
975			var inCpy *DescribeReservedElasticsearchInstanceOfferingsInput
976			if input != nil {
977				tmp := *input
978				inCpy = &tmp
979			}
980			req, _ := c.DescribeReservedElasticsearchInstanceOfferingsRequest(inCpy)
981			req.SetContext(ctx)
982			req.ApplyOptions(opts...)
983			return req, nil
984		},
985	}
986
987	cont := true
988	for p.Next() && cont {
989		cont = fn(p.Page().(*DescribeReservedElasticsearchInstanceOfferingsOutput), !p.HasNextPage())
990	}
991	return p.Err()
992}
993
994const opDescribeReservedElasticsearchInstances = "DescribeReservedElasticsearchInstances"
995
996// DescribeReservedElasticsearchInstancesRequest generates a "aws/request.Request" representing the
997// client's request for the DescribeReservedElasticsearchInstances operation. The "output" return
998// value will be populated with the request's response once the request completes
999// successfully.
1000//
1001// Use "Send" method on the returned Request to send the API call to the service.
1002// the "output" return value is not valid until after Send returns without error.
1003//
1004// See DescribeReservedElasticsearchInstances for more information on using the DescribeReservedElasticsearchInstances
1005// API call, and error handling.
1006//
1007// This method is useful when you want to inject custom logic or configuration
1008// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1009//
1010//
1011//    // Example sending a request using the DescribeReservedElasticsearchInstancesRequest method.
1012//    req, resp := client.DescribeReservedElasticsearchInstancesRequest(params)
1013//
1014//    err := req.Send()
1015//    if err == nil { // resp is now filled
1016//        fmt.Println(resp)
1017//    }
1018func (c *ElasticsearchService) DescribeReservedElasticsearchInstancesRequest(input *DescribeReservedElasticsearchInstancesInput) (req *request.Request, output *DescribeReservedElasticsearchInstancesOutput) {
1019	op := &request.Operation{
1020		Name:       opDescribeReservedElasticsearchInstances,
1021		HTTPMethod: "GET",
1022		HTTPPath:   "/2015-01-01/es/reservedInstances",
1023		Paginator: &request.Paginator{
1024			InputTokens:     []string{"NextToken"},
1025			OutputTokens:    []string{"NextToken"},
1026			LimitToken:      "MaxResults",
1027			TruncationToken: "",
1028		},
1029	}
1030
1031	if input == nil {
1032		input = &DescribeReservedElasticsearchInstancesInput{}
1033	}
1034
1035	output = &DescribeReservedElasticsearchInstancesOutput{}
1036	req = c.newRequest(op, input, output)
1037	return
1038}
1039
1040// DescribeReservedElasticsearchInstances API operation for Amazon Elasticsearch Service.
1041//
1042// Returns information about reserved Elasticsearch instances for this account.
1043//
1044// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1045// with awserr.Error's Code and Message methods to get detailed information about
1046// the error.
1047//
1048// See the AWS API reference guide for Amazon Elasticsearch Service's
1049// API operation DescribeReservedElasticsearchInstances for usage and error information.
1050//
1051// Returned Error Codes:
1052//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1053//   An exception for accessing or deleting a resource that does not exist. Gives
1054//   http status code of 400.
1055//
1056//   * ErrCodeInternalException "InternalException"
1057//   The request processing has failed because of an unknown error, exception
1058//   or failure (the failure is internal to the service) . Gives http status code
1059//   of 500.
1060//
1061//   * ErrCodeValidationException "ValidationException"
1062//   An exception for missing / invalid input fields. Gives http status code of
1063//   400.
1064//
1065//   * ErrCodeDisabledOperationException "DisabledOperationException"
1066//   An error occured because the client wanted to access a not supported operation.
1067//   Gives http status code of 409.
1068//
1069func (c *ElasticsearchService) DescribeReservedElasticsearchInstances(input *DescribeReservedElasticsearchInstancesInput) (*DescribeReservedElasticsearchInstancesOutput, error) {
1070	req, out := c.DescribeReservedElasticsearchInstancesRequest(input)
1071	return out, req.Send()
1072}
1073
1074// DescribeReservedElasticsearchInstancesWithContext is the same as DescribeReservedElasticsearchInstances with the addition of
1075// the ability to pass a context and additional request options.
1076//
1077// See DescribeReservedElasticsearchInstances for details on how to use this API operation.
1078//
1079// The context must be non-nil and will be used for request cancellation. If
1080// the context is nil a panic will occur. In the future the SDK may create
1081// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1082// for more information on using Contexts.
1083func (c *ElasticsearchService) DescribeReservedElasticsearchInstancesWithContext(ctx aws.Context, input *DescribeReservedElasticsearchInstancesInput, opts ...request.Option) (*DescribeReservedElasticsearchInstancesOutput, error) {
1084	req, out := c.DescribeReservedElasticsearchInstancesRequest(input)
1085	req.SetContext(ctx)
1086	req.ApplyOptions(opts...)
1087	return out, req.Send()
1088}
1089
1090// DescribeReservedElasticsearchInstancesPages iterates over the pages of a DescribeReservedElasticsearchInstances operation,
1091// calling the "fn" function with the response data for each page. To stop
1092// iterating, return false from the fn function.
1093//
1094// See DescribeReservedElasticsearchInstances method for more information on how to use this operation.
1095//
1096// Note: This operation can generate multiple requests to a service.
1097//
1098//    // Example iterating over at most 3 pages of a DescribeReservedElasticsearchInstances operation.
1099//    pageNum := 0
1100//    err := client.DescribeReservedElasticsearchInstancesPages(params,
1101//        func(page *elasticsearchservice.DescribeReservedElasticsearchInstancesOutput, lastPage bool) bool {
1102//            pageNum++
1103//            fmt.Println(page)
1104//            return pageNum <= 3
1105//        })
1106//
1107func (c *ElasticsearchService) DescribeReservedElasticsearchInstancesPages(input *DescribeReservedElasticsearchInstancesInput, fn func(*DescribeReservedElasticsearchInstancesOutput, bool) bool) error {
1108	return c.DescribeReservedElasticsearchInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
1109}
1110
1111// DescribeReservedElasticsearchInstancesPagesWithContext same as DescribeReservedElasticsearchInstancesPages except
1112// it takes a Context and allows setting request options on the pages.
1113//
1114// The context must be non-nil and will be used for request cancellation. If
1115// the context is nil a panic will occur. In the future the SDK may create
1116// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1117// for more information on using Contexts.
1118func (c *ElasticsearchService) DescribeReservedElasticsearchInstancesPagesWithContext(ctx aws.Context, input *DescribeReservedElasticsearchInstancesInput, fn func(*DescribeReservedElasticsearchInstancesOutput, bool) bool, opts ...request.Option) error {
1119	p := request.Pagination{
1120		NewRequest: func() (*request.Request, error) {
1121			var inCpy *DescribeReservedElasticsearchInstancesInput
1122			if input != nil {
1123				tmp := *input
1124				inCpy = &tmp
1125			}
1126			req, _ := c.DescribeReservedElasticsearchInstancesRequest(inCpy)
1127			req.SetContext(ctx)
1128			req.ApplyOptions(opts...)
1129			return req, nil
1130		},
1131	}
1132
1133	cont := true
1134	for p.Next() && cont {
1135		cont = fn(p.Page().(*DescribeReservedElasticsearchInstancesOutput), !p.HasNextPage())
1136	}
1137	return p.Err()
1138}
1139
1140const opGetCompatibleElasticsearchVersions = "GetCompatibleElasticsearchVersions"
1141
1142// GetCompatibleElasticsearchVersionsRequest generates a "aws/request.Request" representing the
1143// client's request for the GetCompatibleElasticsearchVersions operation. The "output" return
1144// value will be populated with the request's response once the request completes
1145// successfully.
1146//
1147// Use "Send" method on the returned Request to send the API call to the service.
1148// the "output" return value is not valid until after Send returns without error.
1149//
1150// See GetCompatibleElasticsearchVersions for more information on using the GetCompatibleElasticsearchVersions
1151// API call, and error handling.
1152//
1153// This method is useful when you want to inject custom logic or configuration
1154// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1155//
1156//
1157//    // Example sending a request using the GetCompatibleElasticsearchVersionsRequest method.
1158//    req, resp := client.GetCompatibleElasticsearchVersionsRequest(params)
1159//
1160//    err := req.Send()
1161//    if err == nil { // resp is now filled
1162//        fmt.Println(resp)
1163//    }
1164func (c *ElasticsearchService) GetCompatibleElasticsearchVersionsRequest(input *GetCompatibleElasticsearchVersionsInput) (req *request.Request, output *GetCompatibleElasticsearchVersionsOutput) {
1165	op := &request.Operation{
1166		Name:       opGetCompatibleElasticsearchVersions,
1167		HTTPMethod: "GET",
1168		HTTPPath:   "/2015-01-01/es/compatibleVersions",
1169	}
1170
1171	if input == nil {
1172		input = &GetCompatibleElasticsearchVersionsInput{}
1173	}
1174
1175	output = &GetCompatibleElasticsearchVersionsOutput{}
1176	req = c.newRequest(op, input, output)
1177	return
1178}
1179
1180// GetCompatibleElasticsearchVersions API operation for Amazon Elasticsearch Service.
1181//
1182// Returns a list of upgrade compatible Elastisearch versions. You can optionally
1183// pass a DomainName to get all upgrade compatible Elasticsearch versions for
1184// that specific domain.
1185//
1186// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1187// with awserr.Error's Code and Message methods to get detailed information about
1188// the error.
1189//
1190// See the AWS API reference guide for Amazon Elasticsearch Service's
1191// API operation GetCompatibleElasticsearchVersions for usage and error information.
1192//
1193// Returned Error Codes:
1194//   * ErrCodeBaseException "BaseException"
1195//   An error occurred while processing the request.
1196//
1197//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1198//   An exception for accessing or deleting a resource that does not exist. Gives
1199//   http status code of 400.
1200//
1201//   * ErrCodeDisabledOperationException "DisabledOperationException"
1202//   An error occured because the client wanted to access a not supported operation.
1203//   Gives http status code of 409.
1204//
1205//   * ErrCodeValidationException "ValidationException"
1206//   An exception for missing / invalid input fields. Gives http status code of
1207//   400.
1208//
1209//   * ErrCodeInternalException "InternalException"
1210//   The request processing has failed because of an unknown error, exception
1211//   or failure (the failure is internal to the service) . Gives http status code
1212//   of 500.
1213//
1214func (c *ElasticsearchService) GetCompatibleElasticsearchVersions(input *GetCompatibleElasticsearchVersionsInput) (*GetCompatibleElasticsearchVersionsOutput, error) {
1215	req, out := c.GetCompatibleElasticsearchVersionsRequest(input)
1216	return out, req.Send()
1217}
1218
1219// GetCompatibleElasticsearchVersionsWithContext is the same as GetCompatibleElasticsearchVersions with the addition of
1220// the ability to pass a context and additional request options.
1221//
1222// See GetCompatibleElasticsearchVersions for details on how to use this API operation.
1223//
1224// The context must be non-nil and will be used for request cancellation. If
1225// the context is nil a panic will occur. In the future the SDK may create
1226// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1227// for more information on using Contexts.
1228func (c *ElasticsearchService) GetCompatibleElasticsearchVersionsWithContext(ctx aws.Context, input *GetCompatibleElasticsearchVersionsInput, opts ...request.Option) (*GetCompatibleElasticsearchVersionsOutput, error) {
1229	req, out := c.GetCompatibleElasticsearchVersionsRequest(input)
1230	req.SetContext(ctx)
1231	req.ApplyOptions(opts...)
1232	return out, req.Send()
1233}
1234
1235const opGetUpgradeHistory = "GetUpgradeHistory"
1236
1237// GetUpgradeHistoryRequest generates a "aws/request.Request" representing the
1238// client's request for the GetUpgradeHistory operation. The "output" return
1239// value will be populated with the request's response once the request completes
1240// successfully.
1241//
1242// Use "Send" method on the returned Request to send the API call to the service.
1243// the "output" return value is not valid until after Send returns without error.
1244//
1245// See GetUpgradeHistory for more information on using the GetUpgradeHistory
1246// API call, and error handling.
1247//
1248// This method is useful when you want to inject custom logic or configuration
1249// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1250//
1251//
1252//    // Example sending a request using the GetUpgradeHistoryRequest method.
1253//    req, resp := client.GetUpgradeHistoryRequest(params)
1254//
1255//    err := req.Send()
1256//    if err == nil { // resp is now filled
1257//        fmt.Println(resp)
1258//    }
1259func (c *ElasticsearchService) GetUpgradeHistoryRequest(input *GetUpgradeHistoryInput) (req *request.Request, output *GetUpgradeHistoryOutput) {
1260	op := &request.Operation{
1261		Name:       opGetUpgradeHistory,
1262		HTTPMethod: "GET",
1263		HTTPPath:   "/2015-01-01/es/upgradeDomain/{DomainName}/history",
1264		Paginator: &request.Paginator{
1265			InputTokens:     []string{"NextToken"},
1266			OutputTokens:    []string{"NextToken"},
1267			LimitToken:      "MaxResults",
1268			TruncationToken: "",
1269		},
1270	}
1271
1272	if input == nil {
1273		input = &GetUpgradeHistoryInput{}
1274	}
1275
1276	output = &GetUpgradeHistoryOutput{}
1277	req = c.newRequest(op, input, output)
1278	return
1279}
1280
1281// GetUpgradeHistory API operation for Amazon Elasticsearch Service.
1282//
1283// Retrieves the complete history of the last 10 upgrades that were performed
1284// on the domain.
1285//
1286// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1287// with awserr.Error's Code and Message methods to get detailed information about
1288// the error.
1289//
1290// See the AWS API reference guide for Amazon Elasticsearch Service's
1291// API operation GetUpgradeHistory for usage and error information.
1292//
1293// Returned Error Codes:
1294//   * ErrCodeBaseException "BaseException"
1295//   An error occurred while processing the request.
1296//
1297//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1298//   An exception for accessing or deleting a resource that does not exist. Gives
1299//   http status code of 400.
1300//
1301//   * ErrCodeDisabledOperationException "DisabledOperationException"
1302//   An error occured because the client wanted to access a not supported operation.
1303//   Gives http status code of 409.
1304//
1305//   * ErrCodeValidationException "ValidationException"
1306//   An exception for missing / invalid input fields. Gives http status code of
1307//   400.
1308//
1309//   * ErrCodeInternalException "InternalException"
1310//   The request processing has failed because of an unknown error, exception
1311//   or failure (the failure is internal to the service) . Gives http status code
1312//   of 500.
1313//
1314func (c *ElasticsearchService) GetUpgradeHistory(input *GetUpgradeHistoryInput) (*GetUpgradeHistoryOutput, error) {
1315	req, out := c.GetUpgradeHistoryRequest(input)
1316	return out, req.Send()
1317}
1318
1319// GetUpgradeHistoryWithContext is the same as GetUpgradeHistory with the addition of
1320// the ability to pass a context and additional request options.
1321//
1322// See GetUpgradeHistory for details on how to use this API operation.
1323//
1324// The context must be non-nil and will be used for request cancellation. If
1325// the context is nil a panic will occur. In the future the SDK may create
1326// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1327// for more information on using Contexts.
1328func (c *ElasticsearchService) GetUpgradeHistoryWithContext(ctx aws.Context, input *GetUpgradeHistoryInput, opts ...request.Option) (*GetUpgradeHistoryOutput, error) {
1329	req, out := c.GetUpgradeHistoryRequest(input)
1330	req.SetContext(ctx)
1331	req.ApplyOptions(opts...)
1332	return out, req.Send()
1333}
1334
1335// GetUpgradeHistoryPages iterates over the pages of a GetUpgradeHistory operation,
1336// calling the "fn" function with the response data for each page. To stop
1337// iterating, return false from the fn function.
1338//
1339// See GetUpgradeHistory method for more information on how to use this operation.
1340//
1341// Note: This operation can generate multiple requests to a service.
1342//
1343//    // Example iterating over at most 3 pages of a GetUpgradeHistory operation.
1344//    pageNum := 0
1345//    err := client.GetUpgradeHistoryPages(params,
1346//        func(page *elasticsearchservice.GetUpgradeHistoryOutput, lastPage bool) bool {
1347//            pageNum++
1348//            fmt.Println(page)
1349//            return pageNum <= 3
1350//        })
1351//
1352func (c *ElasticsearchService) GetUpgradeHistoryPages(input *GetUpgradeHistoryInput, fn func(*GetUpgradeHistoryOutput, bool) bool) error {
1353	return c.GetUpgradeHistoryPagesWithContext(aws.BackgroundContext(), input, fn)
1354}
1355
1356// GetUpgradeHistoryPagesWithContext same as GetUpgradeHistoryPages except
1357// it takes a Context and allows setting request options on the pages.
1358//
1359// The context must be non-nil and will be used for request cancellation. If
1360// the context is nil a panic will occur. In the future the SDK may create
1361// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1362// for more information on using Contexts.
1363func (c *ElasticsearchService) GetUpgradeHistoryPagesWithContext(ctx aws.Context, input *GetUpgradeHistoryInput, fn func(*GetUpgradeHistoryOutput, bool) bool, opts ...request.Option) error {
1364	p := request.Pagination{
1365		NewRequest: func() (*request.Request, error) {
1366			var inCpy *GetUpgradeHistoryInput
1367			if input != nil {
1368				tmp := *input
1369				inCpy = &tmp
1370			}
1371			req, _ := c.GetUpgradeHistoryRequest(inCpy)
1372			req.SetContext(ctx)
1373			req.ApplyOptions(opts...)
1374			return req, nil
1375		},
1376	}
1377
1378	cont := true
1379	for p.Next() && cont {
1380		cont = fn(p.Page().(*GetUpgradeHistoryOutput), !p.HasNextPage())
1381	}
1382	return p.Err()
1383}
1384
1385const opGetUpgradeStatus = "GetUpgradeStatus"
1386
1387// GetUpgradeStatusRequest generates a "aws/request.Request" representing the
1388// client's request for the GetUpgradeStatus operation. The "output" return
1389// value will be populated with the request's response once the request completes
1390// successfully.
1391//
1392// Use "Send" method on the returned Request to send the API call to the service.
1393// the "output" return value is not valid until after Send returns without error.
1394//
1395// See GetUpgradeStatus for more information on using the GetUpgradeStatus
1396// API call, and error handling.
1397//
1398// This method is useful when you want to inject custom logic or configuration
1399// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1400//
1401//
1402//    // Example sending a request using the GetUpgradeStatusRequest method.
1403//    req, resp := client.GetUpgradeStatusRequest(params)
1404//
1405//    err := req.Send()
1406//    if err == nil { // resp is now filled
1407//        fmt.Println(resp)
1408//    }
1409func (c *ElasticsearchService) GetUpgradeStatusRequest(input *GetUpgradeStatusInput) (req *request.Request, output *GetUpgradeStatusOutput) {
1410	op := &request.Operation{
1411		Name:       opGetUpgradeStatus,
1412		HTTPMethod: "GET",
1413		HTTPPath:   "/2015-01-01/es/upgradeDomain/{DomainName}/status",
1414	}
1415
1416	if input == nil {
1417		input = &GetUpgradeStatusInput{}
1418	}
1419
1420	output = &GetUpgradeStatusOutput{}
1421	req = c.newRequest(op, input, output)
1422	return
1423}
1424
1425// GetUpgradeStatus API operation for Amazon Elasticsearch Service.
1426//
1427// Retrieves the latest status of the last upgrade or upgrade eligibility check
1428// that was performed on the domain.
1429//
1430// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1431// with awserr.Error's Code and Message methods to get detailed information about
1432// the error.
1433//
1434// See the AWS API reference guide for Amazon Elasticsearch Service's
1435// API operation GetUpgradeStatus for usage and error information.
1436//
1437// Returned Error Codes:
1438//   * ErrCodeBaseException "BaseException"
1439//   An error occurred while processing the request.
1440//
1441//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1442//   An exception for accessing or deleting a resource that does not exist. Gives
1443//   http status code of 400.
1444//
1445//   * ErrCodeDisabledOperationException "DisabledOperationException"
1446//   An error occured because the client wanted to access a not supported operation.
1447//   Gives http status code of 409.
1448//
1449//   * ErrCodeValidationException "ValidationException"
1450//   An exception for missing / invalid input fields. Gives http status code of
1451//   400.
1452//
1453//   * ErrCodeInternalException "InternalException"
1454//   The request processing has failed because of an unknown error, exception
1455//   or failure (the failure is internal to the service) . Gives http status code
1456//   of 500.
1457//
1458func (c *ElasticsearchService) GetUpgradeStatus(input *GetUpgradeStatusInput) (*GetUpgradeStatusOutput, error) {
1459	req, out := c.GetUpgradeStatusRequest(input)
1460	return out, req.Send()
1461}
1462
1463// GetUpgradeStatusWithContext is the same as GetUpgradeStatus with the addition of
1464// the ability to pass a context and additional request options.
1465//
1466// See GetUpgradeStatus for details on how to use this API operation.
1467//
1468// The context must be non-nil and will be used for request cancellation. If
1469// the context is nil a panic will occur. In the future the SDK may create
1470// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1471// for more information on using Contexts.
1472func (c *ElasticsearchService) GetUpgradeStatusWithContext(ctx aws.Context, input *GetUpgradeStatusInput, opts ...request.Option) (*GetUpgradeStatusOutput, error) {
1473	req, out := c.GetUpgradeStatusRequest(input)
1474	req.SetContext(ctx)
1475	req.ApplyOptions(opts...)
1476	return out, req.Send()
1477}
1478
1479const opListDomainNames = "ListDomainNames"
1480
1481// ListDomainNamesRequest generates a "aws/request.Request" representing the
1482// client's request for the ListDomainNames operation. The "output" return
1483// value will be populated with the request's response once the request completes
1484// successfully.
1485//
1486// Use "Send" method on the returned Request to send the API call to the service.
1487// the "output" return value is not valid until after Send returns without error.
1488//
1489// See ListDomainNames for more information on using the ListDomainNames
1490// API call, and error handling.
1491//
1492// This method is useful when you want to inject custom logic or configuration
1493// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1494//
1495//
1496//    // Example sending a request using the ListDomainNamesRequest method.
1497//    req, resp := client.ListDomainNamesRequest(params)
1498//
1499//    err := req.Send()
1500//    if err == nil { // resp is now filled
1501//        fmt.Println(resp)
1502//    }
1503func (c *ElasticsearchService) ListDomainNamesRequest(input *ListDomainNamesInput) (req *request.Request, output *ListDomainNamesOutput) {
1504	op := &request.Operation{
1505		Name:       opListDomainNames,
1506		HTTPMethod: "GET",
1507		HTTPPath:   "/2015-01-01/domain",
1508	}
1509
1510	if input == nil {
1511		input = &ListDomainNamesInput{}
1512	}
1513
1514	output = &ListDomainNamesOutput{}
1515	req = c.newRequest(op, input, output)
1516	return
1517}
1518
1519// ListDomainNames API operation for Amazon Elasticsearch Service.
1520//
1521// Returns the name of all Elasticsearch domains owned by the current user's
1522// account.
1523//
1524// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1525// with awserr.Error's Code and Message methods to get detailed information about
1526// the error.
1527//
1528// See the AWS API reference guide for Amazon Elasticsearch Service's
1529// API operation ListDomainNames for usage and error information.
1530//
1531// Returned Error Codes:
1532//   * ErrCodeBaseException "BaseException"
1533//   An error occurred while processing the request.
1534//
1535//   * ErrCodeValidationException "ValidationException"
1536//   An exception for missing / invalid input fields. Gives http status code of
1537//   400.
1538//
1539func (c *ElasticsearchService) ListDomainNames(input *ListDomainNamesInput) (*ListDomainNamesOutput, error) {
1540	req, out := c.ListDomainNamesRequest(input)
1541	return out, req.Send()
1542}
1543
1544// ListDomainNamesWithContext is the same as ListDomainNames with the addition of
1545// the ability to pass a context and additional request options.
1546//
1547// See ListDomainNames for details on how to use this API operation.
1548//
1549// The context must be non-nil and will be used for request cancellation. If
1550// the context is nil a panic will occur. In the future the SDK may create
1551// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1552// for more information on using Contexts.
1553func (c *ElasticsearchService) ListDomainNamesWithContext(ctx aws.Context, input *ListDomainNamesInput, opts ...request.Option) (*ListDomainNamesOutput, error) {
1554	req, out := c.ListDomainNamesRequest(input)
1555	req.SetContext(ctx)
1556	req.ApplyOptions(opts...)
1557	return out, req.Send()
1558}
1559
1560const opListElasticsearchInstanceTypes = "ListElasticsearchInstanceTypes"
1561
1562// ListElasticsearchInstanceTypesRequest generates a "aws/request.Request" representing the
1563// client's request for the ListElasticsearchInstanceTypes operation. The "output" return
1564// value will be populated with the request's response once the request completes
1565// successfully.
1566//
1567// Use "Send" method on the returned Request to send the API call to the service.
1568// the "output" return value is not valid until after Send returns without error.
1569//
1570// See ListElasticsearchInstanceTypes for more information on using the ListElasticsearchInstanceTypes
1571// API call, and error handling.
1572//
1573// This method is useful when you want to inject custom logic or configuration
1574// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1575//
1576//
1577//    // Example sending a request using the ListElasticsearchInstanceTypesRequest method.
1578//    req, resp := client.ListElasticsearchInstanceTypesRequest(params)
1579//
1580//    err := req.Send()
1581//    if err == nil { // resp is now filled
1582//        fmt.Println(resp)
1583//    }
1584func (c *ElasticsearchService) ListElasticsearchInstanceTypesRequest(input *ListElasticsearchInstanceTypesInput) (req *request.Request, output *ListElasticsearchInstanceTypesOutput) {
1585	op := &request.Operation{
1586		Name:       opListElasticsearchInstanceTypes,
1587		HTTPMethod: "GET",
1588		HTTPPath:   "/2015-01-01/es/instanceTypes/{ElasticsearchVersion}",
1589		Paginator: &request.Paginator{
1590			InputTokens:     []string{"NextToken"},
1591			OutputTokens:    []string{"NextToken"},
1592			LimitToken:      "MaxResults",
1593			TruncationToken: "",
1594		},
1595	}
1596
1597	if input == nil {
1598		input = &ListElasticsearchInstanceTypesInput{}
1599	}
1600
1601	output = &ListElasticsearchInstanceTypesOutput{}
1602	req = c.newRequest(op, input, output)
1603	return
1604}
1605
1606// ListElasticsearchInstanceTypes API operation for Amazon Elasticsearch Service.
1607//
1608// List all Elasticsearch instance types that are supported for given ElasticsearchVersion
1609//
1610// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1611// with awserr.Error's Code and Message methods to get detailed information about
1612// the error.
1613//
1614// See the AWS API reference guide for Amazon Elasticsearch Service's
1615// API operation ListElasticsearchInstanceTypes for usage and error information.
1616//
1617// Returned Error Codes:
1618//   * ErrCodeBaseException "BaseException"
1619//   An error occurred while processing the request.
1620//
1621//   * ErrCodeInternalException "InternalException"
1622//   The request processing has failed because of an unknown error, exception
1623//   or failure (the failure is internal to the service) . Gives http status code
1624//   of 500.
1625//
1626//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1627//   An exception for accessing or deleting a resource that does not exist. Gives
1628//   http status code of 400.
1629//
1630//   * ErrCodeValidationException "ValidationException"
1631//   An exception for missing / invalid input fields. Gives http status code of
1632//   400.
1633//
1634func (c *ElasticsearchService) ListElasticsearchInstanceTypes(input *ListElasticsearchInstanceTypesInput) (*ListElasticsearchInstanceTypesOutput, error) {
1635	req, out := c.ListElasticsearchInstanceTypesRequest(input)
1636	return out, req.Send()
1637}
1638
1639// ListElasticsearchInstanceTypesWithContext is the same as ListElasticsearchInstanceTypes with the addition of
1640// the ability to pass a context and additional request options.
1641//
1642// See ListElasticsearchInstanceTypes for details on how to use this API operation.
1643//
1644// The context must be non-nil and will be used for request cancellation. If
1645// the context is nil a panic will occur. In the future the SDK may create
1646// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1647// for more information on using Contexts.
1648func (c *ElasticsearchService) ListElasticsearchInstanceTypesWithContext(ctx aws.Context, input *ListElasticsearchInstanceTypesInput, opts ...request.Option) (*ListElasticsearchInstanceTypesOutput, error) {
1649	req, out := c.ListElasticsearchInstanceTypesRequest(input)
1650	req.SetContext(ctx)
1651	req.ApplyOptions(opts...)
1652	return out, req.Send()
1653}
1654
1655// ListElasticsearchInstanceTypesPages iterates over the pages of a ListElasticsearchInstanceTypes operation,
1656// calling the "fn" function with the response data for each page. To stop
1657// iterating, return false from the fn function.
1658//
1659// See ListElasticsearchInstanceTypes method for more information on how to use this operation.
1660//
1661// Note: This operation can generate multiple requests to a service.
1662//
1663//    // Example iterating over at most 3 pages of a ListElasticsearchInstanceTypes operation.
1664//    pageNum := 0
1665//    err := client.ListElasticsearchInstanceTypesPages(params,
1666//        func(page *elasticsearchservice.ListElasticsearchInstanceTypesOutput, lastPage bool) bool {
1667//            pageNum++
1668//            fmt.Println(page)
1669//            return pageNum <= 3
1670//        })
1671//
1672func (c *ElasticsearchService) ListElasticsearchInstanceTypesPages(input *ListElasticsearchInstanceTypesInput, fn func(*ListElasticsearchInstanceTypesOutput, bool) bool) error {
1673	return c.ListElasticsearchInstanceTypesPagesWithContext(aws.BackgroundContext(), input, fn)
1674}
1675
1676// ListElasticsearchInstanceTypesPagesWithContext same as ListElasticsearchInstanceTypesPages except
1677// it takes a Context and allows setting request options on the pages.
1678//
1679// The context must be non-nil and will be used for request cancellation. If
1680// the context is nil a panic will occur. In the future the SDK may create
1681// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1682// for more information on using Contexts.
1683func (c *ElasticsearchService) ListElasticsearchInstanceTypesPagesWithContext(ctx aws.Context, input *ListElasticsearchInstanceTypesInput, fn func(*ListElasticsearchInstanceTypesOutput, bool) bool, opts ...request.Option) error {
1684	p := request.Pagination{
1685		NewRequest: func() (*request.Request, error) {
1686			var inCpy *ListElasticsearchInstanceTypesInput
1687			if input != nil {
1688				tmp := *input
1689				inCpy = &tmp
1690			}
1691			req, _ := c.ListElasticsearchInstanceTypesRequest(inCpy)
1692			req.SetContext(ctx)
1693			req.ApplyOptions(opts...)
1694			return req, nil
1695		},
1696	}
1697
1698	cont := true
1699	for p.Next() && cont {
1700		cont = fn(p.Page().(*ListElasticsearchInstanceTypesOutput), !p.HasNextPage())
1701	}
1702	return p.Err()
1703}
1704
1705const opListElasticsearchVersions = "ListElasticsearchVersions"
1706
1707// ListElasticsearchVersionsRequest generates a "aws/request.Request" representing the
1708// client's request for the ListElasticsearchVersions operation. The "output" return
1709// value will be populated with the request's response once the request completes
1710// successfully.
1711//
1712// Use "Send" method on the returned Request to send the API call to the service.
1713// the "output" return value is not valid until after Send returns without error.
1714//
1715// See ListElasticsearchVersions for more information on using the ListElasticsearchVersions
1716// API call, and error handling.
1717//
1718// This method is useful when you want to inject custom logic or configuration
1719// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1720//
1721//
1722//    // Example sending a request using the ListElasticsearchVersionsRequest method.
1723//    req, resp := client.ListElasticsearchVersionsRequest(params)
1724//
1725//    err := req.Send()
1726//    if err == nil { // resp is now filled
1727//        fmt.Println(resp)
1728//    }
1729func (c *ElasticsearchService) ListElasticsearchVersionsRequest(input *ListElasticsearchVersionsInput) (req *request.Request, output *ListElasticsearchVersionsOutput) {
1730	op := &request.Operation{
1731		Name:       opListElasticsearchVersions,
1732		HTTPMethod: "GET",
1733		HTTPPath:   "/2015-01-01/es/versions",
1734		Paginator: &request.Paginator{
1735			InputTokens:     []string{"NextToken"},
1736			OutputTokens:    []string{"NextToken"},
1737			LimitToken:      "MaxResults",
1738			TruncationToken: "",
1739		},
1740	}
1741
1742	if input == nil {
1743		input = &ListElasticsearchVersionsInput{}
1744	}
1745
1746	output = &ListElasticsearchVersionsOutput{}
1747	req = c.newRequest(op, input, output)
1748	return
1749}
1750
1751// ListElasticsearchVersions API operation for Amazon Elasticsearch Service.
1752//
1753// List all supported Elasticsearch versions
1754//
1755// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1756// with awserr.Error's Code and Message methods to get detailed information about
1757// the error.
1758//
1759// See the AWS API reference guide for Amazon Elasticsearch Service's
1760// API operation ListElasticsearchVersions for usage and error information.
1761//
1762// Returned Error Codes:
1763//   * ErrCodeBaseException "BaseException"
1764//   An error occurred while processing the request.
1765//
1766//   * ErrCodeInternalException "InternalException"
1767//   The request processing has failed because of an unknown error, exception
1768//   or failure (the failure is internal to the service) . Gives http status code
1769//   of 500.
1770//
1771//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1772//   An exception for accessing or deleting a resource that does not exist. Gives
1773//   http status code of 400.
1774//
1775//   * ErrCodeValidationException "ValidationException"
1776//   An exception for missing / invalid input fields. Gives http status code of
1777//   400.
1778//
1779func (c *ElasticsearchService) ListElasticsearchVersions(input *ListElasticsearchVersionsInput) (*ListElasticsearchVersionsOutput, error) {
1780	req, out := c.ListElasticsearchVersionsRequest(input)
1781	return out, req.Send()
1782}
1783
1784// ListElasticsearchVersionsWithContext is the same as ListElasticsearchVersions with the addition of
1785// the ability to pass a context and additional request options.
1786//
1787// See ListElasticsearchVersions for details on how to use this API operation.
1788//
1789// The context must be non-nil and will be used for request cancellation. If
1790// the context is nil a panic will occur. In the future the SDK may create
1791// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1792// for more information on using Contexts.
1793func (c *ElasticsearchService) ListElasticsearchVersionsWithContext(ctx aws.Context, input *ListElasticsearchVersionsInput, opts ...request.Option) (*ListElasticsearchVersionsOutput, error) {
1794	req, out := c.ListElasticsearchVersionsRequest(input)
1795	req.SetContext(ctx)
1796	req.ApplyOptions(opts...)
1797	return out, req.Send()
1798}
1799
1800// ListElasticsearchVersionsPages iterates over the pages of a ListElasticsearchVersions operation,
1801// calling the "fn" function with the response data for each page. To stop
1802// iterating, return false from the fn function.
1803//
1804// See ListElasticsearchVersions method for more information on how to use this operation.
1805//
1806// Note: This operation can generate multiple requests to a service.
1807//
1808//    // Example iterating over at most 3 pages of a ListElasticsearchVersions operation.
1809//    pageNum := 0
1810//    err := client.ListElasticsearchVersionsPages(params,
1811//        func(page *elasticsearchservice.ListElasticsearchVersionsOutput, lastPage bool) bool {
1812//            pageNum++
1813//            fmt.Println(page)
1814//            return pageNum <= 3
1815//        })
1816//
1817func (c *ElasticsearchService) ListElasticsearchVersionsPages(input *ListElasticsearchVersionsInput, fn func(*ListElasticsearchVersionsOutput, bool) bool) error {
1818	return c.ListElasticsearchVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
1819}
1820
1821// ListElasticsearchVersionsPagesWithContext same as ListElasticsearchVersionsPages except
1822// it takes a Context and allows setting request options on the pages.
1823//
1824// The context must be non-nil and will be used for request cancellation. If
1825// the context is nil a panic will occur. In the future the SDK may create
1826// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1827// for more information on using Contexts.
1828func (c *ElasticsearchService) ListElasticsearchVersionsPagesWithContext(ctx aws.Context, input *ListElasticsearchVersionsInput, fn func(*ListElasticsearchVersionsOutput, bool) bool, opts ...request.Option) error {
1829	p := request.Pagination{
1830		NewRequest: func() (*request.Request, error) {
1831			var inCpy *ListElasticsearchVersionsInput
1832			if input != nil {
1833				tmp := *input
1834				inCpy = &tmp
1835			}
1836			req, _ := c.ListElasticsearchVersionsRequest(inCpy)
1837			req.SetContext(ctx)
1838			req.ApplyOptions(opts...)
1839			return req, nil
1840		},
1841	}
1842
1843	cont := true
1844	for p.Next() && cont {
1845		cont = fn(p.Page().(*ListElasticsearchVersionsOutput), !p.HasNextPage())
1846	}
1847	return p.Err()
1848}
1849
1850const opListTags = "ListTags"
1851
1852// ListTagsRequest generates a "aws/request.Request" representing the
1853// client's request for the ListTags operation. The "output" return
1854// value will be populated with the request's response once the request completes
1855// successfully.
1856//
1857// Use "Send" method on the returned Request to send the API call to the service.
1858// the "output" return value is not valid until after Send returns without error.
1859//
1860// See ListTags for more information on using the ListTags
1861// API call, and error handling.
1862//
1863// This method is useful when you want to inject custom logic or configuration
1864// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1865//
1866//
1867//    // Example sending a request using the ListTagsRequest method.
1868//    req, resp := client.ListTagsRequest(params)
1869//
1870//    err := req.Send()
1871//    if err == nil { // resp is now filled
1872//        fmt.Println(resp)
1873//    }
1874func (c *ElasticsearchService) ListTagsRequest(input *ListTagsInput) (req *request.Request, output *ListTagsOutput) {
1875	op := &request.Operation{
1876		Name:       opListTags,
1877		HTTPMethod: "GET",
1878		HTTPPath:   "/2015-01-01/tags/",
1879	}
1880
1881	if input == nil {
1882		input = &ListTagsInput{}
1883	}
1884
1885	output = &ListTagsOutput{}
1886	req = c.newRequest(op, input, output)
1887	return
1888}
1889
1890// ListTags API operation for Amazon Elasticsearch Service.
1891//
1892// Returns all tags for the given Elasticsearch domain.
1893//
1894// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1895// with awserr.Error's Code and Message methods to get detailed information about
1896// the error.
1897//
1898// See the AWS API reference guide for Amazon Elasticsearch Service's
1899// API operation ListTags for usage and error information.
1900//
1901// Returned Error Codes:
1902//   * ErrCodeBaseException "BaseException"
1903//   An error occurred while processing the request.
1904//
1905//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1906//   An exception for accessing or deleting a resource that does not exist. Gives
1907//   http status code of 400.
1908//
1909//   * ErrCodeValidationException "ValidationException"
1910//   An exception for missing / invalid input fields. Gives http status code of
1911//   400.
1912//
1913//   * ErrCodeInternalException "InternalException"
1914//   The request processing has failed because of an unknown error, exception
1915//   or failure (the failure is internal to the service) . Gives http status code
1916//   of 500.
1917//
1918func (c *ElasticsearchService) ListTags(input *ListTagsInput) (*ListTagsOutput, error) {
1919	req, out := c.ListTagsRequest(input)
1920	return out, req.Send()
1921}
1922
1923// ListTagsWithContext is the same as ListTags with the addition of
1924// the ability to pass a context and additional request options.
1925//
1926// See ListTags for details on how to use this API operation.
1927//
1928// The context must be non-nil and will be used for request cancellation. If
1929// the context is nil a panic will occur. In the future the SDK may create
1930// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1931// for more information on using Contexts.
1932func (c *ElasticsearchService) ListTagsWithContext(ctx aws.Context, input *ListTagsInput, opts ...request.Option) (*ListTagsOutput, error) {
1933	req, out := c.ListTagsRequest(input)
1934	req.SetContext(ctx)
1935	req.ApplyOptions(opts...)
1936	return out, req.Send()
1937}
1938
1939const opPurchaseReservedElasticsearchInstanceOffering = "PurchaseReservedElasticsearchInstanceOffering"
1940
1941// PurchaseReservedElasticsearchInstanceOfferingRequest generates a "aws/request.Request" representing the
1942// client's request for the PurchaseReservedElasticsearchInstanceOffering operation. The "output" return
1943// value will be populated with the request's response once the request completes
1944// successfully.
1945//
1946// Use "Send" method on the returned Request to send the API call to the service.
1947// the "output" return value is not valid until after Send returns without error.
1948//
1949// See PurchaseReservedElasticsearchInstanceOffering for more information on using the PurchaseReservedElasticsearchInstanceOffering
1950// API call, and error handling.
1951//
1952// This method is useful when you want to inject custom logic or configuration
1953// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1954//
1955//
1956//    // Example sending a request using the PurchaseReservedElasticsearchInstanceOfferingRequest method.
1957//    req, resp := client.PurchaseReservedElasticsearchInstanceOfferingRequest(params)
1958//
1959//    err := req.Send()
1960//    if err == nil { // resp is now filled
1961//        fmt.Println(resp)
1962//    }
1963func (c *ElasticsearchService) PurchaseReservedElasticsearchInstanceOfferingRequest(input *PurchaseReservedElasticsearchInstanceOfferingInput) (req *request.Request, output *PurchaseReservedElasticsearchInstanceOfferingOutput) {
1964	op := &request.Operation{
1965		Name:       opPurchaseReservedElasticsearchInstanceOffering,
1966		HTTPMethod: "POST",
1967		HTTPPath:   "/2015-01-01/es/purchaseReservedInstanceOffering",
1968	}
1969
1970	if input == nil {
1971		input = &PurchaseReservedElasticsearchInstanceOfferingInput{}
1972	}
1973
1974	output = &PurchaseReservedElasticsearchInstanceOfferingOutput{}
1975	req = c.newRequest(op, input, output)
1976	return
1977}
1978
1979// PurchaseReservedElasticsearchInstanceOffering API operation for Amazon Elasticsearch Service.
1980//
1981// Allows you to purchase reserved Elasticsearch instances.
1982//
1983// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1984// with awserr.Error's Code and Message methods to get detailed information about
1985// the error.
1986//
1987// See the AWS API reference guide for Amazon Elasticsearch Service's
1988// API operation PurchaseReservedElasticsearchInstanceOffering for usage and error information.
1989//
1990// Returned Error Codes:
1991//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1992//   An exception for accessing or deleting a resource that does not exist. Gives
1993//   http status code of 400.
1994//
1995//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
1996//   An exception for creating a resource that already exists. Gives http status
1997//   code of 400.
1998//
1999//   * ErrCodeLimitExceededException "LimitExceededException"
2000//   An exception for trying to create more than allowed resources or sub-resources.
2001//   Gives http status code of 409.
2002//
2003//   * ErrCodeDisabledOperationException "DisabledOperationException"
2004//   An error occured because the client wanted to access a not supported operation.
2005//   Gives http status code of 409.
2006//
2007//   * ErrCodeValidationException "ValidationException"
2008//   An exception for missing / invalid input fields. Gives http status code of
2009//   400.
2010//
2011//   * ErrCodeInternalException "InternalException"
2012//   The request processing has failed because of an unknown error, exception
2013//   or failure (the failure is internal to the service) . Gives http status code
2014//   of 500.
2015//
2016func (c *ElasticsearchService) PurchaseReservedElasticsearchInstanceOffering(input *PurchaseReservedElasticsearchInstanceOfferingInput) (*PurchaseReservedElasticsearchInstanceOfferingOutput, error) {
2017	req, out := c.PurchaseReservedElasticsearchInstanceOfferingRequest(input)
2018	return out, req.Send()
2019}
2020
2021// PurchaseReservedElasticsearchInstanceOfferingWithContext is the same as PurchaseReservedElasticsearchInstanceOffering with the addition of
2022// the ability to pass a context and additional request options.
2023//
2024// See PurchaseReservedElasticsearchInstanceOffering for details on how to use this API operation.
2025//
2026// The context must be non-nil and will be used for request cancellation. If
2027// the context is nil a panic will occur. In the future the SDK may create
2028// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2029// for more information on using Contexts.
2030func (c *ElasticsearchService) PurchaseReservedElasticsearchInstanceOfferingWithContext(ctx aws.Context, input *PurchaseReservedElasticsearchInstanceOfferingInput, opts ...request.Option) (*PurchaseReservedElasticsearchInstanceOfferingOutput, error) {
2031	req, out := c.PurchaseReservedElasticsearchInstanceOfferingRequest(input)
2032	req.SetContext(ctx)
2033	req.ApplyOptions(opts...)
2034	return out, req.Send()
2035}
2036
2037const opRemoveTags = "RemoveTags"
2038
2039// RemoveTagsRequest generates a "aws/request.Request" representing the
2040// client's request for the RemoveTags operation. The "output" return
2041// value will be populated with the request's response once the request completes
2042// successfully.
2043//
2044// Use "Send" method on the returned Request to send the API call to the service.
2045// the "output" return value is not valid until after Send returns without error.
2046//
2047// See RemoveTags for more information on using the RemoveTags
2048// API call, and error handling.
2049//
2050// This method is useful when you want to inject custom logic or configuration
2051// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2052//
2053//
2054//    // Example sending a request using the RemoveTagsRequest method.
2055//    req, resp := client.RemoveTagsRequest(params)
2056//
2057//    err := req.Send()
2058//    if err == nil { // resp is now filled
2059//        fmt.Println(resp)
2060//    }
2061func (c *ElasticsearchService) RemoveTagsRequest(input *RemoveTagsInput) (req *request.Request, output *RemoveTagsOutput) {
2062	op := &request.Operation{
2063		Name:       opRemoveTags,
2064		HTTPMethod: "POST",
2065		HTTPPath:   "/2015-01-01/tags-removal",
2066	}
2067
2068	if input == nil {
2069		input = &RemoveTagsInput{}
2070	}
2071
2072	output = &RemoveTagsOutput{}
2073	req = c.newRequest(op, input, output)
2074	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2075	return
2076}
2077
2078// RemoveTags API operation for Amazon Elasticsearch Service.
2079//
2080// Removes the specified set of tags from the specified Elasticsearch domain.
2081//
2082// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2083// with awserr.Error's Code and Message methods to get detailed information about
2084// the error.
2085//
2086// See the AWS API reference guide for Amazon Elasticsearch Service's
2087// API operation RemoveTags for usage and error information.
2088//
2089// Returned Error Codes:
2090//   * ErrCodeBaseException "BaseException"
2091//   An error occurred while processing the request.
2092//
2093//   * ErrCodeValidationException "ValidationException"
2094//   An exception for missing / invalid input fields. Gives http status code of
2095//   400.
2096//
2097//   * ErrCodeInternalException "InternalException"
2098//   The request processing has failed because of an unknown error, exception
2099//   or failure (the failure is internal to the service) . Gives http status code
2100//   of 500.
2101//
2102func (c *ElasticsearchService) RemoveTags(input *RemoveTagsInput) (*RemoveTagsOutput, error) {
2103	req, out := c.RemoveTagsRequest(input)
2104	return out, req.Send()
2105}
2106
2107// RemoveTagsWithContext is the same as RemoveTags with the addition of
2108// the ability to pass a context and additional request options.
2109//
2110// See RemoveTags for details on how to use this API operation.
2111//
2112// The context must be non-nil and will be used for request cancellation. If
2113// the context is nil a panic will occur. In the future the SDK may create
2114// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2115// for more information on using Contexts.
2116func (c *ElasticsearchService) RemoveTagsWithContext(ctx aws.Context, input *RemoveTagsInput, opts ...request.Option) (*RemoveTagsOutput, error) {
2117	req, out := c.RemoveTagsRequest(input)
2118	req.SetContext(ctx)
2119	req.ApplyOptions(opts...)
2120	return out, req.Send()
2121}
2122
2123const opStartElasticsearchServiceSoftwareUpdate = "StartElasticsearchServiceSoftwareUpdate"
2124
2125// StartElasticsearchServiceSoftwareUpdateRequest generates a "aws/request.Request" representing the
2126// client's request for the StartElasticsearchServiceSoftwareUpdate operation. The "output" return
2127// value will be populated with the request's response once the request completes
2128// successfully.
2129//
2130// Use "Send" method on the returned Request to send the API call to the service.
2131// the "output" return value is not valid until after Send returns without error.
2132//
2133// See StartElasticsearchServiceSoftwareUpdate for more information on using the StartElasticsearchServiceSoftwareUpdate
2134// API call, and error handling.
2135//
2136// This method is useful when you want to inject custom logic or configuration
2137// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2138//
2139//
2140//    // Example sending a request using the StartElasticsearchServiceSoftwareUpdateRequest method.
2141//    req, resp := client.StartElasticsearchServiceSoftwareUpdateRequest(params)
2142//
2143//    err := req.Send()
2144//    if err == nil { // resp is now filled
2145//        fmt.Println(resp)
2146//    }
2147func (c *ElasticsearchService) StartElasticsearchServiceSoftwareUpdateRequest(input *StartElasticsearchServiceSoftwareUpdateInput) (req *request.Request, output *StartElasticsearchServiceSoftwareUpdateOutput) {
2148	op := &request.Operation{
2149		Name:       opStartElasticsearchServiceSoftwareUpdate,
2150		HTTPMethod: "POST",
2151		HTTPPath:   "/2015-01-01/es/serviceSoftwareUpdate/start",
2152	}
2153
2154	if input == nil {
2155		input = &StartElasticsearchServiceSoftwareUpdateInput{}
2156	}
2157
2158	output = &StartElasticsearchServiceSoftwareUpdateOutput{}
2159	req = c.newRequest(op, input, output)
2160	return
2161}
2162
2163// StartElasticsearchServiceSoftwareUpdate API operation for Amazon Elasticsearch Service.
2164//
2165// Schedules a service software update for an Amazon ES domain.
2166//
2167// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2168// with awserr.Error's Code and Message methods to get detailed information about
2169// the error.
2170//
2171// See the AWS API reference guide for Amazon Elasticsearch Service's
2172// API operation StartElasticsearchServiceSoftwareUpdate for usage and error information.
2173//
2174// Returned Error Codes:
2175//   * ErrCodeBaseException "BaseException"
2176//   An error occurred while processing the request.
2177//
2178//   * ErrCodeInternalException "InternalException"
2179//   The request processing has failed because of an unknown error, exception
2180//   or failure (the failure is internal to the service) . Gives http status code
2181//   of 500.
2182//
2183//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2184//   An exception for accessing or deleting a resource that does not exist. Gives
2185//   http status code of 400.
2186//
2187//   * ErrCodeValidationException "ValidationException"
2188//   An exception for missing / invalid input fields. Gives http status code of
2189//   400.
2190//
2191func (c *ElasticsearchService) StartElasticsearchServiceSoftwareUpdate(input *StartElasticsearchServiceSoftwareUpdateInput) (*StartElasticsearchServiceSoftwareUpdateOutput, error) {
2192	req, out := c.StartElasticsearchServiceSoftwareUpdateRequest(input)
2193	return out, req.Send()
2194}
2195
2196// StartElasticsearchServiceSoftwareUpdateWithContext is the same as StartElasticsearchServiceSoftwareUpdate with the addition of
2197// the ability to pass a context and additional request options.
2198//
2199// See StartElasticsearchServiceSoftwareUpdate for details on how to use this API operation.
2200//
2201// The context must be non-nil and will be used for request cancellation. If
2202// the context is nil a panic will occur. In the future the SDK may create
2203// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2204// for more information on using Contexts.
2205func (c *ElasticsearchService) StartElasticsearchServiceSoftwareUpdateWithContext(ctx aws.Context, input *StartElasticsearchServiceSoftwareUpdateInput, opts ...request.Option) (*StartElasticsearchServiceSoftwareUpdateOutput, error) {
2206	req, out := c.StartElasticsearchServiceSoftwareUpdateRequest(input)
2207	req.SetContext(ctx)
2208	req.ApplyOptions(opts...)
2209	return out, req.Send()
2210}
2211
2212const opUpdateElasticsearchDomainConfig = "UpdateElasticsearchDomainConfig"
2213
2214// UpdateElasticsearchDomainConfigRequest generates a "aws/request.Request" representing the
2215// client's request for the UpdateElasticsearchDomainConfig operation. The "output" return
2216// value will be populated with the request's response once the request completes
2217// successfully.
2218//
2219// Use "Send" method on the returned Request to send the API call to the service.
2220// the "output" return value is not valid until after Send returns without error.
2221//
2222// See UpdateElasticsearchDomainConfig for more information on using the UpdateElasticsearchDomainConfig
2223// API call, and error handling.
2224//
2225// This method is useful when you want to inject custom logic or configuration
2226// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2227//
2228//
2229//    // Example sending a request using the UpdateElasticsearchDomainConfigRequest method.
2230//    req, resp := client.UpdateElasticsearchDomainConfigRequest(params)
2231//
2232//    err := req.Send()
2233//    if err == nil { // resp is now filled
2234//        fmt.Println(resp)
2235//    }
2236func (c *ElasticsearchService) UpdateElasticsearchDomainConfigRequest(input *UpdateElasticsearchDomainConfigInput) (req *request.Request, output *UpdateElasticsearchDomainConfigOutput) {
2237	op := &request.Operation{
2238		Name:       opUpdateElasticsearchDomainConfig,
2239		HTTPMethod: "POST",
2240		HTTPPath:   "/2015-01-01/es/domain/{DomainName}/config",
2241	}
2242
2243	if input == nil {
2244		input = &UpdateElasticsearchDomainConfigInput{}
2245	}
2246
2247	output = &UpdateElasticsearchDomainConfigOutput{}
2248	req = c.newRequest(op, input, output)
2249	return
2250}
2251
2252// UpdateElasticsearchDomainConfig API operation for Amazon Elasticsearch Service.
2253//
2254// Modifies the cluster configuration of the specified Elasticsearch domain,
2255// setting as setting the instance type and the number of instances.
2256//
2257// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2258// with awserr.Error's Code and Message methods to get detailed information about
2259// the error.
2260//
2261// See the AWS API reference guide for Amazon Elasticsearch Service's
2262// API operation UpdateElasticsearchDomainConfig for usage and error information.
2263//
2264// Returned Error Codes:
2265//   * ErrCodeBaseException "BaseException"
2266//   An error occurred while processing the request.
2267//
2268//   * ErrCodeInternalException "InternalException"
2269//   The request processing has failed because of an unknown error, exception
2270//   or failure (the failure is internal to the service) . Gives http status code
2271//   of 500.
2272//
2273//   * ErrCodeInvalidTypeException "InvalidTypeException"
2274//   An exception for trying to create or access sub-resource that is either invalid
2275//   or not supported. Gives http status code of 409.
2276//
2277//   * ErrCodeLimitExceededException "LimitExceededException"
2278//   An exception for trying to create more than allowed resources or sub-resources.
2279//   Gives http status code of 409.
2280//
2281//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2282//   An exception for accessing or deleting a resource that does not exist. Gives
2283//   http status code of 400.
2284//
2285//   * ErrCodeValidationException "ValidationException"
2286//   An exception for missing / invalid input fields. Gives http status code of
2287//   400.
2288//
2289func (c *ElasticsearchService) UpdateElasticsearchDomainConfig(input *UpdateElasticsearchDomainConfigInput) (*UpdateElasticsearchDomainConfigOutput, error) {
2290	req, out := c.UpdateElasticsearchDomainConfigRequest(input)
2291	return out, req.Send()
2292}
2293
2294// UpdateElasticsearchDomainConfigWithContext is the same as UpdateElasticsearchDomainConfig with the addition of
2295// the ability to pass a context and additional request options.
2296//
2297// See UpdateElasticsearchDomainConfig for details on how to use this API operation.
2298//
2299// The context must be non-nil and will be used for request cancellation. If
2300// the context is nil a panic will occur. In the future the SDK may create
2301// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2302// for more information on using Contexts.
2303func (c *ElasticsearchService) UpdateElasticsearchDomainConfigWithContext(ctx aws.Context, input *UpdateElasticsearchDomainConfigInput, opts ...request.Option) (*UpdateElasticsearchDomainConfigOutput, error) {
2304	req, out := c.UpdateElasticsearchDomainConfigRequest(input)
2305	req.SetContext(ctx)
2306	req.ApplyOptions(opts...)
2307	return out, req.Send()
2308}
2309
2310const opUpgradeElasticsearchDomain = "UpgradeElasticsearchDomain"
2311
2312// UpgradeElasticsearchDomainRequest generates a "aws/request.Request" representing the
2313// client's request for the UpgradeElasticsearchDomain operation. The "output" return
2314// value will be populated with the request's response once the request completes
2315// successfully.
2316//
2317// Use "Send" method on the returned Request to send the API call to the service.
2318// the "output" return value is not valid until after Send returns without error.
2319//
2320// See UpgradeElasticsearchDomain for more information on using the UpgradeElasticsearchDomain
2321// API call, and error handling.
2322//
2323// This method is useful when you want to inject custom logic or configuration
2324// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2325//
2326//
2327//    // Example sending a request using the UpgradeElasticsearchDomainRequest method.
2328//    req, resp := client.UpgradeElasticsearchDomainRequest(params)
2329//
2330//    err := req.Send()
2331//    if err == nil { // resp is now filled
2332//        fmt.Println(resp)
2333//    }
2334func (c *ElasticsearchService) UpgradeElasticsearchDomainRequest(input *UpgradeElasticsearchDomainInput) (req *request.Request, output *UpgradeElasticsearchDomainOutput) {
2335	op := &request.Operation{
2336		Name:       opUpgradeElasticsearchDomain,
2337		HTTPMethod: "POST",
2338		HTTPPath:   "/2015-01-01/es/upgradeDomain",
2339	}
2340
2341	if input == nil {
2342		input = &UpgradeElasticsearchDomainInput{}
2343	}
2344
2345	output = &UpgradeElasticsearchDomainOutput{}
2346	req = c.newRequest(op, input, output)
2347	return
2348}
2349
2350// UpgradeElasticsearchDomain API operation for Amazon Elasticsearch Service.
2351//
2352// Allows you to either upgrade your domain or perform an Upgrade eligibility
2353// check to a compatible Elasticsearch version.
2354//
2355// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2356// with awserr.Error's Code and Message methods to get detailed information about
2357// the error.
2358//
2359// See the AWS API reference guide for Amazon Elasticsearch Service's
2360// API operation UpgradeElasticsearchDomain for usage and error information.
2361//
2362// Returned Error Codes:
2363//   * ErrCodeBaseException "BaseException"
2364//   An error occurred while processing the request.
2365//
2366//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2367//   An exception for accessing or deleting a resource that does not exist. Gives
2368//   http status code of 400.
2369//
2370//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
2371//   An exception for creating a resource that already exists. Gives http status
2372//   code of 400.
2373//
2374//   * ErrCodeDisabledOperationException "DisabledOperationException"
2375//   An error occured because the client wanted to access a not supported operation.
2376//   Gives http status code of 409.
2377//
2378//   * ErrCodeValidationException "ValidationException"
2379//   An exception for missing / invalid input fields. Gives http status code of
2380//   400.
2381//
2382//   * ErrCodeInternalException "InternalException"
2383//   The request processing has failed because of an unknown error, exception
2384//   or failure (the failure is internal to the service) . Gives http status code
2385//   of 500.
2386//
2387func (c *ElasticsearchService) UpgradeElasticsearchDomain(input *UpgradeElasticsearchDomainInput) (*UpgradeElasticsearchDomainOutput, error) {
2388	req, out := c.UpgradeElasticsearchDomainRequest(input)
2389	return out, req.Send()
2390}
2391
2392// UpgradeElasticsearchDomainWithContext is the same as UpgradeElasticsearchDomain with the addition of
2393// the ability to pass a context and additional request options.
2394//
2395// See UpgradeElasticsearchDomain for details on how to use this API operation.
2396//
2397// The context must be non-nil and will be used for request cancellation. If
2398// the context is nil a panic will occur. In the future the SDK may create
2399// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2400// for more information on using Contexts.
2401func (c *ElasticsearchService) UpgradeElasticsearchDomainWithContext(ctx aws.Context, input *UpgradeElasticsearchDomainInput, opts ...request.Option) (*UpgradeElasticsearchDomainOutput, error) {
2402	req, out := c.UpgradeElasticsearchDomainRequest(input)
2403	req.SetContext(ctx)
2404	req.ApplyOptions(opts...)
2405	return out, req.Send()
2406}
2407
2408// The configured access rules for the domain's document and search endpoints,
2409// and the current status of those rules.
2410type AccessPoliciesStatus struct {
2411	_ struct{} `type:"structure"`
2412
2413	// The access policy configured for the Elasticsearch domain. Access policies
2414	// may be resource-based, IP-based, or IAM-based. See Configuring Access Policies
2415	// (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-access-policies)for
2416	// more information.
2417	//
2418	// Options is a required field
2419	Options *string `type:"string" required:"true"`
2420
2421	// The status of the access policy for the Elasticsearch domain. See OptionStatus
2422	// for the status information that's included.
2423	//
2424	// Status is a required field
2425	Status *OptionStatus `type:"structure" required:"true"`
2426}
2427
2428// String returns the string representation
2429func (s AccessPoliciesStatus) String() string {
2430	return awsutil.Prettify(s)
2431}
2432
2433// GoString returns the string representation
2434func (s AccessPoliciesStatus) GoString() string {
2435	return s.String()
2436}
2437
2438// SetOptions sets the Options field's value.
2439func (s *AccessPoliciesStatus) SetOptions(v string) *AccessPoliciesStatus {
2440	s.Options = &v
2441	return s
2442}
2443
2444// SetStatus sets the Status field's value.
2445func (s *AccessPoliciesStatus) SetStatus(v *OptionStatus) *AccessPoliciesStatus {
2446	s.Status = v
2447	return s
2448}
2449
2450// Container for the parameters to the AddTags operation. Specify the tags that
2451// you want to attach to the Elasticsearch domain.
2452type AddTagsInput struct {
2453	_ struct{} `type:"structure"`
2454
2455	// Specify the ARN for which you want to add the tags.
2456	//
2457	// ARN is a required field
2458	ARN *string `type:"string" required:"true"`
2459
2460	// List of Tag that need to be added for the Elasticsearch domain.
2461	//
2462	// TagList is a required field
2463	TagList []*Tag `type:"list" required:"true"`
2464}
2465
2466// String returns the string representation
2467func (s AddTagsInput) String() string {
2468	return awsutil.Prettify(s)
2469}
2470
2471// GoString returns the string representation
2472func (s AddTagsInput) GoString() string {
2473	return s.String()
2474}
2475
2476// Validate inspects the fields of the type to determine if they are valid.
2477func (s *AddTagsInput) Validate() error {
2478	invalidParams := request.ErrInvalidParams{Context: "AddTagsInput"}
2479	if s.ARN == nil {
2480		invalidParams.Add(request.NewErrParamRequired("ARN"))
2481	}
2482	if s.TagList == nil {
2483		invalidParams.Add(request.NewErrParamRequired("TagList"))
2484	}
2485	if s.TagList != nil {
2486		for i, v := range s.TagList {
2487			if v == nil {
2488				continue
2489			}
2490			if err := v.Validate(); err != nil {
2491				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagList", i), err.(request.ErrInvalidParams))
2492			}
2493		}
2494	}
2495
2496	if invalidParams.Len() > 0 {
2497		return invalidParams
2498	}
2499	return nil
2500}
2501
2502// SetARN sets the ARN field's value.
2503func (s *AddTagsInput) SetARN(v string) *AddTagsInput {
2504	s.ARN = &v
2505	return s
2506}
2507
2508// SetTagList sets the TagList field's value.
2509func (s *AddTagsInput) SetTagList(v []*Tag) *AddTagsInput {
2510	s.TagList = v
2511	return s
2512}
2513
2514type AddTagsOutput struct {
2515	_ struct{} `type:"structure"`
2516}
2517
2518// String returns the string representation
2519func (s AddTagsOutput) String() string {
2520	return awsutil.Prettify(s)
2521}
2522
2523// GoString returns the string representation
2524func (s AddTagsOutput) GoString() string {
2525	return s.String()
2526}
2527
2528// List of limits that are specific to a given InstanceType and for each of
2529// it's InstanceRole .
2530type AdditionalLimit struct {
2531	_ struct{} `type:"structure"`
2532
2533	// Name of Additional Limit is specific to a given InstanceType and for each
2534	// of it's InstanceRole etc. Attributes and their details:
2535	//    * MaximumNumberOfDataNodesSupported
2536	//
2537	//    * MaximumNumberOfDataNodesWithoutMasterNode
2538	LimitName *string `type:"string"`
2539
2540	// Value for given AdditionalLimit$LimitName .
2541	LimitValues []*string `type:"list"`
2542}
2543
2544// String returns the string representation
2545func (s AdditionalLimit) String() string {
2546	return awsutil.Prettify(s)
2547}
2548
2549// GoString returns the string representation
2550func (s AdditionalLimit) GoString() string {
2551	return s.String()
2552}
2553
2554// SetLimitName sets the LimitName field's value.
2555func (s *AdditionalLimit) SetLimitName(v string) *AdditionalLimit {
2556	s.LimitName = &v
2557	return s
2558}
2559
2560// SetLimitValues sets the LimitValues field's value.
2561func (s *AdditionalLimit) SetLimitValues(v []*string) *AdditionalLimit {
2562	s.LimitValues = v
2563	return s
2564}
2565
2566// Status of the advanced options for the specified Elasticsearch domain. Currently,
2567// the following advanced options are available:
2568//
2569//    * Option to allow references to indices in an HTTP request body. Must
2570//    be false when configuring access to individual sub-resources. By default,
2571//    the value is true. See Configuration Advanced Options for more information.
2572//
2573//    * Option to specify the percentage of heap space that is allocated to
2574//    field data. By default, this setting is unbounded.
2575//
2576// For more information, see Configuring Advanced Options (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options).
2577type AdvancedOptionsStatus struct {
2578	_ struct{} `type:"structure"`
2579
2580	// Specifies the status of advanced options for the specified Elasticsearch
2581	// domain.
2582	//
2583	// Options is a required field
2584	Options map[string]*string `type:"map" required:"true"`
2585
2586	// Specifies the status of OptionStatus for advanced options for the specified
2587	// Elasticsearch domain.
2588	//
2589	// Status is a required field
2590	Status *OptionStatus `type:"structure" required:"true"`
2591}
2592
2593// String returns the string representation
2594func (s AdvancedOptionsStatus) String() string {
2595	return awsutil.Prettify(s)
2596}
2597
2598// GoString returns the string representation
2599func (s AdvancedOptionsStatus) GoString() string {
2600	return s.String()
2601}
2602
2603// SetOptions sets the Options field's value.
2604func (s *AdvancedOptionsStatus) SetOptions(v map[string]*string) *AdvancedOptionsStatus {
2605	s.Options = v
2606	return s
2607}
2608
2609// SetStatus sets the Status field's value.
2610func (s *AdvancedOptionsStatus) SetStatus(v *OptionStatus) *AdvancedOptionsStatus {
2611	s.Status = v
2612	return s
2613}
2614
2615// Container for the parameters to the CancelElasticsearchServiceSoftwareUpdate
2616// operation. Specifies the name of the Elasticsearch domain that you wish to
2617// cancel a service software update on.
2618type CancelElasticsearchServiceSoftwareUpdateInput struct {
2619	_ struct{} `type:"structure"`
2620
2621	// The name of the domain that you want to stop the latest service software
2622	// update on.
2623	//
2624	// DomainName is a required field
2625	DomainName *string `min:"3" type:"string" required:"true"`
2626}
2627
2628// String returns the string representation
2629func (s CancelElasticsearchServiceSoftwareUpdateInput) String() string {
2630	return awsutil.Prettify(s)
2631}
2632
2633// GoString returns the string representation
2634func (s CancelElasticsearchServiceSoftwareUpdateInput) GoString() string {
2635	return s.String()
2636}
2637
2638// Validate inspects the fields of the type to determine if they are valid.
2639func (s *CancelElasticsearchServiceSoftwareUpdateInput) Validate() error {
2640	invalidParams := request.ErrInvalidParams{Context: "CancelElasticsearchServiceSoftwareUpdateInput"}
2641	if s.DomainName == nil {
2642		invalidParams.Add(request.NewErrParamRequired("DomainName"))
2643	}
2644	if s.DomainName != nil && len(*s.DomainName) < 3 {
2645		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
2646	}
2647
2648	if invalidParams.Len() > 0 {
2649		return invalidParams
2650	}
2651	return nil
2652}
2653
2654// SetDomainName sets the DomainName field's value.
2655func (s *CancelElasticsearchServiceSoftwareUpdateInput) SetDomainName(v string) *CancelElasticsearchServiceSoftwareUpdateInput {
2656	s.DomainName = &v
2657	return s
2658}
2659
2660// The result of a CancelElasticsearchServiceSoftwareUpdate operation. Contains
2661// the status of the update.
2662type CancelElasticsearchServiceSoftwareUpdateOutput struct {
2663	_ struct{} `type:"structure"`
2664
2665	// The current status of the Elasticsearch service software update.
2666	ServiceSoftwareOptions *ServiceSoftwareOptions `type:"structure"`
2667}
2668
2669// String returns the string representation
2670func (s CancelElasticsearchServiceSoftwareUpdateOutput) String() string {
2671	return awsutil.Prettify(s)
2672}
2673
2674// GoString returns the string representation
2675func (s CancelElasticsearchServiceSoftwareUpdateOutput) GoString() string {
2676	return s.String()
2677}
2678
2679// SetServiceSoftwareOptions sets the ServiceSoftwareOptions field's value.
2680func (s *CancelElasticsearchServiceSoftwareUpdateOutput) SetServiceSoftwareOptions(v *ServiceSoftwareOptions) *CancelElasticsearchServiceSoftwareUpdateOutput {
2681	s.ServiceSoftwareOptions = v
2682	return s
2683}
2684
2685// Options to specify the Cognito user and identity pools for Kibana authentication.
2686// For more information, see Amazon Cognito Authentication for Kibana (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html).
2687type CognitoOptions struct {
2688	_ struct{} `type:"structure"`
2689
2690	// Specifies the option to enable Cognito for Kibana authentication.
2691	Enabled *bool `type:"boolean"`
2692
2693	// Specifies the Cognito identity pool ID for Kibana authentication.
2694	IdentityPoolId *string `min:"1" type:"string"`
2695
2696	// Specifies the role ARN that provides Elasticsearch permissions for accessing
2697	// Cognito resources.
2698	RoleArn *string `min:"20" type:"string"`
2699
2700	// Specifies the Cognito user pool ID for Kibana authentication.
2701	UserPoolId *string `min:"1" type:"string"`
2702}
2703
2704// String returns the string representation
2705func (s CognitoOptions) String() string {
2706	return awsutil.Prettify(s)
2707}
2708
2709// GoString returns the string representation
2710func (s CognitoOptions) GoString() string {
2711	return s.String()
2712}
2713
2714// Validate inspects the fields of the type to determine if they are valid.
2715func (s *CognitoOptions) Validate() error {
2716	invalidParams := request.ErrInvalidParams{Context: "CognitoOptions"}
2717	if s.IdentityPoolId != nil && len(*s.IdentityPoolId) < 1 {
2718		invalidParams.Add(request.NewErrParamMinLen("IdentityPoolId", 1))
2719	}
2720	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
2721		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
2722	}
2723	if s.UserPoolId != nil && len(*s.UserPoolId) < 1 {
2724		invalidParams.Add(request.NewErrParamMinLen("UserPoolId", 1))
2725	}
2726
2727	if invalidParams.Len() > 0 {
2728		return invalidParams
2729	}
2730	return nil
2731}
2732
2733// SetEnabled sets the Enabled field's value.
2734func (s *CognitoOptions) SetEnabled(v bool) *CognitoOptions {
2735	s.Enabled = &v
2736	return s
2737}
2738
2739// SetIdentityPoolId sets the IdentityPoolId field's value.
2740func (s *CognitoOptions) SetIdentityPoolId(v string) *CognitoOptions {
2741	s.IdentityPoolId = &v
2742	return s
2743}
2744
2745// SetRoleArn sets the RoleArn field's value.
2746func (s *CognitoOptions) SetRoleArn(v string) *CognitoOptions {
2747	s.RoleArn = &v
2748	return s
2749}
2750
2751// SetUserPoolId sets the UserPoolId field's value.
2752func (s *CognitoOptions) SetUserPoolId(v string) *CognitoOptions {
2753	s.UserPoolId = &v
2754	return s
2755}
2756
2757// Status of the Cognito options for the specified Elasticsearch domain.
2758type CognitoOptionsStatus struct {
2759	_ struct{} `type:"structure"`
2760
2761	// Specifies the Cognito options for the specified Elasticsearch domain.
2762	//
2763	// Options is a required field
2764	Options *CognitoOptions `type:"structure" required:"true"`
2765
2766	// Specifies the status of the Cognito options for the specified Elasticsearch
2767	// domain.
2768	//
2769	// Status is a required field
2770	Status *OptionStatus `type:"structure" required:"true"`
2771}
2772
2773// String returns the string representation
2774func (s CognitoOptionsStatus) String() string {
2775	return awsutil.Prettify(s)
2776}
2777
2778// GoString returns the string representation
2779func (s CognitoOptionsStatus) GoString() string {
2780	return s.String()
2781}
2782
2783// SetOptions sets the Options field's value.
2784func (s *CognitoOptionsStatus) SetOptions(v *CognitoOptions) *CognitoOptionsStatus {
2785	s.Options = v
2786	return s
2787}
2788
2789// SetStatus sets the Status field's value.
2790func (s *CognitoOptionsStatus) SetStatus(v *OptionStatus) *CognitoOptionsStatus {
2791	s.Status = v
2792	return s
2793}
2794
2795// A map from an ElasticsearchVersion to a list of compatible ElasticsearchVersion
2796// s to which the domain can be upgraded.
2797type CompatibleVersionsMap struct {
2798	_ struct{} `type:"structure"`
2799
2800	// The current version of Elasticsearch on which a domain is.
2801	SourceVersion *string `type:"string"`
2802
2803	// List of supported elastic search versions.
2804	TargetVersions []*string `type:"list"`
2805}
2806
2807// String returns the string representation
2808func (s CompatibleVersionsMap) String() string {
2809	return awsutil.Prettify(s)
2810}
2811
2812// GoString returns the string representation
2813func (s CompatibleVersionsMap) GoString() string {
2814	return s.String()
2815}
2816
2817// SetSourceVersion sets the SourceVersion field's value.
2818func (s *CompatibleVersionsMap) SetSourceVersion(v string) *CompatibleVersionsMap {
2819	s.SourceVersion = &v
2820	return s
2821}
2822
2823// SetTargetVersions sets the TargetVersions field's value.
2824func (s *CompatibleVersionsMap) SetTargetVersions(v []*string) *CompatibleVersionsMap {
2825	s.TargetVersions = v
2826	return s
2827}
2828
2829type CreateElasticsearchDomainInput struct {
2830	_ struct{} `type:"structure"`
2831
2832	// IAM access policy as a JSON-formatted string.
2833	AccessPolicies *string `type:"string"`
2834
2835	// Option to allow references to indices in an HTTP request body. Must be false
2836	// when configuring access to individual sub-resources. By default, the value
2837	// is true. See Configuration Advanced Options (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options)
2838	// for more information.
2839	AdvancedOptions map[string]*string `type:"map"`
2840
2841	// Options to specify the Cognito user and identity pools for Kibana authentication.
2842	// For more information, see Amazon Cognito Authentication for Kibana (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html).
2843	CognitoOptions *CognitoOptions `type:"structure"`
2844
2845	// Options to specify configuration that will be applied to the domain endpoint.
2846	DomainEndpointOptions *DomainEndpointOptions `type:"structure"`
2847
2848	// The name of the Elasticsearch domain that you are creating. Domain names
2849	// are unique across the domains owned by an account within an AWS region. Domain
2850	// names must start with a lowercase letter and can contain the following characters:
2851	// a-z (lowercase), 0-9, and - (hyphen).
2852	//
2853	// DomainName is a required field
2854	DomainName *string `min:"3" type:"string" required:"true"`
2855
2856	// Options to enable, disable and specify the type and size of EBS storage volumes.
2857	EBSOptions *EBSOptions `type:"structure"`
2858
2859	// Configuration options for an Elasticsearch domain. Specifies the instance
2860	// type and number of instances in the domain cluster.
2861	ElasticsearchClusterConfig *ElasticsearchClusterConfig `type:"structure"`
2862
2863	// String of format X.Y to specify version for the Elasticsearch domain eg.
2864	// "1.5" or "2.3". For more information, see Creating Elasticsearch Domains
2865	// (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomains)
2866	// in the Amazon Elasticsearch Service Developer Guide.
2867	ElasticsearchVersion *string `type:"string"`
2868
2869	// Specifies the Encryption At Rest Options.
2870	EncryptionAtRestOptions *EncryptionAtRestOptions `type:"structure"`
2871
2872	// Map of LogType and LogPublishingOption, each containing options to publish
2873	// a given type of Elasticsearch log.
2874	LogPublishingOptions map[string]*LogPublishingOption `type:"map"`
2875
2876	// Specifies the NodeToNodeEncryptionOptions.
2877	NodeToNodeEncryptionOptions *NodeToNodeEncryptionOptions `type:"structure"`
2878
2879	// Option to set time, in UTC format, of the daily automated snapshot. Default
2880	// value is 0 hours.
2881	SnapshotOptions *SnapshotOptions `type:"structure"`
2882
2883	// Options to specify the subnets and security groups for VPC endpoint. For
2884	// more information, see Creating a VPC (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-creating-vpc)
2885	// in VPC Endpoints for Amazon Elasticsearch Service Domains
2886	VPCOptions *VPCOptions `type:"structure"`
2887}
2888
2889// String returns the string representation
2890func (s CreateElasticsearchDomainInput) String() string {
2891	return awsutil.Prettify(s)
2892}
2893
2894// GoString returns the string representation
2895func (s CreateElasticsearchDomainInput) GoString() string {
2896	return s.String()
2897}
2898
2899// Validate inspects the fields of the type to determine if they are valid.
2900func (s *CreateElasticsearchDomainInput) Validate() error {
2901	invalidParams := request.ErrInvalidParams{Context: "CreateElasticsearchDomainInput"}
2902	if s.DomainName == nil {
2903		invalidParams.Add(request.NewErrParamRequired("DomainName"))
2904	}
2905	if s.DomainName != nil && len(*s.DomainName) < 3 {
2906		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
2907	}
2908	if s.CognitoOptions != nil {
2909		if err := s.CognitoOptions.Validate(); err != nil {
2910			invalidParams.AddNested("CognitoOptions", err.(request.ErrInvalidParams))
2911		}
2912	}
2913	if s.EncryptionAtRestOptions != nil {
2914		if err := s.EncryptionAtRestOptions.Validate(); err != nil {
2915			invalidParams.AddNested("EncryptionAtRestOptions", err.(request.ErrInvalidParams))
2916		}
2917	}
2918
2919	if invalidParams.Len() > 0 {
2920		return invalidParams
2921	}
2922	return nil
2923}
2924
2925// SetAccessPolicies sets the AccessPolicies field's value.
2926func (s *CreateElasticsearchDomainInput) SetAccessPolicies(v string) *CreateElasticsearchDomainInput {
2927	s.AccessPolicies = &v
2928	return s
2929}
2930
2931// SetAdvancedOptions sets the AdvancedOptions field's value.
2932func (s *CreateElasticsearchDomainInput) SetAdvancedOptions(v map[string]*string) *CreateElasticsearchDomainInput {
2933	s.AdvancedOptions = v
2934	return s
2935}
2936
2937// SetCognitoOptions sets the CognitoOptions field's value.
2938func (s *CreateElasticsearchDomainInput) SetCognitoOptions(v *CognitoOptions) *CreateElasticsearchDomainInput {
2939	s.CognitoOptions = v
2940	return s
2941}
2942
2943// SetDomainEndpointOptions sets the DomainEndpointOptions field's value.
2944func (s *CreateElasticsearchDomainInput) SetDomainEndpointOptions(v *DomainEndpointOptions) *CreateElasticsearchDomainInput {
2945	s.DomainEndpointOptions = v
2946	return s
2947}
2948
2949// SetDomainName sets the DomainName field's value.
2950func (s *CreateElasticsearchDomainInput) SetDomainName(v string) *CreateElasticsearchDomainInput {
2951	s.DomainName = &v
2952	return s
2953}
2954
2955// SetEBSOptions sets the EBSOptions field's value.
2956func (s *CreateElasticsearchDomainInput) SetEBSOptions(v *EBSOptions) *CreateElasticsearchDomainInput {
2957	s.EBSOptions = v
2958	return s
2959}
2960
2961// SetElasticsearchClusterConfig sets the ElasticsearchClusterConfig field's value.
2962func (s *CreateElasticsearchDomainInput) SetElasticsearchClusterConfig(v *ElasticsearchClusterConfig) *CreateElasticsearchDomainInput {
2963	s.ElasticsearchClusterConfig = v
2964	return s
2965}
2966
2967// SetElasticsearchVersion sets the ElasticsearchVersion field's value.
2968func (s *CreateElasticsearchDomainInput) SetElasticsearchVersion(v string) *CreateElasticsearchDomainInput {
2969	s.ElasticsearchVersion = &v
2970	return s
2971}
2972
2973// SetEncryptionAtRestOptions sets the EncryptionAtRestOptions field's value.
2974func (s *CreateElasticsearchDomainInput) SetEncryptionAtRestOptions(v *EncryptionAtRestOptions) *CreateElasticsearchDomainInput {
2975	s.EncryptionAtRestOptions = v
2976	return s
2977}
2978
2979// SetLogPublishingOptions sets the LogPublishingOptions field's value.
2980func (s *CreateElasticsearchDomainInput) SetLogPublishingOptions(v map[string]*LogPublishingOption) *CreateElasticsearchDomainInput {
2981	s.LogPublishingOptions = v
2982	return s
2983}
2984
2985// SetNodeToNodeEncryptionOptions sets the NodeToNodeEncryptionOptions field's value.
2986func (s *CreateElasticsearchDomainInput) SetNodeToNodeEncryptionOptions(v *NodeToNodeEncryptionOptions) *CreateElasticsearchDomainInput {
2987	s.NodeToNodeEncryptionOptions = v
2988	return s
2989}
2990
2991// SetSnapshotOptions sets the SnapshotOptions field's value.
2992func (s *CreateElasticsearchDomainInput) SetSnapshotOptions(v *SnapshotOptions) *CreateElasticsearchDomainInput {
2993	s.SnapshotOptions = v
2994	return s
2995}
2996
2997// SetVPCOptions sets the VPCOptions field's value.
2998func (s *CreateElasticsearchDomainInput) SetVPCOptions(v *VPCOptions) *CreateElasticsearchDomainInput {
2999	s.VPCOptions = v
3000	return s
3001}
3002
3003// The result of a CreateElasticsearchDomain operation. Contains the status
3004// of the newly created Elasticsearch domain.
3005type CreateElasticsearchDomainOutput struct {
3006	_ struct{} `type:"structure"`
3007
3008	// The status of the newly created Elasticsearch domain.
3009	DomainStatus *ElasticsearchDomainStatus `type:"structure"`
3010}
3011
3012// String returns the string representation
3013func (s CreateElasticsearchDomainOutput) String() string {
3014	return awsutil.Prettify(s)
3015}
3016
3017// GoString returns the string representation
3018func (s CreateElasticsearchDomainOutput) GoString() string {
3019	return s.String()
3020}
3021
3022// SetDomainStatus sets the DomainStatus field's value.
3023func (s *CreateElasticsearchDomainOutput) SetDomainStatus(v *ElasticsearchDomainStatus) *CreateElasticsearchDomainOutput {
3024	s.DomainStatus = v
3025	return s
3026}
3027
3028// Container for the parameters to the DeleteElasticsearchDomain operation.
3029// Specifies the name of the Elasticsearch domain that you want to delete.
3030type DeleteElasticsearchDomainInput struct {
3031	_ struct{} `type:"structure"`
3032
3033	// The name of the Elasticsearch domain that you want to permanently delete.
3034	//
3035	// DomainName is a required field
3036	DomainName *string `location:"uri" locationName:"DomainName" min:"3" type:"string" required:"true"`
3037}
3038
3039// String returns the string representation
3040func (s DeleteElasticsearchDomainInput) String() string {
3041	return awsutil.Prettify(s)
3042}
3043
3044// GoString returns the string representation
3045func (s DeleteElasticsearchDomainInput) GoString() string {
3046	return s.String()
3047}
3048
3049// Validate inspects the fields of the type to determine if they are valid.
3050func (s *DeleteElasticsearchDomainInput) Validate() error {
3051	invalidParams := request.ErrInvalidParams{Context: "DeleteElasticsearchDomainInput"}
3052	if s.DomainName == nil {
3053		invalidParams.Add(request.NewErrParamRequired("DomainName"))
3054	}
3055	if s.DomainName != nil && len(*s.DomainName) < 3 {
3056		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
3057	}
3058
3059	if invalidParams.Len() > 0 {
3060		return invalidParams
3061	}
3062	return nil
3063}
3064
3065// SetDomainName sets the DomainName field's value.
3066func (s *DeleteElasticsearchDomainInput) SetDomainName(v string) *DeleteElasticsearchDomainInput {
3067	s.DomainName = &v
3068	return s
3069}
3070
3071// The result of a DeleteElasticsearchDomain request. Contains the status of
3072// the pending deletion, or no status if the domain and all of its resources
3073// have been deleted.
3074type DeleteElasticsearchDomainOutput struct {
3075	_ struct{} `type:"structure"`
3076
3077	// The status of the Elasticsearch domain being deleted.
3078	DomainStatus *ElasticsearchDomainStatus `type:"structure"`
3079}
3080
3081// String returns the string representation
3082func (s DeleteElasticsearchDomainOutput) String() string {
3083	return awsutil.Prettify(s)
3084}
3085
3086// GoString returns the string representation
3087func (s DeleteElasticsearchDomainOutput) GoString() string {
3088	return s.String()
3089}
3090
3091// SetDomainStatus sets the DomainStatus field's value.
3092func (s *DeleteElasticsearchDomainOutput) SetDomainStatus(v *ElasticsearchDomainStatus) *DeleteElasticsearchDomainOutput {
3093	s.DomainStatus = v
3094	return s
3095}
3096
3097type DeleteElasticsearchServiceRoleInput struct {
3098	_ struct{} `type:"structure"`
3099}
3100
3101// String returns the string representation
3102func (s DeleteElasticsearchServiceRoleInput) String() string {
3103	return awsutil.Prettify(s)
3104}
3105
3106// GoString returns the string representation
3107func (s DeleteElasticsearchServiceRoleInput) GoString() string {
3108	return s.String()
3109}
3110
3111type DeleteElasticsearchServiceRoleOutput struct {
3112	_ struct{} `type:"structure"`
3113}
3114
3115// String returns the string representation
3116func (s DeleteElasticsearchServiceRoleOutput) String() string {
3117	return awsutil.Prettify(s)
3118}
3119
3120// GoString returns the string representation
3121func (s DeleteElasticsearchServiceRoleOutput) GoString() string {
3122	return s.String()
3123}
3124
3125// Container for the parameters to the DescribeElasticsearchDomainConfig operation.
3126// Specifies the domain name for which you want configuration information.
3127type DescribeElasticsearchDomainConfigInput struct {
3128	_ struct{} `type:"structure"`
3129
3130	// The Elasticsearch domain that you want to get information about.
3131	//
3132	// DomainName is a required field
3133	DomainName *string `location:"uri" locationName:"DomainName" min:"3" type:"string" required:"true"`
3134}
3135
3136// String returns the string representation
3137func (s DescribeElasticsearchDomainConfigInput) String() string {
3138	return awsutil.Prettify(s)
3139}
3140
3141// GoString returns the string representation
3142func (s DescribeElasticsearchDomainConfigInput) GoString() string {
3143	return s.String()
3144}
3145
3146// Validate inspects the fields of the type to determine if they are valid.
3147func (s *DescribeElasticsearchDomainConfigInput) Validate() error {
3148	invalidParams := request.ErrInvalidParams{Context: "DescribeElasticsearchDomainConfigInput"}
3149	if s.DomainName == nil {
3150		invalidParams.Add(request.NewErrParamRequired("DomainName"))
3151	}
3152	if s.DomainName != nil && len(*s.DomainName) < 3 {
3153		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
3154	}
3155
3156	if invalidParams.Len() > 0 {
3157		return invalidParams
3158	}
3159	return nil
3160}
3161
3162// SetDomainName sets the DomainName field's value.
3163func (s *DescribeElasticsearchDomainConfigInput) SetDomainName(v string) *DescribeElasticsearchDomainConfigInput {
3164	s.DomainName = &v
3165	return s
3166}
3167
3168// The result of a DescribeElasticsearchDomainConfig request. Contains the configuration
3169// information of the requested domain.
3170type DescribeElasticsearchDomainConfigOutput struct {
3171	_ struct{} `type:"structure"`
3172
3173	// The configuration information of the domain requested in the DescribeElasticsearchDomainConfig
3174	// request.
3175	//
3176	// DomainConfig is a required field
3177	DomainConfig *ElasticsearchDomainConfig `type:"structure" required:"true"`
3178}
3179
3180// String returns the string representation
3181func (s DescribeElasticsearchDomainConfigOutput) String() string {
3182	return awsutil.Prettify(s)
3183}
3184
3185// GoString returns the string representation
3186func (s DescribeElasticsearchDomainConfigOutput) GoString() string {
3187	return s.String()
3188}
3189
3190// SetDomainConfig sets the DomainConfig field's value.
3191func (s *DescribeElasticsearchDomainConfigOutput) SetDomainConfig(v *ElasticsearchDomainConfig) *DescribeElasticsearchDomainConfigOutput {
3192	s.DomainConfig = v
3193	return s
3194}
3195
3196// Container for the parameters to the DescribeElasticsearchDomain operation.
3197type DescribeElasticsearchDomainInput struct {
3198	_ struct{} `type:"structure"`
3199
3200	// The name of the Elasticsearch domain for which you want information.
3201	//
3202	// DomainName is a required field
3203	DomainName *string `location:"uri" locationName:"DomainName" min:"3" type:"string" required:"true"`
3204}
3205
3206// String returns the string representation
3207func (s DescribeElasticsearchDomainInput) String() string {
3208	return awsutil.Prettify(s)
3209}
3210
3211// GoString returns the string representation
3212func (s DescribeElasticsearchDomainInput) GoString() string {
3213	return s.String()
3214}
3215
3216// Validate inspects the fields of the type to determine if they are valid.
3217func (s *DescribeElasticsearchDomainInput) Validate() error {
3218	invalidParams := request.ErrInvalidParams{Context: "DescribeElasticsearchDomainInput"}
3219	if s.DomainName == nil {
3220		invalidParams.Add(request.NewErrParamRequired("DomainName"))
3221	}
3222	if s.DomainName != nil && len(*s.DomainName) < 3 {
3223		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
3224	}
3225
3226	if invalidParams.Len() > 0 {
3227		return invalidParams
3228	}
3229	return nil
3230}
3231
3232// SetDomainName sets the DomainName field's value.
3233func (s *DescribeElasticsearchDomainInput) SetDomainName(v string) *DescribeElasticsearchDomainInput {
3234	s.DomainName = &v
3235	return s
3236}
3237
3238// The result of a DescribeElasticsearchDomain request. Contains the status
3239// of the domain specified in the request.
3240type DescribeElasticsearchDomainOutput struct {
3241	_ struct{} `type:"structure"`
3242
3243	// The current status of the Elasticsearch domain.
3244	//
3245	// DomainStatus is a required field
3246	DomainStatus *ElasticsearchDomainStatus `type:"structure" required:"true"`
3247}
3248
3249// String returns the string representation
3250func (s DescribeElasticsearchDomainOutput) String() string {
3251	return awsutil.Prettify(s)
3252}
3253
3254// GoString returns the string representation
3255func (s DescribeElasticsearchDomainOutput) GoString() string {
3256	return s.String()
3257}
3258
3259// SetDomainStatus sets the DomainStatus field's value.
3260func (s *DescribeElasticsearchDomainOutput) SetDomainStatus(v *ElasticsearchDomainStatus) *DescribeElasticsearchDomainOutput {
3261	s.DomainStatus = v
3262	return s
3263}
3264
3265// Container for the parameters to the DescribeElasticsearchDomains operation.
3266// By default, the API returns the status of all Elasticsearch domains.
3267type DescribeElasticsearchDomainsInput struct {
3268	_ struct{} `type:"structure"`
3269
3270	// The Elasticsearch domains for which you want information.
3271	//
3272	// DomainNames is a required field
3273	DomainNames []*string `type:"list" required:"true"`
3274}
3275
3276// String returns the string representation
3277func (s DescribeElasticsearchDomainsInput) String() string {
3278	return awsutil.Prettify(s)
3279}
3280
3281// GoString returns the string representation
3282func (s DescribeElasticsearchDomainsInput) GoString() string {
3283	return s.String()
3284}
3285
3286// Validate inspects the fields of the type to determine if they are valid.
3287func (s *DescribeElasticsearchDomainsInput) Validate() error {
3288	invalidParams := request.ErrInvalidParams{Context: "DescribeElasticsearchDomainsInput"}
3289	if s.DomainNames == nil {
3290		invalidParams.Add(request.NewErrParamRequired("DomainNames"))
3291	}
3292
3293	if invalidParams.Len() > 0 {
3294		return invalidParams
3295	}
3296	return nil
3297}
3298
3299// SetDomainNames sets the DomainNames field's value.
3300func (s *DescribeElasticsearchDomainsInput) SetDomainNames(v []*string) *DescribeElasticsearchDomainsInput {
3301	s.DomainNames = v
3302	return s
3303}
3304
3305// The result of a DescribeElasticsearchDomains request. Contains the status
3306// of the specified domains or all domains owned by the account.
3307type DescribeElasticsearchDomainsOutput struct {
3308	_ struct{} `type:"structure"`
3309
3310	// The status of the domains requested in the DescribeElasticsearchDomains request.
3311	//
3312	// DomainStatusList is a required field
3313	DomainStatusList []*ElasticsearchDomainStatus `type:"list" required:"true"`
3314}
3315
3316// String returns the string representation
3317func (s DescribeElasticsearchDomainsOutput) String() string {
3318	return awsutil.Prettify(s)
3319}
3320
3321// GoString returns the string representation
3322func (s DescribeElasticsearchDomainsOutput) GoString() string {
3323	return s.String()
3324}
3325
3326// SetDomainStatusList sets the DomainStatusList field's value.
3327func (s *DescribeElasticsearchDomainsOutput) SetDomainStatusList(v []*ElasticsearchDomainStatus) *DescribeElasticsearchDomainsOutput {
3328	s.DomainStatusList = v
3329	return s
3330}
3331
3332// Container for the parameters to DescribeElasticsearchInstanceTypeLimits operation.
3333type DescribeElasticsearchInstanceTypeLimitsInput struct {
3334	_ struct{} `type:"structure"`
3335
3336	// DomainName represents the name of the Domain that we are trying to modify.
3337	// This should be present only if we are querying for Elasticsearch Limits for
3338	// existing domain.
3339	DomainName *string `location:"querystring" locationName:"domainName" min:"3" type:"string"`
3340
3341	// Version of Elasticsearch for which Limits are needed.
3342	//
3343	// ElasticsearchVersion is a required field
3344	ElasticsearchVersion *string `location:"uri" locationName:"ElasticsearchVersion" type:"string" required:"true"`
3345
3346	// The instance type for an Elasticsearch cluster for which Elasticsearch Limits
3347	// are needed.
3348	//
3349	// InstanceType is a required field
3350	InstanceType *string `location:"uri" locationName:"InstanceType" type:"string" required:"true" enum:"ESPartitionInstanceType"`
3351}
3352
3353// String returns the string representation
3354func (s DescribeElasticsearchInstanceTypeLimitsInput) String() string {
3355	return awsutil.Prettify(s)
3356}
3357
3358// GoString returns the string representation
3359func (s DescribeElasticsearchInstanceTypeLimitsInput) GoString() string {
3360	return s.String()
3361}
3362
3363// Validate inspects the fields of the type to determine if they are valid.
3364func (s *DescribeElasticsearchInstanceTypeLimitsInput) Validate() error {
3365	invalidParams := request.ErrInvalidParams{Context: "DescribeElasticsearchInstanceTypeLimitsInput"}
3366	if s.DomainName != nil && len(*s.DomainName) < 3 {
3367		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
3368	}
3369	if s.ElasticsearchVersion == nil {
3370		invalidParams.Add(request.NewErrParamRequired("ElasticsearchVersion"))
3371	}
3372	if s.ElasticsearchVersion != nil && len(*s.ElasticsearchVersion) < 1 {
3373		invalidParams.Add(request.NewErrParamMinLen("ElasticsearchVersion", 1))
3374	}
3375	if s.InstanceType == nil {
3376		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
3377	}
3378	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
3379		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
3380	}
3381
3382	if invalidParams.Len() > 0 {
3383		return invalidParams
3384	}
3385	return nil
3386}
3387
3388// SetDomainName sets the DomainName field's value.
3389func (s *DescribeElasticsearchInstanceTypeLimitsInput) SetDomainName(v string) *DescribeElasticsearchInstanceTypeLimitsInput {
3390	s.DomainName = &v
3391	return s
3392}
3393
3394// SetElasticsearchVersion sets the ElasticsearchVersion field's value.
3395func (s *DescribeElasticsearchInstanceTypeLimitsInput) SetElasticsearchVersion(v string) *DescribeElasticsearchInstanceTypeLimitsInput {
3396	s.ElasticsearchVersion = &v
3397	return s
3398}
3399
3400// SetInstanceType sets the InstanceType field's value.
3401func (s *DescribeElasticsearchInstanceTypeLimitsInput) SetInstanceType(v string) *DescribeElasticsearchInstanceTypeLimitsInput {
3402	s.InstanceType = &v
3403	return s
3404}
3405
3406// Container for the parameters received from DescribeElasticsearchInstanceTypeLimits
3407// operation.
3408type DescribeElasticsearchInstanceTypeLimitsOutput struct {
3409	_ struct{} `type:"structure"`
3410
3411	// Map of Role of the Instance and Limits that are applicable. Role performed
3412	// by given Instance in Elasticsearch can be one of the following:
3413	//    * Data: If the given InstanceType is used as Data node
3414	//
3415	//    * Master: If the given InstanceType is used as Master node
3416	LimitsByRole map[string]*Limits `type:"map"`
3417}
3418
3419// String returns the string representation
3420func (s DescribeElasticsearchInstanceTypeLimitsOutput) String() string {
3421	return awsutil.Prettify(s)
3422}
3423
3424// GoString returns the string representation
3425func (s DescribeElasticsearchInstanceTypeLimitsOutput) GoString() string {
3426	return s.String()
3427}
3428
3429// SetLimitsByRole sets the LimitsByRole field's value.
3430func (s *DescribeElasticsearchInstanceTypeLimitsOutput) SetLimitsByRole(v map[string]*Limits) *DescribeElasticsearchInstanceTypeLimitsOutput {
3431	s.LimitsByRole = v
3432	return s
3433}
3434
3435// Container for parameters to DescribeReservedElasticsearchInstanceOfferings
3436type DescribeReservedElasticsearchInstanceOfferingsInput struct {
3437	_ struct{} `type:"structure"`
3438
3439	// Set this value to limit the number of results returned. If not specified,
3440	// defaults to 100.
3441	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
3442
3443	// NextToken should be sent in case if earlier API call produced result containing
3444	// NextToken. It is used for pagination.
3445	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
3446
3447	// The offering identifier filter value. Use this parameter to show only the
3448	// available offering that matches the specified reservation identifier.
3449	ReservedElasticsearchInstanceOfferingId *string `location:"querystring" locationName:"offeringId" type:"string"`
3450}
3451
3452// String returns the string representation
3453func (s DescribeReservedElasticsearchInstanceOfferingsInput) String() string {
3454	return awsutil.Prettify(s)
3455}
3456
3457// GoString returns the string representation
3458func (s DescribeReservedElasticsearchInstanceOfferingsInput) GoString() string {
3459	return s.String()
3460}
3461
3462// SetMaxResults sets the MaxResults field's value.
3463func (s *DescribeReservedElasticsearchInstanceOfferingsInput) SetMaxResults(v int64) *DescribeReservedElasticsearchInstanceOfferingsInput {
3464	s.MaxResults = &v
3465	return s
3466}
3467
3468// SetNextToken sets the NextToken field's value.
3469func (s *DescribeReservedElasticsearchInstanceOfferingsInput) SetNextToken(v string) *DescribeReservedElasticsearchInstanceOfferingsInput {
3470	s.NextToken = &v
3471	return s
3472}
3473
3474// SetReservedElasticsearchInstanceOfferingId sets the ReservedElasticsearchInstanceOfferingId field's value.
3475func (s *DescribeReservedElasticsearchInstanceOfferingsInput) SetReservedElasticsearchInstanceOfferingId(v string) *DescribeReservedElasticsearchInstanceOfferingsInput {
3476	s.ReservedElasticsearchInstanceOfferingId = &v
3477	return s
3478}
3479
3480// Container for results from DescribeReservedElasticsearchInstanceOfferings
3481type DescribeReservedElasticsearchInstanceOfferingsOutput struct {
3482	_ struct{} `type:"structure"`
3483
3484	// Provides an identifier to allow retrieval of paginated results.
3485	NextToken *string `type:"string"`
3486
3487	// List of reserved Elasticsearch instance offerings
3488	ReservedElasticsearchInstanceOfferings []*ReservedElasticsearchInstanceOffering `type:"list"`
3489}
3490
3491// String returns the string representation
3492func (s DescribeReservedElasticsearchInstanceOfferingsOutput) String() string {
3493	return awsutil.Prettify(s)
3494}
3495
3496// GoString returns the string representation
3497func (s DescribeReservedElasticsearchInstanceOfferingsOutput) GoString() string {
3498	return s.String()
3499}
3500
3501// SetNextToken sets the NextToken field's value.
3502func (s *DescribeReservedElasticsearchInstanceOfferingsOutput) SetNextToken(v string) *DescribeReservedElasticsearchInstanceOfferingsOutput {
3503	s.NextToken = &v
3504	return s
3505}
3506
3507// SetReservedElasticsearchInstanceOfferings sets the ReservedElasticsearchInstanceOfferings field's value.
3508func (s *DescribeReservedElasticsearchInstanceOfferingsOutput) SetReservedElasticsearchInstanceOfferings(v []*ReservedElasticsearchInstanceOffering) *DescribeReservedElasticsearchInstanceOfferingsOutput {
3509	s.ReservedElasticsearchInstanceOfferings = v
3510	return s
3511}
3512
3513// Container for parameters to DescribeReservedElasticsearchInstances
3514type DescribeReservedElasticsearchInstancesInput struct {
3515	_ struct{} `type:"structure"`
3516
3517	// Set this value to limit the number of results returned. If not specified,
3518	// defaults to 100.
3519	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
3520
3521	// NextToken should be sent in case if earlier API call produced result containing
3522	// NextToken. It is used for pagination.
3523	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
3524
3525	// The reserved instance identifier filter value. Use this parameter to show
3526	// only the reservation that matches the specified reserved Elasticsearch instance
3527	// ID.
3528	ReservedElasticsearchInstanceId *string `location:"querystring" locationName:"reservationId" type:"string"`
3529}
3530
3531// String returns the string representation
3532func (s DescribeReservedElasticsearchInstancesInput) String() string {
3533	return awsutil.Prettify(s)
3534}
3535
3536// GoString returns the string representation
3537func (s DescribeReservedElasticsearchInstancesInput) GoString() string {
3538	return s.String()
3539}
3540
3541// SetMaxResults sets the MaxResults field's value.
3542func (s *DescribeReservedElasticsearchInstancesInput) SetMaxResults(v int64) *DescribeReservedElasticsearchInstancesInput {
3543	s.MaxResults = &v
3544	return s
3545}
3546
3547// SetNextToken sets the NextToken field's value.
3548func (s *DescribeReservedElasticsearchInstancesInput) SetNextToken(v string) *DescribeReservedElasticsearchInstancesInput {
3549	s.NextToken = &v
3550	return s
3551}
3552
3553// SetReservedElasticsearchInstanceId sets the ReservedElasticsearchInstanceId field's value.
3554func (s *DescribeReservedElasticsearchInstancesInput) SetReservedElasticsearchInstanceId(v string) *DescribeReservedElasticsearchInstancesInput {
3555	s.ReservedElasticsearchInstanceId = &v
3556	return s
3557}
3558
3559// Container for results from DescribeReservedElasticsearchInstances
3560type DescribeReservedElasticsearchInstancesOutput struct {
3561	_ struct{} `type:"structure"`
3562
3563	// Provides an identifier to allow retrieval of paginated results.
3564	NextToken *string `type:"string"`
3565
3566	// List of reserved Elasticsearch instances.
3567	ReservedElasticsearchInstances []*ReservedElasticsearchInstance `type:"list"`
3568}
3569
3570// String returns the string representation
3571func (s DescribeReservedElasticsearchInstancesOutput) String() string {
3572	return awsutil.Prettify(s)
3573}
3574
3575// GoString returns the string representation
3576func (s DescribeReservedElasticsearchInstancesOutput) GoString() string {
3577	return s.String()
3578}
3579
3580// SetNextToken sets the NextToken field's value.
3581func (s *DescribeReservedElasticsearchInstancesOutput) SetNextToken(v string) *DescribeReservedElasticsearchInstancesOutput {
3582	s.NextToken = &v
3583	return s
3584}
3585
3586// SetReservedElasticsearchInstances sets the ReservedElasticsearchInstances field's value.
3587func (s *DescribeReservedElasticsearchInstancesOutput) SetReservedElasticsearchInstances(v []*ReservedElasticsearchInstance) *DescribeReservedElasticsearchInstancesOutput {
3588	s.ReservedElasticsearchInstances = v
3589	return s
3590}
3591
3592// Options to configure endpoint for the Elasticsearch domain.
3593type DomainEndpointOptions struct {
3594	_ struct{} `type:"structure"`
3595
3596	// Specify if only HTTPS endpoint should be enabled for the Elasticsearch domain.
3597	EnforceHTTPS *bool `type:"boolean"`
3598
3599	// Specify the TLS security policy that needs to be applied to the HTTPS endpoint
3600	// of Elasticsearch domain. It can be one of the following values:
3601	//    * Policy-Min-TLS-1-0-2019-07: TLS security policy which supports TLSv1.0
3602	//    and higher.
3603	//
3604	//    * Policy-Min-TLS-1-2-2019-07: TLS security policy which supports only
3605	//    TLSv1.2
3606	TLSSecurityPolicy *string `type:"string" enum:"TLSSecurityPolicy"`
3607}
3608
3609// String returns the string representation
3610func (s DomainEndpointOptions) String() string {
3611	return awsutil.Prettify(s)
3612}
3613
3614// GoString returns the string representation
3615func (s DomainEndpointOptions) GoString() string {
3616	return s.String()
3617}
3618
3619// SetEnforceHTTPS sets the EnforceHTTPS field's value.
3620func (s *DomainEndpointOptions) SetEnforceHTTPS(v bool) *DomainEndpointOptions {
3621	s.EnforceHTTPS = &v
3622	return s
3623}
3624
3625// SetTLSSecurityPolicy sets the TLSSecurityPolicy field's value.
3626func (s *DomainEndpointOptions) SetTLSSecurityPolicy(v string) *DomainEndpointOptions {
3627	s.TLSSecurityPolicy = &v
3628	return s
3629}
3630
3631// The configured endpoint options for the domain and their current status.
3632type DomainEndpointOptionsStatus struct {
3633	_ struct{} `type:"structure"`
3634
3635	// Options to configure endpoint for the Elasticsearch domain.
3636	//
3637	// Options is a required field
3638	Options *DomainEndpointOptions `type:"structure" required:"true"`
3639
3640	// The status of the endpoint options for the Elasticsearch domain. See OptionStatus
3641	// for the status information that's included.
3642	//
3643	// Status is a required field
3644	Status *OptionStatus `type:"structure" required:"true"`
3645}
3646
3647// String returns the string representation
3648func (s DomainEndpointOptionsStatus) String() string {
3649	return awsutil.Prettify(s)
3650}
3651
3652// GoString returns the string representation
3653func (s DomainEndpointOptionsStatus) GoString() string {
3654	return s.String()
3655}
3656
3657// SetOptions sets the Options field's value.
3658func (s *DomainEndpointOptionsStatus) SetOptions(v *DomainEndpointOptions) *DomainEndpointOptionsStatus {
3659	s.Options = v
3660	return s
3661}
3662
3663// SetStatus sets the Status field's value.
3664func (s *DomainEndpointOptionsStatus) SetStatus(v *OptionStatus) *DomainEndpointOptionsStatus {
3665	s.Status = v
3666	return s
3667}
3668
3669type DomainInfo struct {
3670	_ struct{} `type:"structure"`
3671
3672	// Specifies the DomainName.
3673	DomainName *string `min:"3" type:"string"`
3674}
3675
3676// String returns the string representation
3677func (s DomainInfo) String() string {
3678	return awsutil.Prettify(s)
3679}
3680
3681// GoString returns the string representation
3682func (s DomainInfo) GoString() string {
3683	return s.String()
3684}
3685
3686// SetDomainName sets the DomainName field's value.
3687func (s *DomainInfo) SetDomainName(v string) *DomainInfo {
3688	s.DomainName = &v
3689	return s
3690}
3691
3692// Options to enable, disable, and specify the properties of EBS storage volumes.
3693// For more information, see Configuring EBS-based Storage (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs).
3694type EBSOptions struct {
3695	_ struct{} `type:"structure"`
3696
3697	// Specifies whether EBS-based storage is enabled.
3698	EBSEnabled *bool `type:"boolean"`
3699
3700	// Specifies the IOPD for a Provisioned IOPS EBS volume (SSD).
3701	Iops *int64 `type:"integer"`
3702
3703	// Integer to specify the size of an EBS volume.
3704	VolumeSize *int64 `type:"integer"`
3705
3706	// Specifies the volume type for EBS-based storage.
3707	VolumeType *string `type:"string" enum:"VolumeType"`
3708}
3709
3710// String returns the string representation
3711func (s EBSOptions) String() string {
3712	return awsutil.Prettify(s)
3713}
3714
3715// GoString returns the string representation
3716func (s EBSOptions) GoString() string {
3717	return s.String()
3718}
3719
3720// SetEBSEnabled sets the EBSEnabled field's value.
3721func (s *EBSOptions) SetEBSEnabled(v bool) *EBSOptions {
3722	s.EBSEnabled = &v
3723	return s
3724}
3725
3726// SetIops sets the Iops field's value.
3727func (s *EBSOptions) SetIops(v int64) *EBSOptions {
3728	s.Iops = &v
3729	return s
3730}
3731
3732// SetVolumeSize sets the VolumeSize field's value.
3733func (s *EBSOptions) SetVolumeSize(v int64) *EBSOptions {
3734	s.VolumeSize = &v
3735	return s
3736}
3737
3738// SetVolumeType sets the VolumeType field's value.
3739func (s *EBSOptions) SetVolumeType(v string) *EBSOptions {
3740	s.VolumeType = &v
3741	return s
3742}
3743
3744// Status of the EBS options for the specified Elasticsearch domain.
3745type EBSOptionsStatus struct {
3746	_ struct{} `type:"structure"`
3747
3748	// Specifies the EBS options for the specified Elasticsearch domain.
3749	//
3750	// Options is a required field
3751	Options *EBSOptions `type:"structure" required:"true"`
3752
3753	// Specifies the status of the EBS options for the specified Elasticsearch domain.
3754	//
3755	// Status is a required field
3756	Status *OptionStatus `type:"structure" required:"true"`
3757}
3758
3759// String returns the string representation
3760func (s EBSOptionsStatus) String() string {
3761	return awsutil.Prettify(s)
3762}
3763
3764// GoString returns the string representation
3765func (s EBSOptionsStatus) GoString() string {
3766	return s.String()
3767}
3768
3769// SetOptions sets the Options field's value.
3770func (s *EBSOptionsStatus) SetOptions(v *EBSOptions) *EBSOptionsStatus {
3771	s.Options = v
3772	return s
3773}
3774
3775// SetStatus sets the Status field's value.
3776func (s *EBSOptionsStatus) SetStatus(v *OptionStatus) *EBSOptionsStatus {
3777	s.Status = v
3778	return s
3779}
3780
3781// Specifies the configuration for the domain cluster, such as the type and
3782// number of instances.
3783type ElasticsearchClusterConfig struct {
3784	_ struct{} `type:"structure"`
3785
3786	// Total number of dedicated master nodes, active and on standby, for the cluster.
3787	DedicatedMasterCount *int64 `type:"integer"`
3788
3789	// A boolean value to indicate whether a dedicated master node is enabled. See
3790	// About Dedicated Master Nodes (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-dedicatedmasternodes)
3791	// for more information.
3792	DedicatedMasterEnabled *bool `type:"boolean"`
3793
3794	// The instance type for a dedicated master node.
3795	DedicatedMasterType *string `type:"string" enum:"ESPartitionInstanceType"`
3796
3797	// The number of instances in the specified domain cluster.
3798	InstanceCount *int64 `type:"integer"`
3799
3800	// The instance type for an Elasticsearch cluster.
3801	InstanceType *string `type:"string" enum:"ESPartitionInstanceType"`
3802
3803	// Specifies the zone awareness configuration for a domain when zone awareness
3804	// is enabled.
3805	ZoneAwarenessConfig *ZoneAwarenessConfig `type:"structure"`
3806
3807	// A boolean value to indicate whether zone awareness is enabled. See About
3808	// Zone Awareness (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-zoneawareness)
3809	// for more information.
3810	ZoneAwarenessEnabled *bool `type:"boolean"`
3811}
3812
3813// String returns the string representation
3814func (s ElasticsearchClusterConfig) String() string {
3815	return awsutil.Prettify(s)
3816}
3817
3818// GoString returns the string representation
3819func (s ElasticsearchClusterConfig) GoString() string {
3820	return s.String()
3821}
3822
3823// SetDedicatedMasterCount sets the DedicatedMasterCount field's value.
3824func (s *ElasticsearchClusterConfig) SetDedicatedMasterCount(v int64) *ElasticsearchClusterConfig {
3825	s.DedicatedMasterCount = &v
3826	return s
3827}
3828
3829// SetDedicatedMasterEnabled sets the DedicatedMasterEnabled field's value.
3830func (s *ElasticsearchClusterConfig) SetDedicatedMasterEnabled(v bool) *ElasticsearchClusterConfig {
3831	s.DedicatedMasterEnabled = &v
3832	return s
3833}
3834
3835// SetDedicatedMasterType sets the DedicatedMasterType field's value.
3836func (s *ElasticsearchClusterConfig) SetDedicatedMasterType(v string) *ElasticsearchClusterConfig {
3837	s.DedicatedMasterType = &v
3838	return s
3839}
3840
3841// SetInstanceCount sets the InstanceCount field's value.
3842func (s *ElasticsearchClusterConfig) SetInstanceCount(v int64) *ElasticsearchClusterConfig {
3843	s.InstanceCount = &v
3844	return s
3845}
3846
3847// SetInstanceType sets the InstanceType field's value.
3848func (s *ElasticsearchClusterConfig) SetInstanceType(v string) *ElasticsearchClusterConfig {
3849	s.InstanceType = &v
3850	return s
3851}
3852
3853// SetZoneAwarenessConfig sets the ZoneAwarenessConfig field's value.
3854func (s *ElasticsearchClusterConfig) SetZoneAwarenessConfig(v *ZoneAwarenessConfig) *ElasticsearchClusterConfig {
3855	s.ZoneAwarenessConfig = v
3856	return s
3857}
3858
3859// SetZoneAwarenessEnabled sets the ZoneAwarenessEnabled field's value.
3860func (s *ElasticsearchClusterConfig) SetZoneAwarenessEnabled(v bool) *ElasticsearchClusterConfig {
3861	s.ZoneAwarenessEnabled = &v
3862	return s
3863}
3864
3865// Specifies the configuration status for the specified Elasticsearch domain.
3866type ElasticsearchClusterConfigStatus struct {
3867	_ struct{} `type:"structure"`
3868
3869	// Specifies the cluster configuration for the specified Elasticsearch domain.
3870	//
3871	// Options is a required field
3872	Options *ElasticsearchClusterConfig `type:"structure" required:"true"`
3873
3874	// Specifies the status of the configuration for the specified Elasticsearch
3875	// domain.
3876	//
3877	// Status is a required field
3878	Status *OptionStatus `type:"structure" required:"true"`
3879}
3880
3881// String returns the string representation
3882func (s ElasticsearchClusterConfigStatus) String() string {
3883	return awsutil.Prettify(s)
3884}
3885
3886// GoString returns the string representation
3887func (s ElasticsearchClusterConfigStatus) GoString() string {
3888	return s.String()
3889}
3890
3891// SetOptions sets the Options field's value.
3892func (s *ElasticsearchClusterConfigStatus) SetOptions(v *ElasticsearchClusterConfig) *ElasticsearchClusterConfigStatus {
3893	s.Options = v
3894	return s
3895}
3896
3897// SetStatus sets the Status field's value.
3898func (s *ElasticsearchClusterConfigStatus) SetStatus(v *OptionStatus) *ElasticsearchClusterConfigStatus {
3899	s.Status = v
3900	return s
3901}
3902
3903// The configuration of an Elasticsearch domain.
3904type ElasticsearchDomainConfig struct {
3905	_ struct{} `type:"structure"`
3906
3907	// IAM access policy as a JSON-formatted string.
3908	AccessPolicies *AccessPoliciesStatus `type:"structure"`
3909
3910	// Specifies the AdvancedOptions for the domain. See Configuring Advanced Options
3911	// (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options)
3912	// for more information.
3913	AdvancedOptions *AdvancedOptionsStatus `type:"structure"`
3914
3915	// The CognitoOptions for the specified domain. For more information, see Amazon
3916	// Cognito Authentication for Kibana (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html).
3917	CognitoOptions *CognitoOptionsStatus `type:"structure"`
3918
3919	// Specifies the DomainEndpointOptions for the Elasticsearch domain.
3920	DomainEndpointOptions *DomainEndpointOptionsStatus `type:"structure"`
3921
3922	// Specifies the EBSOptions for the Elasticsearch domain.
3923	EBSOptions *EBSOptionsStatus `type:"structure"`
3924
3925	// Specifies the ElasticsearchClusterConfig for the Elasticsearch domain.
3926	ElasticsearchClusterConfig *ElasticsearchClusterConfigStatus `type:"structure"`
3927
3928	// String of format X.Y to specify version for the Elasticsearch domain.
3929	ElasticsearchVersion *ElasticsearchVersionStatus `type:"structure"`
3930
3931	// Specifies the EncryptionAtRestOptions for the Elasticsearch domain.
3932	EncryptionAtRestOptions *EncryptionAtRestOptionsStatus `type:"structure"`
3933
3934	// Log publishing options for the given domain.
3935	LogPublishingOptions *LogPublishingOptionsStatus `type:"structure"`
3936
3937	// Specifies the NodeToNodeEncryptionOptions for the Elasticsearch domain.
3938	NodeToNodeEncryptionOptions *NodeToNodeEncryptionOptionsStatus `type:"structure"`
3939
3940	// Specifies the SnapshotOptions for the Elasticsearch domain.
3941	SnapshotOptions *SnapshotOptionsStatus `type:"structure"`
3942
3943	// The VPCOptions for the specified domain. For more information, see VPC Endpoints
3944	// for Amazon Elasticsearch Service Domains (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html).
3945	VPCOptions *VPCDerivedInfoStatus `type:"structure"`
3946}
3947
3948// String returns the string representation
3949func (s ElasticsearchDomainConfig) String() string {
3950	return awsutil.Prettify(s)
3951}
3952
3953// GoString returns the string representation
3954func (s ElasticsearchDomainConfig) GoString() string {
3955	return s.String()
3956}
3957
3958// SetAccessPolicies sets the AccessPolicies field's value.
3959func (s *ElasticsearchDomainConfig) SetAccessPolicies(v *AccessPoliciesStatus) *ElasticsearchDomainConfig {
3960	s.AccessPolicies = v
3961	return s
3962}
3963
3964// SetAdvancedOptions sets the AdvancedOptions field's value.
3965func (s *ElasticsearchDomainConfig) SetAdvancedOptions(v *AdvancedOptionsStatus) *ElasticsearchDomainConfig {
3966	s.AdvancedOptions = v
3967	return s
3968}
3969
3970// SetCognitoOptions sets the CognitoOptions field's value.
3971func (s *ElasticsearchDomainConfig) SetCognitoOptions(v *CognitoOptionsStatus) *ElasticsearchDomainConfig {
3972	s.CognitoOptions = v
3973	return s
3974}
3975
3976// SetDomainEndpointOptions sets the DomainEndpointOptions field's value.
3977func (s *ElasticsearchDomainConfig) SetDomainEndpointOptions(v *DomainEndpointOptionsStatus) *ElasticsearchDomainConfig {
3978	s.DomainEndpointOptions = v
3979	return s
3980}
3981
3982// SetEBSOptions sets the EBSOptions field's value.
3983func (s *ElasticsearchDomainConfig) SetEBSOptions(v *EBSOptionsStatus) *ElasticsearchDomainConfig {
3984	s.EBSOptions = v
3985	return s
3986}
3987
3988// SetElasticsearchClusterConfig sets the ElasticsearchClusterConfig field's value.
3989func (s *ElasticsearchDomainConfig) SetElasticsearchClusterConfig(v *ElasticsearchClusterConfigStatus) *ElasticsearchDomainConfig {
3990	s.ElasticsearchClusterConfig = v
3991	return s
3992}
3993
3994// SetElasticsearchVersion sets the ElasticsearchVersion field's value.
3995func (s *ElasticsearchDomainConfig) SetElasticsearchVersion(v *ElasticsearchVersionStatus) *ElasticsearchDomainConfig {
3996	s.ElasticsearchVersion = v
3997	return s
3998}
3999
4000// SetEncryptionAtRestOptions sets the EncryptionAtRestOptions field's value.
4001func (s *ElasticsearchDomainConfig) SetEncryptionAtRestOptions(v *EncryptionAtRestOptionsStatus) *ElasticsearchDomainConfig {
4002	s.EncryptionAtRestOptions = v
4003	return s
4004}
4005
4006// SetLogPublishingOptions sets the LogPublishingOptions field's value.
4007func (s *ElasticsearchDomainConfig) SetLogPublishingOptions(v *LogPublishingOptionsStatus) *ElasticsearchDomainConfig {
4008	s.LogPublishingOptions = v
4009	return s
4010}
4011
4012// SetNodeToNodeEncryptionOptions sets the NodeToNodeEncryptionOptions field's value.
4013func (s *ElasticsearchDomainConfig) SetNodeToNodeEncryptionOptions(v *NodeToNodeEncryptionOptionsStatus) *ElasticsearchDomainConfig {
4014	s.NodeToNodeEncryptionOptions = v
4015	return s
4016}
4017
4018// SetSnapshotOptions sets the SnapshotOptions field's value.
4019func (s *ElasticsearchDomainConfig) SetSnapshotOptions(v *SnapshotOptionsStatus) *ElasticsearchDomainConfig {
4020	s.SnapshotOptions = v
4021	return s
4022}
4023
4024// SetVPCOptions sets the VPCOptions field's value.
4025func (s *ElasticsearchDomainConfig) SetVPCOptions(v *VPCDerivedInfoStatus) *ElasticsearchDomainConfig {
4026	s.VPCOptions = v
4027	return s
4028}
4029
4030// The current status of an Elasticsearch domain.
4031type ElasticsearchDomainStatus struct {
4032	_ struct{} `type:"structure"`
4033
4034	// The Amazon resource name (ARN) of an Elasticsearch domain. See Identifiers
4035	// for IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html)
4036	// in Using AWS Identity and Access Management for more information.
4037	//
4038	// ARN is a required field
4039	ARN *string `type:"string" required:"true"`
4040
4041	// IAM access policy as a JSON-formatted string.
4042	AccessPolicies *string `type:"string"`
4043
4044	// Specifies the status of the AdvancedOptions
4045	AdvancedOptions map[string]*string `type:"map"`
4046
4047	// The CognitoOptions for the specified domain. For more information, see Amazon
4048	// Cognito Authentication for Kibana (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html).
4049	CognitoOptions *CognitoOptions `type:"structure"`
4050
4051	// The domain creation status. True if the creation of an Elasticsearch domain
4052	// is complete. False if domain creation is still in progress.
4053	Created *bool `type:"boolean"`
4054
4055	// The domain deletion status. True if a delete request has been received for
4056	// the domain but resource cleanup is still in progress. False if the domain
4057	// has not been deleted. Once domain deletion is complete, the status of the
4058	// domain is no longer returned.
4059	Deleted *bool `type:"boolean"`
4060
4061	// The current status of the Elasticsearch domain's endpoint options.
4062	DomainEndpointOptions *DomainEndpointOptions `type:"structure"`
4063
4064	// The unique identifier for the specified Elasticsearch domain.
4065	//
4066	// DomainId is a required field
4067	DomainId *string `min:"1" type:"string" required:"true"`
4068
4069	// The name of an Elasticsearch domain. Domain names are unique across the domains
4070	// owned by an account within an AWS region. Domain names start with a letter
4071	// or number and can contain the following characters: a-z (lowercase), 0-9,
4072	// and - (hyphen).
4073	//
4074	// DomainName is a required field
4075	DomainName *string `min:"3" type:"string" required:"true"`
4076
4077	// The EBSOptions for the specified domain. See Configuring EBS-based Storage
4078	// (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs)
4079	// for more information.
4080	EBSOptions *EBSOptions `type:"structure"`
4081
4082	// The type and number of instances in the domain cluster.
4083	//
4084	// ElasticsearchClusterConfig is a required field
4085	ElasticsearchClusterConfig *ElasticsearchClusterConfig `type:"structure" required:"true"`
4086
4087	ElasticsearchVersion *string `type:"string"`
4088
4089	// Specifies the status of the EncryptionAtRestOptions.
4090	EncryptionAtRestOptions *EncryptionAtRestOptions `type:"structure"`
4091
4092	// The Elasticsearch domain endpoint that you use to submit index and search
4093	// requests.
4094	Endpoint *string `type:"string"`
4095
4096	// Map containing the Elasticsearch domain endpoints used to submit index and
4097	// search requests. Example key, value: 'vpc','vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'.
4098	Endpoints map[string]*string `type:"map"`
4099
4100	// Log publishing options for the given domain.
4101	LogPublishingOptions map[string]*LogPublishingOption `type:"map"`
4102
4103	// Specifies the status of the NodeToNodeEncryptionOptions.
4104	NodeToNodeEncryptionOptions *NodeToNodeEncryptionOptions `type:"structure"`
4105
4106	// The status of the Elasticsearch domain configuration. True if Amazon Elasticsearch
4107	// Service is processing configuration changes. False if the configuration is
4108	// active.
4109	Processing *bool `type:"boolean"`
4110
4111	// The current status of the Elasticsearch domain's service software.
4112	ServiceSoftwareOptions *ServiceSoftwareOptions `type:"structure"`
4113
4114	// Specifies the status of the SnapshotOptions
4115	SnapshotOptions *SnapshotOptions `type:"structure"`
4116
4117	// The status of an Elasticsearch domain version upgrade. True if Amazon Elasticsearch
4118	// Service is undergoing a version upgrade. False if the configuration is active.
4119	UpgradeProcessing *bool `type:"boolean"`
4120
4121	// The VPCOptions for the specified domain. For more information, see VPC Endpoints
4122	// for Amazon Elasticsearch Service Domains (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html).
4123	VPCOptions *VPCDerivedInfo `type:"structure"`
4124}
4125
4126// String returns the string representation
4127func (s ElasticsearchDomainStatus) String() string {
4128	return awsutil.Prettify(s)
4129}
4130
4131// GoString returns the string representation
4132func (s ElasticsearchDomainStatus) GoString() string {
4133	return s.String()
4134}
4135
4136// SetARN sets the ARN field's value.
4137func (s *ElasticsearchDomainStatus) SetARN(v string) *ElasticsearchDomainStatus {
4138	s.ARN = &v
4139	return s
4140}
4141
4142// SetAccessPolicies sets the AccessPolicies field's value.
4143func (s *ElasticsearchDomainStatus) SetAccessPolicies(v string) *ElasticsearchDomainStatus {
4144	s.AccessPolicies = &v
4145	return s
4146}
4147
4148// SetAdvancedOptions sets the AdvancedOptions field's value.
4149func (s *ElasticsearchDomainStatus) SetAdvancedOptions(v map[string]*string) *ElasticsearchDomainStatus {
4150	s.AdvancedOptions = v
4151	return s
4152}
4153
4154// SetCognitoOptions sets the CognitoOptions field's value.
4155func (s *ElasticsearchDomainStatus) SetCognitoOptions(v *CognitoOptions) *ElasticsearchDomainStatus {
4156	s.CognitoOptions = v
4157	return s
4158}
4159
4160// SetCreated sets the Created field's value.
4161func (s *ElasticsearchDomainStatus) SetCreated(v bool) *ElasticsearchDomainStatus {
4162	s.Created = &v
4163	return s
4164}
4165
4166// SetDeleted sets the Deleted field's value.
4167func (s *ElasticsearchDomainStatus) SetDeleted(v bool) *ElasticsearchDomainStatus {
4168	s.Deleted = &v
4169	return s
4170}
4171
4172// SetDomainEndpointOptions sets the DomainEndpointOptions field's value.
4173func (s *ElasticsearchDomainStatus) SetDomainEndpointOptions(v *DomainEndpointOptions) *ElasticsearchDomainStatus {
4174	s.DomainEndpointOptions = v
4175	return s
4176}
4177
4178// SetDomainId sets the DomainId field's value.
4179func (s *ElasticsearchDomainStatus) SetDomainId(v string) *ElasticsearchDomainStatus {
4180	s.DomainId = &v
4181	return s
4182}
4183
4184// SetDomainName sets the DomainName field's value.
4185func (s *ElasticsearchDomainStatus) SetDomainName(v string) *ElasticsearchDomainStatus {
4186	s.DomainName = &v
4187	return s
4188}
4189
4190// SetEBSOptions sets the EBSOptions field's value.
4191func (s *ElasticsearchDomainStatus) SetEBSOptions(v *EBSOptions) *ElasticsearchDomainStatus {
4192	s.EBSOptions = v
4193	return s
4194}
4195
4196// SetElasticsearchClusterConfig sets the ElasticsearchClusterConfig field's value.
4197func (s *ElasticsearchDomainStatus) SetElasticsearchClusterConfig(v *ElasticsearchClusterConfig) *ElasticsearchDomainStatus {
4198	s.ElasticsearchClusterConfig = v
4199	return s
4200}
4201
4202// SetElasticsearchVersion sets the ElasticsearchVersion field's value.
4203func (s *ElasticsearchDomainStatus) SetElasticsearchVersion(v string) *ElasticsearchDomainStatus {
4204	s.ElasticsearchVersion = &v
4205	return s
4206}
4207
4208// SetEncryptionAtRestOptions sets the EncryptionAtRestOptions field's value.
4209func (s *ElasticsearchDomainStatus) SetEncryptionAtRestOptions(v *EncryptionAtRestOptions) *ElasticsearchDomainStatus {
4210	s.EncryptionAtRestOptions = v
4211	return s
4212}
4213
4214// SetEndpoint sets the Endpoint field's value.
4215func (s *ElasticsearchDomainStatus) SetEndpoint(v string) *ElasticsearchDomainStatus {
4216	s.Endpoint = &v
4217	return s
4218}
4219
4220// SetEndpoints sets the Endpoints field's value.
4221func (s *ElasticsearchDomainStatus) SetEndpoints(v map[string]*string) *ElasticsearchDomainStatus {
4222	s.Endpoints = v
4223	return s
4224}
4225
4226// SetLogPublishingOptions sets the LogPublishingOptions field's value.
4227func (s *ElasticsearchDomainStatus) SetLogPublishingOptions(v map[string]*LogPublishingOption) *ElasticsearchDomainStatus {
4228	s.LogPublishingOptions = v
4229	return s
4230}
4231
4232// SetNodeToNodeEncryptionOptions sets the NodeToNodeEncryptionOptions field's value.
4233func (s *ElasticsearchDomainStatus) SetNodeToNodeEncryptionOptions(v *NodeToNodeEncryptionOptions) *ElasticsearchDomainStatus {
4234	s.NodeToNodeEncryptionOptions = v
4235	return s
4236}
4237
4238// SetProcessing sets the Processing field's value.
4239func (s *ElasticsearchDomainStatus) SetProcessing(v bool) *ElasticsearchDomainStatus {
4240	s.Processing = &v
4241	return s
4242}
4243
4244// SetServiceSoftwareOptions sets the ServiceSoftwareOptions field's value.
4245func (s *ElasticsearchDomainStatus) SetServiceSoftwareOptions(v *ServiceSoftwareOptions) *ElasticsearchDomainStatus {
4246	s.ServiceSoftwareOptions = v
4247	return s
4248}
4249
4250// SetSnapshotOptions sets the SnapshotOptions field's value.
4251func (s *ElasticsearchDomainStatus) SetSnapshotOptions(v *SnapshotOptions) *ElasticsearchDomainStatus {
4252	s.SnapshotOptions = v
4253	return s
4254}
4255
4256// SetUpgradeProcessing sets the UpgradeProcessing field's value.
4257func (s *ElasticsearchDomainStatus) SetUpgradeProcessing(v bool) *ElasticsearchDomainStatus {
4258	s.UpgradeProcessing = &v
4259	return s
4260}
4261
4262// SetVPCOptions sets the VPCOptions field's value.
4263func (s *ElasticsearchDomainStatus) SetVPCOptions(v *VPCDerivedInfo) *ElasticsearchDomainStatus {
4264	s.VPCOptions = v
4265	return s
4266}
4267
4268// Status of the Elasticsearch version options for the specified Elasticsearch
4269// domain.
4270type ElasticsearchVersionStatus struct {
4271	_ struct{} `type:"structure"`
4272
4273	// Specifies the Elasticsearch version for the specified Elasticsearch domain.
4274	//
4275	// Options is a required field
4276	Options *string `type:"string" required:"true"`
4277
4278	// Specifies the status of the Elasticsearch version options for the specified
4279	// Elasticsearch domain.
4280	//
4281	// Status is a required field
4282	Status *OptionStatus `type:"structure" required:"true"`
4283}
4284
4285// String returns the string representation
4286func (s ElasticsearchVersionStatus) String() string {
4287	return awsutil.Prettify(s)
4288}
4289
4290// GoString returns the string representation
4291func (s ElasticsearchVersionStatus) GoString() string {
4292	return s.String()
4293}
4294
4295// SetOptions sets the Options field's value.
4296func (s *ElasticsearchVersionStatus) SetOptions(v string) *ElasticsearchVersionStatus {
4297	s.Options = &v
4298	return s
4299}
4300
4301// SetStatus sets the Status field's value.
4302func (s *ElasticsearchVersionStatus) SetStatus(v *OptionStatus) *ElasticsearchVersionStatus {
4303	s.Status = v
4304	return s
4305}
4306
4307// Specifies the Encryption At Rest Options.
4308type EncryptionAtRestOptions struct {
4309	_ struct{} `type:"structure"`
4310
4311	// Specifies the option to enable Encryption At Rest.
4312	Enabled *bool `type:"boolean"`
4313
4314	// Specifies the KMS Key ID for Encryption At Rest options.
4315	KmsKeyId *string `min:"1" type:"string"`
4316}
4317
4318// String returns the string representation
4319func (s EncryptionAtRestOptions) String() string {
4320	return awsutil.Prettify(s)
4321}
4322
4323// GoString returns the string representation
4324func (s EncryptionAtRestOptions) GoString() string {
4325	return s.String()
4326}
4327
4328// Validate inspects the fields of the type to determine if they are valid.
4329func (s *EncryptionAtRestOptions) Validate() error {
4330	invalidParams := request.ErrInvalidParams{Context: "EncryptionAtRestOptions"}
4331	if s.KmsKeyId != nil && len(*s.KmsKeyId) < 1 {
4332		invalidParams.Add(request.NewErrParamMinLen("KmsKeyId", 1))
4333	}
4334
4335	if invalidParams.Len() > 0 {
4336		return invalidParams
4337	}
4338	return nil
4339}
4340
4341// SetEnabled sets the Enabled field's value.
4342func (s *EncryptionAtRestOptions) SetEnabled(v bool) *EncryptionAtRestOptions {
4343	s.Enabled = &v
4344	return s
4345}
4346
4347// SetKmsKeyId sets the KmsKeyId field's value.
4348func (s *EncryptionAtRestOptions) SetKmsKeyId(v string) *EncryptionAtRestOptions {
4349	s.KmsKeyId = &v
4350	return s
4351}
4352
4353// Status of the Encryption At Rest options for the specified Elasticsearch
4354// domain.
4355type EncryptionAtRestOptionsStatus struct {
4356	_ struct{} `type:"structure"`
4357
4358	// Specifies the Encryption At Rest options for the specified Elasticsearch
4359	// domain.
4360	//
4361	// Options is a required field
4362	Options *EncryptionAtRestOptions `type:"structure" required:"true"`
4363
4364	// Specifies the status of the Encryption At Rest options for the specified
4365	// Elasticsearch domain.
4366	//
4367	// Status is a required field
4368	Status *OptionStatus `type:"structure" required:"true"`
4369}
4370
4371// String returns the string representation
4372func (s EncryptionAtRestOptionsStatus) String() string {
4373	return awsutil.Prettify(s)
4374}
4375
4376// GoString returns the string representation
4377func (s EncryptionAtRestOptionsStatus) GoString() string {
4378	return s.String()
4379}
4380
4381// SetOptions sets the Options field's value.
4382func (s *EncryptionAtRestOptionsStatus) SetOptions(v *EncryptionAtRestOptions) *EncryptionAtRestOptionsStatus {
4383	s.Options = v
4384	return s
4385}
4386
4387// SetStatus sets the Status field's value.
4388func (s *EncryptionAtRestOptionsStatus) SetStatus(v *OptionStatus) *EncryptionAtRestOptionsStatus {
4389	s.Status = v
4390	return s
4391}
4392
4393// Container for request parameters to GetCompatibleElasticsearchVersions operation.
4394type GetCompatibleElasticsearchVersionsInput struct {
4395	_ struct{} `type:"structure"`
4396
4397	// The name of an Elasticsearch domain. Domain names are unique across the domains
4398	// owned by an account within an AWS region. Domain names start with a letter
4399	// or number and can contain the following characters: a-z (lowercase), 0-9,
4400	// and - (hyphen).
4401	DomainName *string `location:"querystring" locationName:"domainName" min:"3" type:"string"`
4402}
4403
4404// String returns the string representation
4405func (s GetCompatibleElasticsearchVersionsInput) String() string {
4406	return awsutil.Prettify(s)
4407}
4408
4409// GoString returns the string representation
4410func (s GetCompatibleElasticsearchVersionsInput) GoString() string {
4411	return s.String()
4412}
4413
4414// Validate inspects the fields of the type to determine if they are valid.
4415func (s *GetCompatibleElasticsearchVersionsInput) Validate() error {
4416	invalidParams := request.ErrInvalidParams{Context: "GetCompatibleElasticsearchVersionsInput"}
4417	if s.DomainName != nil && len(*s.DomainName) < 3 {
4418		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
4419	}
4420
4421	if invalidParams.Len() > 0 {
4422		return invalidParams
4423	}
4424	return nil
4425}
4426
4427// SetDomainName sets the DomainName field's value.
4428func (s *GetCompatibleElasticsearchVersionsInput) SetDomainName(v string) *GetCompatibleElasticsearchVersionsInput {
4429	s.DomainName = &v
4430	return s
4431}
4432
4433// Container for response returned by GetCompatibleElasticsearchVersions operation.
4434type GetCompatibleElasticsearchVersionsOutput struct {
4435	_ struct{} `type:"structure"`
4436
4437	// A map of compatible Elasticsearch versions returned as part of the GetCompatibleElasticsearchVersions
4438	// operation.
4439	CompatibleElasticsearchVersions []*CompatibleVersionsMap `type:"list"`
4440}
4441
4442// String returns the string representation
4443func (s GetCompatibleElasticsearchVersionsOutput) String() string {
4444	return awsutil.Prettify(s)
4445}
4446
4447// GoString returns the string representation
4448func (s GetCompatibleElasticsearchVersionsOutput) GoString() string {
4449	return s.String()
4450}
4451
4452// SetCompatibleElasticsearchVersions sets the CompatibleElasticsearchVersions field's value.
4453func (s *GetCompatibleElasticsearchVersionsOutput) SetCompatibleElasticsearchVersions(v []*CompatibleVersionsMap) *GetCompatibleElasticsearchVersionsOutput {
4454	s.CompatibleElasticsearchVersions = v
4455	return s
4456}
4457
4458// Container for request parameters to GetUpgradeHistory operation.
4459type GetUpgradeHistoryInput struct {
4460	_ struct{} `type:"structure"`
4461
4462	// The name of an Elasticsearch domain. Domain names are unique across the domains
4463	// owned by an account within an AWS region. Domain names start with a letter
4464	// or number and can contain the following characters: a-z (lowercase), 0-9,
4465	// and - (hyphen).
4466	//
4467	// DomainName is a required field
4468	DomainName *string `location:"uri" locationName:"DomainName" min:"3" type:"string" required:"true"`
4469
4470	// Set this value to limit the number of results returned.
4471	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
4472
4473	// Paginated APIs accepts NextToken input to returns next page results and provides
4474	// a NextToken output in the response which can be used by the client to retrieve
4475	// more results.
4476	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
4477}
4478
4479// String returns the string representation
4480func (s GetUpgradeHistoryInput) String() string {
4481	return awsutil.Prettify(s)
4482}
4483
4484// GoString returns the string representation
4485func (s GetUpgradeHistoryInput) GoString() string {
4486	return s.String()
4487}
4488
4489// Validate inspects the fields of the type to determine if they are valid.
4490func (s *GetUpgradeHistoryInput) Validate() error {
4491	invalidParams := request.ErrInvalidParams{Context: "GetUpgradeHistoryInput"}
4492	if s.DomainName == nil {
4493		invalidParams.Add(request.NewErrParamRequired("DomainName"))
4494	}
4495	if s.DomainName != nil && len(*s.DomainName) < 3 {
4496		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
4497	}
4498
4499	if invalidParams.Len() > 0 {
4500		return invalidParams
4501	}
4502	return nil
4503}
4504
4505// SetDomainName sets the DomainName field's value.
4506func (s *GetUpgradeHistoryInput) SetDomainName(v string) *GetUpgradeHistoryInput {
4507	s.DomainName = &v
4508	return s
4509}
4510
4511// SetMaxResults sets the MaxResults field's value.
4512func (s *GetUpgradeHistoryInput) SetMaxResults(v int64) *GetUpgradeHistoryInput {
4513	s.MaxResults = &v
4514	return s
4515}
4516
4517// SetNextToken sets the NextToken field's value.
4518func (s *GetUpgradeHistoryInput) SetNextToken(v string) *GetUpgradeHistoryInput {
4519	s.NextToken = &v
4520	return s
4521}
4522
4523// Container for response returned by GetUpgradeHistory operation.
4524type GetUpgradeHistoryOutput struct {
4525	_ struct{} `type:"structure"`
4526
4527	// Pagination token that needs to be supplied to the next call to get the next
4528	// page of results
4529	NextToken *string `type:"string"`
4530
4531	// A list of UpgradeHistory objects corresponding to each Upgrade or Upgrade
4532	// Eligibility Check performed on a domain returned as part of GetUpgradeHistoryResponse
4533	// object.
4534	UpgradeHistories []*UpgradeHistory `type:"list"`
4535}
4536
4537// String returns the string representation
4538func (s GetUpgradeHistoryOutput) String() string {
4539	return awsutil.Prettify(s)
4540}
4541
4542// GoString returns the string representation
4543func (s GetUpgradeHistoryOutput) GoString() string {
4544	return s.String()
4545}
4546
4547// SetNextToken sets the NextToken field's value.
4548func (s *GetUpgradeHistoryOutput) SetNextToken(v string) *GetUpgradeHistoryOutput {
4549	s.NextToken = &v
4550	return s
4551}
4552
4553// SetUpgradeHistories sets the UpgradeHistories field's value.
4554func (s *GetUpgradeHistoryOutput) SetUpgradeHistories(v []*UpgradeHistory) *GetUpgradeHistoryOutput {
4555	s.UpgradeHistories = v
4556	return s
4557}
4558
4559// Container for request parameters to GetUpgradeStatus operation.
4560type GetUpgradeStatusInput struct {
4561	_ struct{} `type:"structure"`
4562
4563	// The name of an Elasticsearch domain. Domain names are unique across the domains
4564	// owned by an account within an AWS region. Domain names start with a letter
4565	// or number and can contain the following characters: a-z (lowercase), 0-9,
4566	// and - (hyphen).
4567	//
4568	// DomainName is a required field
4569	DomainName *string `location:"uri" locationName:"DomainName" min:"3" type:"string" required:"true"`
4570}
4571
4572// String returns the string representation
4573func (s GetUpgradeStatusInput) String() string {
4574	return awsutil.Prettify(s)
4575}
4576
4577// GoString returns the string representation
4578func (s GetUpgradeStatusInput) GoString() string {
4579	return s.String()
4580}
4581
4582// Validate inspects the fields of the type to determine if they are valid.
4583func (s *GetUpgradeStatusInput) Validate() error {
4584	invalidParams := request.ErrInvalidParams{Context: "GetUpgradeStatusInput"}
4585	if s.DomainName == nil {
4586		invalidParams.Add(request.NewErrParamRequired("DomainName"))
4587	}
4588	if s.DomainName != nil && len(*s.DomainName) < 3 {
4589		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
4590	}
4591
4592	if invalidParams.Len() > 0 {
4593		return invalidParams
4594	}
4595	return nil
4596}
4597
4598// SetDomainName sets the DomainName field's value.
4599func (s *GetUpgradeStatusInput) SetDomainName(v string) *GetUpgradeStatusInput {
4600	s.DomainName = &v
4601	return s
4602}
4603
4604// Container for response returned by GetUpgradeStatus operation.
4605type GetUpgradeStatusOutput struct {
4606	_ struct{} `type:"structure"`
4607
4608	// One of 4 statuses that a step can go through returned as part of the GetUpgradeStatusResponse
4609	// object. The status can take one of the following values:
4610	//    * In Progress
4611	//
4612	//    * Succeeded
4613	//
4614	//    * Succeeded with Issues
4615	//
4616	//    * Failed
4617	StepStatus *string `type:"string" enum:"UpgradeStatus"`
4618
4619	// A string that describes the update briefly
4620	UpgradeName *string `type:"string"`
4621
4622	// Represents one of 3 steps that an Upgrade or Upgrade Eligibility Check does
4623	// through:
4624	//    * PreUpgradeCheck
4625	//
4626	//    * Snapshot
4627	//
4628	//    * Upgrade
4629	UpgradeStep *string `type:"string" enum:"UpgradeStep"`
4630}
4631
4632// String returns the string representation
4633func (s GetUpgradeStatusOutput) String() string {
4634	return awsutil.Prettify(s)
4635}
4636
4637// GoString returns the string representation
4638func (s GetUpgradeStatusOutput) GoString() string {
4639	return s.String()
4640}
4641
4642// SetStepStatus sets the StepStatus field's value.
4643func (s *GetUpgradeStatusOutput) SetStepStatus(v string) *GetUpgradeStatusOutput {
4644	s.StepStatus = &v
4645	return s
4646}
4647
4648// SetUpgradeName sets the UpgradeName field's value.
4649func (s *GetUpgradeStatusOutput) SetUpgradeName(v string) *GetUpgradeStatusOutput {
4650	s.UpgradeName = &v
4651	return s
4652}
4653
4654// SetUpgradeStep sets the UpgradeStep field's value.
4655func (s *GetUpgradeStatusOutput) SetUpgradeStep(v string) *GetUpgradeStatusOutput {
4656	s.UpgradeStep = &v
4657	return s
4658}
4659
4660// InstanceCountLimits represents the limits on number of instances that be
4661// created in Amazon Elasticsearch for given InstanceType.
4662type InstanceCountLimits struct {
4663	_ struct{} `type:"structure"`
4664
4665	// Maximum number of Instances that can be instantiated for given InstanceType.
4666	MaximumInstanceCount *int64 `type:"integer"`
4667
4668	// Minimum number of Instances that can be instantiated for given InstanceType.
4669	MinimumInstanceCount *int64 `type:"integer"`
4670}
4671
4672// String returns the string representation
4673func (s InstanceCountLimits) String() string {
4674	return awsutil.Prettify(s)
4675}
4676
4677// GoString returns the string representation
4678func (s InstanceCountLimits) GoString() string {
4679	return s.String()
4680}
4681
4682// SetMaximumInstanceCount sets the MaximumInstanceCount field's value.
4683func (s *InstanceCountLimits) SetMaximumInstanceCount(v int64) *InstanceCountLimits {
4684	s.MaximumInstanceCount = &v
4685	return s
4686}
4687
4688// SetMinimumInstanceCount sets the MinimumInstanceCount field's value.
4689func (s *InstanceCountLimits) SetMinimumInstanceCount(v int64) *InstanceCountLimits {
4690	s.MinimumInstanceCount = &v
4691	return s
4692}
4693
4694// InstanceLimits represents the list of instance related attributes that are
4695// available for given InstanceType.
4696type InstanceLimits struct {
4697	_ struct{} `type:"structure"`
4698
4699	// InstanceCountLimits represents the limits on number of instances that be
4700	// created in Amazon Elasticsearch for given InstanceType.
4701	InstanceCountLimits *InstanceCountLimits `type:"structure"`
4702}
4703
4704// String returns the string representation
4705func (s InstanceLimits) String() string {
4706	return awsutil.Prettify(s)
4707}
4708
4709// GoString returns the string representation
4710func (s InstanceLimits) GoString() string {
4711	return s.String()
4712}
4713
4714// SetInstanceCountLimits sets the InstanceCountLimits field's value.
4715func (s *InstanceLimits) SetInstanceCountLimits(v *InstanceCountLimits) *InstanceLimits {
4716	s.InstanceCountLimits = v
4717	return s
4718}
4719
4720// Limits for given InstanceType and for each of it's role. Limits contains
4721// following StorageTypes, InstanceLimits and AdditionalLimits
4722type Limits struct {
4723	_ struct{} `type:"structure"`
4724
4725	// List of additional limits that are specific to a given InstanceType and for
4726	// each of it's InstanceRole .
4727	AdditionalLimits []*AdditionalLimit `type:"list"`
4728
4729	// InstanceLimits represents the list of instance related attributes that are
4730	// available for given InstanceType.
4731	InstanceLimits *InstanceLimits `type:"structure"`
4732
4733	// StorageType represents the list of storage related types and attributes that
4734	// are available for given InstanceType.
4735	StorageTypes []*StorageType `type:"list"`
4736}
4737
4738// String returns the string representation
4739func (s Limits) String() string {
4740	return awsutil.Prettify(s)
4741}
4742
4743// GoString returns the string representation
4744func (s Limits) GoString() string {
4745	return s.String()
4746}
4747
4748// SetAdditionalLimits sets the AdditionalLimits field's value.
4749func (s *Limits) SetAdditionalLimits(v []*AdditionalLimit) *Limits {
4750	s.AdditionalLimits = v
4751	return s
4752}
4753
4754// SetInstanceLimits sets the InstanceLimits field's value.
4755func (s *Limits) SetInstanceLimits(v *InstanceLimits) *Limits {
4756	s.InstanceLimits = v
4757	return s
4758}
4759
4760// SetStorageTypes sets the StorageTypes field's value.
4761func (s *Limits) SetStorageTypes(v []*StorageType) *Limits {
4762	s.StorageTypes = v
4763	return s
4764}
4765
4766type ListDomainNamesInput struct {
4767	_ struct{} `type:"structure"`
4768}
4769
4770// String returns the string representation
4771func (s ListDomainNamesInput) String() string {
4772	return awsutil.Prettify(s)
4773}
4774
4775// GoString returns the string representation
4776func (s ListDomainNamesInput) GoString() string {
4777	return s.String()
4778}
4779
4780// The result of a ListDomainNames operation. Contains the names of all Elasticsearch
4781// domains owned by this account.
4782type ListDomainNamesOutput struct {
4783	_ struct{} `type:"structure"`
4784
4785	// List of Elasticsearch domain names.
4786	DomainNames []*DomainInfo `type:"list"`
4787}
4788
4789// String returns the string representation
4790func (s ListDomainNamesOutput) String() string {
4791	return awsutil.Prettify(s)
4792}
4793
4794// GoString returns the string representation
4795func (s ListDomainNamesOutput) GoString() string {
4796	return s.String()
4797}
4798
4799// SetDomainNames sets the DomainNames field's value.
4800func (s *ListDomainNamesOutput) SetDomainNames(v []*DomainInfo) *ListDomainNamesOutput {
4801	s.DomainNames = v
4802	return s
4803}
4804
4805// Container for the parameters to the ListElasticsearchInstanceTypes operation.
4806type ListElasticsearchInstanceTypesInput struct {
4807	_ struct{} `type:"structure"`
4808
4809	// DomainName represents the name of the Domain that we are trying to modify.
4810	// This should be present only if we are querying for list of available Elasticsearch
4811	// instance types when modifying existing domain.
4812	DomainName *string `location:"querystring" locationName:"domainName" min:"3" type:"string"`
4813
4814	// Version of Elasticsearch for which list of supported elasticsearch instance
4815	// types are needed.
4816	//
4817	// ElasticsearchVersion is a required field
4818	ElasticsearchVersion *string `location:"uri" locationName:"ElasticsearchVersion" type:"string" required:"true"`
4819
4820	// Set this value to limit the number of results returned. Value provided must
4821	// be greater than 30 else it wont be honored.
4822	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
4823
4824	// NextToken should be sent in case if earlier API call produced result containing
4825	// NextToken. It is used for pagination.
4826	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
4827}
4828
4829// String returns the string representation
4830func (s ListElasticsearchInstanceTypesInput) String() string {
4831	return awsutil.Prettify(s)
4832}
4833
4834// GoString returns the string representation
4835func (s ListElasticsearchInstanceTypesInput) GoString() string {
4836	return s.String()
4837}
4838
4839// Validate inspects the fields of the type to determine if they are valid.
4840func (s *ListElasticsearchInstanceTypesInput) Validate() error {
4841	invalidParams := request.ErrInvalidParams{Context: "ListElasticsearchInstanceTypesInput"}
4842	if s.DomainName != nil && len(*s.DomainName) < 3 {
4843		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
4844	}
4845	if s.ElasticsearchVersion == nil {
4846		invalidParams.Add(request.NewErrParamRequired("ElasticsearchVersion"))
4847	}
4848	if s.ElasticsearchVersion != nil && len(*s.ElasticsearchVersion) < 1 {
4849		invalidParams.Add(request.NewErrParamMinLen("ElasticsearchVersion", 1))
4850	}
4851
4852	if invalidParams.Len() > 0 {
4853		return invalidParams
4854	}
4855	return nil
4856}
4857
4858// SetDomainName sets the DomainName field's value.
4859func (s *ListElasticsearchInstanceTypesInput) SetDomainName(v string) *ListElasticsearchInstanceTypesInput {
4860	s.DomainName = &v
4861	return s
4862}
4863
4864// SetElasticsearchVersion sets the ElasticsearchVersion field's value.
4865func (s *ListElasticsearchInstanceTypesInput) SetElasticsearchVersion(v string) *ListElasticsearchInstanceTypesInput {
4866	s.ElasticsearchVersion = &v
4867	return s
4868}
4869
4870// SetMaxResults sets the MaxResults field's value.
4871func (s *ListElasticsearchInstanceTypesInput) SetMaxResults(v int64) *ListElasticsearchInstanceTypesInput {
4872	s.MaxResults = &v
4873	return s
4874}
4875
4876// SetNextToken sets the NextToken field's value.
4877func (s *ListElasticsearchInstanceTypesInput) SetNextToken(v string) *ListElasticsearchInstanceTypesInput {
4878	s.NextToken = &v
4879	return s
4880}
4881
4882// Container for the parameters returned by ListElasticsearchInstanceTypes operation.
4883type ListElasticsearchInstanceTypesOutput struct {
4884	_ struct{} `type:"structure"`
4885
4886	// List of instance types supported by Amazon Elasticsearch service for given
4887	// ElasticsearchVersion
4888	ElasticsearchInstanceTypes []*string `type:"list"`
4889
4890	// In case if there are more results available NextToken would be present, make
4891	// further request to the same API with received NextToken to paginate remaining
4892	// results.
4893	NextToken *string `type:"string"`
4894}
4895
4896// String returns the string representation
4897func (s ListElasticsearchInstanceTypesOutput) String() string {
4898	return awsutil.Prettify(s)
4899}
4900
4901// GoString returns the string representation
4902func (s ListElasticsearchInstanceTypesOutput) GoString() string {
4903	return s.String()
4904}
4905
4906// SetElasticsearchInstanceTypes sets the ElasticsearchInstanceTypes field's value.
4907func (s *ListElasticsearchInstanceTypesOutput) SetElasticsearchInstanceTypes(v []*string) *ListElasticsearchInstanceTypesOutput {
4908	s.ElasticsearchInstanceTypes = v
4909	return s
4910}
4911
4912// SetNextToken sets the NextToken field's value.
4913func (s *ListElasticsearchInstanceTypesOutput) SetNextToken(v string) *ListElasticsearchInstanceTypesOutput {
4914	s.NextToken = &v
4915	return s
4916}
4917
4918// Container for the parameters to the ListElasticsearchVersions operation.
4919// Use MaxResults to control the maximum number of results to retrieve in a
4920// single call.
4921//
4922// Use NextToken in response to retrieve more results. If the received response
4923// does not contain a NextToken, then there are no more results to retrieve.
4924type ListElasticsearchVersionsInput struct {
4925	_ struct{} `type:"structure"`
4926
4927	// Set this value to limit the number of results returned. Value provided must
4928	// be greater than 10 else it wont be honored.
4929	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
4930
4931	// Paginated APIs accepts NextToken input to returns next page results and provides
4932	// a NextToken output in the response which can be used by the client to retrieve
4933	// more results.
4934	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
4935}
4936
4937// String returns the string representation
4938func (s ListElasticsearchVersionsInput) String() string {
4939	return awsutil.Prettify(s)
4940}
4941
4942// GoString returns the string representation
4943func (s ListElasticsearchVersionsInput) GoString() string {
4944	return s.String()
4945}
4946
4947// SetMaxResults sets the MaxResults field's value.
4948func (s *ListElasticsearchVersionsInput) SetMaxResults(v int64) *ListElasticsearchVersionsInput {
4949	s.MaxResults = &v
4950	return s
4951}
4952
4953// SetNextToken sets the NextToken field's value.
4954func (s *ListElasticsearchVersionsInput) SetNextToken(v string) *ListElasticsearchVersionsInput {
4955	s.NextToken = &v
4956	return s
4957}
4958
4959// Container for the parameters for response received from ListElasticsearchVersions
4960// operation.
4961type ListElasticsearchVersionsOutput struct {
4962	_ struct{} `type:"structure"`
4963
4964	// List of supported elastic search versions.
4965	ElasticsearchVersions []*string `type:"list"`
4966
4967	// Paginated APIs accepts NextToken input to returns next page results and provides
4968	// a NextToken output in the response which can be used by the client to retrieve
4969	// more results.
4970	NextToken *string `type:"string"`
4971}
4972
4973// String returns the string representation
4974func (s ListElasticsearchVersionsOutput) String() string {
4975	return awsutil.Prettify(s)
4976}
4977
4978// GoString returns the string representation
4979func (s ListElasticsearchVersionsOutput) GoString() string {
4980	return s.String()
4981}
4982
4983// SetElasticsearchVersions sets the ElasticsearchVersions field's value.
4984func (s *ListElasticsearchVersionsOutput) SetElasticsearchVersions(v []*string) *ListElasticsearchVersionsOutput {
4985	s.ElasticsearchVersions = v
4986	return s
4987}
4988
4989// SetNextToken sets the NextToken field's value.
4990func (s *ListElasticsearchVersionsOutput) SetNextToken(v string) *ListElasticsearchVersionsOutput {
4991	s.NextToken = &v
4992	return s
4993}
4994
4995// Container for the parameters to the ListTags operation. Specify the ARN for
4996// the Elasticsearch domain to which the tags are attached that you want to
4997// view are attached.
4998type ListTagsInput struct {
4999	_ struct{} `type:"structure"`
5000
5001	// Specify the ARN for the Elasticsearch domain to which the tags are attached
5002	// that you want to view.
5003	//
5004	// ARN is a required field
5005	ARN *string `location:"querystring" locationName:"arn" type:"string" required:"true"`
5006}
5007
5008// String returns the string representation
5009func (s ListTagsInput) String() string {
5010	return awsutil.Prettify(s)
5011}
5012
5013// GoString returns the string representation
5014func (s ListTagsInput) GoString() string {
5015	return s.String()
5016}
5017
5018// Validate inspects the fields of the type to determine if they are valid.
5019func (s *ListTagsInput) Validate() error {
5020	invalidParams := request.ErrInvalidParams{Context: "ListTagsInput"}
5021	if s.ARN == nil {
5022		invalidParams.Add(request.NewErrParamRequired("ARN"))
5023	}
5024
5025	if invalidParams.Len() > 0 {
5026		return invalidParams
5027	}
5028	return nil
5029}
5030
5031// SetARN sets the ARN field's value.
5032func (s *ListTagsInput) SetARN(v string) *ListTagsInput {
5033	s.ARN = &v
5034	return s
5035}
5036
5037// The result of a ListTags operation. Contains tags for all requested Elasticsearch
5038// domains.
5039type ListTagsOutput struct {
5040	_ struct{} `type:"structure"`
5041
5042	// List of Tag for the requested Elasticsearch domain.
5043	TagList []*Tag `type:"list"`
5044}
5045
5046// String returns the string representation
5047func (s ListTagsOutput) String() string {
5048	return awsutil.Prettify(s)
5049}
5050
5051// GoString returns the string representation
5052func (s ListTagsOutput) GoString() string {
5053	return s.String()
5054}
5055
5056// SetTagList sets the TagList field's value.
5057func (s *ListTagsOutput) SetTagList(v []*Tag) *ListTagsOutput {
5058	s.TagList = v
5059	return s
5060}
5061
5062// Log Publishing option that is set for given domain. Attributes and their
5063// details:
5064//    * CloudWatchLogsLogGroupArn: ARN of the Cloudwatch log group to which
5065//    log needs to be published.
5066//
5067//    * Enabled: Whether the log publishing for given log type is enabled or
5068//    not
5069type LogPublishingOption struct {
5070	_ struct{} `type:"structure"`
5071
5072	// ARN of the Cloudwatch log group to which log needs to be published.
5073	CloudWatchLogsLogGroupArn *string `type:"string"`
5074
5075	// Specifies whether given log publishing option is enabled or not.
5076	Enabled *bool `type:"boolean"`
5077}
5078
5079// String returns the string representation
5080func (s LogPublishingOption) String() string {
5081	return awsutil.Prettify(s)
5082}
5083
5084// GoString returns the string representation
5085func (s LogPublishingOption) GoString() string {
5086	return s.String()
5087}
5088
5089// SetCloudWatchLogsLogGroupArn sets the CloudWatchLogsLogGroupArn field's value.
5090func (s *LogPublishingOption) SetCloudWatchLogsLogGroupArn(v string) *LogPublishingOption {
5091	s.CloudWatchLogsLogGroupArn = &v
5092	return s
5093}
5094
5095// SetEnabled sets the Enabled field's value.
5096func (s *LogPublishingOption) SetEnabled(v bool) *LogPublishingOption {
5097	s.Enabled = &v
5098	return s
5099}
5100
5101// The configured log publishing options for the domain and their current status.
5102type LogPublishingOptionsStatus struct {
5103	_ struct{} `type:"structure"`
5104
5105	// The log publishing options configured for the Elasticsearch domain.
5106	Options map[string]*LogPublishingOption `type:"map"`
5107
5108	// The status of the log publishing options for the Elasticsearch domain. See
5109	// OptionStatus for the status information that's included.
5110	Status *OptionStatus `type:"structure"`
5111}
5112
5113// String returns the string representation
5114func (s LogPublishingOptionsStatus) String() string {
5115	return awsutil.Prettify(s)
5116}
5117
5118// GoString returns the string representation
5119func (s LogPublishingOptionsStatus) GoString() string {
5120	return s.String()
5121}
5122
5123// SetOptions sets the Options field's value.
5124func (s *LogPublishingOptionsStatus) SetOptions(v map[string]*LogPublishingOption) *LogPublishingOptionsStatus {
5125	s.Options = v
5126	return s
5127}
5128
5129// SetStatus sets the Status field's value.
5130func (s *LogPublishingOptionsStatus) SetStatus(v *OptionStatus) *LogPublishingOptionsStatus {
5131	s.Status = v
5132	return s
5133}
5134
5135// Specifies the node-to-node encryption options.
5136type NodeToNodeEncryptionOptions struct {
5137	_ struct{} `type:"structure"`
5138
5139	// Specify true to enable node-to-node encryption.
5140	Enabled *bool `type:"boolean"`
5141}
5142
5143// String returns the string representation
5144func (s NodeToNodeEncryptionOptions) String() string {
5145	return awsutil.Prettify(s)
5146}
5147
5148// GoString returns the string representation
5149func (s NodeToNodeEncryptionOptions) GoString() string {
5150	return s.String()
5151}
5152
5153// SetEnabled sets the Enabled field's value.
5154func (s *NodeToNodeEncryptionOptions) SetEnabled(v bool) *NodeToNodeEncryptionOptions {
5155	s.Enabled = &v
5156	return s
5157}
5158
5159// Status of the node-to-node encryption options for the specified Elasticsearch
5160// domain.
5161type NodeToNodeEncryptionOptionsStatus struct {
5162	_ struct{} `type:"structure"`
5163
5164	// Specifies the node-to-node encryption options for the specified Elasticsearch
5165	// domain.
5166	//
5167	// Options is a required field
5168	Options *NodeToNodeEncryptionOptions `type:"structure" required:"true"`
5169
5170	// Specifies the status of the node-to-node encryption options for the specified
5171	// Elasticsearch domain.
5172	//
5173	// Status is a required field
5174	Status *OptionStatus `type:"structure" required:"true"`
5175}
5176
5177// String returns the string representation
5178func (s NodeToNodeEncryptionOptionsStatus) String() string {
5179	return awsutil.Prettify(s)
5180}
5181
5182// GoString returns the string representation
5183func (s NodeToNodeEncryptionOptionsStatus) GoString() string {
5184	return s.String()
5185}
5186
5187// SetOptions sets the Options field's value.
5188func (s *NodeToNodeEncryptionOptionsStatus) SetOptions(v *NodeToNodeEncryptionOptions) *NodeToNodeEncryptionOptionsStatus {
5189	s.Options = v
5190	return s
5191}
5192
5193// SetStatus sets the Status field's value.
5194func (s *NodeToNodeEncryptionOptionsStatus) SetStatus(v *OptionStatus) *NodeToNodeEncryptionOptionsStatus {
5195	s.Status = v
5196	return s
5197}
5198
5199// Provides the current status of the entity.
5200type OptionStatus struct {
5201	_ struct{} `type:"structure"`
5202
5203	// Timestamp which tells the creation date for the entity.
5204	//
5205	// CreationDate is a required field
5206	CreationDate *time.Time `type:"timestamp" required:"true"`
5207
5208	// Indicates whether the Elasticsearch domain is being deleted.
5209	PendingDeletion *bool `type:"boolean"`
5210
5211	// Provides the OptionState for the Elasticsearch domain.
5212	//
5213	// State is a required field
5214	State *string `type:"string" required:"true" enum:"OptionState"`
5215
5216	// Timestamp which tells the last updated time for the entity.
5217	//
5218	// UpdateDate is a required field
5219	UpdateDate *time.Time `type:"timestamp" required:"true"`
5220
5221	// Specifies the latest version for the entity.
5222	UpdateVersion *int64 `type:"integer"`
5223}
5224
5225// String returns the string representation
5226func (s OptionStatus) String() string {
5227	return awsutil.Prettify(s)
5228}
5229
5230// GoString returns the string representation
5231func (s OptionStatus) GoString() string {
5232	return s.String()
5233}
5234
5235// SetCreationDate sets the CreationDate field's value.
5236func (s *OptionStatus) SetCreationDate(v time.Time) *OptionStatus {
5237	s.CreationDate = &v
5238	return s
5239}
5240
5241// SetPendingDeletion sets the PendingDeletion field's value.
5242func (s *OptionStatus) SetPendingDeletion(v bool) *OptionStatus {
5243	s.PendingDeletion = &v
5244	return s
5245}
5246
5247// SetState sets the State field's value.
5248func (s *OptionStatus) SetState(v string) *OptionStatus {
5249	s.State = &v
5250	return s
5251}
5252
5253// SetUpdateDate sets the UpdateDate field's value.
5254func (s *OptionStatus) SetUpdateDate(v time.Time) *OptionStatus {
5255	s.UpdateDate = &v
5256	return s
5257}
5258
5259// SetUpdateVersion sets the UpdateVersion field's value.
5260func (s *OptionStatus) SetUpdateVersion(v int64) *OptionStatus {
5261	s.UpdateVersion = &v
5262	return s
5263}
5264
5265// Container for parameters to PurchaseReservedElasticsearchInstanceOffering
5266type PurchaseReservedElasticsearchInstanceOfferingInput struct {
5267	_ struct{} `type:"structure"`
5268
5269	// The number of Elasticsearch instances to reserve.
5270	InstanceCount *int64 `min:"1" type:"integer"`
5271
5272	// A customer-specified identifier to track this reservation.
5273	//
5274	// ReservationName is a required field
5275	ReservationName *string `min:"5" type:"string" required:"true"`
5276
5277	// The ID of the reserved Elasticsearch instance offering to purchase.
5278	//
5279	// ReservedElasticsearchInstanceOfferingId is a required field
5280	ReservedElasticsearchInstanceOfferingId *string `type:"string" required:"true"`
5281}
5282
5283// String returns the string representation
5284func (s PurchaseReservedElasticsearchInstanceOfferingInput) String() string {
5285	return awsutil.Prettify(s)
5286}
5287
5288// GoString returns the string representation
5289func (s PurchaseReservedElasticsearchInstanceOfferingInput) GoString() string {
5290	return s.String()
5291}
5292
5293// Validate inspects the fields of the type to determine if they are valid.
5294func (s *PurchaseReservedElasticsearchInstanceOfferingInput) Validate() error {
5295	invalidParams := request.ErrInvalidParams{Context: "PurchaseReservedElasticsearchInstanceOfferingInput"}
5296	if s.InstanceCount != nil && *s.InstanceCount < 1 {
5297		invalidParams.Add(request.NewErrParamMinValue("InstanceCount", 1))
5298	}
5299	if s.ReservationName == nil {
5300		invalidParams.Add(request.NewErrParamRequired("ReservationName"))
5301	}
5302	if s.ReservationName != nil && len(*s.ReservationName) < 5 {
5303		invalidParams.Add(request.NewErrParamMinLen("ReservationName", 5))
5304	}
5305	if s.ReservedElasticsearchInstanceOfferingId == nil {
5306		invalidParams.Add(request.NewErrParamRequired("ReservedElasticsearchInstanceOfferingId"))
5307	}
5308
5309	if invalidParams.Len() > 0 {
5310		return invalidParams
5311	}
5312	return nil
5313}
5314
5315// SetInstanceCount sets the InstanceCount field's value.
5316func (s *PurchaseReservedElasticsearchInstanceOfferingInput) SetInstanceCount(v int64) *PurchaseReservedElasticsearchInstanceOfferingInput {
5317	s.InstanceCount = &v
5318	return s
5319}
5320
5321// SetReservationName sets the ReservationName field's value.
5322func (s *PurchaseReservedElasticsearchInstanceOfferingInput) SetReservationName(v string) *PurchaseReservedElasticsearchInstanceOfferingInput {
5323	s.ReservationName = &v
5324	return s
5325}
5326
5327// SetReservedElasticsearchInstanceOfferingId sets the ReservedElasticsearchInstanceOfferingId field's value.
5328func (s *PurchaseReservedElasticsearchInstanceOfferingInput) SetReservedElasticsearchInstanceOfferingId(v string) *PurchaseReservedElasticsearchInstanceOfferingInput {
5329	s.ReservedElasticsearchInstanceOfferingId = &v
5330	return s
5331}
5332
5333// Represents the output of a PurchaseReservedElasticsearchInstanceOffering
5334// operation.
5335type PurchaseReservedElasticsearchInstanceOfferingOutput struct {
5336	_ struct{} `type:"structure"`
5337
5338	// The customer-specified identifier used to track this reservation.
5339	ReservationName *string `min:"5" type:"string"`
5340
5341	// Details of the reserved Elasticsearch instance which was purchased.
5342	ReservedElasticsearchInstanceId *string `type:"string"`
5343}
5344
5345// String returns the string representation
5346func (s PurchaseReservedElasticsearchInstanceOfferingOutput) String() string {
5347	return awsutil.Prettify(s)
5348}
5349
5350// GoString returns the string representation
5351func (s PurchaseReservedElasticsearchInstanceOfferingOutput) GoString() string {
5352	return s.String()
5353}
5354
5355// SetReservationName sets the ReservationName field's value.
5356func (s *PurchaseReservedElasticsearchInstanceOfferingOutput) SetReservationName(v string) *PurchaseReservedElasticsearchInstanceOfferingOutput {
5357	s.ReservationName = &v
5358	return s
5359}
5360
5361// SetReservedElasticsearchInstanceId sets the ReservedElasticsearchInstanceId field's value.
5362func (s *PurchaseReservedElasticsearchInstanceOfferingOutput) SetReservedElasticsearchInstanceId(v string) *PurchaseReservedElasticsearchInstanceOfferingOutput {
5363	s.ReservedElasticsearchInstanceId = &v
5364	return s
5365}
5366
5367// Contains the specific price and frequency of a recurring charges for a reserved
5368// Elasticsearch instance, or for a reserved Elasticsearch instance offering.
5369type RecurringCharge struct {
5370	_ struct{} `type:"structure"`
5371
5372	// The monetary amount of the recurring charge.
5373	RecurringChargeAmount *float64 `type:"double"`
5374
5375	// The frequency of the recurring charge.
5376	RecurringChargeFrequency *string `type:"string"`
5377}
5378
5379// String returns the string representation
5380func (s RecurringCharge) String() string {
5381	return awsutil.Prettify(s)
5382}
5383
5384// GoString returns the string representation
5385func (s RecurringCharge) GoString() string {
5386	return s.String()
5387}
5388
5389// SetRecurringChargeAmount sets the RecurringChargeAmount field's value.
5390func (s *RecurringCharge) SetRecurringChargeAmount(v float64) *RecurringCharge {
5391	s.RecurringChargeAmount = &v
5392	return s
5393}
5394
5395// SetRecurringChargeFrequency sets the RecurringChargeFrequency field's value.
5396func (s *RecurringCharge) SetRecurringChargeFrequency(v string) *RecurringCharge {
5397	s.RecurringChargeFrequency = &v
5398	return s
5399}
5400
5401// Container for the parameters to the RemoveTags operation. Specify the ARN
5402// for the Elasticsearch domain from which you want to remove the specified
5403// TagKey.
5404type RemoveTagsInput struct {
5405	_ struct{} `type:"structure"`
5406
5407	// Specifies the ARN for the Elasticsearch domain from which you want to delete
5408	// the specified tags.
5409	//
5410	// ARN is a required field
5411	ARN *string `type:"string" required:"true"`
5412
5413	// Specifies the TagKey list which you want to remove from the Elasticsearch
5414	// domain.
5415	//
5416	// TagKeys is a required field
5417	TagKeys []*string `type:"list" required:"true"`
5418}
5419
5420// String returns the string representation
5421func (s RemoveTagsInput) String() string {
5422	return awsutil.Prettify(s)
5423}
5424
5425// GoString returns the string representation
5426func (s RemoveTagsInput) GoString() string {
5427	return s.String()
5428}
5429
5430// Validate inspects the fields of the type to determine if they are valid.
5431func (s *RemoveTagsInput) Validate() error {
5432	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsInput"}
5433	if s.ARN == nil {
5434		invalidParams.Add(request.NewErrParamRequired("ARN"))
5435	}
5436	if s.TagKeys == nil {
5437		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
5438	}
5439
5440	if invalidParams.Len() > 0 {
5441		return invalidParams
5442	}
5443	return nil
5444}
5445
5446// SetARN sets the ARN field's value.
5447func (s *RemoveTagsInput) SetARN(v string) *RemoveTagsInput {
5448	s.ARN = &v
5449	return s
5450}
5451
5452// SetTagKeys sets the TagKeys field's value.
5453func (s *RemoveTagsInput) SetTagKeys(v []*string) *RemoveTagsInput {
5454	s.TagKeys = v
5455	return s
5456}
5457
5458type RemoveTagsOutput struct {
5459	_ struct{} `type:"structure"`
5460}
5461
5462// String returns the string representation
5463func (s RemoveTagsOutput) String() string {
5464	return awsutil.Prettify(s)
5465}
5466
5467// GoString returns the string representation
5468func (s RemoveTagsOutput) GoString() string {
5469	return s.String()
5470}
5471
5472// Details of a reserved Elasticsearch instance.
5473type ReservedElasticsearchInstance struct {
5474	_ struct{} `type:"structure"`
5475
5476	// The currency code for the reserved Elasticsearch instance offering.
5477	CurrencyCode *string `type:"string"`
5478
5479	// The duration, in seconds, for which the Elasticsearch instance is reserved.
5480	Duration *int64 `type:"integer"`
5481
5482	// The number of Elasticsearch instances that have been reserved.
5483	ElasticsearchInstanceCount *int64 `type:"integer"`
5484
5485	// The Elasticsearch instance type offered by the reserved instance offering.
5486	ElasticsearchInstanceType *string `type:"string" enum:"ESPartitionInstanceType"`
5487
5488	// The upfront fixed charge you will paid to purchase the specific reserved
5489	// Elasticsearch instance offering.
5490	FixedPrice *float64 `type:"double"`
5491
5492	// The payment option as defined in the reserved Elasticsearch instance offering.
5493	PaymentOption *string `type:"string" enum:"ReservedElasticsearchInstancePaymentOption"`
5494
5495	// The charge to your account regardless of whether you are creating any domains
5496	// using the instance offering.
5497	RecurringCharges []*RecurringCharge `type:"list"`
5498
5499	// The customer-specified identifier to track this reservation.
5500	ReservationName *string `min:"5" type:"string"`
5501
5502	// The unique identifier for the reservation.
5503	ReservedElasticsearchInstanceId *string `type:"string"`
5504
5505	// The offering identifier.
5506	ReservedElasticsearchInstanceOfferingId *string `type:"string"`
5507
5508	// The time the reservation started.
5509	StartTime *time.Time `type:"timestamp"`
5510
5511	// The state of the reserved Elasticsearch instance.
5512	State *string `type:"string"`
5513
5514	// The rate you are charged for each hour for the domain that is using this
5515	// reserved instance.
5516	UsagePrice *float64 `type:"double"`
5517}
5518
5519// String returns the string representation
5520func (s ReservedElasticsearchInstance) String() string {
5521	return awsutil.Prettify(s)
5522}
5523
5524// GoString returns the string representation
5525func (s ReservedElasticsearchInstance) GoString() string {
5526	return s.String()
5527}
5528
5529// SetCurrencyCode sets the CurrencyCode field's value.
5530func (s *ReservedElasticsearchInstance) SetCurrencyCode(v string) *ReservedElasticsearchInstance {
5531	s.CurrencyCode = &v
5532	return s
5533}
5534
5535// SetDuration sets the Duration field's value.
5536func (s *ReservedElasticsearchInstance) SetDuration(v int64) *ReservedElasticsearchInstance {
5537	s.Duration = &v
5538	return s
5539}
5540
5541// SetElasticsearchInstanceCount sets the ElasticsearchInstanceCount field's value.
5542func (s *ReservedElasticsearchInstance) SetElasticsearchInstanceCount(v int64) *ReservedElasticsearchInstance {
5543	s.ElasticsearchInstanceCount = &v
5544	return s
5545}
5546
5547// SetElasticsearchInstanceType sets the ElasticsearchInstanceType field's value.
5548func (s *ReservedElasticsearchInstance) SetElasticsearchInstanceType(v string) *ReservedElasticsearchInstance {
5549	s.ElasticsearchInstanceType = &v
5550	return s
5551}
5552
5553// SetFixedPrice sets the FixedPrice field's value.
5554func (s *ReservedElasticsearchInstance) SetFixedPrice(v float64) *ReservedElasticsearchInstance {
5555	s.FixedPrice = &v
5556	return s
5557}
5558
5559// SetPaymentOption sets the PaymentOption field's value.
5560func (s *ReservedElasticsearchInstance) SetPaymentOption(v string) *ReservedElasticsearchInstance {
5561	s.PaymentOption = &v
5562	return s
5563}
5564
5565// SetRecurringCharges sets the RecurringCharges field's value.
5566func (s *ReservedElasticsearchInstance) SetRecurringCharges(v []*RecurringCharge) *ReservedElasticsearchInstance {
5567	s.RecurringCharges = v
5568	return s
5569}
5570
5571// SetReservationName sets the ReservationName field's value.
5572func (s *ReservedElasticsearchInstance) SetReservationName(v string) *ReservedElasticsearchInstance {
5573	s.ReservationName = &v
5574	return s
5575}
5576
5577// SetReservedElasticsearchInstanceId sets the ReservedElasticsearchInstanceId field's value.
5578func (s *ReservedElasticsearchInstance) SetReservedElasticsearchInstanceId(v string) *ReservedElasticsearchInstance {
5579	s.ReservedElasticsearchInstanceId = &v
5580	return s
5581}
5582
5583// SetReservedElasticsearchInstanceOfferingId sets the ReservedElasticsearchInstanceOfferingId field's value.
5584func (s *ReservedElasticsearchInstance) SetReservedElasticsearchInstanceOfferingId(v string) *ReservedElasticsearchInstance {
5585	s.ReservedElasticsearchInstanceOfferingId = &v
5586	return s
5587}
5588
5589// SetStartTime sets the StartTime field's value.
5590func (s *ReservedElasticsearchInstance) SetStartTime(v time.Time) *ReservedElasticsearchInstance {
5591	s.StartTime = &v
5592	return s
5593}
5594
5595// SetState sets the State field's value.
5596func (s *ReservedElasticsearchInstance) SetState(v string) *ReservedElasticsearchInstance {
5597	s.State = &v
5598	return s
5599}
5600
5601// SetUsagePrice sets the UsagePrice field's value.
5602func (s *ReservedElasticsearchInstance) SetUsagePrice(v float64) *ReservedElasticsearchInstance {
5603	s.UsagePrice = &v
5604	return s
5605}
5606
5607// Details of a reserved Elasticsearch instance offering.
5608type ReservedElasticsearchInstanceOffering struct {
5609	_ struct{} `type:"structure"`
5610
5611	// The currency code for the reserved Elasticsearch instance offering.
5612	CurrencyCode *string `type:"string"`
5613
5614	// The duration, in seconds, for which the offering will reserve the Elasticsearch
5615	// instance.
5616	Duration *int64 `type:"integer"`
5617
5618	// The Elasticsearch instance type offered by the reserved instance offering.
5619	ElasticsearchInstanceType *string `type:"string" enum:"ESPartitionInstanceType"`
5620
5621	// The upfront fixed charge you will pay to purchase the specific reserved Elasticsearch
5622	// instance offering.
5623	FixedPrice *float64 `type:"double"`
5624
5625	// Payment option for the reserved Elasticsearch instance offering
5626	PaymentOption *string `type:"string" enum:"ReservedElasticsearchInstancePaymentOption"`
5627
5628	// The charge to your account regardless of whether you are creating any domains
5629	// using the instance offering.
5630	RecurringCharges []*RecurringCharge `type:"list"`
5631
5632	// The Elasticsearch reserved instance offering identifier.
5633	ReservedElasticsearchInstanceOfferingId *string `type:"string"`
5634
5635	// The rate you are charged for each hour the domain that is using the offering
5636	// is running.
5637	UsagePrice *float64 `type:"double"`
5638}
5639
5640// String returns the string representation
5641func (s ReservedElasticsearchInstanceOffering) String() string {
5642	return awsutil.Prettify(s)
5643}
5644
5645// GoString returns the string representation
5646func (s ReservedElasticsearchInstanceOffering) GoString() string {
5647	return s.String()
5648}
5649
5650// SetCurrencyCode sets the CurrencyCode field's value.
5651func (s *ReservedElasticsearchInstanceOffering) SetCurrencyCode(v string) *ReservedElasticsearchInstanceOffering {
5652	s.CurrencyCode = &v
5653	return s
5654}
5655
5656// SetDuration sets the Duration field's value.
5657func (s *ReservedElasticsearchInstanceOffering) SetDuration(v int64) *ReservedElasticsearchInstanceOffering {
5658	s.Duration = &v
5659	return s
5660}
5661
5662// SetElasticsearchInstanceType sets the ElasticsearchInstanceType field's value.
5663func (s *ReservedElasticsearchInstanceOffering) SetElasticsearchInstanceType(v string) *ReservedElasticsearchInstanceOffering {
5664	s.ElasticsearchInstanceType = &v
5665	return s
5666}
5667
5668// SetFixedPrice sets the FixedPrice field's value.
5669func (s *ReservedElasticsearchInstanceOffering) SetFixedPrice(v float64) *ReservedElasticsearchInstanceOffering {
5670	s.FixedPrice = &v
5671	return s
5672}
5673
5674// SetPaymentOption sets the PaymentOption field's value.
5675func (s *ReservedElasticsearchInstanceOffering) SetPaymentOption(v string) *ReservedElasticsearchInstanceOffering {
5676	s.PaymentOption = &v
5677	return s
5678}
5679
5680// SetRecurringCharges sets the RecurringCharges field's value.
5681func (s *ReservedElasticsearchInstanceOffering) SetRecurringCharges(v []*RecurringCharge) *ReservedElasticsearchInstanceOffering {
5682	s.RecurringCharges = v
5683	return s
5684}
5685
5686// SetReservedElasticsearchInstanceOfferingId sets the ReservedElasticsearchInstanceOfferingId field's value.
5687func (s *ReservedElasticsearchInstanceOffering) SetReservedElasticsearchInstanceOfferingId(v string) *ReservedElasticsearchInstanceOffering {
5688	s.ReservedElasticsearchInstanceOfferingId = &v
5689	return s
5690}
5691
5692// SetUsagePrice sets the UsagePrice field's value.
5693func (s *ReservedElasticsearchInstanceOffering) SetUsagePrice(v float64) *ReservedElasticsearchInstanceOffering {
5694	s.UsagePrice = &v
5695	return s
5696}
5697
5698// The current options of an Elasticsearch domain service software options.
5699type ServiceSoftwareOptions struct {
5700	_ struct{} `type:"structure"`
5701
5702	// Timestamp, in Epoch time, until which you can manually request a service
5703	// software update. After this date, we automatically update your service software.
5704	AutomatedUpdateDate *time.Time `type:"timestamp"`
5705
5706	// True if you are able to cancel your service software version update. False
5707	// if you are not able to cancel your service software version.
5708	Cancellable *bool `type:"boolean"`
5709
5710	// The current service software version that is present on the domain.
5711	CurrentVersion *string `type:"string"`
5712
5713	// The description of the UpdateStatus.
5714	Description *string `type:"string"`
5715
5716	// The new service software version if one is available.
5717	NewVersion *string `type:"string"`
5718
5719	// True if you are able to update you service software version. False if you
5720	// are not able to update your service software version.
5721	UpdateAvailable *bool `type:"boolean"`
5722
5723	// The status of your service software update. This field can take the following
5724	// values: ELIGIBLE, PENDING_UPDATE, IN_PROGRESS, COMPLETED, and NOT_ELIGIBLE.
5725	UpdateStatus *string `type:"string" enum:"DeploymentStatus"`
5726}
5727
5728// String returns the string representation
5729func (s ServiceSoftwareOptions) String() string {
5730	return awsutil.Prettify(s)
5731}
5732
5733// GoString returns the string representation
5734func (s ServiceSoftwareOptions) GoString() string {
5735	return s.String()
5736}
5737
5738// SetAutomatedUpdateDate sets the AutomatedUpdateDate field's value.
5739func (s *ServiceSoftwareOptions) SetAutomatedUpdateDate(v time.Time) *ServiceSoftwareOptions {
5740	s.AutomatedUpdateDate = &v
5741	return s
5742}
5743
5744// SetCancellable sets the Cancellable field's value.
5745func (s *ServiceSoftwareOptions) SetCancellable(v bool) *ServiceSoftwareOptions {
5746	s.Cancellable = &v
5747	return s
5748}
5749
5750// SetCurrentVersion sets the CurrentVersion field's value.
5751func (s *ServiceSoftwareOptions) SetCurrentVersion(v string) *ServiceSoftwareOptions {
5752	s.CurrentVersion = &v
5753	return s
5754}
5755
5756// SetDescription sets the Description field's value.
5757func (s *ServiceSoftwareOptions) SetDescription(v string) *ServiceSoftwareOptions {
5758	s.Description = &v
5759	return s
5760}
5761
5762// SetNewVersion sets the NewVersion field's value.
5763func (s *ServiceSoftwareOptions) SetNewVersion(v string) *ServiceSoftwareOptions {
5764	s.NewVersion = &v
5765	return s
5766}
5767
5768// SetUpdateAvailable sets the UpdateAvailable field's value.
5769func (s *ServiceSoftwareOptions) SetUpdateAvailable(v bool) *ServiceSoftwareOptions {
5770	s.UpdateAvailable = &v
5771	return s
5772}
5773
5774// SetUpdateStatus sets the UpdateStatus field's value.
5775func (s *ServiceSoftwareOptions) SetUpdateStatus(v string) *ServiceSoftwareOptions {
5776	s.UpdateStatus = &v
5777	return s
5778}
5779
5780// Specifies the time, in UTC format, when the service takes a daily automated
5781// snapshot of the specified Elasticsearch domain. Default value is 0 hours.
5782type SnapshotOptions struct {
5783	_ struct{} `type:"structure"`
5784
5785	// Specifies the time, in UTC format, when the service takes a daily automated
5786	// snapshot of the specified Elasticsearch domain. Default value is 0 hours.
5787	AutomatedSnapshotStartHour *int64 `type:"integer"`
5788}
5789
5790// String returns the string representation
5791func (s SnapshotOptions) String() string {
5792	return awsutil.Prettify(s)
5793}
5794
5795// GoString returns the string representation
5796func (s SnapshotOptions) GoString() string {
5797	return s.String()
5798}
5799
5800// SetAutomatedSnapshotStartHour sets the AutomatedSnapshotStartHour field's value.
5801func (s *SnapshotOptions) SetAutomatedSnapshotStartHour(v int64) *SnapshotOptions {
5802	s.AutomatedSnapshotStartHour = &v
5803	return s
5804}
5805
5806// Status of a daily automated snapshot.
5807type SnapshotOptionsStatus struct {
5808	_ struct{} `type:"structure"`
5809
5810	// Specifies the daily snapshot options specified for the Elasticsearch domain.
5811	//
5812	// Options is a required field
5813	Options *SnapshotOptions `type:"structure" required:"true"`
5814
5815	// Specifies the status of a daily automated snapshot.
5816	//
5817	// Status is a required field
5818	Status *OptionStatus `type:"structure" required:"true"`
5819}
5820
5821// String returns the string representation
5822func (s SnapshotOptionsStatus) String() string {
5823	return awsutil.Prettify(s)
5824}
5825
5826// GoString returns the string representation
5827func (s SnapshotOptionsStatus) GoString() string {
5828	return s.String()
5829}
5830
5831// SetOptions sets the Options field's value.
5832func (s *SnapshotOptionsStatus) SetOptions(v *SnapshotOptions) *SnapshotOptionsStatus {
5833	s.Options = v
5834	return s
5835}
5836
5837// SetStatus sets the Status field's value.
5838func (s *SnapshotOptionsStatus) SetStatus(v *OptionStatus) *SnapshotOptionsStatus {
5839	s.Status = v
5840	return s
5841}
5842
5843// Container for the parameters to the StartElasticsearchServiceSoftwareUpdate
5844// operation. Specifies the name of the Elasticsearch domain that you wish to
5845// schedule a service software update on.
5846type StartElasticsearchServiceSoftwareUpdateInput struct {
5847	_ struct{} `type:"structure"`
5848
5849	// The name of the domain that you want to update to the latest service software.
5850	//
5851	// DomainName is a required field
5852	DomainName *string `min:"3" type:"string" required:"true"`
5853}
5854
5855// String returns the string representation
5856func (s StartElasticsearchServiceSoftwareUpdateInput) String() string {
5857	return awsutil.Prettify(s)
5858}
5859
5860// GoString returns the string representation
5861func (s StartElasticsearchServiceSoftwareUpdateInput) GoString() string {
5862	return s.String()
5863}
5864
5865// Validate inspects the fields of the type to determine if they are valid.
5866func (s *StartElasticsearchServiceSoftwareUpdateInput) Validate() error {
5867	invalidParams := request.ErrInvalidParams{Context: "StartElasticsearchServiceSoftwareUpdateInput"}
5868	if s.DomainName == nil {
5869		invalidParams.Add(request.NewErrParamRequired("DomainName"))
5870	}
5871	if s.DomainName != nil && len(*s.DomainName) < 3 {
5872		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
5873	}
5874
5875	if invalidParams.Len() > 0 {
5876		return invalidParams
5877	}
5878	return nil
5879}
5880
5881// SetDomainName sets the DomainName field's value.
5882func (s *StartElasticsearchServiceSoftwareUpdateInput) SetDomainName(v string) *StartElasticsearchServiceSoftwareUpdateInput {
5883	s.DomainName = &v
5884	return s
5885}
5886
5887// The result of a StartElasticsearchServiceSoftwareUpdate operation. Contains
5888// the status of the update.
5889type StartElasticsearchServiceSoftwareUpdateOutput struct {
5890	_ struct{} `type:"structure"`
5891
5892	// The current status of the Elasticsearch service software update.
5893	ServiceSoftwareOptions *ServiceSoftwareOptions `type:"structure"`
5894}
5895
5896// String returns the string representation
5897func (s StartElasticsearchServiceSoftwareUpdateOutput) String() string {
5898	return awsutil.Prettify(s)
5899}
5900
5901// GoString returns the string representation
5902func (s StartElasticsearchServiceSoftwareUpdateOutput) GoString() string {
5903	return s.String()
5904}
5905
5906// SetServiceSoftwareOptions sets the ServiceSoftwareOptions field's value.
5907func (s *StartElasticsearchServiceSoftwareUpdateOutput) SetServiceSoftwareOptions(v *ServiceSoftwareOptions) *StartElasticsearchServiceSoftwareUpdateOutput {
5908	s.ServiceSoftwareOptions = v
5909	return s
5910}
5911
5912// StorageTypes represents the list of storage related types and their attributes
5913// that are available for given InstanceType.
5914type StorageType struct {
5915	_ struct{} `type:"structure"`
5916
5917	// SubType of the given storage type. List of available sub-storage options:
5918	// For "instance" storageType we wont have any storageSubType, in case of "ebs"
5919	// storageType we will have following valid storageSubTypes standard gp2 io1
5920	// Refer VolumeType for more information regarding above EBS storage options.
5921	StorageSubTypeName *string `type:"string"`
5922
5923	// List of limits that are applicable for given storage type.
5924	StorageTypeLimits []*StorageTypeLimit `type:"list"`
5925
5926	// Type of the storage. List of available storage options: instance Inbuilt
5927	// storage available for the given Instance ebs Elastic block storage that would
5928	// be attached to the given Instance
5929	StorageTypeName *string `type:"string"`
5930}
5931
5932// String returns the string representation
5933func (s StorageType) String() string {
5934	return awsutil.Prettify(s)
5935}
5936
5937// GoString returns the string representation
5938func (s StorageType) GoString() string {
5939	return s.String()
5940}
5941
5942// SetStorageSubTypeName sets the StorageSubTypeName field's value.
5943func (s *StorageType) SetStorageSubTypeName(v string) *StorageType {
5944	s.StorageSubTypeName = &v
5945	return s
5946}
5947
5948// SetStorageTypeLimits sets the StorageTypeLimits field's value.
5949func (s *StorageType) SetStorageTypeLimits(v []*StorageTypeLimit) *StorageType {
5950	s.StorageTypeLimits = v
5951	return s
5952}
5953
5954// SetStorageTypeName sets the StorageTypeName field's value.
5955func (s *StorageType) SetStorageTypeName(v string) *StorageType {
5956	s.StorageTypeName = &v
5957	return s
5958}
5959
5960// Limits that are applicable for given storage type.
5961type StorageTypeLimit struct {
5962	_ struct{} `type:"structure"`
5963
5964	// Name of storage limits that are applicable for given storage type. If StorageType
5965	// is ebs, following storage options are applicable MinimumVolumeSize Minimum
5966	// amount of volume size that is applicable for given storage type.It can be
5967	// empty if it is not applicable. MaximumVolumeSize Maximum amount of volume
5968	// size that is applicable for given storage type.It can be empty if it is not
5969	// applicable. MaximumIops Maximum amount of Iops that is applicable for given
5970	// storage type.It can be empty if it is not applicable. MinimumIops Minimum
5971	// amount of Iops that is applicable for given storage type.It can be empty
5972	// if it is not applicable.
5973	LimitName *string `type:"string"`
5974
5975	// Values for the StorageTypeLimit$LimitName .
5976	LimitValues []*string `type:"list"`
5977}
5978
5979// String returns the string representation
5980func (s StorageTypeLimit) String() string {
5981	return awsutil.Prettify(s)
5982}
5983
5984// GoString returns the string representation
5985func (s StorageTypeLimit) GoString() string {
5986	return s.String()
5987}
5988
5989// SetLimitName sets the LimitName field's value.
5990func (s *StorageTypeLimit) SetLimitName(v string) *StorageTypeLimit {
5991	s.LimitName = &v
5992	return s
5993}
5994
5995// SetLimitValues sets the LimitValues field's value.
5996func (s *StorageTypeLimit) SetLimitValues(v []*string) *StorageTypeLimit {
5997	s.LimitValues = v
5998	return s
5999}
6000
6001// Specifies a key value pair for a resource tag.
6002type Tag struct {
6003	_ struct{} `type:"structure"`
6004
6005	// Specifies the TagKey, the name of the tag. Tag keys must be unique for the
6006	// Elasticsearch domain to which they are attached.
6007	//
6008	// Key is a required field
6009	Key *string `min:"1" type:"string" required:"true"`
6010
6011	// Specifies the TagValue, the value assigned to the corresponding tag key.
6012	// Tag values can be null and do not have to be unique in a tag set. For example,
6013	// you can have a key value pair in a tag set of project : Trinity and cost-center
6014	// : Trinity
6015	//
6016	// Value is a required field
6017	Value *string `type:"string" required:"true"`
6018}
6019
6020// String returns the string representation
6021func (s Tag) String() string {
6022	return awsutil.Prettify(s)
6023}
6024
6025// GoString returns the string representation
6026func (s Tag) GoString() string {
6027	return s.String()
6028}
6029
6030// Validate inspects the fields of the type to determine if they are valid.
6031func (s *Tag) Validate() error {
6032	invalidParams := request.ErrInvalidParams{Context: "Tag"}
6033	if s.Key == nil {
6034		invalidParams.Add(request.NewErrParamRequired("Key"))
6035	}
6036	if s.Key != nil && len(*s.Key) < 1 {
6037		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
6038	}
6039	if s.Value == nil {
6040		invalidParams.Add(request.NewErrParamRequired("Value"))
6041	}
6042
6043	if invalidParams.Len() > 0 {
6044		return invalidParams
6045	}
6046	return nil
6047}
6048
6049// SetKey sets the Key field's value.
6050func (s *Tag) SetKey(v string) *Tag {
6051	s.Key = &v
6052	return s
6053}
6054
6055// SetValue sets the Value field's value.
6056func (s *Tag) SetValue(v string) *Tag {
6057	s.Value = &v
6058	return s
6059}
6060
6061// Container for the parameters to the UpdateElasticsearchDomain operation.
6062// Specifies the type and number of instances in the domain cluster.
6063type UpdateElasticsearchDomainConfigInput struct {
6064	_ struct{} `type:"structure"`
6065
6066	// IAM access policy as a JSON-formatted string.
6067	AccessPolicies *string `type:"string"`
6068
6069	// Modifies the advanced option to allow references to indices in an HTTP request
6070	// body. Must be false when configuring access to individual sub-resources.
6071	// By default, the value is true. See Configuration Advanced Options (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options)
6072	// for more information.
6073	AdvancedOptions map[string]*string `type:"map"`
6074
6075	// Options to specify the Cognito user and identity pools for Kibana authentication.
6076	// For more information, see Amazon Cognito Authentication for Kibana (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html).
6077	CognitoOptions *CognitoOptions `type:"structure"`
6078
6079	// Options to specify configuration that will be applied to the domain endpoint.
6080	DomainEndpointOptions *DomainEndpointOptions `type:"structure"`
6081
6082	// The name of the Elasticsearch domain that you are updating.
6083	//
6084	// DomainName is a required field
6085	DomainName *string `location:"uri" locationName:"DomainName" min:"3" type:"string" required:"true"`
6086
6087	// Specify the type and size of the EBS volume that you want to use.
6088	EBSOptions *EBSOptions `type:"structure"`
6089
6090	// The type and number of instances to instantiate for the domain cluster.
6091	ElasticsearchClusterConfig *ElasticsearchClusterConfig `type:"structure"`
6092
6093	// Map of LogType and LogPublishingOption, each containing options to publish
6094	// a given type of Elasticsearch log.
6095	LogPublishingOptions map[string]*LogPublishingOption `type:"map"`
6096
6097	// Option to set the time, in UTC format, for the daily automated snapshot.
6098	// Default value is 0 hours.
6099	SnapshotOptions *SnapshotOptions `type:"structure"`
6100
6101	// Options to specify the subnets and security groups for VPC endpoint. For
6102	// more information, see Creating a VPC (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-creating-vpc)
6103	// in VPC Endpoints for Amazon Elasticsearch Service Domains
6104	VPCOptions *VPCOptions `type:"structure"`
6105}
6106
6107// String returns the string representation
6108func (s UpdateElasticsearchDomainConfigInput) String() string {
6109	return awsutil.Prettify(s)
6110}
6111
6112// GoString returns the string representation
6113func (s UpdateElasticsearchDomainConfigInput) GoString() string {
6114	return s.String()
6115}
6116
6117// Validate inspects the fields of the type to determine if they are valid.
6118func (s *UpdateElasticsearchDomainConfigInput) Validate() error {
6119	invalidParams := request.ErrInvalidParams{Context: "UpdateElasticsearchDomainConfigInput"}
6120	if s.DomainName == nil {
6121		invalidParams.Add(request.NewErrParamRequired("DomainName"))
6122	}
6123	if s.DomainName != nil && len(*s.DomainName) < 3 {
6124		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
6125	}
6126	if s.CognitoOptions != nil {
6127		if err := s.CognitoOptions.Validate(); err != nil {
6128			invalidParams.AddNested("CognitoOptions", err.(request.ErrInvalidParams))
6129		}
6130	}
6131
6132	if invalidParams.Len() > 0 {
6133		return invalidParams
6134	}
6135	return nil
6136}
6137
6138// SetAccessPolicies sets the AccessPolicies field's value.
6139func (s *UpdateElasticsearchDomainConfigInput) SetAccessPolicies(v string) *UpdateElasticsearchDomainConfigInput {
6140	s.AccessPolicies = &v
6141	return s
6142}
6143
6144// SetAdvancedOptions sets the AdvancedOptions field's value.
6145func (s *UpdateElasticsearchDomainConfigInput) SetAdvancedOptions(v map[string]*string) *UpdateElasticsearchDomainConfigInput {
6146	s.AdvancedOptions = v
6147	return s
6148}
6149
6150// SetCognitoOptions sets the CognitoOptions field's value.
6151func (s *UpdateElasticsearchDomainConfigInput) SetCognitoOptions(v *CognitoOptions) *UpdateElasticsearchDomainConfigInput {
6152	s.CognitoOptions = v
6153	return s
6154}
6155
6156// SetDomainEndpointOptions sets the DomainEndpointOptions field's value.
6157func (s *UpdateElasticsearchDomainConfigInput) SetDomainEndpointOptions(v *DomainEndpointOptions) *UpdateElasticsearchDomainConfigInput {
6158	s.DomainEndpointOptions = v
6159	return s
6160}
6161
6162// SetDomainName sets the DomainName field's value.
6163func (s *UpdateElasticsearchDomainConfigInput) SetDomainName(v string) *UpdateElasticsearchDomainConfigInput {
6164	s.DomainName = &v
6165	return s
6166}
6167
6168// SetEBSOptions sets the EBSOptions field's value.
6169func (s *UpdateElasticsearchDomainConfigInput) SetEBSOptions(v *EBSOptions) *UpdateElasticsearchDomainConfigInput {
6170	s.EBSOptions = v
6171	return s
6172}
6173
6174// SetElasticsearchClusterConfig sets the ElasticsearchClusterConfig field's value.
6175func (s *UpdateElasticsearchDomainConfigInput) SetElasticsearchClusterConfig(v *ElasticsearchClusterConfig) *UpdateElasticsearchDomainConfigInput {
6176	s.ElasticsearchClusterConfig = v
6177	return s
6178}
6179
6180// SetLogPublishingOptions sets the LogPublishingOptions field's value.
6181func (s *UpdateElasticsearchDomainConfigInput) SetLogPublishingOptions(v map[string]*LogPublishingOption) *UpdateElasticsearchDomainConfigInput {
6182	s.LogPublishingOptions = v
6183	return s
6184}
6185
6186// SetSnapshotOptions sets the SnapshotOptions field's value.
6187func (s *UpdateElasticsearchDomainConfigInput) SetSnapshotOptions(v *SnapshotOptions) *UpdateElasticsearchDomainConfigInput {
6188	s.SnapshotOptions = v
6189	return s
6190}
6191
6192// SetVPCOptions sets the VPCOptions field's value.
6193func (s *UpdateElasticsearchDomainConfigInput) SetVPCOptions(v *VPCOptions) *UpdateElasticsearchDomainConfigInput {
6194	s.VPCOptions = v
6195	return s
6196}
6197
6198// The result of an UpdateElasticsearchDomain request. Contains the status of
6199// the Elasticsearch domain being updated.
6200type UpdateElasticsearchDomainConfigOutput struct {
6201	_ struct{} `type:"structure"`
6202
6203	// The status of the updated Elasticsearch domain.
6204	//
6205	// DomainConfig is a required field
6206	DomainConfig *ElasticsearchDomainConfig `type:"structure" required:"true"`
6207}
6208
6209// String returns the string representation
6210func (s UpdateElasticsearchDomainConfigOutput) String() string {
6211	return awsutil.Prettify(s)
6212}
6213
6214// GoString returns the string representation
6215func (s UpdateElasticsearchDomainConfigOutput) GoString() string {
6216	return s.String()
6217}
6218
6219// SetDomainConfig sets the DomainConfig field's value.
6220func (s *UpdateElasticsearchDomainConfigOutput) SetDomainConfig(v *ElasticsearchDomainConfig) *UpdateElasticsearchDomainConfigOutput {
6221	s.DomainConfig = v
6222	return s
6223}
6224
6225// Container for request parameters to UpgradeElasticsearchDomain operation.
6226type UpgradeElasticsearchDomainInput struct {
6227	_ struct{} `type:"structure"`
6228
6229	// The name of an Elasticsearch domain. Domain names are unique across the domains
6230	// owned by an account within an AWS region. Domain names start with a letter
6231	// or number and can contain the following characters: a-z (lowercase), 0-9,
6232	// and - (hyphen).
6233	//
6234	// DomainName is a required field
6235	DomainName *string `min:"3" type:"string" required:"true"`
6236
6237	// This flag, when set to True, indicates that an Upgrade Eligibility Check
6238	// needs to be performed. This will not actually perform the Upgrade.
6239	PerformCheckOnly *bool `type:"boolean"`
6240
6241	// The version of Elasticsearch that you intend to upgrade the domain to.
6242	//
6243	// TargetVersion is a required field
6244	TargetVersion *string `type:"string" required:"true"`
6245}
6246
6247// String returns the string representation
6248func (s UpgradeElasticsearchDomainInput) String() string {
6249	return awsutil.Prettify(s)
6250}
6251
6252// GoString returns the string representation
6253func (s UpgradeElasticsearchDomainInput) GoString() string {
6254	return s.String()
6255}
6256
6257// Validate inspects the fields of the type to determine if they are valid.
6258func (s *UpgradeElasticsearchDomainInput) Validate() error {
6259	invalidParams := request.ErrInvalidParams{Context: "UpgradeElasticsearchDomainInput"}
6260	if s.DomainName == nil {
6261		invalidParams.Add(request.NewErrParamRequired("DomainName"))
6262	}
6263	if s.DomainName != nil && len(*s.DomainName) < 3 {
6264		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
6265	}
6266	if s.TargetVersion == nil {
6267		invalidParams.Add(request.NewErrParamRequired("TargetVersion"))
6268	}
6269
6270	if invalidParams.Len() > 0 {
6271		return invalidParams
6272	}
6273	return nil
6274}
6275
6276// SetDomainName sets the DomainName field's value.
6277func (s *UpgradeElasticsearchDomainInput) SetDomainName(v string) *UpgradeElasticsearchDomainInput {
6278	s.DomainName = &v
6279	return s
6280}
6281
6282// SetPerformCheckOnly sets the PerformCheckOnly field's value.
6283func (s *UpgradeElasticsearchDomainInput) SetPerformCheckOnly(v bool) *UpgradeElasticsearchDomainInput {
6284	s.PerformCheckOnly = &v
6285	return s
6286}
6287
6288// SetTargetVersion sets the TargetVersion field's value.
6289func (s *UpgradeElasticsearchDomainInput) SetTargetVersion(v string) *UpgradeElasticsearchDomainInput {
6290	s.TargetVersion = &v
6291	return s
6292}
6293
6294// Container for response returned by UpgradeElasticsearchDomain operation.
6295type UpgradeElasticsearchDomainOutput struct {
6296	_ struct{} `type:"structure"`
6297
6298	// The name of an Elasticsearch domain. Domain names are unique across the domains
6299	// owned by an account within an AWS region. Domain names start with a letter
6300	// or number and can contain the following characters: a-z (lowercase), 0-9,
6301	// and - (hyphen).
6302	DomainName *string `min:"3" type:"string"`
6303
6304	// This flag, when set to True, indicates that an Upgrade Eligibility Check
6305	// needs to be performed. This will not actually perform the Upgrade.
6306	PerformCheckOnly *bool `type:"boolean"`
6307
6308	// The version of Elasticsearch that you intend to upgrade the domain to.
6309	TargetVersion *string `type:"string"`
6310}
6311
6312// String returns the string representation
6313func (s UpgradeElasticsearchDomainOutput) String() string {
6314	return awsutil.Prettify(s)
6315}
6316
6317// GoString returns the string representation
6318func (s UpgradeElasticsearchDomainOutput) GoString() string {
6319	return s.String()
6320}
6321
6322// SetDomainName sets the DomainName field's value.
6323func (s *UpgradeElasticsearchDomainOutput) SetDomainName(v string) *UpgradeElasticsearchDomainOutput {
6324	s.DomainName = &v
6325	return s
6326}
6327
6328// SetPerformCheckOnly sets the PerformCheckOnly field's value.
6329func (s *UpgradeElasticsearchDomainOutput) SetPerformCheckOnly(v bool) *UpgradeElasticsearchDomainOutput {
6330	s.PerformCheckOnly = &v
6331	return s
6332}
6333
6334// SetTargetVersion sets the TargetVersion field's value.
6335func (s *UpgradeElasticsearchDomainOutput) SetTargetVersion(v string) *UpgradeElasticsearchDomainOutput {
6336	s.TargetVersion = &v
6337	return s
6338}
6339
6340// History of the last 10 Upgrades and Upgrade Eligibility Checks.
6341type UpgradeHistory struct {
6342	_ struct{} `type:"structure"`
6343
6344	// UTC Timestamp at which the Upgrade API call was made in "yyyy-MM-ddTHH:mm:ssZ"
6345	// format.
6346	StartTimestamp *time.Time `type:"timestamp"`
6347
6348	// A list of UpgradeStepItem s representing information about each step performed
6349	// as pard of a specific Upgrade or Upgrade Eligibility Check.
6350	StepsList []*UpgradeStepItem `type:"list"`
6351
6352	// A string that describes the update briefly
6353	UpgradeName *string `type:"string"`
6354
6355	// The overall status of the update. The status can take one of the following
6356	// values:
6357	//    * In Progress
6358	//
6359	//    * Succeeded
6360	//
6361	//    * Succeeded with Issues
6362	//
6363	//    * Failed
6364	UpgradeStatus *string `type:"string" enum:"UpgradeStatus"`
6365}
6366
6367// String returns the string representation
6368func (s UpgradeHistory) String() string {
6369	return awsutil.Prettify(s)
6370}
6371
6372// GoString returns the string representation
6373func (s UpgradeHistory) GoString() string {
6374	return s.String()
6375}
6376
6377// SetStartTimestamp sets the StartTimestamp field's value.
6378func (s *UpgradeHistory) SetStartTimestamp(v time.Time) *UpgradeHistory {
6379	s.StartTimestamp = &v
6380	return s
6381}
6382
6383// SetStepsList sets the StepsList field's value.
6384func (s *UpgradeHistory) SetStepsList(v []*UpgradeStepItem) *UpgradeHistory {
6385	s.StepsList = v
6386	return s
6387}
6388
6389// SetUpgradeName sets the UpgradeName field's value.
6390func (s *UpgradeHistory) SetUpgradeName(v string) *UpgradeHistory {
6391	s.UpgradeName = &v
6392	return s
6393}
6394
6395// SetUpgradeStatus sets the UpgradeStatus field's value.
6396func (s *UpgradeHistory) SetUpgradeStatus(v string) *UpgradeHistory {
6397	s.UpgradeStatus = &v
6398	return s
6399}
6400
6401// Represents a single step of the Upgrade or Upgrade Eligibility Check workflow.
6402type UpgradeStepItem struct {
6403	_ struct{} `type:"structure"`
6404
6405	// A list of strings containing detailed information about the errors encountered
6406	// in a particular step.
6407	Issues []*string `type:"list"`
6408
6409	// The Floating point value representing progress percentage of a particular
6410	// step.
6411	ProgressPercent *float64 `type:"double"`
6412
6413	// Represents one of 3 steps that an Upgrade or Upgrade Eligibility Check does
6414	// through:
6415	//    * PreUpgradeCheck
6416	//
6417	//    * Snapshot
6418	//
6419	//    * Upgrade
6420	UpgradeStep *string `type:"string" enum:"UpgradeStep"`
6421
6422	// The status of a particular step during an upgrade. The status can take one
6423	// of the following values:
6424	//    * In Progress
6425	//
6426	//    * Succeeded
6427	//
6428	//    * Succeeded with Issues
6429	//
6430	//    * Failed
6431	UpgradeStepStatus *string `type:"string" enum:"UpgradeStatus"`
6432}
6433
6434// String returns the string representation
6435func (s UpgradeStepItem) String() string {
6436	return awsutil.Prettify(s)
6437}
6438
6439// GoString returns the string representation
6440func (s UpgradeStepItem) GoString() string {
6441	return s.String()
6442}
6443
6444// SetIssues sets the Issues field's value.
6445func (s *UpgradeStepItem) SetIssues(v []*string) *UpgradeStepItem {
6446	s.Issues = v
6447	return s
6448}
6449
6450// SetProgressPercent sets the ProgressPercent field's value.
6451func (s *UpgradeStepItem) SetProgressPercent(v float64) *UpgradeStepItem {
6452	s.ProgressPercent = &v
6453	return s
6454}
6455
6456// SetUpgradeStep sets the UpgradeStep field's value.
6457func (s *UpgradeStepItem) SetUpgradeStep(v string) *UpgradeStepItem {
6458	s.UpgradeStep = &v
6459	return s
6460}
6461
6462// SetUpgradeStepStatus sets the UpgradeStepStatus field's value.
6463func (s *UpgradeStepItem) SetUpgradeStepStatus(v string) *UpgradeStepItem {
6464	s.UpgradeStepStatus = &v
6465	return s
6466}
6467
6468// Options to specify the subnets and security groups for VPC endpoint. For
6469// more information, see VPC Endpoints for Amazon Elasticsearch Service Domains
6470// (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html).
6471type VPCDerivedInfo struct {
6472	_ struct{} `type:"structure"`
6473
6474	// The availability zones for the Elasticsearch domain. Exists only if the domain
6475	// was created with VPCOptions.
6476	AvailabilityZones []*string `type:"list"`
6477
6478	// Specifies the security groups for VPC endpoint.
6479	SecurityGroupIds []*string `type:"list"`
6480
6481	// Specifies the subnets for VPC endpoint.
6482	SubnetIds []*string `type:"list"`
6483
6484	// The VPC Id for the Elasticsearch domain. Exists only if the domain was created
6485	// with VPCOptions.
6486	VPCId *string `type:"string"`
6487}
6488
6489// String returns the string representation
6490func (s VPCDerivedInfo) String() string {
6491	return awsutil.Prettify(s)
6492}
6493
6494// GoString returns the string representation
6495func (s VPCDerivedInfo) GoString() string {
6496	return s.String()
6497}
6498
6499// SetAvailabilityZones sets the AvailabilityZones field's value.
6500func (s *VPCDerivedInfo) SetAvailabilityZones(v []*string) *VPCDerivedInfo {
6501	s.AvailabilityZones = v
6502	return s
6503}
6504
6505// SetSecurityGroupIds sets the SecurityGroupIds field's value.
6506func (s *VPCDerivedInfo) SetSecurityGroupIds(v []*string) *VPCDerivedInfo {
6507	s.SecurityGroupIds = v
6508	return s
6509}
6510
6511// SetSubnetIds sets the SubnetIds field's value.
6512func (s *VPCDerivedInfo) SetSubnetIds(v []*string) *VPCDerivedInfo {
6513	s.SubnetIds = v
6514	return s
6515}
6516
6517// SetVPCId sets the VPCId field's value.
6518func (s *VPCDerivedInfo) SetVPCId(v string) *VPCDerivedInfo {
6519	s.VPCId = &v
6520	return s
6521}
6522
6523// Status of the VPC options for the specified Elasticsearch domain.
6524type VPCDerivedInfoStatus struct {
6525	_ struct{} `type:"structure"`
6526
6527	// Specifies the VPC options for the specified Elasticsearch domain.
6528	//
6529	// Options is a required field
6530	Options *VPCDerivedInfo `type:"structure" required:"true"`
6531
6532	// Specifies the status of the VPC options for the specified Elasticsearch domain.
6533	//
6534	// Status is a required field
6535	Status *OptionStatus `type:"structure" required:"true"`
6536}
6537
6538// String returns the string representation
6539func (s VPCDerivedInfoStatus) String() string {
6540	return awsutil.Prettify(s)
6541}
6542
6543// GoString returns the string representation
6544func (s VPCDerivedInfoStatus) GoString() string {
6545	return s.String()
6546}
6547
6548// SetOptions sets the Options field's value.
6549func (s *VPCDerivedInfoStatus) SetOptions(v *VPCDerivedInfo) *VPCDerivedInfoStatus {
6550	s.Options = v
6551	return s
6552}
6553
6554// SetStatus sets the Status field's value.
6555func (s *VPCDerivedInfoStatus) SetStatus(v *OptionStatus) *VPCDerivedInfoStatus {
6556	s.Status = v
6557	return s
6558}
6559
6560// Options to specify the subnets and security groups for VPC endpoint. For
6561// more information, see VPC Endpoints for Amazon Elasticsearch Service Domains
6562// (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html).
6563type VPCOptions struct {
6564	_ struct{} `type:"structure"`
6565
6566	// Specifies the security groups for VPC endpoint.
6567	SecurityGroupIds []*string `type:"list"`
6568
6569	// Specifies the subnets for VPC endpoint.
6570	SubnetIds []*string `type:"list"`
6571}
6572
6573// String returns the string representation
6574func (s VPCOptions) String() string {
6575	return awsutil.Prettify(s)
6576}
6577
6578// GoString returns the string representation
6579func (s VPCOptions) GoString() string {
6580	return s.String()
6581}
6582
6583// SetSecurityGroupIds sets the SecurityGroupIds field's value.
6584func (s *VPCOptions) SetSecurityGroupIds(v []*string) *VPCOptions {
6585	s.SecurityGroupIds = v
6586	return s
6587}
6588
6589// SetSubnetIds sets the SubnetIds field's value.
6590func (s *VPCOptions) SetSubnetIds(v []*string) *VPCOptions {
6591	s.SubnetIds = v
6592	return s
6593}
6594
6595// Specifies the zone awareness configuration for the domain cluster, such as
6596// the number of availability zones.
6597type ZoneAwarenessConfig struct {
6598	_ struct{} `type:"structure"`
6599
6600	// An integer value to indicate the number of availability zones for a domain
6601	// when zone awareness is enabled. This should be equal to number of subnets
6602	// if VPC endpoints is enabled
6603	AvailabilityZoneCount *int64 `type:"integer"`
6604}
6605
6606// String returns the string representation
6607func (s ZoneAwarenessConfig) String() string {
6608	return awsutil.Prettify(s)
6609}
6610
6611// GoString returns the string representation
6612func (s ZoneAwarenessConfig) GoString() string {
6613	return s.String()
6614}
6615
6616// SetAvailabilityZoneCount sets the AvailabilityZoneCount field's value.
6617func (s *ZoneAwarenessConfig) SetAvailabilityZoneCount(v int64) *ZoneAwarenessConfig {
6618	s.AvailabilityZoneCount = &v
6619	return s
6620}
6621
6622const (
6623	// DeploymentStatusPendingUpdate is a DeploymentStatus enum value
6624	DeploymentStatusPendingUpdate = "PENDING_UPDATE"
6625
6626	// DeploymentStatusInProgress is a DeploymentStatus enum value
6627	DeploymentStatusInProgress = "IN_PROGRESS"
6628
6629	// DeploymentStatusCompleted is a DeploymentStatus enum value
6630	DeploymentStatusCompleted = "COMPLETED"
6631
6632	// DeploymentStatusNotEligible is a DeploymentStatus enum value
6633	DeploymentStatusNotEligible = "NOT_ELIGIBLE"
6634
6635	// DeploymentStatusEligible is a DeploymentStatus enum value
6636	DeploymentStatusEligible = "ELIGIBLE"
6637)
6638
6639const (
6640	// ESPartitionInstanceTypeM3MediumElasticsearch is a ESPartitionInstanceType enum value
6641	ESPartitionInstanceTypeM3MediumElasticsearch = "m3.medium.elasticsearch"
6642
6643	// ESPartitionInstanceTypeM3LargeElasticsearch is a ESPartitionInstanceType enum value
6644	ESPartitionInstanceTypeM3LargeElasticsearch = "m3.large.elasticsearch"
6645
6646	// ESPartitionInstanceTypeM3XlargeElasticsearch is a ESPartitionInstanceType enum value
6647	ESPartitionInstanceTypeM3XlargeElasticsearch = "m3.xlarge.elasticsearch"
6648
6649	// ESPartitionInstanceTypeM32xlargeElasticsearch is a ESPartitionInstanceType enum value
6650	ESPartitionInstanceTypeM32xlargeElasticsearch = "m3.2xlarge.elasticsearch"
6651
6652	// ESPartitionInstanceTypeM4LargeElasticsearch is a ESPartitionInstanceType enum value
6653	ESPartitionInstanceTypeM4LargeElasticsearch = "m4.large.elasticsearch"
6654
6655	// ESPartitionInstanceTypeM4XlargeElasticsearch is a ESPartitionInstanceType enum value
6656	ESPartitionInstanceTypeM4XlargeElasticsearch = "m4.xlarge.elasticsearch"
6657
6658	// ESPartitionInstanceTypeM42xlargeElasticsearch is a ESPartitionInstanceType enum value
6659	ESPartitionInstanceTypeM42xlargeElasticsearch = "m4.2xlarge.elasticsearch"
6660
6661	// ESPartitionInstanceTypeM44xlargeElasticsearch is a ESPartitionInstanceType enum value
6662	ESPartitionInstanceTypeM44xlargeElasticsearch = "m4.4xlarge.elasticsearch"
6663
6664	// ESPartitionInstanceTypeM410xlargeElasticsearch is a ESPartitionInstanceType enum value
6665	ESPartitionInstanceTypeM410xlargeElasticsearch = "m4.10xlarge.elasticsearch"
6666
6667	// ESPartitionInstanceTypeM5LargeElasticsearch is a ESPartitionInstanceType enum value
6668	ESPartitionInstanceTypeM5LargeElasticsearch = "m5.large.elasticsearch"
6669
6670	// ESPartitionInstanceTypeM5XlargeElasticsearch is a ESPartitionInstanceType enum value
6671	ESPartitionInstanceTypeM5XlargeElasticsearch = "m5.xlarge.elasticsearch"
6672
6673	// ESPartitionInstanceTypeM52xlargeElasticsearch is a ESPartitionInstanceType enum value
6674	ESPartitionInstanceTypeM52xlargeElasticsearch = "m5.2xlarge.elasticsearch"
6675
6676	// ESPartitionInstanceTypeM54xlargeElasticsearch is a ESPartitionInstanceType enum value
6677	ESPartitionInstanceTypeM54xlargeElasticsearch = "m5.4xlarge.elasticsearch"
6678
6679	// ESPartitionInstanceTypeM512xlargeElasticsearch is a ESPartitionInstanceType enum value
6680	ESPartitionInstanceTypeM512xlargeElasticsearch = "m5.12xlarge.elasticsearch"
6681
6682	// ESPartitionInstanceTypeR5LargeElasticsearch is a ESPartitionInstanceType enum value
6683	ESPartitionInstanceTypeR5LargeElasticsearch = "r5.large.elasticsearch"
6684
6685	// ESPartitionInstanceTypeR5XlargeElasticsearch is a ESPartitionInstanceType enum value
6686	ESPartitionInstanceTypeR5XlargeElasticsearch = "r5.xlarge.elasticsearch"
6687
6688	// ESPartitionInstanceTypeR52xlargeElasticsearch is a ESPartitionInstanceType enum value
6689	ESPartitionInstanceTypeR52xlargeElasticsearch = "r5.2xlarge.elasticsearch"
6690
6691	// ESPartitionInstanceTypeR54xlargeElasticsearch is a ESPartitionInstanceType enum value
6692	ESPartitionInstanceTypeR54xlargeElasticsearch = "r5.4xlarge.elasticsearch"
6693
6694	// ESPartitionInstanceTypeR512xlargeElasticsearch is a ESPartitionInstanceType enum value
6695	ESPartitionInstanceTypeR512xlargeElasticsearch = "r5.12xlarge.elasticsearch"
6696
6697	// ESPartitionInstanceTypeC5LargeElasticsearch is a ESPartitionInstanceType enum value
6698	ESPartitionInstanceTypeC5LargeElasticsearch = "c5.large.elasticsearch"
6699
6700	// ESPartitionInstanceTypeC5XlargeElasticsearch is a ESPartitionInstanceType enum value
6701	ESPartitionInstanceTypeC5XlargeElasticsearch = "c5.xlarge.elasticsearch"
6702
6703	// ESPartitionInstanceTypeC52xlargeElasticsearch is a ESPartitionInstanceType enum value
6704	ESPartitionInstanceTypeC52xlargeElasticsearch = "c5.2xlarge.elasticsearch"
6705
6706	// ESPartitionInstanceTypeC54xlargeElasticsearch is a ESPartitionInstanceType enum value
6707	ESPartitionInstanceTypeC54xlargeElasticsearch = "c5.4xlarge.elasticsearch"
6708
6709	// ESPartitionInstanceTypeC59xlargeElasticsearch is a ESPartitionInstanceType enum value
6710	ESPartitionInstanceTypeC59xlargeElasticsearch = "c5.9xlarge.elasticsearch"
6711
6712	// ESPartitionInstanceTypeC518xlargeElasticsearch is a ESPartitionInstanceType enum value
6713	ESPartitionInstanceTypeC518xlargeElasticsearch = "c5.18xlarge.elasticsearch"
6714
6715	// ESPartitionInstanceTypeT2MicroElasticsearch is a ESPartitionInstanceType enum value
6716	ESPartitionInstanceTypeT2MicroElasticsearch = "t2.micro.elasticsearch"
6717
6718	// ESPartitionInstanceTypeT2SmallElasticsearch is a ESPartitionInstanceType enum value
6719	ESPartitionInstanceTypeT2SmallElasticsearch = "t2.small.elasticsearch"
6720
6721	// ESPartitionInstanceTypeT2MediumElasticsearch is a ESPartitionInstanceType enum value
6722	ESPartitionInstanceTypeT2MediumElasticsearch = "t2.medium.elasticsearch"
6723
6724	// ESPartitionInstanceTypeR3LargeElasticsearch is a ESPartitionInstanceType enum value
6725	ESPartitionInstanceTypeR3LargeElasticsearch = "r3.large.elasticsearch"
6726
6727	// ESPartitionInstanceTypeR3XlargeElasticsearch is a ESPartitionInstanceType enum value
6728	ESPartitionInstanceTypeR3XlargeElasticsearch = "r3.xlarge.elasticsearch"
6729
6730	// ESPartitionInstanceTypeR32xlargeElasticsearch is a ESPartitionInstanceType enum value
6731	ESPartitionInstanceTypeR32xlargeElasticsearch = "r3.2xlarge.elasticsearch"
6732
6733	// ESPartitionInstanceTypeR34xlargeElasticsearch is a ESPartitionInstanceType enum value
6734	ESPartitionInstanceTypeR34xlargeElasticsearch = "r3.4xlarge.elasticsearch"
6735
6736	// ESPartitionInstanceTypeR38xlargeElasticsearch is a ESPartitionInstanceType enum value
6737	ESPartitionInstanceTypeR38xlargeElasticsearch = "r3.8xlarge.elasticsearch"
6738
6739	// ESPartitionInstanceTypeI2XlargeElasticsearch is a ESPartitionInstanceType enum value
6740	ESPartitionInstanceTypeI2XlargeElasticsearch = "i2.xlarge.elasticsearch"
6741
6742	// ESPartitionInstanceTypeI22xlargeElasticsearch is a ESPartitionInstanceType enum value
6743	ESPartitionInstanceTypeI22xlargeElasticsearch = "i2.2xlarge.elasticsearch"
6744
6745	// ESPartitionInstanceTypeD2XlargeElasticsearch is a ESPartitionInstanceType enum value
6746	ESPartitionInstanceTypeD2XlargeElasticsearch = "d2.xlarge.elasticsearch"
6747
6748	// ESPartitionInstanceTypeD22xlargeElasticsearch is a ESPartitionInstanceType enum value
6749	ESPartitionInstanceTypeD22xlargeElasticsearch = "d2.2xlarge.elasticsearch"
6750
6751	// ESPartitionInstanceTypeD24xlargeElasticsearch is a ESPartitionInstanceType enum value
6752	ESPartitionInstanceTypeD24xlargeElasticsearch = "d2.4xlarge.elasticsearch"
6753
6754	// ESPartitionInstanceTypeD28xlargeElasticsearch is a ESPartitionInstanceType enum value
6755	ESPartitionInstanceTypeD28xlargeElasticsearch = "d2.8xlarge.elasticsearch"
6756
6757	// ESPartitionInstanceTypeC4LargeElasticsearch is a ESPartitionInstanceType enum value
6758	ESPartitionInstanceTypeC4LargeElasticsearch = "c4.large.elasticsearch"
6759
6760	// ESPartitionInstanceTypeC4XlargeElasticsearch is a ESPartitionInstanceType enum value
6761	ESPartitionInstanceTypeC4XlargeElasticsearch = "c4.xlarge.elasticsearch"
6762
6763	// ESPartitionInstanceTypeC42xlargeElasticsearch is a ESPartitionInstanceType enum value
6764	ESPartitionInstanceTypeC42xlargeElasticsearch = "c4.2xlarge.elasticsearch"
6765
6766	// ESPartitionInstanceTypeC44xlargeElasticsearch is a ESPartitionInstanceType enum value
6767	ESPartitionInstanceTypeC44xlargeElasticsearch = "c4.4xlarge.elasticsearch"
6768
6769	// ESPartitionInstanceTypeC48xlargeElasticsearch is a ESPartitionInstanceType enum value
6770	ESPartitionInstanceTypeC48xlargeElasticsearch = "c4.8xlarge.elasticsearch"
6771
6772	// ESPartitionInstanceTypeR4LargeElasticsearch is a ESPartitionInstanceType enum value
6773	ESPartitionInstanceTypeR4LargeElasticsearch = "r4.large.elasticsearch"
6774
6775	// ESPartitionInstanceTypeR4XlargeElasticsearch is a ESPartitionInstanceType enum value
6776	ESPartitionInstanceTypeR4XlargeElasticsearch = "r4.xlarge.elasticsearch"
6777
6778	// ESPartitionInstanceTypeR42xlargeElasticsearch is a ESPartitionInstanceType enum value
6779	ESPartitionInstanceTypeR42xlargeElasticsearch = "r4.2xlarge.elasticsearch"
6780
6781	// ESPartitionInstanceTypeR44xlargeElasticsearch is a ESPartitionInstanceType enum value
6782	ESPartitionInstanceTypeR44xlargeElasticsearch = "r4.4xlarge.elasticsearch"
6783
6784	// ESPartitionInstanceTypeR48xlargeElasticsearch is a ESPartitionInstanceType enum value
6785	ESPartitionInstanceTypeR48xlargeElasticsearch = "r4.8xlarge.elasticsearch"
6786
6787	// ESPartitionInstanceTypeR416xlargeElasticsearch is a ESPartitionInstanceType enum value
6788	ESPartitionInstanceTypeR416xlargeElasticsearch = "r4.16xlarge.elasticsearch"
6789
6790	// ESPartitionInstanceTypeI3LargeElasticsearch is a ESPartitionInstanceType enum value
6791	ESPartitionInstanceTypeI3LargeElasticsearch = "i3.large.elasticsearch"
6792
6793	// ESPartitionInstanceTypeI3XlargeElasticsearch is a ESPartitionInstanceType enum value
6794	ESPartitionInstanceTypeI3XlargeElasticsearch = "i3.xlarge.elasticsearch"
6795
6796	// ESPartitionInstanceTypeI32xlargeElasticsearch is a ESPartitionInstanceType enum value
6797	ESPartitionInstanceTypeI32xlargeElasticsearch = "i3.2xlarge.elasticsearch"
6798
6799	// ESPartitionInstanceTypeI34xlargeElasticsearch is a ESPartitionInstanceType enum value
6800	ESPartitionInstanceTypeI34xlargeElasticsearch = "i3.4xlarge.elasticsearch"
6801
6802	// ESPartitionInstanceTypeI38xlargeElasticsearch is a ESPartitionInstanceType enum value
6803	ESPartitionInstanceTypeI38xlargeElasticsearch = "i3.8xlarge.elasticsearch"
6804
6805	// ESPartitionInstanceTypeI316xlargeElasticsearch is a ESPartitionInstanceType enum value
6806	ESPartitionInstanceTypeI316xlargeElasticsearch = "i3.16xlarge.elasticsearch"
6807)
6808
6809// Type of Log File, it can be one of the following:
6810//    * INDEX_SLOW_LOGS: Index slow logs contain insert requests that took more
6811//    time than configured index query log threshold to execute.
6812//
6813//    * SEARCH_SLOW_LOGS: Search slow logs contain search queries that took
6814//    more time than configured search query log threshold to execute.
6815//
6816//    * ES_APPLICATION_LOGS: Elasticsearch application logs contain information
6817//    about errors and warnings raised during the operation of the service and
6818//    can be useful for troubleshooting.
6819const (
6820	// LogTypeIndexSlowLogs is a LogType enum value
6821	LogTypeIndexSlowLogs = "INDEX_SLOW_LOGS"
6822
6823	// LogTypeSearchSlowLogs is a LogType enum value
6824	LogTypeSearchSlowLogs = "SEARCH_SLOW_LOGS"
6825
6826	// LogTypeEsApplicationLogs is a LogType enum value
6827	LogTypeEsApplicationLogs = "ES_APPLICATION_LOGS"
6828)
6829
6830// The state of a requested change. One of the following:
6831//
6832//    * Processing: The request change is still in-process.
6833//
6834//    * Active: The request change is processed and deployed to the Elasticsearch
6835//    domain.
6836const (
6837	// OptionStateRequiresIndexDocuments is a OptionState enum value
6838	OptionStateRequiresIndexDocuments = "RequiresIndexDocuments"
6839
6840	// OptionStateProcessing is a OptionState enum value
6841	OptionStateProcessing = "Processing"
6842
6843	// OptionStateActive is a OptionState enum value
6844	OptionStateActive = "Active"
6845)
6846
6847const (
6848	// ReservedElasticsearchInstancePaymentOptionAllUpfront is a ReservedElasticsearchInstancePaymentOption enum value
6849	ReservedElasticsearchInstancePaymentOptionAllUpfront = "ALL_UPFRONT"
6850
6851	// ReservedElasticsearchInstancePaymentOptionPartialUpfront is a ReservedElasticsearchInstancePaymentOption enum value
6852	ReservedElasticsearchInstancePaymentOptionPartialUpfront = "PARTIAL_UPFRONT"
6853
6854	// ReservedElasticsearchInstancePaymentOptionNoUpfront is a ReservedElasticsearchInstancePaymentOption enum value
6855	ReservedElasticsearchInstancePaymentOptionNoUpfront = "NO_UPFRONT"
6856)
6857
6858const (
6859	// TLSSecurityPolicyPolicyMinTls10201907 is a TLSSecurityPolicy enum value
6860	TLSSecurityPolicyPolicyMinTls10201907 = "Policy-Min-TLS-1-0-2019-07"
6861
6862	// TLSSecurityPolicyPolicyMinTls12201907 is a TLSSecurityPolicy enum value
6863	TLSSecurityPolicyPolicyMinTls12201907 = "Policy-Min-TLS-1-2-2019-07"
6864)
6865
6866const (
6867	// UpgradeStatusInProgress is a UpgradeStatus enum value
6868	UpgradeStatusInProgress = "IN_PROGRESS"
6869
6870	// UpgradeStatusSucceeded is a UpgradeStatus enum value
6871	UpgradeStatusSucceeded = "SUCCEEDED"
6872
6873	// UpgradeStatusSucceededWithIssues is a UpgradeStatus enum value
6874	UpgradeStatusSucceededWithIssues = "SUCCEEDED_WITH_ISSUES"
6875
6876	// UpgradeStatusFailed is a UpgradeStatus enum value
6877	UpgradeStatusFailed = "FAILED"
6878)
6879
6880const (
6881	// UpgradeStepPreUpgradeCheck is a UpgradeStep enum value
6882	UpgradeStepPreUpgradeCheck = "PRE_UPGRADE_CHECK"
6883
6884	// UpgradeStepSnapshot is a UpgradeStep enum value
6885	UpgradeStepSnapshot = "SNAPSHOT"
6886
6887	// UpgradeStepUpgrade is a UpgradeStep enum value
6888	UpgradeStepUpgrade = "UPGRADE"
6889)
6890
6891// The type of EBS volume, standard, gp2, or io1. See Configuring EBS-based
6892// Storage (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs)for
6893// more information.
6894const (
6895	// VolumeTypeStandard is a VolumeType enum value
6896	VolumeTypeStandard = "standard"
6897
6898	// VolumeTypeGp2 is a VolumeType enum value
6899	VolumeTypeGp2 = "gp2"
6900
6901	// VolumeTypeIo1 is a VolumeType enum value
6902	VolumeTypeIo1 = "io1"
6903)
6904