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