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 Types:
71//   * BaseException
72//   An error occurred while processing the request.
73//
74//   * LimitExceededException
75//   An exception for trying to create more than allowed resources or sub-resources.
76//   Gives http status code of 409.
77//
78//   * ValidationException
79//   An exception for missing / invalid input fields. Gives http status code of
80//   400.
81//
82//   * 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 Types:
162//   * BaseException
163//   An error occurred while processing the request.
164//
165//   * 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//   * ResourceNotFoundException
171//   An exception for accessing or deleting a resource that does not exist. Gives
172//   http status code of 400.
173//
174//   * 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 Types:
253//   * BaseException
254//   An error occurred while processing the request.
255//
256//   * DisabledOperationException
257//   An error occured because the client wanted to access a not supported operation.
258//   Gives http status code of 409.
259//
260//   * 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//   * 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//   * LimitExceededException
270//   An exception for trying to create more than allowed resources or sub-resources.
271//   Gives http status code of 409.
272//
273//   * ResourceAlreadyExistsException
274//   An exception for creating a resource that already exists. Gives http status
275//   code of 400.
276//
277//   * 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 Types:
355//   * BaseException
356//   An error occurred while processing the request.
357//
358//   * 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//   * ResourceNotFoundException
364//   An exception for accessing or deleting a resource that does not exist. Gives
365//   http status code of 400.
366//
367//   * 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 Types:
449//   * BaseException
450//   An error occurred while processing the request.
451//
452//   * 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//   * 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 Types:
535//   * BaseException
536//   An error occurred while processing the request.
537//
538//   * 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//   * ResourceNotFoundException
544//   An exception for accessing or deleting a resource that does not exist. Gives
545//   http status code of 400.
546//
547//   * 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 Types:
626//   * BaseException
627//   An error occurred while processing the request.
628//
629//   * 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//   * ResourceNotFoundException
635//   An exception for accessing or deleting a resource that does not exist. Gives
636//   http status code of 400.
637//
638//   * 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 Types:
716//   * BaseException
717//   An error occurred while processing the request.
718//
719//   * 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//   * 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 Types:
803//   * BaseException
804//   An error occurred while processing the request.
805//
806//   * 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//   * 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//   * LimitExceededException
816//   An exception for trying to create more than allowed resources or sub-resources.
817//   Gives http status code of 409.
818//
819//   * ResourceNotFoundException
820//   An exception for accessing or deleting a resource that does not exist. Gives
821//   http status code of 400.
822//
823//   * 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 Types:
906//   * ResourceNotFoundException
907//   An exception for accessing or deleting a resource that does not exist. Gives
908//   http status code of 400.
909//
910//   * ValidationException
911//   An exception for missing / invalid input fields. Gives http status code of
912//   400.
913//
914//   * DisabledOperationException
915//   An error occured because the client wanted to access a not supported operation.
916//   Gives http status code of 409.
917//
918//   * 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 Types:
1054//   * ResourceNotFoundException
1055//   An exception for accessing or deleting a resource that does not exist. Gives
1056//   http status code of 400.
1057//
1058//   * 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//   * ValidationException
1064//   An exception for missing / invalid input fields. Gives http status code of
1065//   400.
1066//
1067//   * 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 Types:
1198//   * BaseException
1199//   An error occurred while processing the request.
1200//
1201//   * ResourceNotFoundException
1202//   An exception for accessing or deleting a resource that does not exist. Gives
1203//   http status code of 400.
1204//
1205//   * DisabledOperationException
1206//   An error occured because the client wanted to access a not supported operation.
1207//   Gives http status code of 409.
1208//
1209//   * ValidationException
1210//   An exception for missing / invalid input fields. Gives http status code of
1211//   400.
1212//
1213//   * 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 Types:
1298//   * BaseException
1299//   An error occurred while processing the request.
1300//
1301//   * ResourceNotFoundException
1302//   An exception for accessing or deleting a resource that does not exist. Gives
1303//   http status code of 400.
1304//
1305//   * DisabledOperationException
1306//   An error occured because the client wanted to access a not supported operation.
1307//   Gives http status code of 409.
1308//
1309//   * ValidationException
1310//   An exception for missing / invalid input fields. Gives http status code of
1311//   400.
1312//
1313//   * 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 Types:
1444//   * BaseException
1445//   An error occurred while processing the request.
1446//
1447//   * ResourceNotFoundException
1448//   An exception for accessing or deleting a resource that does not exist. Gives
1449//   http status code of 400.
1450//
1451//   * DisabledOperationException
1452//   An error occured because the client wanted to access a not supported operation.
1453//   Gives http status code of 409.
1454//
1455//   * ValidationException
1456//   An exception for missing / invalid input fields. Gives http status code of
1457//   400.
1458//
1459//   * 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 Types:
1538//   * BaseException
1539//   An error occurred while processing the request.
1540//
1541//   * 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 Types:
1624//   * BaseException
1625//   An error occurred while processing the request.
1626//
1627//   * 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//   * ResourceNotFoundException
1633//   An exception for accessing or deleting a resource that does not exist. Gives
1634//   http status code of 400.
1635//
1636//   * 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 Types:
1771//   * BaseException
1772//   An error occurred while processing the request.
1773//
1774//   * 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//   * ResourceNotFoundException
1780//   An exception for accessing or deleting a resource that does not exist. Gives
1781//   http status code of 400.
1782//
1783//   * 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 Types:
1912//   * BaseException
1913//   An error occurred while processing the request.
1914//
1915//   * ResourceNotFoundException
1916//   An exception for accessing or deleting a resource that does not exist. Gives
1917//   http status code of 400.
1918//
1919//   * ValidationException
1920//   An exception for missing / invalid input fields. Gives http status code of
1921//   400.
1922//
1923//   * 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 Types:
2001//   * ResourceNotFoundException
2002//   An exception for accessing or deleting a resource that does not exist. Gives
2003//   http status code of 400.
2004//
2005//   * ResourceAlreadyExistsException
2006//   An exception for creating a resource that already exists. Gives http status
2007//   code of 400.
2008//
2009//   * LimitExceededException
2010//   An exception for trying to create more than allowed resources or sub-resources.
2011//   Gives http status code of 409.
2012//
2013//   * DisabledOperationException
2014//   An error occured because the client wanted to access a not supported operation.
2015//   Gives http status code of 409.
2016//
2017//   * ValidationException
2018//   An exception for missing / invalid input fields. Gives http status code of
2019//   400.
2020//
2021//   * 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 Types:
2100//   * BaseException
2101//   An error occurred while processing the request.
2102//
2103//   * ValidationException
2104//   An exception for missing / invalid input fields. Gives http status code of
2105//   400.
2106//
2107//   * 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 Types:
2185//   * BaseException
2186//   An error occurred while processing the request.
2187//
2188//   * 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//   * ResourceNotFoundException
2194//   An exception for accessing or deleting a resource that does not exist. Gives
2195//   http status code of 400.
2196//
2197//   * 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 Types:
2275//   * BaseException
2276//   An error occurred while processing the request.
2277//
2278//   * 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//   * 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//   * LimitExceededException
2288//   An exception for trying to create more than allowed resources or sub-resources.
2289//   Gives http status code of 409.
2290//
2291//   * ResourceNotFoundException
2292//   An exception for accessing or deleting a resource that does not exist. Gives
2293//   http status code of 400.
2294//
2295//   * 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 Types:
2373//   * BaseException
2374//   An error occurred while processing the request.
2375//
2376//   * ResourceNotFoundException
2377//   An exception for accessing or deleting a resource that does not exist. Gives
2378//   http status code of 400.
2379//
2380//   * ResourceAlreadyExistsException
2381//   An exception for creating a resource that already exists. Gives http status
2382//   code of 400.
2383//
2384//   * DisabledOperationException
2385//   An error occured because the client wanted to access a not supported operation.
2386//   Gives http status code of 409.
2387//
2388//   * ValidationException
2389//   An exception for missing / invalid input fields. Gives http status code of
2390//   400.
2391//
2392//   * 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// Specifies the advanced security configuration: whether advanced security
2626// is enabled, whether the internal database option is enabled.
2627type AdvancedSecurityOptions struct {
2628	_ struct{} `type:"structure"`
2629
2630	// True if advanced security is enabled.
2631	Enabled *bool `type:"boolean"`
2632
2633	// True if the internal user database is enabled.
2634	InternalUserDatabaseEnabled *bool `type:"boolean"`
2635}
2636
2637// String returns the string representation
2638func (s AdvancedSecurityOptions) String() string {
2639	return awsutil.Prettify(s)
2640}
2641
2642// GoString returns the string representation
2643func (s AdvancedSecurityOptions) GoString() string {
2644	return s.String()
2645}
2646
2647// SetEnabled sets the Enabled field's value.
2648func (s *AdvancedSecurityOptions) SetEnabled(v bool) *AdvancedSecurityOptions {
2649	s.Enabled = &v
2650	return s
2651}
2652
2653// SetInternalUserDatabaseEnabled sets the InternalUserDatabaseEnabled field's value.
2654func (s *AdvancedSecurityOptions) SetInternalUserDatabaseEnabled(v bool) *AdvancedSecurityOptions {
2655	s.InternalUserDatabaseEnabled = &v
2656	return s
2657}
2658
2659// Specifies the advanced security configuration: whether advanced security
2660// is enabled, whether the internal database option is enabled, master username
2661// and password (if internal database is enabled), and master user ARN (if IAM
2662// is enabled).
2663type AdvancedSecurityOptionsInput struct {
2664	_ struct{} `type:"structure"`
2665
2666	// True if advanced security is enabled.
2667	Enabled *bool `type:"boolean"`
2668
2669	// True if the internal user database is enabled.
2670	InternalUserDatabaseEnabled *bool `type:"boolean"`
2671
2672	// Credentials for the master user: username and password, ARN, or both.
2673	MasterUserOptions *MasterUserOptions `type:"structure"`
2674}
2675
2676// String returns the string representation
2677func (s AdvancedSecurityOptionsInput) String() string {
2678	return awsutil.Prettify(s)
2679}
2680
2681// GoString returns the string representation
2682func (s AdvancedSecurityOptionsInput) GoString() string {
2683	return s.String()
2684}
2685
2686// Validate inspects the fields of the type to determine if they are valid.
2687func (s *AdvancedSecurityOptionsInput) Validate() error {
2688	invalidParams := request.ErrInvalidParams{Context: "AdvancedSecurityOptionsInput"}
2689	if s.MasterUserOptions != nil {
2690		if err := s.MasterUserOptions.Validate(); err != nil {
2691			invalidParams.AddNested("MasterUserOptions", err.(request.ErrInvalidParams))
2692		}
2693	}
2694
2695	if invalidParams.Len() > 0 {
2696		return invalidParams
2697	}
2698	return nil
2699}
2700
2701// SetEnabled sets the Enabled field's value.
2702func (s *AdvancedSecurityOptionsInput) SetEnabled(v bool) *AdvancedSecurityOptionsInput {
2703	s.Enabled = &v
2704	return s
2705}
2706
2707// SetInternalUserDatabaseEnabled sets the InternalUserDatabaseEnabled field's value.
2708func (s *AdvancedSecurityOptionsInput) SetInternalUserDatabaseEnabled(v bool) *AdvancedSecurityOptionsInput {
2709	s.InternalUserDatabaseEnabled = &v
2710	return s
2711}
2712
2713// SetMasterUserOptions sets the MasterUserOptions field's value.
2714func (s *AdvancedSecurityOptionsInput) SetMasterUserOptions(v *MasterUserOptions) *AdvancedSecurityOptionsInput {
2715	s.MasterUserOptions = v
2716	return s
2717}
2718
2719// Specifies the status of advanced security options for the specified Elasticsearch
2720// domain.
2721type AdvancedSecurityOptionsStatus struct {
2722	_ struct{} `type:"structure"`
2723
2724	// Specifies advanced security options for the specified Elasticsearch domain.
2725	//
2726	// Options is a required field
2727	Options *AdvancedSecurityOptions `type:"structure" required:"true"`
2728
2729	// Status of the advanced security options for the specified Elasticsearch domain.
2730	//
2731	// Status is a required field
2732	Status *OptionStatus `type:"structure" required:"true"`
2733}
2734
2735// String returns the string representation
2736func (s AdvancedSecurityOptionsStatus) String() string {
2737	return awsutil.Prettify(s)
2738}
2739
2740// GoString returns the string representation
2741func (s AdvancedSecurityOptionsStatus) GoString() string {
2742	return s.String()
2743}
2744
2745// SetOptions sets the Options field's value.
2746func (s *AdvancedSecurityOptionsStatus) SetOptions(v *AdvancedSecurityOptions) *AdvancedSecurityOptionsStatus {
2747	s.Options = v
2748	return s
2749}
2750
2751// SetStatus sets the Status field's value.
2752func (s *AdvancedSecurityOptionsStatus) SetStatus(v *OptionStatus) *AdvancedSecurityOptionsStatus {
2753	s.Status = v
2754	return s
2755}
2756
2757// An error occurred while processing the request.
2758type BaseException struct {
2759	_            struct{} `type:"structure"`
2760	respMetadata protocol.ResponseMetadata
2761
2762	// A description of the error.
2763	Message_ *string `locationName:"message" type:"string"`
2764}
2765
2766// String returns the string representation
2767func (s BaseException) String() string {
2768	return awsutil.Prettify(s)
2769}
2770
2771// GoString returns the string representation
2772func (s BaseException) GoString() string {
2773	return s.String()
2774}
2775
2776func newErrorBaseException(v protocol.ResponseMetadata) error {
2777	return &BaseException{
2778		respMetadata: v,
2779	}
2780}
2781
2782// Code returns the exception type name.
2783func (s BaseException) Code() string {
2784	return "BaseException"
2785}
2786
2787// Message returns the exception's message.
2788func (s BaseException) Message() string {
2789	if s.Message_ != nil {
2790		return *s.Message_
2791	}
2792	return ""
2793}
2794
2795// OrigErr always returns nil, satisfies awserr.Error interface.
2796func (s BaseException) OrigErr() error {
2797	return nil
2798}
2799
2800func (s BaseException) Error() string {
2801	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2802}
2803
2804// Status code returns the HTTP status code for the request's response error.
2805func (s BaseException) StatusCode() int {
2806	return s.respMetadata.StatusCode
2807}
2808
2809// RequestID returns the service's response RequestID for request.
2810func (s BaseException) RequestID() string {
2811	return s.respMetadata.RequestID
2812}
2813
2814// Container for the parameters to the CancelElasticsearchServiceSoftwareUpdate
2815// operation. Specifies the name of the Elasticsearch domain that you wish to
2816// cancel a service software update on.
2817type CancelElasticsearchServiceSoftwareUpdateInput struct {
2818	_ struct{} `type:"structure"`
2819
2820	// The name of the domain that you want to stop the latest service software
2821	// update on.
2822	//
2823	// DomainName is a required field
2824	DomainName *string `min:"3" type:"string" required:"true"`
2825}
2826
2827// String returns the string representation
2828func (s CancelElasticsearchServiceSoftwareUpdateInput) String() string {
2829	return awsutil.Prettify(s)
2830}
2831
2832// GoString returns the string representation
2833func (s CancelElasticsearchServiceSoftwareUpdateInput) GoString() string {
2834	return s.String()
2835}
2836
2837// Validate inspects the fields of the type to determine if they are valid.
2838func (s *CancelElasticsearchServiceSoftwareUpdateInput) Validate() error {
2839	invalidParams := request.ErrInvalidParams{Context: "CancelElasticsearchServiceSoftwareUpdateInput"}
2840	if s.DomainName == nil {
2841		invalidParams.Add(request.NewErrParamRequired("DomainName"))
2842	}
2843	if s.DomainName != nil && len(*s.DomainName) < 3 {
2844		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
2845	}
2846
2847	if invalidParams.Len() > 0 {
2848		return invalidParams
2849	}
2850	return nil
2851}
2852
2853// SetDomainName sets the DomainName field's value.
2854func (s *CancelElasticsearchServiceSoftwareUpdateInput) SetDomainName(v string) *CancelElasticsearchServiceSoftwareUpdateInput {
2855	s.DomainName = &v
2856	return s
2857}
2858
2859// The result of a CancelElasticsearchServiceSoftwareUpdate operation. Contains
2860// the status of the update.
2861type CancelElasticsearchServiceSoftwareUpdateOutput struct {
2862	_ struct{} `type:"structure"`
2863
2864	// The current status of the Elasticsearch service software update.
2865	ServiceSoftwareOptions *ServiceSoftwareOptions `type:"structure"`
2866}
2867
2868// String returns the string representation
2869func (s CancelElasticsearchServiceSoftwareUpdateOutput) String() string {
2870	return awsutil.Prettify(s)
2871}
2872
2873// GoString returns the string representation
2874func (s CancelElasticsearchServiceSoftwareUpdateOutput) GoString() string {
2875	return s.String()
2876}
2877
2878// SetServiceSoftwareOptions sets the ServiceSoftwareOptions field's value.
2879func (s *CancelElasticsearchServiceSoftwareUpdateOutput) SetServiceSoftwareOptions(v *ServiceSoftwareOptions) *CancelElasticsearchServiceSoftwareUpdateOutput {
2880	s.ServiceSoftwareOptions = v
2881	return s
2882}
2883
2884// Options to specify the Cognito user and identity pools for Kibana authentication.
2885// For more information, see Amazon Cognito Authentication for Kibana (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html).
2886type CognitoOptions struct {
2887	_ struct{} `type:"structure"`
2888
2889	// Specifies the option to enable Cognito for Kibana authentication.
2890	Enabled *bool `type:"boolean"`
2891
2892	// Specifies the Cognito identity pool ID for Kibana authentication.
2893	IdentityPoolId *string `min:"1" type:"string"`
2894
2895	// Specifies the role ARN that provides Elasticsearch permissions for accessing
2896	// Cognito resources.
2897	RoleArn *string `min:"20" type:"string"`
2898
2899	// Specifies the Cognito user pool ID for Kibana authentication.
2900	UserPoolId *string `min:"1" type:"string"`
2901}
2902
2903// String returns the string representation
2904func (s CognitoOptions) String() string {
2905	return awsutil.Prettify(s)
2906}
2907
2908// GoString returns the string representation
2909func (s CognitoOptions) GoString() string {
2910	return s.String()
2911}
2912
2913// Validate inspects the fields of the type to determine if they are valid.
2914func (s *CognitoOptions) Validate() error {
2915	invalidParams := request.ErrInvalidParams{Context: "CognitoOptions"}
2916	if s.IdentityPoolId != nil && len(*s.IdentityPoolId) < 1 {
2917		invalidParams.Add(request.NewErrParamMinLen("IdentityPoolId", 1))
2918	}
2919	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
2920		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
2921	}
2922	if s.UserPoolId != nil && len(*s.UserPoolId) < 1 {
2923		invalidParams.Add(request.NewErrParamMinLen("UserPoolId", 1))
2924	}
2925
2926	if invalidParams.Len() > 0 {
2927		return invalidParams
2928	}
2929	return nil
2930}
2931
2932// SetEnabled sets the Enabled field's value.
2933func (s *CognitoOptions) SetEnabled(v bool) *CognitoOptions {
2934	s.Enabled = &v
2935	return s
2936}
2937
2938// SetIdentityPoolId sets the IdentityPoolId field's value.
2939func (s *CognitoOptions) SetIdentityPoolId(v string) *CognitoOptions {
2940	s.IdentityPoolId = &v
2941	return s
2942}
2943
2944// SetRoleArn sets the RoleArn field's value.
2945func (s *CognitoOptions) SetRoleArn(v string) *CognitoOptions {
2946	s.RoleArn = &v
2947	return s
2948}
2949
2950// SetUserPoolId sets the UserPoolId field's value.
2951func (s *CognitoOptions) SetUserPoolId(v string) *CognitoOptions {
2952	s.UserPoolId = &v
2953	return s
2954}
2955
2956// Status of the Cognito options for the specified Elasticsearch domain.
2957type CognitoOptionsStatus struct {
2958	_ struct{} `type:"structure"`
2959
2960	// Specifies the Cognito options for the specified Elasticsearch domain.
2961	//
2962	// Options is a required field
2963	Options *CognitoOptions `type:"structure" required:"true"`
2964
2965	// Specifies the status of the Cognito options for the specified Elasticsearch
2966	// domain.
2967	//
2968	// Status is a required field
2969	Status *OptionStatus `type:"structure" required:"true"`
2970}
2971
2972// String returns the string representation
2973func (s CognitoOptionsStatus) String() string {
2974	return awsutil.Prettify(s)
2975}
2976
2977// GoString returns the string representation
2978func (s CognitoOptionsStatus) GoString() string {
2979	return s.String()
2980}
2981
2982// SetOptions sets the Options field's value.
2983func (s *CognitoOptionsStatus) SetOptions(v *CognitoOptions) *CognitoOptionsStatus {
2984	s.Options = v
2985	return s
2986}
2987
2988// SetStatus sets the Status field's value.
2989func (s *CognitoOptionsStatus) SetStatus(v *OptionStatus) *CognitoOptionsStatus {
2990	s.Status = v
2991	return s
2992}
2993
2994// A map from an ElasticsearchVersion to a list of compatible ElasticsearchVersion
2995// s to which the domain can be upgraded.
2996type CompatibleVersionsMap struct {
2997	_ struct{} `type:"structure"`
2998
2999	// The current version of Elasticsearch on which a domain is.
3000	SourceVersion *string `type:"string"`
3001
3002	// List of supported elastic search versions.
3003	TargetVersions []*string `type:"list"`
3004}
3005
3006// String returns the string representation
3007func (s CompatibleVersionsMap) String() string {
3008	return awsutil.Prettify(s)
3009}
3010
3011// GoString returns the string representation
3012func (s CompatibleVersionsMap) GoString() string {
3013	return s.String()
3014}
3015
3016// SetSourceVersion sets the SourceVersion field's value.
3017func (s *CompatibleVersionsMap) SetSourceVersion(v string) *CompatibleVersionsMap {
3018	s.SourceVersion = &v
3019	return s
3020}
3021
3022// SetTargetVersions sets the TargetVersions field's value.
3023func (s *CompatibleVersionsMap) SetTargetVersions(v []*string) *CompatibleVersionsMap {
3024	s.TargetVersions = v
3025	return s
3026}
3027
3028type CreateElasticsearchDomainInput struct {
3029	_ struct{} `type:"structure"`
3030
3031	// IAM access policy as a JSON-formatted string.
3032	AccessPolicies *string `type:"string"`
3033
3034	// Option to allow references to indices in an HTTP request body. Must be false
3035	// when configuring access to individual sub-resources. By default, the value
3036	// is true. See Configuration Advanced Options (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options)
3037	// for more information.
3038	AdvancedOptions map[string]*string `type:"map"`
3039
3040	// Specifies advanced security options.
3041	AdvancedSecurityOptions *AdvancedSecurityOptionsInput `type:"structure"`
3042
3043	// Options to specify the Cognito user and identity pools for Kibana authentication.
3044	// For more information, see Amazon Cognito Authentication for Kibana (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html).
3045	CognitoOptions *CognitoOptions `type:"structure"`
3046
3047	// Options to specify configuration that will be applied to the domain endpoint.
3048	DomainEndpointOptions *DomainEndpointOptions `type:"structure"`
3049
3050	// The name of the Elasticsearch domain that you are creating. Domain names
3051	// are unique across the domains owned by an account within an AWS region. Domain
3052	// names must start with a lowercase letter and can contain the following characters:
3053	// a-z (lowercase), 0-9, and - (hyphen).
3054	//
3055	// DomainName is a required field
3056	DomainName *string `min:"3" type:"string" required:"true"`
3057
3058	// Options to enable, disable and specify the type and size of EBS storage volumes.
3059	EBSOptions *EBSOptions `type:"structure"`
3060
3061	// Configuration options for an Elasticsearch domain. Specifies the instance
3062	// type and number of instances in the domain cluster.
3063	ElasticsearchClusterConfig *ElasticsearchClusterConfig `type:"structure"`
3064
3065	// String of format X.Y to specify version for the Elasticsearch domain eg.
3066	// "1.5" or "2.3". For more information, see Creating Elasticsearch Domains
3067	// (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomains)
3068	// in the Amazon Elasticsearch Service Developer Guide.
3069	ElasticsearchVersion *string `type:"string"`
3070
3071	// Specifies the Encryption At Rest Options.
3072	EncryptionAtRestOptions *EncryptionAtRestOptions `type:"structure"`
3073
3074	// Map of LogType and LogPublishingOption, each containing options to publish
3075	// a given type of Elasticsearch log.
3076	LogPublishingOptions map[string]*LogPublishingOption `type:"map"`
3077
3078	// Specifies the NodeToNodeEncryptionOptions.
3079	NodeToNodeEncryptionOptions *NodeToNodeEncryptionOptions `type:"structure"`
3080
3081	// Option to set time, in UTC format, of the daily automated snapshot. Default
3082	// value is 0 hours.
3083	SnapshotOptions *SnapshotOptions `type:"structure"`
3084
3085	// Options to specify the subnets and security groups for VPC endpoint. For
3086	// more information, see Creating a VPC (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-creating-vpc)
3087	// in VPC Endpoints for Amazon Elasticsearch Service Domains
3088	VPCOptions *VPCOptions `type:"structure"`
3089}
3090
3091// String returns the string representation
3092func (s CreateElasticsearchDomainInput) String() string {
3093	return awsutil.Prettify(s)
3094}
3095
3096// GoString returns the string representation
3097func (s CreateElasticsearchDomainInput) GoString() string {
3098	return s.String()
3099}
3100
3101// Validate inspects the fields of the type to determine if they are valid.
3102func (s *CreateElasticsearchDomainInput) Validate() error {
3103	invalidParams := request.ErrInvalidParams{Context: "CreateElasticsearchDomainInput"}
3104	if s.DomainName == nil {
3105		invalidParams.Add(request.NewErrParamRequired("DomainName"))
3106	}
3107	if s.DomainName != nil && len(*s.DomainName) < 3 {
3108		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
3109	}
3110	if s.AdvancedSecurityOptions != nil {
3111		if err := s.AdvancedSecurityOptions.Validate(); err != nil {
3112			invalidParams.AddNested("AdvancedSecurityOptions", err.(request.ErrInvalidParams))
3113		}
3114	}
3115	if s.CognitoOptions != nil {
3116		if err := s.CognitoOptions.Validate(); err != nil {
3117			invalidParams.AddNested("CognitoOptions", err.(request.ErrInvalidParams))
3118		}
3119	}
3120	if s.EncryptionAtRestOptions != nil {
3121		if err := s.EncryptionAtRestOptions.Validate(); err != nil {
3122			invalidParams.AddNested("EncryptionAtRestOptions", err.(request.ErrInvalidParams))
3123		}
3124	}
3125
3126	if invalidParams.Len() > 0 {
3127		return invalidParams
3128	}
3129	return nil
3130}
3131
3132// SetAccessPolicies sets the AccessPolicies field's value.
3133func (s *CreateElasticsearchDomainInput) SetAccessPolicies(v string) *CreateElasticsearchDomainInput {
3134	s.AccessPolicies = &v
3135	return s
3136}
3137
3138// SetAdvancedOptions sets the AdvancedOptions field's value.
3139func (s *CreateElasticsearchDomainInput) SetAdvancedOptions(v map[string]*string) *CreateElasticsearchDomainInput {
3140	s.AdvancedOptions = v
3141	return s
3142}
3143
3144// SetAdvancedSecurityOptions sets the AdvancedSecurityOptions field's value.
3145func (s *CreateElasticsearchDomainInput) SetAdvancedSecurityOptions(v *AdvancedSecurityOptionsInput) *CreateElasticsearchDomainInput {
3146	s.AdvancedSecurityOptions = v
3147	return s
3148}
3149
3150// SetCognitoOptions sets the CognitoOptions field's value.
3151func (s *CreateElasticsearchDomainInput) SetCognitoOptions(v *CognitoOptions) *CreateElasticsearchDomainInput {
3152	s.CognitoOptions = v
3153	return s
3154}
3155
3156// SetDomainEndpointOptions sets the DomainEndpointOptions field's value.
3157func (s *CreateElasticsearchDomainInput) SetDomainEndpointOptions(v *DomainEndpointOptions) *CreateElasticsearchDomainInput {
3158	s.DomainEndpointOptions = v
3159	return s
3160}
3161
3162// SetDomainName sets the DomainName field's value.
3163func (s *CreateElasticsearchDomainInput) SetDomainName(v string) *CreateElasticsearchDomainInput {
3164	s.DomainName = &v
3165	return s
3166}
3167
3168// SetEBSOptions sets the EBSOptions field's value.
3169func (s *CreateElasticsearchDomainInput) SetEBSOptions(v *EBSOptions) *CreateElasticsearchDomainInput {
3170	s.EBSOptions = v
3171	return s
3172}
3173
3174// SetElasticsearchClusterConfig sets the ElasticsearchClusterConfig field's value.
3175func (s *CreateElasticsearchDomainInput) SetElasticsearchClusterConfig(v *ElasticsearchClusterConfig) *CreateElasticsearchDomainInput {
3176	s.ElasticsearchClusterConfig = v
3177	return s
3178}
3179
3180// SetElasticsearchVersion sets the ElasticsearchVersion field's value.
3181func (s *CreateElasticsearchDomainInput) SetElasticsearchVersion(v string) *CreateElasticsearchDomainInput {
3182	s.ElasticsearchVersion = &v
3183	return s
3184}
3185
3186// SetEncryptionAtRestOptions sets the EncryptionAtRestOptions field's value.
3187func (s *CreateElasticsearchDomainInput) SetEncryptionAtRestOptions(v *EncryptionAtRestOptions) *CreateElasticsearchDomainInput {
3188	s.EncryptionAtRestOptions = v
3189	return s
3190}
3191
3192// SetLogPublishingOptions sets the LogPublishingOptions field's value.
3193func (s *CreateElasticsearchDomainInput) SetLogPublishingOptions(v map[string]*LogPublishingOption) *CreateElasticsearchDomainInput {
3194	s.LogPublishingOptions = v
3195	return s
3196}
3197
3198// SetNodeToNodeEncryptionOptions sets the NodeToNodeEncryptionOptions field's value.
3199func (s *CreateElasticsearchDomainInput) SetNodeToNodeEncryptionOptions(v *NodeToNodeEncryptionOptions) *CreateElasticsearchDomainInput {
3200	s.NodeToNodeEncryptionOptions = v
3201	return s
3202}
3203
3204// SetSnapshotOptions sets the SnapshotOptions field's value.
3205func (s *CreateElasticsearchDomainInput) SetSnapshotOptions(v *SnapshotOptions) *CreateElasticsearchDomainInput {
3206	s.SnapshotOptions = v
3207	return s
3208}
3209
3210// SetVPCOptions sets the VPCOptions field's value.
3211func (s *CreateElasticsearchDomainInput) SetVPCOptions(v *VPCOptions) *CreateElasticsearchDomainInput {
3212	s.VPCOptions = v
3213	return s
3214}
3215
3216// The result of a CreateElasticsearchDomain operation. Contains the status
3217// of the newly created Elasticsearch domain.
3218type CreateElasticsearchDomainOutput struct {
3219	_ struct{} `type:"structure"`
3220
3221	// The status of the newly created Elasticsearch domain.
3222	DomainStatus *ElasticsearchDomainStatus `type:"structure"`
3223}
3224
3225// String returns the string representation
3226func (s CreateElasticsearchDomainOutput) String() string {
3227	return awsutil.Prettify(s)
3228}
3229
3230// GoString returns the string representation
3231func (s CreateElasticsearchDomainOutput) GoString() string {
3232	return s.String()
3233}
3234
3235// SetDomainStatus sets the DomainStatus field's value.
3236func (s *CreateElasticsearchDomainOutput) SetDomainStatus(v *ElasticsearchDomainStatus) *CreateElasticsearchDomainOutput {
3237	s.DomainStatus = v
3238	return s
3239}
3240
3241// Container for the parameters to the DeleteElasticsearchDomain operation.
3242// Specifies the name of the Elasticsearch domain that you want to delete.
3243type DeleteElasticsearchDomainInput struct {
3244	_ struct{} `type:"structure"`
3245
3246	// The name of the Elasticsearch domain that you want to permanently delete.
3247	//
3248	// DomainName is a required field
3249	DomainName *string `location:"uri" locationName:"DomainName" min:"3" type:"string" required:"true"`
3250}
3251
3252// String returns the string representation
3253func (s DeleteElasticsearchDomainInput) String() string {
3254	return awsutil.Prettify(s)
3255}
3256
3257// GoString returns the string representation
3258func (s DeleteElasticsearchDomainInput) GoString() string {
3259	return s.String()
3260}
3261
3262// Validate inspects the fields of the type to determine if they are valid.
3263func (s *DeleteElasticsearchDomainInput) Validate() error {
3264	invalidParams := request.ErrInvalidParams{Context: "DeleteElasticsearchDomainInput"}
3265	if s.DomainName == nil {
3266		invalidParams.Add(request.NewErrParamRequired("DomainName"))
3267	}
3268	if s.DomainName != nil && len(*s.DomainName) < 3 {
3269		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
3270	}
3271
3272	if invalidParams.Len() > 0 {
3273		return invalidParams
3274	}
3275	return nil
3276}
3277
3278// SetDomainName sets the DomainName field's value.
3279func (s *DeleteElasticsearchDomainInput) SetDomainName(v string) *DeleteElasticsearchDomainInput {
3280	s.DomainName = &v
3281	return s
3282}
3283
3284// The result of a DeleteElasticsearchDomain request. Contains the status of
3285// the pending deletion, or no status if the domain and all of its resources
3286// have been deleted.
3287type DeleteElasticsearchDomainOutput struct {
3288	_ struct{} `type:"structure"`
3289
3290	// The status of the Elasticsearch domain being deleted.
3291	DomainStatus *ElasticsearchDomainStatus `type:"structure"`
3292}
3293
3294// String returns the string representation
3295func (s DeleteElasticsearchDomainOutput) String() string {
3296	return awsutil.Prettify(s)
3297}
3298
3299// GoString returns the string representation
3300func (s DeleteElasticsearchDomainOutput) GoString() string {
3301	return s.String()
3302}
3303
3304// SetDomainStatus sets the DomainStatus field's value.
3305func (s *DeleteElasticsearchDomainOutput) SetDomainStatus(v *ElasticsearchDomainStatus) *DeleteElasticsearchDomainOutput {
3306	s.DomainStatus = v
3307	return s
3308}
3309
3310type DeleteElasticsearchServiceRoleInput struct {
3311	_ struct{} `type:"structure"`
3312}
3313
3314// String returns the string representation
3315func (s DeleteElasticsearchServiceRoleInput) String() string {
3316	return awsutil.Prettify(s)
3317}
3318
3319// GoString returns the string representation
3320func (s DeleteElasticsearchServiceRoleInput) GoString() string {
3321	return s.String()
3322}
3323
3324type DeleteElasticsearchServiceRoleOutput struct {
3325	_ struct{} `type:"structure"`
3326}
3327
3328// String returns the string representation
3329func (s DeleteElasticsearchServiceRoleOutput) String() string {
3330	return awsutil.Prettify(s)
3331}
3332
3333// GoString returns the string representation
3334func (s DeleteElasticsearchServiceRoleOutput) GoString() string {
3335	return s.String()
3336}
3337
3338// Container for the parameters to the DescribeElasticsearchDomainConfig operation.
3339// Specifies the domain name for which you want configuration information.
3340type DescribeElasticsearchDomainConfigInput struct {
3341	_ struct{} `type:"structure"`
3342
3343	// The Elasticsearch domain that you want to get information about.
3344	//
3345	// DomainName is a required field
3346	DomainName *string `location:"uri" locationName:"DomainName" min:"3" type:"string" required:"true"`
3347}
3348
3349// String returns the string representation
3350func (s DescribeElasticsearchDomainConfigInput) String() string {
3351	return awsutil.Prettify(s)
3352}
3353
3354// GoString returns the string representation
3355func (s DescribeElasticsearchDomainConfigInput) GoString() string {
3356	return s.String()
3357}
3358
3359// Validate inspects the fields of the type to determine if they are valid.
3360func (s *DescribeElasticsearchDomainConfigInput) Validate() error {
3361	invalidParams := request.ErrInvalidParams{Context: "DescribeElasticsearchDomainConfigInput"}
3362	if s.DomainName == nil {
3363		invalidParams.Add(request.NewErrParamRequired("DomainName"))
3364	}
3365	if s.DomainName != nil && len(*s.DomainName) < 3 {
3366		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
3367	}
3368
3369	if invalidParams.Len() > 0 {
3370		return invalidParams
3371	}
3372	return nil
3373}
3374
3375// SetDomainName sets the DomainName field's value.
3376func (s *DescribeElasticsearchDomainConfigInput) SetDomainName(v string) *DescribeElasticsearchDomainConfigInput {
3377	s.DomainName = &v
3378	return s
3379}
3380
3381// The result of a DescribeElasticsearchDomainConfig request. Contains the configuration
3382// information of the requested domain.
3383type DescribeElasticsearchDomainConfigOutput struct {
3384	_ struct{} `type:"structure"`
3385
3386	// The configuration information of the domain requested in the DescribeElasticsearchDomainConfig
3387	// request.
3388	//
3389	// DomainConfig is a required field
3390	DomainConfig *ElasticsearchDomainConfig `type:"structure" required:"true"`
3391}
3392
3393// String returns the string representation
3394func (s DescribeElasticsearchDomainConfigOutput) String() string {
3395	return awsutil.Prettify(s)
3396}
3397
3398// GoString returns the string representation
3399func (s DescribeElasticsearchDomainConfigOutput) GoString() string {
3400	return s.String()
3401}
3402
3403// SetDomainConfig sets the DomainConfig field's value.
3404func (s *DescribeElasticsearchDomainConfigOutput) SetDomainConfig(v *ElasticsearchDomainConfig) *DescribeElasticsearchDomainConfigOutput {
3405	s.DomainConfig = v
3406	return s
3407}
3408
3409// Container for the parameters to the DescribeElasticsearchDomain operation.
3410type DescribeElasticsearchDomainInput struct {
3411	_ struct{} `type:"structure"`
3412
3413	// The name of the Elasticsearch domain for which you want information.
3414	//
3415	// DomainName is a required field
3416	DomainName *string `location:"uri" locationName:"DomainName" min:"3" type:"string" required:"true"`
3417}
3418
3419// String returns the string representation
3420func (s DescribeElasticsearchDomainInput) String() string {
3421	return awsutil.Prettify(s)
3422}
3423
3424// GoString returns the string representation
3425func (s DescribeElasticsearchDomainInput) GoString() string {
3426	return s.String()
3427}
3428
3429// Validate inspects the fields of the type to determine if they are valid.
3430func (s *DescribeElasticsearchDomainInput) Validate() error {
3431	invalidParams := request.ErrInvalidParams{Context: "DescribeElasticsearchDomainInput"}
3432	if s.DomainName == nil {
3433		invalidParams.Add(request.NewErrParamRequired("DomainName"))
3434	}
3435	if s.DomainName != nil && len(*s.DomainName) < 3 {
3436		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
3437	}
3438
3439	if invalidParams.Len() > 0 {
3440		return invalidParams
3441	}
3442	return nil
3443}
3444
3445// SetDomainName sets the DomainName field's value.
3446func (s *DescribeElasticsearchDomainInput) SetDomainName(v string) *DescribeElasticsearchDomainInput {
3447	s.DomainName = &v
3448	return s
3449}
3450
3451// The result of a DescribeElasticsearchDomain request. Contains the status
3452// of the domain specified in the request.
3453type DescribeElasticsearchDomainOutput struct {
3454	_ struct{} `type:"structure"`
3455
3456	// The current status of the Elasticsearch domain.
3457	//
3458	// DomainStatus is a required field
3459	DomainStatus *ElasticsearchDomainStatus `type:"structure" required:"true"`
3460}
3461
3462// String returns the string representation
3463func (s DescribeElasticsearchDomainOutput) String() string {
3464	return awsutil.Prettify(s)
3465}
3466
3467// GoString returns the string representation
3468func (s DescribeElasticsearchDomainOutput) GoString() string {
3469	return s.String()
3470}
3471
3472// SetDomainStatus sets the DomainStatus field's value.
3473func (s *DescribeElasticsearchDomainOutput) SetDomainStatus(v *ElasticsearchDomainStatus) *DescribeElasticsearchDomainOutput {
3474	s.DomainStatus = v
3475	return s
3476}
3477
3478// Container for the parameters to the DescribeElasticsearchDomains operation.
3479// By default, the API returns the status of all Elasticsearch domains.
3480type DescribeElasticsearchDomainsInput struct {
3481	_ struct{} `type:"structure"`
3482
3483	// The Elasticsearch domains for which you want information.
3484	//
3485	// DomainNames is a required field
3486	DomainNames []*string `type:"list" required:"true"`
3487}
3488
3489// String returns the string representation
3490func (s DescribeElasticsearchDomainsInput) String() string {
3491	return awsutil.Prettify(s)
3492}
3493
3494// GoString returns the string representation
3495func (s DescribeElasticsearchDomainsInput) GoString() string {
3496	return s.String()
3497}
3498
3499// Validate inspects the fields of the type to determine if they are valid.
3500func (s *DescribeElasticsearchDomainsInput) Validate() error {
3501	invalidParams := request.ErrInvalidParams{Context: "DescribeElasticsearchDomainsInput"}
3502	if s.DomainNames == nil {
3503		invalidParams.Add(request.NewErrParamRequired("DomainNames"))
3504	}
3505
3506	if invalidParams.Len() > 0 {
3507		return invalidParams
3508	}
3509	return nil
3510}
3511
3512// SetDomainNames sets the DomainNames field's value.
3513func (s *DescribeElasticsearchDomainsInput) SetDomainNames(v []*string) *DescribeElasticsearchDomainsInput {
3514	s.DomainNames = v
3515	return s
3516}
3517
3518// The result of a DescribeElasticsearchDomains request. Contains the status
3519// of the specified domains or all domains owned by the account.
3520type DescribeElasticsearchDomainsOutput struct {
3521	_ struct{} `type:"structure"`
3522
3523	// The status of the domains requested in the DescribeElasticsearchDomains request.
3524	//
3525	// DomainStatusList is a required field
3526	DomainStatusList []*ElasticsearchDomainStatus `type:"list" required:"true"`
3527}
3528
3529// String returns the string representation
3530func (s DescribeElasticsearchDomainsOutput) String() string {
3531	return awsutil.Prettify(s)
3532}
3533
3534// GoString returns the string representation
3535func (s DescribeElasticsearchDomainsOutput) GoString() string {
3536	return s.String()
3537}
3538
3539// SetDomainStatusList sets the DomainStatusList field's value.
3540func (s *DescribeElasticsearchDomainsOutput) SetDomainStatusList(v []*ElasticsearchDomainStatus) *DescribeElasticsearchDomainsOutput {
3541	s.DomainStatusList = v
3542	return s
3543}
3544
3545// Container for the parameters to DescribeElasticsearchInstanceTypeLimits operation.
3546type DescribeElasticsearchInstanceTypeLimitsInput struct {
3547	_ struct{} `type:"structure"`
3548
3549	// DomainName represents the name of the Domain that we are trying to modify.
3550	// This should be present only if we are querying for Elasticsearch Limits for
3551	// existing domain.
3552	DomainName *string `location:"querystring" locationName:"domainName" min:"3" type:"string"`
3553
3554	// Version of Elasticsearch for which Limits are needed.
3555	//
3556	// ElasticsearchVersion is a required field
3557	ElasticsearchVersion *string `location:"uri" locationName:"ElasticsearchVersion" type:"string" required:"true"`
3558
3559	// The instance type for an Elasticsearch cluster for which Elasticsearch Limits
3560	// are needed.
3561	//
3562	// InstanceType is a required field
3563	InstanceType *string `location:"uri" locationName:"InstanceType" type:"string" required:"true" enum:"ESPartitionInstanceType"`
3564}
3565
3566// String returns the string representation
3567func (s DescribeElasticsearchInstanceTypeLimitsInput) String() string {
3568	return awsutil.Prettify(s)
3569}
3570
3571// GoString returns the string representation
3572func (s DescribeElasticsearchInstanceTypeLimitsInput) GoString() string {
3573	return s.String()
3574}
3575
3576// Validate inspects the fields of the type to determine if they are valid.
3577func (s *DescribeElasticsearchInstanceTypeLimitsInput) Validate() error {
3578	invalidParams := request.ErrInvalidParams{Context: "DescribeElasticsearchInstanceTypeLimitsInput"}
3579	if s.DomainName != nil && len(*s.DomainName) < 3 {
3580		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
3581	}
3582	if s.ElasticsearchVersion == nil {
3583		invalidParams.Add(request.NewErrParamRequired("ElasticsearchVersion"))
3584	}
3585	if s.ElasticsearchVersion != nil && len(*s.ElasticsearchVersion) < 1 {
3586		invalidParams.Add(request.NewErrParamMinLen("ElasticsearchVersion", 1))
3587	}
3588	if s.InstanceType == nil {
3589		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
3590	}
3591	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
3592		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
3593	}
3594
3595	if invalidParams.Len() > 0 {
3596		return invalidParams
3597	}
3598	return nil
3599}
3600
3601// SetDomainName sets the DomainName field's value.
3602func (s *DescribeElasticsearchInstanceTypeLimitsInput) SetDomainName(v string) *DescribeElasticsearchInstanceTypeLimitsInput {
3603	s.DomainName = &v
3604	return s
3605}
3606
3607// SetElasticsearchVersion sets the ElasticsearchVersion field's value.
3608func (s *DescribeElasticsearchInstanceTypeLimitsInput) SetElasticsearchVersion(v string) *DescribeElasticsearchInstanceTypeLimitsInput {
3609	s.ElasticsearchVersion = &v
3610	return s
3611}
3612
3613// SetInstanceType sets the InstanceType field's value.
3614func (s *DescribeElasticsearchInstanceTypeLimitsInput) SetInstanceType(v string) *DescribeElasticsearchInstanceTypeLimitsInput {
3615	s.InstanceType = &v
3616	return s
3617}
3618
3619// Container for the parameters received from DescribeElasticsearchInstanceTypeLimits
3620// operation.
3621type DescribeElasticsearchInstanceTypeLimitsOutput struct {
3622	_ struct{} `type:"structure"`
3623
3624	// Map of Role of the Instance and Limits that are applicable. Role performed
3625	// by given Instance in Elasticsearch can be one of the following:
3626	//    * data: If the given InstanceType is used as data node
3627	//
3628	//    * master: If the given InstanceType is used as master node
3629	//
3630	//    * ultra_warm: If the given InstanceType is used as warm node
3631	LimitsByRole map[string]*Limits `type:"map"`
3632}
3633
3634// String returns the string representation
3635func (s DescribeElasticsearchInstanceTypeLimitsOutput) String() string {
3636	return awsutil.Prettify(s)
3637}
3638
3639// GoString returns the string representation
3640func (s DescribeElasticsearchInstanceTypeLimitsOutput) GoString() string {
3641	return s.String()
3642}
3643
3644// SetLimitsByRole sets the LimitsByRole field's value.
3645func (s *DescribeElasticsearchInstanceTypeLimitsOutput) SetLimitsByRole(v map[string]*Limits) *DescribeElasticsearchInstanceTypeLimitsOutput {
3646	s.LimitsByRole = v
3647	return s
3648}
3649
3650// Container for parameters to DescribeReservedElasticsearchInstanceOfferings
3651type DescribeReservedElasticsearchInstanceOfferingsInput struct {
3652	_ struct{} `type:"structure"`
3653
3654	// Set this value to limit the number of results returned. If not specified,
3655	// defaults to 100.
3656	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
3657
3658	// NextToken should be sent in case if earlier API call produced result containing
3659	// NextToken. It is used for pagination.
3660	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
3661
3662	// The offering identifier filter value. Use this parameter to show only the
3663	// available offering that matches the specified reservation identifier.
3664	ReservedElasticsearchInstanceOfferingId *string `location:"querystring" locationName:"offeringId" type:"string"`
3665}
3666
3667// String returns the string representation
3668func (s DescribeReservedElasticsearchInstanceOfferingsInput) String() string {
3669	return awsutil.Prettify(s)
3670}
3671
3672// GoString returns the string representation
3673func (s DescribeReservedElasticsearchInstanceOfferingsInput) GoString() string {
3674	return s.String()
3675}
3676
3677// SetMaxResults sets the MaxResults field's value.
3678func (s *DescribeReservedElasticsearchInstanceOfferingsInput) SetMaxResults(v int64) *DescribeReservedElasticsearchInstanceOfferingsInput {
3679	s.MaxResults = &v
3680	return s
3681}
3682
3683// SetNextToken sets the NextToken field's value.
3684func (s *DescribeReservedElasticsearchInstanceOfferingsInput) SetNextToken(v string) *DescribeReservedElasticsearchInstanceOfferingsInput {
3685	s.NextToken = &v
3686	return s
3687}
3688
3689// SetReservedElasticsearchInstanceOfferingId sets the ReservedElasticsearchInstanceOfferingId field's value.
3690func (s *DescribeReservedElasticsearchInstanceOfferingsInput) SetReservedElasticsearchInstanceOfferingId(v string) *DescribeReservedElasticsearchInstanceOfferingsInput {
3691	s.ReservedElasticsearchInstanceOfferingId = &v
3692	return s
3693}
3694
3695// Container for results from DescribeReservedElasticsearchInstanceOfferings
3696type DescribeReservedElasticsearchInstanceOfferingsOutput struct {
3697	_ struct{} `type:"structure"`
3698
3699	// Provides an identifier to allow retrieval of paginated results.
3700	NextToken *string `type:"string"`
3701
3702	// List of reserved Elasticsearch instance offerings
3703	ReservedElasticsearchInstanceOfferings []*ReservedElasticsearchInstanceOffering `type:"list"`
3704}
3705
3706// String returns the string representation
3707func (s DescribeReservedElasticsearchInstanceOfferingsOutput) String() string {
3708	return awsutil.Prettify(s)
3709}
3710
3711// GoString returns the string representation
3712func (s DescribeReservedElasticsearchInstanceOfferingsOutput) GoString() string {
3713	return s.String()
3714}
3715
3716// SetNextToken sets the NextToken field's value.
3717func (s *DescribeReservedElasticsearchInstanceOfferingsOutput) SetNextToken(v string) *DescribeReservedElasticsearchInstanceOfferingsOutput {
3718	s.NextToken = &v
3719	return s
3720}
3721
3722// SetReservedElasticsearchInstanceOfferings sets the ReservedElasticsearchInstanceOfferings field's value.
3723func (s *DescribeReservedElasticsearchInstanceOfferingsOutput) SetReservedElasticsearchInstanceOfferings(v []*ReservedElasticsearchInstanceOffering) *DescribeReservedElasticsearchInstanceOfferingsOutput {
3724	s.ReservedElasticsearchInstanceOfferings = v
3725	return s
3726}
3727
3728// Container for parameters to DescribeReservedElasticsearchInstances
3729type DescribeReservedElasticsearchInstancesInput struct {
3730	_ struct{} `type:"structure"`
3731
3732	// Set this value to limit the number of results returned. If not specified,
3733	// defaults to 100.
3734	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
3735
3736	// NextToken should be sent in case if earlier API call produced result containing
3737	// NextToken. It is used for pagination.
3738	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
3739
3740	// The reserved instance identifier filter value. Use this parameter to show
3741	// only the reservation that matches the specified reserved Elasticsearch instance
3742	// ID.
3743	ReservedElasticsearchInstanceId *string `location:"querystring" locationName:"reservationId" type:"string"`
3744}
3745
3746// String returns the string representation
3747func (s DescribeReservedElasticsearchInstancesInput) String() string {
3748	return awsutil.Prettify(s)
3749}
3750
3751// GoString returns the string representation
3752func (s DescribeReservedElasticsearchInstancesInput) GoString() string {
3753	return s.String()
3754}
3755
3756// SetMaxResults sets the MaxResults field's value.
3757func (s *DescribeReservedElasticsearchInstancesInput) SetMaxResults(v int64) *DescribeReservedElasticsearchInstancesInput {
3758	s.MaxResults = &v
3759	return s
3760}
3761
3762// SetNextToken sets the NextToken field's value.
3763func (s *DescribeReservedElasticsearchInstancesInput) SetNextToken(v string) *DescribeReservedElasticsearchInstancesInput {
3764	s.NextToken = &v
3765	return s
3766}
3767
3768// SetReservedElasticsearchInstanceId sets the ReservedElasticsearchInstanceId field's value.
3769func (s *DescribeReservedElasticsearchInstancesInput) SetReservedElasticsearchInstanceId(v string) *DescribeReservedElasticsearchInstancesInput {
3770	s.ReservedElasticsearchInstanceId = &v
3771	return s
3772}
3773
3774// Container for results from DescribeReservedElasticsearchInstances
3775type DescribeReservedElasticsearchInstancesOutput struct {
3776	_ struct{} `type:"structure"`
3777
3778	// Provides an identifier to allow retrieval of paginated results.
3779	NextToken *string `type:"string"`
3780
3781	// List of reserved Elasticsearch instances.
3782	ReservedElasticsearchInstances []*ReservedElasticsearchInstance `type:"list"`
3783}
3784
3785// String returns the string representation
3786func (s DescribeReservedElasticsearchInstancesOutput) String() string {
3787	return awsutil.Prettify(s)
3788}
3789
3790// GoString returns the string representation
3791func (s DescribeReservedElasticsearchInstancesOutput) GoString() string {
3792	return s.String()
3793}
3794
3795// SetNextToken sets the NextToken field's value.
3796func (s *DescribeReservedElasticsearchInstancesOutput) SetNextToken(v string) *DescribeReservedElasticsearchInstancesOutput {
3797	s.NextToken = &v
3798	return s
3799}
3800
3801// SetReservedElasticsearchInstances sets the ReservedElasticsearchInstances field's value.
3802func (s *DescribeReservedElasticsearchInstancesOutput) SetReservedElasticsearchInstances(v []*ReservedElasticsearchInstance) *DescribeReservedElasticsearchInstancesOutput {
3803	s.ReservedElasticsearchInstances = v
3804	return s
3805}
3806
3807// An error occured because the client wanted to access a not supported operation.
3808// Gives http status code of 409.
3809type DisabledOperationException struct {
3810	_            struct{} `type:"structure"`
3811	respMetadata protocol.ResponseMetadata
3812
3813	Message_ *string `locationName:"message" type:"string"`
3814}
3815
3816// String returns the string representation
3817func (s DisabledOperationException) String() string {
3818	return awsutil.Prettify(s)
3819}
3820
3821// GoString returns the string representation
3822func (s DisabledOperationException) GoString() string {
3823	return s.String()
3824}
3825
3826func newErrorDisabledOperationException(v protocol.ResponseMetadata) error {
3827	return &DisabledOperationException{
3828		respMetadata: v,
3829	}
3830}
3831
3832// Code returns the exception type name.
3833func (s DisabledOperationException) Code() string {
3834	return "DisabledOperationException"
3835}
3836
3837// Message returns the exception's message.
3838func (s DisabledOperationException) Message() string {
3839	if s.Message_ != nil {
3840		return *s.Message_
3841	}
3842	return ""
3843}
3844
3845// OrigErr always returns nil, satisfies awserr.Error interface.
3846func (s DisabledOperationException) OrigErr() error {
3847	return nil
3848}
3849
3850func (s DisabledOperationException) Error() string {
3851	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3852}
3853
3854// Status code returns the HTTP status code for the request's response error.
3855func (s DisabledOperationException) StatusCode() int {
3856	return s.respMetadata.StatusCode
3857}
3858
3859// RequestID returns the service's response RequestID for request.
3860func (s DisabledOperationException) RequestID() string {
3861	return s.respMetadata.RequestID
3862}
3863
3864// Options to configure endpoint for the Elasticsearch domain.
3865type DomainEndpointOptions struct {
3866	_ struct{} `type:"structure"`
3867
3868	// Specify if only HTTPS endpoint should be enabled for the Elasticsearch domain.
3869	EnforceHTTPS *bool `type:"boolean"`
3870
3871	// Specify the TLS security policy that needs to be applied to the HTTPS endpoint
3872	// of Elasticsearch domain. It can be one of the following values:
3873	//    * Policy-Min-TLS-1-0-2019-07: TLS security policy which supports TLSv1.0
3874	//    and higher.
3875	//
3876	//    * Policy-Min-TLS-1-2-2019-07: TLS security policy which supports only
3877	//    TLSv1.2
3878	TLSSecurityPolicy *string `type:"string" enum:"TLSSecurityPolicy"`
3879}
3880
3881// String returns the string representation
3882func (s DomainEndpointOptions) String() string {
3883	return awsutil.Prettify(s)
3884}
3885
3886// GoString returns the string representation
3887func (s DomainEndpointOptions) GoString() string {
3888	return s.String()
3889}
3890
3891// SetEnforceHTTPS sets the EnforceHTTPS field's value.
3892func (s *DomainEndpointOptions) SetEnforceHTTPS(v bool) *DomainEndpointOptions {
3893	s.EnforceHTTPS = &v
3894	return s
3895}
3896
3897// SetTLSSecurityPolicy sets the TLSSecurityPolicy field's value.
3898func (s *DomainEndpointOptions) SetTLSSecurityPolicy(v string) *DomainEndpointOptions {
3899	s.TLSSecurityPolicy = &v
3900	return s
3901}
3902
3903// The configured endpoint options for the domain and their current status.
3904type DomainEndpointOptionsStatus struct {
3905	_ struct{} `type:"structure"`
3906
3907	// Options to configure endpoint for the Elasticsearch domain.
3908	//
3909	// Options is a required field
3910	Options *DomainEndpointOptions `type:"structure" required:"true"`
3911
3912	// The status of the endpoint options for the Elasticsearch domain. See OptionStatus
3913	// for the status information that's included.
3914	//
3915	// Status is a required field
3916	Status *OptionStatus `type:"structure" required:"true"`
3917}
3918
3919// String returns the string representation
3920func (s DomainEndpointOptionsStatus) String() string {
3921	return awsutil.Prettify(s)
3922}
3923
3924// GoString returns the string representation
3925func (s DomainEndpointOptionsStatus) GoString() string {
3926	return s.String()
3927}
3928
3929// SetOptions sets the Options field's value.
3930func (s *DomainEndpointOptionsStatus) SetOptions(v *DomainEndpointOptions) *DomainEndpointOptionsStatus {
3931	s.Options = v
3932	return s
3933}
3934
3935// SetStatus sets the Status field's value.
3936func (s *DomainEndpointOptionsStatus) SetStatus(v *OptionStatus) *DomainEndpointOptionsStatus {
3937	s.Status = v
3938	return s
3939}
3940
3941type DomainInfo struct {
3942	_ struct{} `type:"structure"`
3943
3944	// Specifies the DomainName.
3945	DomainName *string `min:"3" type:"string"`
3946}
3947
3948// String returns the string representation
3949func (s DomainInfo) String() string {
3950	return awsutil.Prettify(s)
3951}
3952
3953// GoString returns the string representation
3954func (s DomainInfo) GoString() string {
3955	return s.String()
3956}
3957
3958// SetDomainName sets the DomainName field's value.
3959func (s *DomainInfo) SetDomainName(v string) *DomainInfo {
3960	s.DomainName = &v
3961	return s
3962}
3963
3964// Options to enable, disable, and specify the properties of EBS storage volumes.
3965// For more information, see Configuring EBS-based Storage (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs).
3966type EBSOptions struct {
3967	_ struct{} `type:"structure"`
3968
3969	// Specifies whether EBS-based storage is enabled.
3970	EBSEnabled *bool `type:"boolean"`
3971
3972	// Specifies the IOPD for a Provisioned IOPS EBS volume (SSD).
3973	Iops *int64 `type:"integer"`
3974
3975	// Integer to specify the size of an EBS volume.
3976	VolumeSize *int64 `type:"integer"`
3977
3978	// Specifies the volume type for EBS-based storage.
3979	VolumeType *string `type:"string" enum:"VolumeType"`
3980}
3981
3982// String returns the string representation
3983func (s EBSOptions) String() string {
3984	return awsutil.Prettify(s)
3985}
3986
3987// GoString returns the string representation
3988func (s EBSOptions) GoString() string {
3989	return s.String()
3990}
3991
3992// SetEBSEnabled sets the EBSEnabled field's value.
3993func (s *EBSOptions) SetEBSEnabled(v bool) *EBSOptions {
3994	s.EBSEnabled = &v
3995	return s
3996}
3997
3998// SetIops sets the Iops field's value.
3999func (s *EBSOptions) SetIops(v int64) *EBSOptions {
4000	s.Iops = &v
4001	return s
4002}
4003
4004// SetVolumeSize sets the VolumeSize field's value.
4005func (s *EBSOptions) SetVolumeSize(v int64) *EBSOptions {
4006	s.VolumeSize = &v
4007	return s
4008}
4009
4010// SetVolumeType sets the VolumeType field's value.
4011func (s *EBSOptions) SetVolumeType(v string) *EBSOptions {
4012	s.VolumeType = &v
4013	return s
4014}
4015
4016// Status of the EBS options for the specified Elasticsearch domain.
4017type EBSOptionsStatus struct {
4018	_ struct{} `type:"structure"`
4019
4020	// Specifies the EBS options for the specified Elasticsearch domain.
4021	//
4022	// Options is a required field
4023	Options *EBSOptions `type:"structure" required:"true"`
4024
4025	// Specifies the status of the EBS options for the specified Elasticsearch domain.
4026	//
4027	// Status is a required field
4028	Status *OptionStatus `type:"structure" required:"true"`
4029}
4030
4031// String returns the string representation
4032func (s EBSOptionsStatus) String() string {
4033	return awsutil.Prettify(s)
4034}
4035
4036// GoString returns the string representation
4037func (s EBSOptionsStatus) GoString() string {
4038	return s.String()
4039}
4040
4041// SetOptions sets the Options field's value.
4042func (s *EBSOptionsStatus) SetOptions(v *EBSOptions) *EBSOptionsStatus {
4043	s.Options = v
4044	return s
4045}
4046
4047// SetStatus sets the Status field's value.
4048func (s *EBSOptionsStatus) SetStatus(v *OptionStatus) *EBSOptionsStatus {
4049	s.Status = v
4050	return s
4051}
4052
4053// Specifies the configuration for the domain cluster, such as the type and
4054// number of instances.
4055type ElasticsearchClusterConfig struct {
4056	_ struct{} `type:"structure"`
4057
4058	// Total number of dedicated master nodes, active and on standby, for the cluster.
4059	DedicatedMasterCount *int64 `type:"integer"`
4060
4061	// A boolean value to indicate whether a dedicated master node is enabled. See
4062	// About Dedicated Master Nodes (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-dedicatedmasternodes)
4063	// for more information.
4064	DedicatedMasterEnabled *bool `type:"boolean"`
4065
4066	// The instance type for a dedicated master node.
4067	DedicatedMasterType *string `type:"string" enum:"ESPartitionInstanceType"`
4068
4069	// The number of instances in the specified domain cluster.
4070	InstanceCount *int64 `type:"integer"`
4071
4072	// The instance type for an Elasticsearch cluster. UltraWarm instance types
4073	// are not supported for data instances.
4074	InstanceType *string `type:"string" enum:"ESPartitionInstanceType"`
4075
4076	// The number of warm nodes in the cluster.
4077	WarmCount *int64 `type:"integer"`
4078
4079	// True to enable warm storage.
4080	WarmEnabled *bool `type:"boolean"`
4081
4082	// The instance type for the Elasticsearch cluster's warm nodes.
4083	WarmType *string `type:"string" enum:"ESWarmPartitionInstanceType"`
4084
4085	// Specifies the zone awareness configuration for a domain when zone awareness
4086	// is enabled.
4087	ZoneAwarenessConfig *ZoneAwarenessConfig `type:"structure"`
4088
4089	// A boolean value to indicate whether zone awareness is enabled. See About
4090	// Zone Awareness (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-zoneawareness)
4091	// for more information.
4092	ZoneAwarenessEnabled *bool `type:"boolean"`
4093}
4094
4095// String returns the string representation
4096func (s ElasticsearchClusterConfig) String() string {
4097	return awsutil.Prettify(s)
4098}
4099
4100// GoString returns the string representation
4101func (s ElasticsearchClusterConfig) GoString() string {
4102	return s.String()
4103}
4104
4105// SetDedicatedMasterCount sets the DedicatedMasterCount field's value.
4106func (s *ElasticsearchClusterConfig) SetDedicatedMasterCount(v int64) *ElasticsearchClusterConfig {
4107	s.DedicatedMasterCount = &v
4108	return s
4109}
4110
4111// SetDedicatedMasterEnabled sets the DedicatedMasterEnabled field's value.
4112func (s *ElasticsearchClusterConfig) SetDedicatedMasterEnabled(v bool) *ElasticsearchClusterConfig {
4113	s.DedicatedMasterEnabled = &v
4114	return s
4115}
4116
4117// SetDedicatedMasterType sets the DedicatedMasterType field's value.
4118func (s *ElasticsearchClusterConfig) SetDedicatedMasterType(v string) *ElasticsearchClusterConfig {
4119	s.DedicatedMasterType = &v
4120	return s
4121}
4122
4123// SetInstanceCount sets the InstanceCount field's value.
4124func (s *ElasticsearchClusterConfig) SetInstanceCount(v int64) *ElasticsearchClusterConfig {
4125	s.InstanceCount = &v
4126	return s
4127}
4128
4129// SetInstanceType sets the InstanceType field's value.
4130func (s *ElasticsearchClusterConfig) SetInstanceType(v string) *ElasticsearchClusterConfig {
4131	s.InstanceType = &v
4132	return s
4133}
4134
4135// SetWarmCount sets the WarmCount field's value.
4136func (s *ElasticsearchClusterConfig) SetWarmCount(v int64) *ElasticsearchClusterConfig {
4137	s.WarmCount = &v
4138	return s
4139}
4140
4141// SetWarmEnabled sets the WarmEnabled field's value.
4142func (s *ElasticsearchClusterConfig) SetWarmEnabled(v bool) *ElasticsearchClusterConfig {
4143	s.WarmEnabled = &v
4144	return s
4145}
4146
4147// SetWarmType sets the WarmType field's value.
4148func (s *ElasticsearchClusterConfig) SetWarmType(v string) *ElasticsearchClusterConfig {
4149	s.WarmType = &v
4150	return s
4151}
4152
4153// SetZoneAwarenessConfig sets the ZoneAwarenessConfig field's value.
4154func (s *ElasticsearchClusterConfig) SetZoneAwarenessConfig(v *ZoneAwarenessConfig) *ElasticsearchClusterConfig {
4155	s.ZoneAwarenessConfig = v
4156	return s
4157}
4158
4159// SetZoneAwarenessEnabled sets the ZoneAwarenessEnabled field's value.
4160func (s *ElasticsearchClusterConfig) SetZoneAwarenessEnabled(v bool) *ElasticsearchClusterConfig {
4161	s.ZoneAwarenessEnabled = &v
4162	return s
4163}
4164
4165// Specifies the configuration status for the specified Elasticsearch domain.
4166type ElasticsearchClusterConfigStatus struct {
4167	_ struct{} `type:"structure"`
4168
4169	// Specifies the cluster configuration for the specified Elasticsearch domain.
4170	//
4171	// Options is a required field
4172	Options *ElasticsearchClusterConfig `type:"structure" required:"true"`
4173
4174	// Specifies the status of the configuration for the specified Elasticsearch
4175	// domain.
4176	//
4177	// Status is a required field
4178	Status *OptionStatus `type:"structure" required:"true"`
4179}
4180
4181// String returns the string representation
4182func (s ElasticsearchClusterConfigStatus) String() string {
4183	return awsutil.Prettify(s)
4184}
4185
4186// GoString returns the string representation
4187func (s ElasticsearchClusterConfigStatus) GoString() string {
4188	return s.String()
4189}
4190
4191// SetOptions sets the Options field's value.
4192func (s *ElasticsearchClusterConfigStatus) SetOptions(v *ElasticsearchClusterConfig) *ElasticsearchClusterConfigStatus {
4193	s.Options = v
4194	return s
4195}
4196
4197// SetStatus sets the Status field's value.
4198func (s *ElasticsearchClusterConfigStatus) SetStatus(v *OptionStatus) *ElasticsearchClusterConfigStatus {
4199	s.Status = v
4200	return s
4201}
4202
4203// The configuration of an Elasticsearch domain.
4204type ElasticsearchDomainConfig struct {
4205	_ struct{} `type:"structure"`
4206
4207	// IAM access policy as a JSON-formatted string.
4208	AccessPolicies *AccessPoliciesStatus `type:"structure"`
4209
4210	// Specifies the AdvancedOptions for the domain. See Configuring Advanced Options
4211	// (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options)
4212	// for more information.
4213	AdvancedOptions *AdvancedOptionsStatus `type:"structure"`
4214
4215	// Specifies AdvancedSecurityOptions for the domain.
4216	AdvancedSecurityOptions *AdvancedSecurityOptionsStatus `type:"structure"`
4217
4218	// The CognitoOptions for the specified domain. For more information, see Amazon
4219	// Cognito Authentication for Kibana (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html).
4220	CognitoOptions *CognitoOptionsStatus `type:"structure"`
4221
4222	// Specifies the DomainEndpointOptions for the Elasticsearch domain.
4223	DomainEndpointOptions *DomainEndpointOptionsStatus `type:"structure"`
4224
4225	// Specifies the EBSOptions for the Elasticsearch domain.
4226	EBSOptions *EBSOptionsStatus `type:"structure"`
4227
4228	// Specifies the ElasticsearchClusterConfig for the Elasticsearch domain.
4229	ElasticsearchClusterConfig *ElasticsearchClusterConfigStatus `type:"structure"`
4230
4231	// String of format X.Y to specify version for the Elasticsearch domain.
4232	ElasticsearchVersion *ElasticsearchVersionStatus `type:"structure"`
4233
4234	// Specifies the EncryptionAtRestOptions for the Elasticsearch domain.
4235	EncryptionAtRestOptions *EncryptionAtRestOptionsStatus `type:"structure"`
4236
4237	// Log publishing options for the given domain.
4238	LogPublishingOptions *LogPublishingOptionsStatus `type:"structure"`
4239
4240	// Specifies the NodeToNodeEncryptionOptions for the Elasticsearch domain.
4241	NodeToNodeEncryptionOptions *NodeToNodeEncryptionOptionsStatus `type:"structure"`
4242
4243	// Specifies the SnapshotOptions for the Elasticsearch domain.
4244	SnapshotOptions *SnapshotOptionsStatus `type:"structure"`
4245
4246	// The VPCOptions for the specified domain. For more information, see VPC Endpoints
4247	// for Amazon Elasticsearch Service Domains (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html).
4248	VPCOptions *VPCDerivedInfoStatus `type:"structure"`
4249}
4250
4251// String returns the string representation
4252func (s ElasticsearchDomainConfig) String() string {
4253	return awsutil.Prettify(s)
4254}
4255
4256// GoString returns the string representation
4257func (s ElasticsearchDomainConfig) GoString() string {
4258	return s.String()
4259}
4260
4261// SetAccessPolicies sets the AccessPolicies field's value.
4262func (s *ElasticsearchDomainConfig) SetAccessPolicies(v *AccessPoliciesStatus) *ElasticsearchDomainConfig {
4263	s.AccessPolicies = v
4264	return s
4265}
4266
4267// SetAdvancedOptions sets the AdvancedOptions field's value.
4268func (s *ElasticsearchDomainConfig) SetAdvancedOptions(v *AdvancedOptionsStatus) *ElasticsearchDomainConfig {
4269	s.AdvancedOptions = v
4270	return s
4271}
4272
4273// SetAdvancedSecurityOptions sets the AdvancedSecurityOptions field's value.
4274func (s *ElasticsearchDomainConfig) SetAdvancedSecurityOptions(v *AdvancedSecurityOptionsStatus) *ElasticsearchDomainConfig {
4275	s.AdvancedSecurityOptions = v
4276	return s
4277}
4278
4279// SetCognitoOptions sets the CognitoOptions field's value.
4280func (s *ElasticsearchDomainConfig) SetCognitoOptions(v *CognitoOptionsStatus) *ElasticsearchDomainConfig {
4281	s.CognitoOptions = v
4282	return s
4283}
4284
4285// SetDomainEndpointOptions sets the DomainEndpointOptions field's value.
4286func (s *ElasticsearchDomainConfig) SetDomainEndpointOptions(v *DomainEndpointOptionsStatus) *ElasticsearchDomainConfig {
4287	s.DomainEndpointOptions = v
4288	return s
4289}
4290
4291// SetEBSOptions sets the EBSOptions field's value.
4292func (s *ElasticsearchDomainConfig) SetEBSOptions(v *EBSOptionsStatus) *ElasticsearchDomainConfig {
4293	s.EBSOptions = v
4294	return s
4295}
4296
4297// SetElasticsearchClusterConfig sets the ElasticsearchClusterConfig field's value.
4298func (s *ElasticsearchDomainConfig) SetElasticsearchClusterConfig(v *ElasticsearchClusterConfigStatus) *ElasticsearchDomainConfig {
4299	s.ElasticsearchClusterConfig = v
4300	return s
4301}
4302
4303// SetElasticsearchVersion sets the ElasticsearchVersion field's value.
4304func (s *ElasticsearchDomainConfig) SetElasticsearchVersion(v *ElasticsearchVersionStatus) *ElasticsearchDomainConfig {
4305	s.ElasticsearchVersion = v
4306	return s
4307}
4308
4309// SetEncryptionAtRestOptions sets the EncryptionAtRestOptions field's value.
4310func (s *ElasticsearchDomainConfig) SetEncryptionAtRestOptions(v *EncryptionAtRestOptionsStatus) *ElasticsearchDomainConfig {
4311	s.EncryptionAtRestOptions = v
4312	return s
4313}
4314
4315// SetLogPublishingOptions sets the LogPublishingOptions field's value.
4316func (s *ElasticsearchDomainConfig) SetLogPublishingOptions(v *LogPublishingOptionsStatus) *ElasticsearchDomainConfig {
4317	s.LogPublishingOptions = v
4318	return s
4319}
4320
4321// SetNodeToNodeEncryptionOptions sets the NodeToNodeEncryptionOptions field's value.
4322func (s *ElasticsearchDomainConfig) SetNodeToNodeEncryptionOptions(v *NodeToNodeEncryptionOptionsStatus) *ElasticsearchDomainConfig {
4323	s.NodeToNodeEncryptionOptions = v
4324	return s
4325}
4326
4327// SetSnapshotOptions sets the SnapshotOptions field's value.
4328func (s *ElasticsearchDomainConfig) SetSnapshotOptions(v *SnapshotOptionsStatus) *ElasticsearchDomainConfig {
4329	s.SnapshotOptions = v
4330	return s
4331}
4332
4333// SetVPCOptions sets the VPCOptions field's value.
4334func (s *ElasticsearchDomainConfig) SetVPCOptions(v *VPCDerivedInfoStatus) *ElasticsearchDomainConfig {
4335	s.VPCOptions = v
4336	return s
4337}
4338
4339// The current status of an Elasticsearch domain.
4340type ElasticsearchDomainStatus struct {
4341	_ struct{} `type:"structure"`
4342
4343	// The Amazon resource name (ARN) of an Elasticsearch domain. See Identifiers
4344	// for IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html)
4345	// in Using AWS Identity and Access Management for more information.
4346	//
4347	// ARN is a required field
4348	ARN *string `type:"string" required:"true"`
4349
4350	// IAM access policy as a JSON-formatted string.
4351	AccessPolicies *string `type:"string"`
4352
4353	// Specifies the status of the AdvancedOptions
4354	AdvancedOptions map[string]*string `type:"map"`
4355
4356	// The current status of the Elasticsearch domain's advanced security options.
4357	AdvancedSecurityOptions *AdvancedSecurityOptions `type:"structure"`
4358
4359	// The CognitoOptions for the specified domain. For more information, see Amazon
4360	// Cognito Authentication for Kibana (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html).
4361	CognitoOptions *CognitoOptions `type:"structure"`
4362
4363	// The domain creation status. True if the creation of an Elasticsearch domain
4364	// is complete. False if domain creation is still in progress.
4365	Created *bool `type:"boolean"`
4366
4367	// The domain deletion status. True if a delete request has been received for
4368	// the domain but resource cleanup is still in progress. False if the domain
4369	// has not been deleted. Once domain deletion is complete, the status of the
4370	// domain is no longer returned.
4371	Deleted *bool `type:"boolean"`
4372
4373	// The current status of the Elasticsearch domain's endpoint options.
4374	DomainEndpointOptions *DomainEndpointOptions `type:"structure"`
4375
4376	// The unique identifier for the specified Elasticsearch domain.
4377	//
4378	// DomainId is a required field
4379	DomainId *string `min:"1" type:"string" required:"true"`
4380
4381	// The name of an Elasticsearch domain. Domain names are unique across the domains
4382	// owned by an account within an AWS region. Domain names start with a letter
4383	// or number and can contain the following characters: a-z (lowercase), 0-9,
4384	// and - (hyphen).
4385	//
4386	// DomainName is a required field
4387	DomainName *string `min:"3" type:"string" required:"true"`
4388
4389	// The EBSOptions for the specified domain. See Configuring EBS-based Storage
4390	// (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs)
4391	// for more information.
4392	EBSOptions *EBSOptions `type:"structure"`
4393
4394	// The type and number of instances in the domain cluster.
4395	//
4396	// ElasticsearchClusterConfig is a required field
4397	ElasticsearchClusterConfig *ElasticsearchClusterConfig `type:"structure" required:"true"`
4398
4399	ElasticsearchVersion *string `type:"string"`
4400
4401	// Specifies the status of the EncryptionAtRestOptions.
4402	EncryptionAtRestOptions *EncryptionAtRestOptions `type:"structure"`
4403
4404	// The Elasticsearch domain endpoint that you use to submit index and search
4405	// requests.
4406	Endpoint *string `type:"string"`
4407
4408	// Map containing the Elasticsearch domain endpoints used to submit index and
4409	// search requests. Example key, value: 'vpc','vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'.
4410	Endpoints map[string]*string `type:"map"`
4411
4412	// Log publishing options for the given domain.
4413	LogPublishingOptions map[string]*LogPublishingOption `type:"map"`
4414
4415	// Specifies the status of the NodeToNodeEncryptionOptions.
4416	NodeToNodeEncryptionOptions *NodeToNodeEncryptionOptions `type:"structure"`
4417
4418	// The status of the Elasticsearch domain configuration. True if Amazon Elasticsearch
4419	// Service is processing configuration changes. False if the configuration is
4420	// active.
4421	Processing *bool `type:"boolean"`
4422
4423	// The current status of the Elasticsearch domain's service software.
4424	ServiceSoftwareOptions *ServiceSoftwareOptions `type:"structure"`
4425
4426	// Specifies the status of the SnapshotOptions
4427	SnapshotOptions *SnapshotOptions `type:"structure"`
4428
4429	// The status of an Elasticsearch domain version upgrade. True if Amazon Elasticsearch
4430	// Service is undergoing a version upgrade. False if the configuration is active.
4431	UpgradeProcessing *bool `type:"boolean"`
4432
4433	// The VPCOptions for the specified domain. For more information, see VPC Endpoints
4434	// for Amazon Elasticsearch Service Domains (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html).
4435	VPCOptions *VPCDerivedInfo `type:"structure"`
4436}
4437
4438// String returns the string representation
4439func (s ElasticsearchDomainStatus) String() string {
4440	return awsutil.Prettify(s)
4441}
4442
4443// GoString returns the string representation
4444func (s ElasticsearchDomainStatus) GoString() string {
4445	return s.String()
4446}
4447
4448// SetARN sets the ARN field's value.
4449func (s *ElasticsearchDomainStatus) SetARN(v string) *ElasticsearchDomainStatus {
4450	s.ARN = &v
4451	return s
4452}
4453
4454// SetAccessPolicies sets the AccessPolicies field's value.
4455func (s *ElasticsearchDomainStatus) SetAccessPolicies(v string) *ElasticsearchDomainStatus {
4456	s.AccessPolicies = &v
4457	return s
4458}
4459
4460// SetAdvancedOptions sets the AdvancedOptions field's value.
4461func (s *ElasticsearchDomainStatus) SetAdvancedOptions(v map[string]*string) *ElasticsearchDomainStatus {
4462	s.AdvancedOptions = v
4463	return s
4464}
4465
4466// SetAdvancedSecurityOptions sets the AdvancedSecurityOptions field's value.
4467func (s *ElasticsearchDomainStatus) SetAdvancedSecurityOptions(v *AdvancedSecurityOptions) *ElasticsearchDomainStatus {
4468	s.AdvancedSecurityOptions = v
4469	return s
4470}
4471
4472// SetCognitoOptions sets the CognitoOptions field's value.
4473func (s *ElasticsearchDomainStatus) SetCognitoOptions(v *CognitoOptions) *ElasticsearchDomainStatus {
4474	s.CognitoOptions = v
4475	return s
4476}
4477
4478// SetCreated sets the Created field's value.
4479func (s *ElasticsearchDomainStatus) SetCreated(v bool) *ElasticsearchDomainStatus {
4480	s.Created = &v
4481	return s
4482}
4483
4484// SetDeleted sets the Deleted field's value.
4485func (s *ElasticsearchDomainStatus) SetDeleted(v bool) *ElasticsearchDomainStatus {
4486	s.Deleted = &v
4487	return s
4488}
4489
4490// SetDomainEndpointOptions sets the DomainEndpointOptions field's value.
4491func (s *ElasticsearchDomainStatus) SetDomainEndpointOptions(v *DomainEndpointOptions) *ElasticsearchDomainStatus {
4492	s.DomainEndpointOptions = v
4493	return s
4494}
4495
4496// SetDomainId sets the DomainId field's value.
4497func (s *ElasticsearchDomainStatus) SetDomainId(v string) *ElasticsearchDomainStatus {
4498	s.DomainId = &v
4499	return s
4500}
4501
4502// SetDomainName sets the DomainName field's value.
4503func (s *ElasticsearchDomainStatus) SetDomainName(v string) *ElasticsearchDomainStatus {
4504	s.DomainName = &v
4505	return s
4506}
4507
4508// SetEBSOptions sets the EBSOptions field's value.
4509func (s *ElasticsearchDomainStatus) SetEBSOptions(v *EBSOptions) *ElasticsearchDomainStatus {
4510	s.EBSOptions = v
4511	return s
4512}
4513
4514// SetElasticsearchClusterConfig sets the ElasticsearchClusterConfig field's value.
4515func (s *ElasticsearchDomainStatus) SetElasticsearchClusterConfig(v *ElasticsearchClusterConfig) *ElasticsearchDomainStatus {
4516	s.ElasticsearchClusterConfig = v
4517	return s
4518}
4519
4520// SetElasticsearchVersion sets the ElasticsearchVersion field's value.
4521func (s *ElasticsearchDomainStatus) SetElasticsearchVersion(v string) *ElasticsearchDomainStatus {
4522	s.ElasticsearchVersion = &v
4523	return s
4524}
4525
4526// SetEncryptionAtRestOptions sets the EncryptionAtRestOptions field's value.
4527func (s *ElasticsearchDomainStatus) SetEncryptionAtRestOptions(v *EncryptionAtRestOptions) *ElasticsearchDomainStatus {
4528	s.EncryptionAtRestOptions = v
4529	return s
4530}
4531
4532// SetEndpoint sets the Endpoint field's value.
4533func (s *ElasticsearchDomainStatus) SetEndpoint(v string) *ElasticsearchDomainStatus {
4534	s.Endpoint = &v
4535	return s
4536}
4537
4538// SetEndpoints sets the Endpoints field's value.
4539func (s *ElasticsearchDomainStatus) SetEndpoints(v map[string]*string) *ElasticsearchDomainStatus {
4540	s.Endpoints = v
4541	return s
4542}
4543
4544// SetLogPublishingOptions sets the LogPublishingOptions field's value.
4545func (s *ElasticsearchDomainStatus) SetLogPublishingOptions(v map[string]*LogPublishingOption) *ElasticsearchDomainStatus {
4546	s.LogPublishingOptions = v
4547	return s
4548}
4549
4550// SetNodeToNodeEncryptionOptions sets the NodeToNodeEncryptionOptions field's value.
4551func (s *ElasticsearchDomainStatus) SetNodeToNodeEncryptionOptions(v *NodeToNodeEncryptionOptions) *ElasticsearchDomainStatus {
4552	s.NodeToNodeEncryptionOptions = v
4553	return s
4554}
4555
4556// SetProcessing sets the Processing field's value.
4557func (s *ElasticsearchDomainStatus) SetProcessing(v bool) *ElasticsearchDomainStatus {
4558	s.Processing = &v
4559	return s
4560}
4561
4562// SetServiceSoftwareOptions sets the ServiceSoftwareOptions field's value.
4563func (s *ElasticsearchDomainStatus) SetServiceSoftwareOptions(v *ServiceSoftwareOptions) *ElasticsearchDomainStatus {
4564	s.ServiceSoftwareOptions = v
4565	return s
4566}
4567
4568// SetSnapshotOptions sets the SnapshotOptions field's value.
4569func (s *ElasticsearchDomainStatus) SetSnapshotOptions(v *SnapshotOptions) *ElasticsearchDomainStatus {
4570	s.SnapshotOptions = v
4571	return s
4572}
4573
4574// SetUpgradeProcessing sets the UpgradeProcessing field's value.
4575func (s *ElasticsearchDomainStatus) SetUpgradeProcessing(v bool) *ElasticsearchDomainStatus {
4576	s.UpgradeProcessing = &v
4577	return s
4578}
4579
4580// SetVPCOptions sets the VPCOptions field's value.
4581func (s *ElasticsearchDomainStatus) SetVPCOptions(v *VPCDerivedInfo) *ElasticsearchDomainStatus {
4582	s.VPCOptions = v
4583	return s
4584}
4585
4586// Status of the Elasticsearch version options for the specified Elasticsearch
4587// domain.
4588type ElasticsearchVersionStatus struct {
4589	_ struct{} `type:"structure"`
4590
4591	// Specifies the Elasticsearch version for the specified Elasticsearch domain.
4592	//
4593	// Options is a required field
4594	Options *string `type:"string" required:"true"`
4595
4596	// Specifies the status of the Elasticsearch version options for the specified
4597	// Elasticsearch domain.
4598	//
4599	// Status is a required field
4600	Status *OptionStatus `type:"structure" required:"true"`
4601}
4602
4603// String returns the string representation
4604func (s ElasticsearchVersionStatus) String() string {
4605	return awsutil.Prettify(s)
4606}
4607
4608// GoString returns the string representation
4609func (s ElasticsearchVersionStatus) GoString() string {
4610	return s.String()
4611}
4612
4613// SetOptions sets the Options field's value.
4614func (s *ElasticsearchVersionStatus) SetOptions(v string) *ElasticsearchVersionStatus {
4615	s.Options = &v
4616	return s
4617}
4618
4619// SetStatus sets the Status field's value.
4620func (s *ElasticsearchVersionStatus) SetStatus(v *OptionStatus) *ElasticsearchVersionStatus {
4621	s.Status = v
4622	return s
4623}
4624
4625// Specifies the Encryption At Rest Options.
4626type EncryptionAtRestOptions struct {
4627	_ struct{} `type:"structure"`
4628
4629	// Specifies the option to enable Encryption At Rest.
4630	Enabled *bool `type:"boolean"`
4631
4632	// Specifies the KMS Key ID for Encryption At Rest options.
4633	KmsKeyId *string `min:"1" type:"string"`
4634}
4635
4636// String returns the string representation
4637func (s EncryptionAtRestOptions) String() string {
4638	return awsutil.Prettify(s)
4639}
4640
4641// GoString returns the string representation
4642func (s EncryptionAtRestOptions) GoString() string {
4643	return s.String()
4644}
4645
4646// Validate inspects the fields of the type to determine if they are valid.
4647func (s *EncryptionAtRestOptions) Validate() error {
4648	invalidParams := request.ErrInvalidParams{Context: "EncryptionAtRestOptions"}
4649	if s.KmsKeyId != nil && len(*s.KmsKeyId) < 1 {
4650		invalidParams.Add(request.NewErrParamMinLen("KmsKeyId", 1))
4651	}
4652
4653	if invalidParams.Len() > 0 {
4654		return invalidParams
4655	}
4656	return nil
4657}
4658
4659// SetEnabled sets the Enabled field's value.
4660func (s *EncryptionAtRestOptions) SetEnabled(v bool) *EncryptionAtRestOptions {
4661	s.Enabled = &v
4662	return s
4663}
4664
4665// SetKmsKeyId sets the KmsKeyId field's value.
4666func (s *EncryptionAtRestOptions) SetKmsKeyId(v string) *EncryptionAtRestOptions {
4667	s.KmsKeyId = &v
4668	return s
4669}
4670
4671// Status of the Encryption At Rest options for the specified Elasticsearch
4672// domain.
4673type EncryptionAtRestOptionsStatus struct {
4674	_ struct{} `type:"structure"`
4675
4676	// Specifies the Encryption At Rest options for the specified Elasticsearch
4677	// domain.
4678	//
4679	// Options is a required field
4680	Options *EncryptionAtRestOptions `type:"structure" required:"true"`
4681
4682	// Specifies the status of the Encryption At Rest options for the specified
4683	// Elasticsearch domain.
4684	//
4685	// Status is a required field
4686	Status *OptionStatus `type:"structure" required:"true"`
4687}
4688
4689// String returns the string representation
4690func (s EncryptionAtRestOptionsStatus) String() string {
4691	return awsutil.Prettify(s)
4692}
4693
4694// GoString returns the string representation
4695func (s EncryptionAtRestOptionsStatus) GoString() string {
4696	return s.String()
4697}
4698
4699// SetOptions sets the Options field's value.
4700func (s *EncryptionAtRestOptionsStatus) SetOptions(v *EncryptionAtRestOptions) *EncryptionAtRestOptionsStatus {
4701	s.Options = v
4702	return s
4703}
4704
4705// SetStatus sets the Status field's value.
4706func (s *EncryptionAtRestOptionsStatus) SetStatus(v *OptionStatus) *EncryptionAtRestOptionsStatus {
4707	s.Status = v
4708	return s
4709}
4710
4711// Container for request parameters to GetCompatibleElasticsearchVersions operation.
4712type GetCompatibleElasticsearchVersionsInput struct {
4713	_ struct{} `type:"structure"`
4714
4715	// The name of an Elasticsearch domain. Domain names are unique across the domains
4716	// owned by an account within an AWS region. Domain names start with a letter
4717	// or number and can contain the following characters: a-z (lowercase), 0-9,
4718	// and - (hyphen).
4719	DomainName *string `location:"querystring" locationName:"domainName" min:"3" type:"string"`
4720}
4721
4722// String returns the string representation
4723func (s GetCompatibleElasticsearchVersionsInput) String() string {
4724	return awsutil.Prettify(s)
4725}
4726
4727// GoString returns the string representation
4728func (s GetCompatibleElasticsearchVersionsInput) GoString() string {
4729	return s.String()
4730}
4731
4732// Validate inspects the fields of the type to determine if they are valid.
4733func (s *GetCompatibleElasticsearchVersionsInput) Validate() error {
4734	invalidParams := request.ErrInvalidParams{Context: "GetCompatibleElasticsearchVersionsInput"}
4735	if s.DomainName != nil && len(*s.DomainName) < 3 {
4736		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
4737	}
4738
4739	if invalidParams.Len() > 0 {
4740		return invalidParams
4741	}
4742	return nil
4743}
4744
4745// SetDomainName sets the DomainName field's value.
4746func (s *GetCompatibleElasticsearchVersionsInput) SetDomainName(v string) *GetCompatibleElasticsearchVersionsInput {
4747	s.DomainName = &v
4748	return s
4749}
4750
4751// Container for response returned by GetCompatibleElasticsearchVersions operation.
4752type GetCompatibleElasticsearchVersionsOutput struct {
4753	_ struct{} `type:"structure"`
4754
4755	// A map of compatible Elasticsearch versions returned as part of the GetCompatibleElasticsearchVersions
4756	// operation.
4757	CompatibleElasticsearchVersions []*CompatibleVersionsMap `type:"list"`
4758}
4759
4760// String returns the string representation
4761func (s GetCompatibleElasticsearchVersionsOutput) String() string {
4762	return awsutil.Prettify(s)
4763}
4764
4765// GoString returns the string representation
4766func (s GetCompatibleElasticsearchVersionsOutput) GoString() string {
4767	return s.String()
4768}
4769
4770// SetCompatibleElasticsearchVersions sets the CompatibleElasticsearchVersions field's value.
4771func (s *GetCompatibleElasticsearchVersionsOutput) SetCompatibleElasticsearchVersions(v []*CompatibleVersionsMap) *GetCompatibleElasticsearchVersionsOutput {
4772	s.CompatibleElasticsearchVersions = v
4773	return s
4774}
4775
4776// Container for request parameters to GetUpgradeHistory operation.
4777type GetUpgradeHistoryInput struct {
4778	_ struct{} `type:"structure"`
4779
4780	// The name of an Elasticsearch domain. Domain names are unique across the domains
4781	// owned by an account within an AWS region. Domain names start with a letter
4782	// or number and can contain the following characters: a-z (lowercase), 0-9,
4783	// and - (hyphen).
4784	//
4785	// DomainName is a required field
4786	DomainName *string `location:"uri" locationName:"DomainName" min:"3" type:"string" required:"true"`
4787
4788	// Set this value to limit the number of results returned.
4789	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
4790
4791	// Paginated APIs accepts NextToken input to returns next page results and provides
4792	// a NextToken output in the response which can be used by the client to retrieve
4793	// more results.
4794	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
4795}
4796
4797// String returns the string representation
4798func (s GetUpgradeHistoryInput) String() string {
4799	return awsutil.Prettify(s)
4800}
4801
4802// GoString returns the string representation
4803func (s GetUpgradeHistoryInput) GoString() string {
4804	return s.String()
4805}
4806
4807// Validate inspects the fields of the type to determine if they are valid.
4808func (s *GetUpgradeHistoryInput) Validate() error {
4809	invalidParams := request.ErrInvalidParams{Context: "GetUpgradeHistoryInput"}
4810	if s.DomainName == nil {
4811		invalidParams.Add(request.NewErrParamRequired("DomainName"))
4812	}
4813	if s.DomainName != nil && len(*s.DomainName) < 3 {
4814		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
4815	}
4816
4817	if invalidParams.Len() > 0 {
4818		return invalidParams
4819	}
4820	return nil
4821}
4822
4823// SetDomainName sets the DomainName field's value.
4824func (s *GetUpgradeHistoryInput) SetDomainName(v string) *GetUpgradeHistoryInput {
4825	s.DomainName = &v
4826	return s
4827}
4828
4829// SetMaxResults sets the MaxResults field's value.
4830func (s *GetUpgradeHistoryInput) SetMaxResults(v int64) *GetUpgradeHistoryInput {
4831	s.MaxResults = &v
4832	return s
4833}
4834
4835// SetNextToken sets the NextToken field's value.
4836func (s *GetUpgradeHistoryInput) SetNextToken(v string) *GetUpgradeHistoryInput {
4837	s.NextToken = &v
4838	return s
4839}
4840
4841// Container for response returned by GetUpgradeHistory operation.
4842type GetUpgradeHistoryOutput struct {
4843	_ struct{} `type:"structure"`
4844
4845	// Pagination token that needs to be supplied to the next call to get the next
4846	// page of results
4847	NextToken *string `type:"string"`
4848
4849	// A list of UpgradeHistory objects corresponding to each Upgrade or Upgrade
4850	// Eligibility Check performed on a domain returned as part of GetUpgradeHistoryResponse
4851	// object.
4852	UpgradeHistories []*UpgradeHistory `type:"list"`
4853}
4854
4855// String returns the string representation
4856func (s GetUpgradeHistoryOutput) String() string {
4857	return awsutil.Prettify(s)
4858}
4859
4860// GoString returns the string representation
4861func (s GetUpgradeHistoryOutput) GoString() string {
4862	return s.String()
4863}
4864
4865// SetNextToken sets the NextToken field's value.
4866func (s *GetUpgradeHistoryOutput) SetNextToken(v string) *GetUpgradeHistoryOutput {
4867	s.NextToken = &v
4868	return s
4869}
4870
4871// SetUpgradeHistories sets the UpgradeHistories field's value.
4872func (s *GetUpgradeHistoryOutput) SetUpgradeHistories(v []*UpgradeHistory) *GetUpgradeHistoryOutput {
4873	s.UpgradeHistories = v
4874	return s
4875}
4876
4877// Container for request parameters to GetUpgradeStatus operation.
4878type GetUpgradeStatusInput struct {
4879	_ struct{} `type:"structure"`
4880
4881	// The name of an Elasticsearch domain. Domain names are unique across the domains
4882	// owned by an account within an AWS region. Domain names start with a letter
4883	// or number and can contain the following characters: a-z (lowercase), 0-9,
4884	// and - (hyphen).
4885	//
4886	// DomainName is a required field
4887	DomainName *string `location:"uri" locationName:"DomainName" min:"3" type:"string" required:"true"`
4888}
4889
4890// String returns the string representation
4891func (s GetUpgradeStatusInput) String() string {
4892	return awsutil.Prettify(s)
4893}
4894
4895// GoString returns the string representation
4896func (s GetUpgradeStatusInput) GoString() string {
4897	return s.String()
4898}
4899
4900// Validate inspects the fields of the type to determine if they are valid.
4901func (s *GetUpgradeStatusInput) Validate() error {
4902	invalidParams := request.ErrInvalidParams{Context: "GetUpgradeStatusInput"}
4903	if s.DomainName == nil {
4904		invalidParams.Add(request.NewErrParamRequired("DomainName"))
4905	}
4906	if s.DomainName != nil && len(*s.DomainName) < 3 {
4907		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
4908	}
4909
4910	if invalidParams.Len() > 0 {
4911		return invalidParams
4912	}
4913	return nil
4914}
4915
4916// SetDomainName sets the DomainName field's value.
4917func (s *GetUpgradeStatusInput) SetDomainName(v string) *GetUpgradeStatusInput {
4918	s.DomainName = &v
4919	return s
4920}
4921
4922// Container for response returned by GetUpgradeStatus operation.
4923type GetUpgradeStatusOutput struct {
4924	_ struct{} `type:"structure"`
4925
4926	// One of 4 statuses that a step can go through returned as part of the GetUpgradeStatusResponse
4927	// object. The status can take one of the following values:
4928	//    * In Progress
4929	//
4930	//    * Succeeded
4931	//
4932	//    * Succeeded with Issues
4933	//
4934	//    * Failed
4935	StepStatus *string `type:"string" enum:"UpgradeStatus"`
4936
4937	// A string that describes the update briefly
4938	UpgradeName *string `type:"string"`
4939
4940	// Represents one of 3 steps that an Upgrade or Upgrade Eligibility Check does
4941	// through:
4942	//    * PreUpgradeCheck
4943	//
4944	//    * Snapshot
4945	//
4946	//    * Upgrade
4947	UpgradeStep *string `type:"string" enum:"UpgradeStep"`
4948}
4949
4950// String returns the string representation
4951func (s GetUpgradeStatusOutput) String() string {
4952	return awsutil.Prettify(s)
4953}
4954
4955// GoString returns the string representation
4956func (s GetUpgradeStatusOutput) GoString() string {
4957	return s.String()
4958}
4959
4960// SetStepStatus sets the StepStatus field's value.
4961func (s *GetUpgradeStatusOutput) SetStepStatus(v string) *GetUpgradeStatusOutput {
4962	s.StepStatus = &v
4963	return s
4964}
4965
4966// SetUpgradeName sets the UpgradeName field's value.
4967func (s *GetUpgradeStatusOutput) SetUpgradeName(v string) *GetUpgradeStatusOutput {
4968	s.UpgradeName = &v
4969	return s
4970}
4971
4972// SetUpgradeStep sets the UpgradeStep field's value.
4973func (s *GetUpgradeStatusOutput) SetUpgradeStep(v string) *GetUpgradeStatusOutput {
4974	s.UpgradeStep = &v
4975	return s
4976}
4977
4978// InstanceCountLimits represents the limits on number of instances that be
4979// created in Amazon Elasticsearch for given InstanceType.
4980type InstanceCountLimits struct {
4981	_ struct{} `type:"structure"`
4982
4983	// Maximum number of Instances that can be instantiated for given InstanceType.
4984	MaximumInstanceCount *int64 `type:"integer"`
4985
4986	// Minimum number of Instances that can be instantiated for given InstanceType.
4987	MinimumInstanceCount *int64 `type:"integer"`
4988}
4989
4990// String returns the string representation
4991func (s InstanceCountLimits) String() string {
4992	return awsutil.Prettify(s)
4993}
4994
4995// GoString returns the string representation
4996func (s InstanceCountLimits) GoString() string {
4997	return s.String()
4998}
4999
5000// SetMaximumInstanceCount sets the MaximumInstanceCount field's value.
5001func (s *InstanceCountLimits) SetMaximumInstanceCount(v int64) *InstanceCountLimits {
5002	s.MaximumInstanceCount = &v
5003	return s
5004}
5005
5006// SetMinimumInstanceCount sets the MinimumInstanceCount field's value.
5007func (s *InstanceCountLimits) SetMinimumInstanceCount(v int64) *InstanceCountLimits {
5008	s.MinimumInstanceCount = &v
5009	return s
5010}
5011
5012// InstanceLimits represents the list of instance related attributes that are
5013// available for given InstanceType.
5014type InstanceLimits struct {
5015	_ struct{} `type:"structure"`
5016
5017	// InstanceCountLimits represents the limits on number of instances that be
5018	// created in Amazon Elasticsearch for given InstanceType.
5019	InstanceCountLimits *InstanceCountLimits `type:"structure"`
5020}
5021
5022// String returns the string representation
5023func (s InstanceLimits) String() string {
5024	return awsutil.Prettify(s)
5025}
5026
5027// GoString returns the string representation
5028func (s InstanceLimits) GoString() string {
5029	return s.String()
5030}
5031
5032// SetInstanceCountLimits sets the InstanceCountLimits field's value.
5033func (s *InstanceLimits) SetInstanceCountLimits(v *InstanceCountLimits) *InstanceLimits {
5034	s.InstanceCountLimits = v
5035	return s
5036}
5037
5038// The request processing has failed because of an unknown error, exception
5039// or failure (the failure is internal to the service) . Gives http status code
5040// of 500.
5041type InternalException struct {
5042	_            struct{} `type:"structure"`
5043	respMetadata protocol.ResponseMetadata
5044
5045	Message_ *string `locationName:"message" type:"string"`
5046}
5047
5048// String returns the string representation
5049func (s InternalException) String() string {
5050	return awsutil.Prettify(s)
5051}
5052
5053// GoString returns the string representation
5054func (s InternalException) GoString() string {
5055	return s.String()
5056}
5057
5058func newErrorInternalException(v protocol.ResponseMetadata) error {
5059	return &InternalException{
5060		respMetadata: v,
5061	}
5062}
5063
5064// Code returns the exception type name.
5065func (s InternalException) Code() string {
5066	return "InternalException"
5067}
5068
5069// Message returns the exception's message.
5070func (s InternalException) Message() string {
5071	if s.Message_ != nil {
5072		return *s.Message_
5073	}
5074	return ""
5075}
5076
5077// OrigErr always returns nil, satisfies awserr.Error interface.
5078func (s InternalException) OrigErr() error {
5079	return nil
5080}
5081
5082func (s InternalException) Error() string {
5083	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5084}
5085
5086// Status code returns the HTTP status code for the request's response error.
5087func (s InternalException) StatusCode() int {
5088	return s.respMetadata.StatusCode
5089}
5090
5091// RequestID returns the service's response RequestID for request.
5092func (s InternalException) RequestID() string {
5093	return s.respMetadata.RequestID
5094}
5095
5096// An exception for trying to create or access sub-resource that is either invalid
5097// or not supported. Gives http status code of 409.
5098type InvalidTypeException struct {
5099	_            struct{} `type:"structure"`
5100	respMetadata protocol.ResponseMetadata
5101
5102	Message_ *string `locationName:"message" type:"string"`
5103}
5104
5105// String returns the string representation
5106func (s InvalidTypeException) String() string {
5107	return awsutil.Prettify(s)
5108}
5109
5110// GoString returns the string representation
5111func (s InvalidTypeException) GoString() string {
5112	return s.String()
5113}
5114
5115func newErrorInvalidTypeException(v protocol.ResponseMetadata) error {
5116	return &InvalidTypeException{
5117		respMetadata: v,
5118	}
5119}
5120
5121// Code returns the exception type name.
5122func (s InvalidTypeException) Code() string {
5123	return "InvalidTypeException"
5124}
5125
5126// Message returns the exception's message.
5127func (s InvalidTypeException) Message() string {
5128	if s.Message_ != nil {
5129		return *s.Message_
5130	}
5131	return ""
5132}
5133
5134// OrigErr always returns nil, satisfies awserr.Error interface.
5135func (s InvalidTypeException) OrigErr() error {
5136	return nil
5137}
5138
5139func (s InvalidTypeException) Error() string {
5140	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5141}
5142
5143// Status code returns the HTTP status code for the request's response error.
5144func (s InvalidTypeException) StatusCode() int {
5145	return s.respMetadata.StatusCode
5146}
5147
5148// RequestID returns the service's response RequestID for request.
5149func (s InvalidTypeException) RequestID() string {
5150	return s.respMetadata.RequestID
5151}
5152
5153// An exception for trying to create more than allowed resources or sub-resources.
5154// Gives http status code of 409.
5155type LimitExceededException struct {
5156	_            struct{} `type:"structure"`
5157	respMetadata protocol.ResponseMetadata
5158
5159	Message_ *string `locationName:"message" type:"string"`
5160}
5161
5162// String returns the string representation
5163func (s LimitExceededException) String() string {
5164	return awsutil.Prettify(s)
5165}
5166
5167// GoString returns the string representation
5168func (s LimitExceededException) GoString() string {
5169	return s.String()
5170}
5171
5172func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
5173	return &LimitExceededException{
5174		respMetadata: v,
5175	}
5176}
5177
5178// Code returns the exception type name.
5179func (s LimitExceededException) Code() string {
5180	return "LimitExceededException"
5181}
5182
5183// Message returns the exception's message.
5184func (s LimitExceededException) Message() string {
5185	if s.Message_ != nil {
5186		return *s.Message_
5187	}
5188	return ""
5189}
5190
5191// OrigErr always returns nil, satisfies awserr.Error interface.
5192func (s LimitExceededException) OrigErr() error {
5193	return nil
5194}
5195
5196func (s LimitExceededException) Error() string {
5197	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5198}
5199
5200// Status code returns the HTTP status code for the request's response error.
5201func (s LimitExceededException) StatusCode() int {
5202	return s.respMetadata.StatusCode
5203}
5204
5205// RequestID returns the service's response RequestID for request.
5206func (s LimitExceededException) RequestID() string {
5207	return s.respMetadata.RequestID
5208}
5209
5210// Limits for given InstanceType and for each of it's role. Limits contains
5211// following StorageTypes, InstanceLimits and AdditionalLimits
5212type Limits struct {
5213	_ struct{} `type:"structure"`
5214
5215	// List of additional limits that are specific to a given InstanceType and for
5216	// each of it's InstanceRole .
5217	AdditionalLimits []*AdditionalLimit `type:"list"`
5218
5219	// InstanceLimits represents the list of instance related attributes that are
5220	// available for given InstanceType.
5221	InstanceLimits *InstanceLimits `type:"structure"`
5222
5223	// StorageType represents the list of storage related types and attributes that
5224	// are available for given InstanceType.
5225	StorageTypes []*StorageType `type:"list"`
5226}
5227
5228// String returns the string representation
5229func (s Limits) String() string {
5230	return awsutil.Prettify(s)
5231}
5232
5233// GoString returns the string representation
5234func (s Limits) GoString() string {
5235	return s.String()
5236}
5237
5238// SetAdditionalLimits sets the AdditionalLimits field's value.
5239func (s *Limits) SetAdditionalLimits(v []*AdditionalLimit) *Limits {
5240	s.AdditionalLimits = v
5241	return s
5242}
5243
5244// SetInstanceLimits sets the InstanceLimits field's value.
5245func (s *Limits) SetInstanceLimits(v *InstanceLimits) *Limits {
5246	s.InstanceLimits = v
5247	return s
5248}
5249
5250// SetStorageTypes sets the StorageTypes field's value.
5251func (s *Limits) SetStorageTypes(v []*StorageType) *Limits {
5252	s.StorageTypes = v
5253	return s
5254}
5255
5256type ListDomainNamesInput struct {
5257	_ struct{} `type:"structure"`
5258}
5259
5260// String returns the string representation
5261func (s ListDomainNamesInput) String() string {
5262	return awsutil.Prettify(s)
5263}
5264
5265// GoString returns the string representation
5266func (s ListDomainNamesInput) GoString() string {
5267	return s.String()
5268}
5269
5270// The result of a ListDomainNames operation. Contains the names of all Elasticsearch
5271// domains owned by this account.
5272type ListDomainNamesOutput struct {
5273	_ struct{} `type:"structure"`
5274
5275	// List of Elasticsearch domain names.
5276	DomainNames []*DomainInfo `type:"list"`
5277}
5278
5279// String returns the string representation
5280func (s ListDomainNamesOutput) String() string {
5281	return awsutil.Prettify(s)
5282}
5283
5284// GoString returns the string representation
5285func (s ListDomainNamesOutput) GoString() string {
5286	return s.String()
5287}
5288
5289// SetDomainNames sets the DomainNames field's value.
5290func (s *ListDomainNamesOutput) SetDomainNames(v []*DomainInfo) *ListDomainNamesOutput {
5291	s.DomainNames = v
5292	return s
5293}
5294
5295// Container for the parameters to the ListElasticsearchInstanceTypes operation.
5296type ListElasticsearchInstanceTypesInput struct {
5297	_ struct{} `type:"structure"`
5298
5299	// DomainName represents the name of the Domain that we are trying to modify.
5300	// This should be present only if we are querying for list of available Elasticsearch
5301	// instance types when modifying existing domain.
5302	DomainName *string `location:"querystring" locationName:"domainName" min:"3" type:"string"`
5303
5304	// Version of Elasticsearch for which list of supported elasticsearch instance
5305	// types are needed.
5306	//
5307	// ElasticsearchVersion is a required field
5308	ElasticsearchVersion *string `location:"uri" locationName:"ElasticsearchVersion" type:"string" required:"true"`
5309
5310	// Set this value to limit the number of results returned. Value provided must
5311	// be greater than 30 else it wont be honored.
5312	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
5313
5314	// NextToken should be sent in case if earlier API call produced result containing
5315	// NextToken. It is used for pagination.
5316	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
5317}
5318
5319// String returns the string representation
5320func (s ListElasticsearchInstanceTypesInput) String() string {
5321	return awsutil.Prettify(s)
5322}
5323
5324// GoString returns the string representation
5325func (s ListElasticsearchInstanceTypesInput) GoString() string {
5326	return s.String()
5327}
5328
5329// Validate inspects the fields of the type to determine if they are valid.
5330func (s *ListElasticsearchInstanceTypesInput) Validate() error {
5331	invalidParams := request.ErrInvalidParams{Context: "ListElasticsearchInstanceTypesInput"}
5332	if s.DomainName != nil && len(*s.DomainName) < 3 {
5333		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
5334	}
5335	if s.ElasticsearchVersion == nil {
5336		invalidParams.Add(request.NewErrParamRequired("ElasticsearchVersion"))
5337	}
5338	if s.ElasticsearchVersion != nil && len(*s.ElasticsearchVersion) < 1 {
5339		invalidParams.Add(request.NewErrParamMinLen("ElasticsearchVersion", 1))
5340	}
5341
5342	if invalidParams.Len() > 0 {
5343		return invalidParams
5344	}
5345	return nil
5346}
5347
5348// SetDomainName sets the DomainName field's value.
5349func (s *ListElasticsearchInstanceTypesInput) SetDomainName(v string) *ListElasticsearchInstanceTypesInput {
5350	s.DomainName = &v
5351	return s
5352}
5353
5354// SetElasticsearchVersion sets the ElasticsearchVersion field's value.
5355func (s *ListElasticsearchInstanceTypesInput) SetElasticsearchVersion(v string) *ListElasticsearchInstanceTypesInput {
5356	s.ElasticsearchVersion = &v
5357	return s
5358}
5359
5360// SetMaxResults sets the MaxResults field's value.
5361func (s *ListElasticsearchInstanceTypesInput) SetMaxResults(v int64) *ListElasticsearchInstanceTypesInput {
5362	s.MaxResults = &v
5363	return s
5364}
5365
5366// SetNextToken sets the NextToken field's value.
5367func (s *ListElasticsearchInstanceTypesInput) SetNextToken(v string) *ListElasticsearchInstanceTypesInput {
5368	s.NextToken = &v
5369	return s
5370}
5371
5372// Container for the parameters returned by ListElasticsearchInstanceTypes operation.
5373type ListElasticsearchInstanceTypesOutput struct {
5374	_ struct{} `type:"structure"`
5375
5376	// List of instance types supported by Amazon Elasticsearch service for given
5377	// ElasticsearchVersion
5378	ElasticsearchInstanceTypes []*string `type:"list"`
5379
5380	// In case if there are more results available NextToken would be present, make
5381	// further request to the same API with received NextToken to paginate remaining
5382	// results.
5383	NextToken *string `type:"string"`
5384}
5385
5386// String returns the string representation
5387func (s ListElasticsearchInstanceTypesOutput) String() string {
5388	return awsutil.Prettify(s)
5389}
5390
5391// GoString returns the string representation
5392func (s ListElasticsearchInstanceTypesOutput) GoString() string {
5393	return s.String()
5394}
5395
5396// SetElasticsearchInstanceTypes sets the ElasticsearchInstanceTypes field's value.
5397func (s *ListElasticsearchInstanceTypesOutput) SetElasticsearchInstanceTypes(v []*string) *ListElasticsearchInstanceTypesOutput {
5398	s.ElasticsearchInstanceTypes = v
5399	return s
5400}
5401
5402// SetNextToken sets the NextToken field's value.
5403func (s *ListElasticsearchInstanceTypesOutput) SetNextToken(v string) *ListElasticsearchInstanceTypesOutput {
5404	s.NextToken = &v
5405	return s
5406}
5407
5408// Container for the parameters to the ListElasticsearchVersions operation.
5409// Use MaxResults to control the maximum number of results to retrieve in a
5410// single call.
5411//
5412// Use NextToken in response to retrieve more results. If the received response
5413// does not contain a NextToken, then there are no more results to retrieve.
5414type ListElasticsearchVersionsInput struct {
5415	_ struct{} `type:"structure"`
5416
5417	// Set this value to limit the number of results returned. Value provided must
5418	// be greater than 10 else it wont be honored.
5419	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
5420
5421	// Paginated APIs accepts NextToken input to returns next page results and provides
5422	// a NextToken output in the response which can be used by the client to retrieve
5423	// more results.
5424	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
5425}
5426
5427// String returns the string representation
5428func (s ListElasticsearchVersionsInput) String() string {
5429	return awsutil.Prettify(s)
5430}
5431
5432// GoString returns the string representation
5433func (s ListElasticsearchVersionsInput) GoString() string {
5434	return s.String()
5435}
5436
5437// SetMaxResults sets the MaxResults field's value.
5438func (s *ListElasticsearchVersionsInput) SetMaxResults(v int64) *ListElasticsearchVersionsInput {
5439	s.MaxResults = &v
5440	return s
5441}
5442
5443// SetNextToken sets the NextToken field's value.
5444func (s *ListElasticsearchVersionsInput) SetNextToken(v string) *ListElasticsearchVersionsInput {
5445	s.NextToken = &v
5446	return s
5447}
5448
5449// Container for the parameters for response received from ListElasticsearchVersions
5450// operation.
5451type ListElasticsearchVersionsOutput struct {
5452	_ struct{} `type:"structure"`
5453
5454	// List of supported elastic search versions.
5455	ElasticsearchVersions []*string `type:"list"`
5456
5457	// Paginated APIs accepts NextToken input to returns next page results and provides
5458	// a NextToken output in the response which can be used by the client to retrieve
5459	// more results.
5460	NextToken *string `type:"string"`
5461}
5462
5463// String returns the string representation
5464func (s ListElasticsearchVersionsOutput) String() string {
5465	return awsutil.Prettify(s)
5466}
5467
5468// GoString returns the string representation
5469func (s ListElasticsearchVersionsOutput) GoString() string {
5470	return s.String()
5471}
5472
5473// SetElasticsearchVersions sets the ElasticsearchVersions field's value.
5474func (s *ListElasticsearchVersionsOutput) SetElasticsearchVersions(v []*string) *ListElasticsearchVersionsOutput {
5475	s.ElasticsearchVersions = v
5476	return s
5477}
5478
5479// SetNextToken sets the NextToken field's value.
5480func (s *ListElasticsearchVersionsOutput) SetNextToken(v string) *ListElasticsearchVersionsOutput {
5481	s.NextToken = &v
5482	return s
5483}
5484
5485// Container for the parameters to the ListTags operation. Specify the ARN for
5486// the Elasticsearch domain to which the tags are attached that you want to
5487// view are attached.
5488type ListTagsInput struct {
5489	_ struct{} `type:"structure"`
5490
5491	// Specify the ARN for the Elasticsearch domain to which the tags are attached
5492	// that you want to view.
5493	//
5494	// ARN is a required field
5495	ARN *string `location:"querystring" locationName:"arn" type:"string" required:"true"`
5496}
5497
5498// String returns the string representation
5499func (s ListTagsInput) String() string {
5500	return awsutil.Prettify(s)
5501}
5502
5503// GoString returns the string representation
5504func (s ListTagsInput) GoString() string {
5505	return s.String()
5506}
5507
5508// Validate inspects the fields of the type to determine if they are valid.
5509func (s *ListTagsInput) Validate() error {
5510	invalidParams := request.ErrInvalidParams{Context: "ListTagsInput"}
5511	if s.ARN == nil {
5512		invalidParams.Add(request.NewErrParamRequired("ARN"))
5513	}
5514
5515	if invalidParams.Len() > 0 {
5516		return invalidParams
5517	}
5518	return nil
5519}
5520
5521// SetARN sets the ARN field's value.
5522func (s *ListTagsInput) SetARN(v string) *ListTagsInput {
5523	s.ARN = &v
5524	return s
5525}
5526
5527// The result of a ListTags operation. Contains tags for all requested Elasticsearch
5528// domains.
5529type ListTagsOutput struct {
5530	_ struct{} `type:"structure"`
5531
5532	// List of Tag for the requested Elasticsearch domain.
5533	TagList []*Tag `type:"list"`
5534}
5535
5536// String returns the string representation
5537func (s ListTagsOutput) String() string {
5538	return awsutil.Prettify(s)
5539}
5540
5541// GoString returns the string representation
5542func (s ListTagsOutput) GoString() string {
5543	return s.String()
5544}
5545
5546// SetTagList sets the TagList field's value.
5547func (s *ListTagsOutput) SetTagList(v []*Tag) *ListTagsOutput {
5548	s.TagList = v
5549	return s
5550}
5551
5552// Log Publishing option that is set for given domain. Attributes and their
5553// details:
5554//    * CloudWatchLogsLogGroupArn: ARN of the Cloudwatch log group to which
5555//    log needs to be published.
5556//
5557//    * Enabled: Whether the log publishing for given log type is enabled or
5558//    not
5559type LogPublishingOption struct {
5560	_ struct{} `type:"structure"`
5561
5562	// ARN of the Cloudwatch log group to which log needs to be published.
5563	CloudWatchLogsLogGroupArn *string `type:"string"`
5564
5565	// Specifies whether given log publishing option is enabled or not.
5566	Enabled *bool `type:"boolean"`
5567}
5568
5569// String returns the string representation
5570func (s LogPublishingOption) String() string {
5571	return awsutil.Prettify(s)
5572}
5573
5574// GoString returns the string representation
5575func (s LogPublishingOption) GoString() string {
5576	return s.String()
5577}
5578
5579// SetCloudWatchLogsLogGroupArn sets the CloudWatchLogsLogGroupArn field's value.
5580func (s *LogPublishingOption) SetCloudWatchLogsLogGroupArn(v string) *LogPublishingOption {
5581	s.CloudWatchLogsLogGroupArn = &v
5582	return s
5583}
5584
5585// SetEnabled sets the Enabled field's value.
5586func (s *LogPublishingOption) SetEnabled(v bool) *LogPublishingOption {
5587	s.Enabled = &v
5588	return s
5589}
5590
5591// The configured log publishing options for the domain and their current status.
5592type LogPublishingOptionsStatus struct {
5593	_ struct{} `type:"structure"`
5594
5595	// The log publishing options configured for the Elasticsearch domain.
5596	Options map[string]*LogPublishingOption `type:"map"`
5597
5598	// The status of the log publishing options for the Elasticsearch domain. See
5599	// OptionStatus for the status information that's included.
5600	Status *OptionStatus `type:"structure"`
5601}
5602
5603// String returns the string representation
5604func (s LogPublishingOptionsStatus) String() string {
5605	return awsutil.Prettify(s)
5606}
5607
5608// GoString returns the string representation
5609func (s LogPublishingOptionsStatus) GoString() string {
5610	return s.String()
5611}
5612
5613// SetOptions sets the Options field's value.
5614func (s *LogPublishingOptionsStatus) SetOptions(v map[string]*LogPublishingOption) *LogPublishingOptionsStatus {
5615	s.Options = v
5616	return s
5617}
5618
5619// SetStatus sets the Status field's value.
5620func (s *LogPublishingOptionsStatus) SetStatus(v *OptionStatus) *LogPublishingOptionsStatus {
5621	s.Status = v
5622	return s
5623}
5624
5625// Credentials for the master user: username and password, ARN, or both.
5626type MasterUserOptions struct {
5627	_ struct{} `type:"structure"`
5628
5629	// ARN for the master user (if IAM is enabled).
5630	MasterUserARN *string `type:"string"`
5631
5632	// The master user's username, which is stored in the Amazon Elasticsearch Service
5633	// domain's internal database.
5634	MasterUserName *string `min:"1" type:"string" sensitive:"true"`
5635
5636	// The master user's password, which is stored in the Amazon Elasticsearch Service
5637	// domain's internal database.
5638	MasterUserPassword *string `min:"8" type:"string" sensitive:"true"`
5639}
5640
5641// String returns the string representation
5642func (s MasterUserOptions) String() string {
5643	return awsutil.Prettify(s)
5644}
5645
5646// GoString returns the string representation
5647func (s MasterUserOptions) GoString() string {
5648	return s.String()
5649}
5650
5651// Validate inspects the fields of the type to determine if they are valid.
5652func (s *MasterUserOptions) Validate() error {
5653	invalidParams := request.ErrInvalidParams{Context: "MasterUserOptions"}
5654	if s.MasterUserName != nil && len(*s.MasterUserName) < 1 {
5655		invalidParams.Add(request.NewErrParamMinLen("MasterUserName", 1))
5656	}
5657	if s.MasterUserPassword != nil && len(*s.MasterUserPassword) < 8 {
5658		invalidParams.Add(request.NewErrParamMinLen("MasterUserPassword", 8))
5659	}
5660
5661	if invalidParams.Len() > 0 {
5662		return invalidParams
5663	}
5664	return nil
5665}
5666
5667// SetMasterUserARN sets the MasterUserARN field's value.
5668func (s *MasterUserOptions) SetMasterUserARN(v string) *MasterUserOptions {
5669	s.MasterUserARN = &v
5670	return s
5671}
5672
5673// SetMasterUserName sets the MasterUserName field's value.
5674func (s *MasterUserOptions) SetMasterUserName(v string) *MasterUserOptions {
5675	s.MasterUserName = &v
5676	return s
5677}
5678
5679// SetMasterUserPassword sets the MasterUserPassword field's value.
5680func (s *MasterUserOptions) SetMasterUserPassword(v string) *MasterUserOptions {
5681	s.MasterUserPassword = &v
5682	return s
5683}
5684
5685// Specifies the node-to-node encryption options.
5686type NodeToNodeEncryptionOptions struct {
5687	_ struct{} `type:"structure"`
5688
5689	// Specify true to enable node-to-node encryption.
5690	Enabled *bool `type:"boolean"`
5691}
5692
5693// String returns the string representation
5694func (s NodeToNodeEncryptionOptions) String() string {
5695	return awsutil.Prettify(s)
5696}
5697
5698// GoString returns the string representation
5699func (s NodeToNodeEncryptionOptions) GoString() string {
5700	return s.String()
5701}
5702
5703// SetEnabled sets the Enabled field's value.
5704func (s *NodeToNodeEncryptionOptions) SetEnabled(v bool) *NodeToNodeEncryptionOptions {
5705	s.Enabled = &v
5706	return s
5707}
5708
5709// Status of the node-to-node encryption options for the specified Elasticsearch
5710// domain.
5711type NodeToNodeEncryptionOptionsStatus struct {
5712	_ struct{} `type:"structure"`
5713
5714	// Specifies the node-to-node encryption options for the specified Elasticsearch
5715	// domain.
5716	//
5717	// Options is a required field
5718	Options *NodeToNodeEncryptionOptions `type:"structure" required:"true"`
5719
5720	// Specifies the status of the node-to-node encryption options for the specified
5721	// Elasticsearch domain.
5722	//
5723	// Status is a required field
5724	Status *OptionStatus `type:"structure" required:"true"`
5725}
5726
5727// String returns the string representation
5728func (s NodeToNodeEncryptionOptionsStatus) String() string {
5729	return awsutil.Prettify(s)
5730}
5731
5732// GoString returns the string representation
5733func (s NodeToNodeEncryptionOptionsStatus) GoString() string {
5734	return s.String()
5735}
5736
5737// SetOptions sets the Options field's value.
5738func (s *NodeToNodeEncryptionOptionsStatus) SetOptions(v *NodeToNodeEncryptionOptions) *NodeToNodeEncryptionOptionsStatus {
5739	s.Options = v
5740	return s
5741}
5742
5743// SetStatus sets the Status field's value.
5744func (s *NodeToNodeEncryptionOptionsStatus) SetStatus(v *OptionStatus) *NodeToNodeEncryptionOptionsStatus {
5745	s.Status = v
5746	return s
5747}
5748
5749// Provides the current status of the entity.
5750type OptionStatus struct {
5751	_ struct{} `type:"structure"`
5752
5753	// Timestamp which tells the creation date for the entity.
5754	//
5755	// CreationDate is a required field
5756	CreationDate *time.Time `type:"timestamp" required:"true"`
5757
5758	// Indicates whether the Elasticsearch domain is being deleted.
5759	PendingDeletion *bool `type:"boolean"`
5760
5761	// Provides the OptionState for the Elasticsearch domain.
5762	//
5763	// State is a required field
5764	State *string `type:"string" required:"true" enum:"OptionState"`
5765
5766	// Timestamp which tells the last updated time for the entity.
5767	//
5768	// UpdateDate is a required field
5769	UpdateDate *time.Time `type:"timestamp" required:"true"`
5770
5771	// Specifies the latest version for the entity.
5772	UpdateVersion *int64 `type:"integer"`
5773}
5774
5775// String returns the string representation
5776func (s OptionStatus) String() string {
5777	return awsutil.Prettify(s)
5778}
5779
5780// GoString returns the string representation
5781func (s OptionStatus) GoString() string {
5782	return s.String()
5783}
5784
5785// SetCreationDate sets the CreationDate field's value.
5786func (s *OptionStatus) SetCreationDate(v time.Time) *OptionStatus {
5787	s.CreationDate = &v
5788	return s
5789}
5790
5791// SetPendingDeletion sets the PendingDeletion field's value.
5792func (s *OptionStatus) SetPendingDeletion(v bool) *OptionStatus {
5793	s.PendingDeletion = &v
5794	return s
5795}
5796
5797// SetState sets the State field's value.
5798func (s *OptionStatus) SetState(v string) *OptionStatus {
5799	s.State = &v
5800	return s
5801}
5802
5803// SetUpdateDate sets the UpdateDate field's value.
5804func (s *OptionStatus) SetUpdateDate(v time.Time) *OptionStatus {
5805	s.UpdateDate = &v
5806	return s
5807}
5808
5809// SetUpdateVersion sets the UpdateVersion field's value.
5810func (s *OptionStatus) SetUpdateVersion(v int64) *OptionStatus {
5811	s.UpdateVersion = &v
5812	return s
5813}
5814
5815// Container for parameters to PurchaseReservedElasticsearchInstanceOffering
5816type PurchaseReservedElasticsearchInstanceOfferingInput struct {
5817	_ struct{} `type:"structure"`
5818
5819	// The number of Elasticsearch instances to reserve.
5820	InstanceCount *int64 `min:"1" type:"integer"`
5821
5822	// A customer-specified identifier to track this reservation.
5823	//
5824	// ReservationName is a required field
5825	ReservationName *string `min:"5" type:"string" required:"true"`
5826
5827	// The ID of the reserved Elasticsearch instance offering to purchase.
5828	//
5829	// ReservedElasticsearchInstanceOfferingId is a required field
5830	ReservedElasticsearchInstanceOfferingId *string `type:"string" required:"true"`
5831}
5832
5833// String returns the string representation
5834func (s PurchaseReservedElasticsearchInstanceOfferingInput) String() string {
5835	return awsutil.Prettify(s)
5836}
5837
5838// GoString returns the string representation
5839func (s PurchaseReservedElasticsearchInstanceOfferingInput) GoString() string {
5840	return s.String()
5841}
5842
5843// Validate inspects the fields of the type to determine if they are valid.
5844func (s *PurchaseReservedElasticsearchInstanceOfferingInput) Validate() error {
5845	invalidParams := request.ErrInvalidParams{Context: "PurchaseReservedElasticsearchInstanceOfferingInput"}
5846	if s.InstanceCount != nil && *s.InstanceCount < 1 {
5847		invalidParams.Add(request.NewErrParamMinValue("InstanceCount", 1))
5848	}
5849	if s.ReservationName == nil {
5850		invalidParams.Add(request.NewErrParamRequired("ReservationName"))
5851	}
5852	if s.ReservationName != nil && len(*s.ReservationName) < 5 {
5853		invalidParams.Add(request.NewErrParamMinLen("ReservationName", 5))
5854	}
5855	if s.ReservedElasticsearchInstanceOfferingId == nil {
5856		invalidParams.Add(request.NewErrParamRequired("ReservedElasticsearchInstanceOfferingId"))
5857	}
5858
5859	if invalidParams.Len() > 0 {
5860		return invalidParams
5861	}
5862	return nil
5863}
5864
5865// SetInstanceCount sets the InstanceCount field's value.
5866func (s *PurchaseReservedElasticsearchInstanceOfferingInput) SetInstanceCount(v int64) *PurchaseReservedElasticsearchInstanceOfferingInput {
5867	s.InstanceCount = &v
5868	return s
5869}
5870
5871// SetReservationName sets the ReservationName field's value.
5872func (s *PurchaseReservedElasticsearchInstanceOfferingInput) SetReservationName(v string) *PurchaseReservedElasticsearchInstanceOfferingInput {
5873	s.ReservationName = &v
5874	return s
5875}
5876
5877// SetReservedElasticsearchInstanceOfferingId sets the ReservedElasticsearchInstanceOfferingId field's value.
5878func (s *PurchaseReservedElasticsearchInstanceOfferingInput) SetReservedElasticsearchInstanceOfferingId(v string) *PurchaseReservedElasticsearchInstanceOfferingInput {
5879	s.ReservedElasticsearchInstanceOfferingId = &v
5880	return s
5881}
5882
5883// Represents the output of a PurchaseReservedElasticsearchInstanceOffering
5884// operation.
5885type PurchaseReservedElasticsearchInstanceOfferingOutput struct {
5886	_ struct{} `type:"structure"`
5887
5888	// The customer-specified identifier used to track this reservation.
5889	ReservationName *string `min:"5" type:"string"`
5890
5891	// Details of the reserved Elasticsearch instance which was purchased.
5892	ReservedElasticsearchInstanceId *string `type:"string"`
5893}
5894
5895// String returns the string representation
5896func (s PurchaseReservedElasticsearchInstanceOfferingOutput) String() string {
5897	return awsutil.Prettify(s)
5898}
5899
5900// GoString returns the string representation
5901func (s PurchaseReservedElasticsearchInstanceOfferingOutput) GoString() string {
5902	return s.String()
5903}
5904
5905// SetReservationName sets the ReservationName field's value.
5906func (s *PurchaseReservedElasticsearchInstanceOfferingOutput) SetReservationName(v string) *PurchaseReservedElasticsearchInstanceOfferingOutput {
5907	s.ReservationName = &v
5908	return s
5909}
5910
5911// SetReservedElasticsearchInstanceId sets the ReservedElasticsearchInstanceId field's value.
5912func (s *PurchaseReservedElasticsearchInstanceOfferingOutput) SetReservedElasticsearchInstanceId(v string) *PurchaseReservedElasticsearchInstanceOfferingOutput {
5913	s.ReservedElasticsearchInstanceId = &v
5914	return s
5915}
5916
5917// Contains the specific price and frequency of a recurring charges for a reserved
5918// Elasticsearch instance, or for a reserved Elasticsearch instance offering.
5919type RecurringCharge struct {
5920	_ struct{} `type:"structure"`
5921
5922	// The monetary amount of the recurring charge.
5923	RecurringChargeAmount *float64 `type:"double"`
5924
5925	// The frequency of the recurring charge.
5926	RecurringChargeFrequency *string `type:"string"`
5927}
5928
5929// String returns the string representation
5930func (s RecurringCharge) String() string {
5931	return awsutil.Prettify(s)
5932}
5933
5934// GoString returns the string representation
5935func (s RecurringCharge) GoString() string {
5936	return s.String()
5937}
5938
5939// SetRecurringChargeAmount sets the RecurringChargeAmount field's value.
5940func (s *RecurringCharge) SetRecurringChargeAmount(v float64) *RecurringCharge {
5941	s.RecurringChargeAmount = &v
5942	return s
5943}
5944
5945// SetRecurringChargeFrequency sets the RecurringChargeFrequency field's value.
5946func (s *RecurringCharge) SetRecurringChargeFrequency(v string) *RecurringCharge {
5947	s.RecurringChargeFrequency = &v
5948	return s
5949}
5950
5951// Container for the parameters to the RemoveTags operation. Specify the ARN
5952// for the Elasticsearch domain from which you want to remove the specified
5953// TagKey.
5954type RemoveTagsInput struct {
5955	_ struct{} `type:"structure"`
5956
5957	// Specifies the ARN for the Elasticsearch domain from which you want to delete
5958	// the specified tags.
5959	//
5960	// ARN is a required field
5961	ARN *string `type:"string" required:"true"`
5962
5963	// Specifies the TagKey list which you want to remove from the Elasticsearch
5964	// domain.
5965	//
5966	// TagKeys is a required field
5967	TagKeys []*string `type:"list" required:"true"`
5968}
5969
5970// String returns the string representation
5971func (s RemoveTagsInput) String() string {
5972	return awsutil.Prettify(s)
5973}
5974
5975// GoString returns the string representation
5976func (s RemoveTagsInput) GoString() string {
5977	return s.String()
5978}
5979
5980// Validate inspects the fields of the type to determine if they are valid.
5981func (s *RemoveTagsInput) Validate() error {
5982	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsInput"}
5983	if s.ARN == nil {
5984		invalidParams.Add(request.NewErrParamRequired("ARN"))
5985	}
5986	if s.TagKeys == nil {
5987		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
5988	}
5989
5990	if invalidParams.Len() > 0 {
5991		return invalidParams
5992	}
5993	return nil
5994}
5995
5996// SetARN sets the ARN field's value.
5997func (s *RemoveTagsInput) SetARN(v string) *RemoveTagsInput {
5998	s.ARN = &v
5999	return s
6000}
6001
6002// SetTagKeys sets the TagKeys field's value.
6003func (s *RemoveTagsInput) SetTagKeys(v []*string) *RemoveTagsInput {
6004	s.TagKeys = v
6005	return s
6006}
6007
6008type RemoveTagsOutput struct {
6009	_ struct{} `type:"structure"`
6010}
6011
6012// String returns the string representation
6013func (s RemoveTagsOutput) String() string {
6014	return awsutil.Prettify(s)
6015}
6016
6017// GoString returns the string representation
6018func (s RemoveTagsOutput) GoString() string {
6019	return s.String()
6020}
6021
6022// Details of a reserved Elasticsearch instance.
6023type ReservedElasticsearchInstance struct {
6024	_ struct{} `type:"structure"`
6025
6026	// The currency code for the reserved Elasticsearch instance offering.
6027	CurrencyCode *string `type:"string"`
6028
6029	// The duration, in seconds, for which the Elasticsearch instance is reserved.
6030	Duration *int64 `type:"integer"`
6031
6032	// The number of Elasticsearch instances that have been reserved.
6033	ElasticsearchInstanceCount *int64 `type:"integer"`
6034
6035	// The Elasticsearch instance type offered by the reserved instance offering.
6036	ElasticsearchInstanceType *string `type:"string" enum:"ESPartitionInstanceType"`
6037
6038	// The upfront fixed charge you will paid to purchase the specific reserved
6039	// Elasticsearch instance offering.
6040	FixedPrice *float64 `type:"double"`
6041
6042	// The payment option as defined in the reserved Elasticsearch instance offering.
6043	PaymentOption *string `type:"string" enum:"ReservedElasticsearchInstancePaymentOption"`
6044
6045	// The charge to your account regardless of whether you are creating any domains
6046	// using the instance offering.
6047	RecurringCharges []*RecurringCharge `type:"list"`
6048
6049	// The customer-specified identifier to track this reservation.
6050	ReservationName *string `min:"5" type:"string"`
6051
6052	// The unique identifier for the reservation.
6053	ReservedElasticsearchInstanceId *string `type:"string"`
6054
6055	// The offering identifier.
6056	ReservedElasticsearchInstanceOfferingId *string `type:"string"`
6057
6058	// The time the reservation started.
6059	StartTime *time.Time `type:"timestamp"`
6060
6061	// The state of the reserved Elasticsearch instance.
6062	State *string `type:"string"`
6063
6064	// The rate you are charged for each hour for the domain that is using this
6065	// reserved instance.
6066	UsagePrice *float64 `type:"double"`
6067}
6068
6069// String returns the string representation
6070func (s ReservedElasticsearchInstance) String() string {
6071	return awsutil.Prettify(s)
6072}
6073
6074// GoString returns the string representation
6075func (s ReservedElasticsearchInstance) GoString() string {
6076	return s.String()
6077}
6078
6079// SetCurrencyCode sets the CurrencyCode field's value.
6080func (s *ReservedElasticsearchInstance) SetCurrencyCode(v string) *ReservedElasticsearchInstance {
6081	s.CurrencyCode = &v
6082	return s
6083}
6084
6085// SetDuration sets the Duration field's value.
6086func (s *ReservedElasticsearchInstance) SetDuration(v int64) *ReservedElasticsearchInstance {
6087	s.Duration = &v
6088	return s
6089}
6090
6091// SetElasticsearchInstanceCount sets the ElasticsearchInstanceCount field's value.
6092func (s *ReservedElasticsearchInstance) SetElasticsearchInstanceCount(v int64) *ReservedElasticsearchInstance {
6093	s.ElasticsearchInstanceCount = &v
6094	return s
6095}
6096
6097// SetElasticsearchInstanceType sets the ElasticsearchInstanceType field's value.
6098func (s *ReservedElasticsearchInstance) SetElasticsearchInstanceType(v string) *ReservedElasticsearchInstance {
6099	s.ElasticsearchInstanceType = &v
6100	return s
6101}
6102
6103// SetFixedPrice sets the FixedPrice field's value.
6104func (s *ReservedElasticsearchInstance) SetFixedPrice(v float64) *ReservedElasticsearchInstance {
6105	s.FixedPrice = &v
6106	return s
6107}
6108
6109// SetPaymentOption sets the PaymentOption field's value.
6110func (s *ReservedElasticsearchInstance) SetPaymentOption(v string) *ReservedElasticsearchInstance {
6111	s.PaymentOption = &v
6112	return s
6113}
6114
6115// SetRecurringCharges sets the RecurringCharges field's value.
6116func (s *ReservedElasticsearchInstance) SetRecurringCharges(v []*RecurringCharge) *ReservedElasticsearchInstance {
6117	s.RecurringCharges = v
6118	return s
6119}
6120
6121// SetReservationName sets the ReservationName field's value.
6122func (s *ReservedElasticsearchInstance) SetReservationName(v string) *ReservedElasticsearchInstance {
6123	s.ReservationName = &v
6124	return s
6125}
6126
6127// SetReservedElasticsearchInstanceId sets the ReservedElasticsearchInstanceId field's value.
6128func (s *ReservedElasticsearchInstance) SetReservedElasticsearchInstanceId(v string) *ReservedElasticsearchInstance {
6129	s.ReservedElasticsearchInstanceId = &v
6130	return s
6131}
6132
6133// SetReservedElasticsearchInstanceOfferingId sets the ReservedElasticsearchInstanceOfferingId field's value.
6134func (s *ReservedElasticsearchInstance) SetReservedElasticsearchInstanceOfferingId(v string) *ReservedElasticsearchInstance {
6135	s.ReservedElasticsearchInstanceOfferingId = &v
6136	return s
6137}
6138
6139// SetStartTime sets the StartTime field's value.
6140func (s *ReservedElasticsearchInstance) SetStartTime(v time.Time) *ReservedElasticsearchInstance {
6141	s.StartTime = &v
6142	return s
6143}
6144
6145// SetState sets the State field's value.
6146func (s *ReservedElasticsearchInstance) SetState(v string) *ReservedElasticsearchInstance {
6147	s.State = &v
6148	return s
6149}
6150
6151// SetUsagePrice sets the UsagePrice field's value.
6152func (s *ReservedElasticsearchInstance) SetUsagePrice(v float64) *ReservedElasticsearchInstance {
6153	s.UsagePrice = &v
6154	return s
6155}
6156
6157// Details of a reserved Elasticsearch instance offering.
6158type ReservedElasticsearchInstanceOffering struct {
6159	_ struct{} `type:"structure"`
6160
6161	// The currency code for the reserved Elasticsearch instance offering.
6162	CurrencyCode *string `type:"string"`
6163
6164	// The duration, in seconds, for which the offering will reserve the Elasticsearch
6165	// instance.
6166	Duration *int64 `type:"integer"`
6167
6168	// The Elasticsearch instance type offered by the reserved instance offering.
6169	ElasticsearchInstanceType *string `type:"string" enum:"ESPartitionInstanceType"`
6170
6171	// The upfront fixed charge you will pay to purchase the specific reserved Elasticsearch
6172	// instance offering.
6173	FixedPrice *float64 `type:"double"`
6174
6175	// Payment option for the reserved Elasticsearch instance offering
6176	PaymentOption *string `type:"string" enum:"ReservedElasticsearchInstancePaymentOption"`
6177
6178	// The charge to your account regardless of whether you are creating any domains
6179	// using the instance offering.
6180	RecurringCharges []*RecurringCharge `type:"list"`
6181
6182	// The Elasticsearch reserved instance offering identifier.
6183	ReservedElasticsearchInstanceOfferingId *string `type:"string"`
6184
6185	// The rate you are charged for each hour the domain that is using the offering
6186	// is running.
6187	UsagePrice *float64 `type:"double"`
6188}
6189
6190// String returns the string representation
6191func (s ReservedElasticsearchInstanceOffering) String() string {
6192	return awsutil.Prettify(s)
6193}
6194
6195// GoString returns the string representation
6196func (s ReservedElasticsearchInstanceOffering) GoString() string {
6197	return s.String()
6198}
6199
6200// SetCurrencyCode sets the CurrencyCode field's value.
6201func (s *ReservedElasticsearchInstanceOffering) SetCurrencyCode(v string) *ReservedElasticsearchInstanceOffering {
6202	s.CurrencyCode = &v
6203	return s
6204}
6205
6206// SetDuration sets the Duration field's value.
6207func (s *ReservedElasticsearchInstanceOffering) SetDuration(v int64) *ReservedElasticsearchInstanceOffering {
6208	s.Duration = &v
6209	return s
6210}
6211
6212// SetElasticsearchInstanceType sets the ElasticsearchInstanceType field's value.
6213func (s *ReservedElasticsearchInstanceOffering) SetElasticsearchInstanceType(v string) *ReservedElasticsearchInstanceOffering {
6214	s.ElasticsearchInstanceType = &v
6215	return s
6216}
6217
6218// SetFixedPrice sets the FixedPrice field's value.
6219func (s *ReservedElasticsearchInstanceOffering) SetFixedPrice(v float64) *ReservedElasticsearchInstanceOffering {
6220	s.FixedPrice = &v
6221	return s
6222}
6223
6224// SetPaymentOption sets the PaymentOption field's value.
6225func (s *ReservedElasticsearchInstanceOffering) SetPaymentOption(v string) *ReservedElasticsearchInstanceOffering {
6226	s.PaymentOption = &v
6227	return s
6228}
6229
6230// SetRecurringCharges sets the RecurringCharges field's value.
6231func (s *ReservedElasticsearchInstanceOffering) SetRecurringCharges(v []*RecurringCharge) *ReservedElasticsearchInstanceOffering {
6232	s.RecurringCharges = v
6233	return s
6234}
6235
6236// SetReservedElasticsearchInstanceOfferingId sets the ReservedElasticsearchInstanceOfferingId field's value.
6237func (s *ReservedElasticsearchInstanceOffering) SetReservedElasticsearchInstanceOfferingId(v string) *ReservedElasticsearchInstanceOffering {
6238	s.ReservedElasticsearchInstanceOfferingId = &v
6239	return s
6240}
6241
6242// SetUsagePrice sets the UsagePrice field's value.
6243func (s *ReservedElasticsearchInstanceOffering) SetUsagePrice(v float64) *ReservedElasticsearchInstanceOffering {
6244	s.UsagePrice = &v
6245	return s
6246}
6247
6248// An exception for creating a resource that already exists. Gives http status
6249// code of 400.
6250type ResourceAlreadyExistsException struct {
6251	_            struct{} `type:"structure"`
6252	respMetadata protocol.ResponseMetadata
6253
6254	Message_ *string `locationName:"message" type:"string"`
6255}
6256
6257// String returns the string representation
6258func (s ResourceAlreadyExistsException) String() string {
6259	return awsutil.Prettify(s)
6260}
6261
6262// GoString returns the string representation
6263func (s ResourceAlreadyExistsException) GoString() string {
6264	return s.String()
6265}
6266
6267func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
6268	return &ResourceAlreadyExistsException{
6269		respMetadata: v,
6270	}
6271}
6272
6273// Code returns the exception type name.
6274func (s ResourceAlreadyExistsException) Code() string {
6275	return "ResourceAlreadyExistsException"
6276}
6277
6278// Message returns the exception's message.
6279func (s ResourceAlreadyExistsException) Message() string {
6280	if s.Message_ != nil {
6281		return *s.Message_
6282	}
6283	return ""
6284}
6285
6286// OrigErr always returns nil, satisfies awserr.Error interface.
6287func (s ResourceAlreadyExistsException) OrigErr() error {
6288	return nil
6289}
6290
6291func (s ResourceAlreadyExistsException) Error() string {
6292	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6293}
6294
6295// Status code returns the HTTP status code for the request's response error.
6296func (s ResourceAlreadyExistsException) StatusCode() int {
6297	return s.respMetadata.StatusCode
6298}
6299
6300// RequestID returns the service's response RequestID for request.
6301func (s ResourceAlreadyExistsException) RequestID() string {
6302	return s.respMetadata.RequestID
6303}
6304
6305// An exception for accessing or deleting a resource that does not exist. Gives
6306// http status code of 400.
6307type ResourceNotFoundException struct {
6308	_            struct{} `type:"structure"`
6309	respMetadata protocol.ResponseMetadata
6310
6311	Message_ *string `locationName:"message" type:"string"`
6312}
6313
6314// String returns the string representation
6315func (s ResourceNotFoundException) String() string {
6316	return awsutil.Prettify(s)
6317}
6318
6319// GoString returns the string representation
6320func (s ResourceNotFoundException) GoString() string {
6321	return s.String()
6322}
6323
6324func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
6325	return &ResourceNotFoundException{
6326		respMetadata: v,
6327	}
6328}
6329
6330// Code returns the exception type name.
6331func (s ResourceNotFoundException) Code() string {
6332	return "ResourceNotFoundException"
6333}
6334
6335// Message returns the exception's message.
6336func (s ResourceNotFoundException) Message() string {
6337	if s.Message_ != nil {
6338		return *s.Message_
6339	}
6340	return ""
6341}
6342
6343// OrigErr always returns nil, satisfies awserr.Error interface.
6344func (s ResourceNotFoundException) OrigErr() error {
6345	return nil
6346}
6347
6348func (s ResourceNotFoundException) Error() string {
6349	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6350}
6351
6352// Status code returns the HTTP status code for the request's response error.
6353func (s ResourceNotFoundException) StatusCode() int {
6354	return s.respMetadata.StatusCode
6355}
6356
6357// RequestID returns the service's response RequestID for request.
6358func (s ResourceNotFoundException) RequestID() string {
6359	return s.respMetadata.RequestID
6360}
6361
6362// The current options of an Elasticsearch domain service software options.
6363type ServiceSoftwareOptions struct {
6364	_ struct{} `type:"structure"`
6365
6366	// Timestamp, in Epoch time, until which you can manually request a service
6367	// software update. After this date, we automatically update your service software.
6368	AutomatedUpdateDate *time.Time `type:"timestamp"`
6369
6370	// True if you are able to cancel your service software version update. False
6371	// if you are not able to cancel your service software version.
6372	Cancellable *bool `type:"boolean"`
6373
6374	// The current service software version that is present on the domain.
6375	CurrentVersion *string `type:"string"`
6376
6377	// The description of the UpdateStatus.
6378	Description *string `type:"string"`
6379
6380	// The new service software version if one is available.
6381	NewVersion *string `type:"string"`
6382
6383	// True if you are able to update you service software version. False if you
6384	// are not able to update your service software version.
6385	UpdateAvailable *bool `type:"boolean"`
6386
6387	// The status of your service software update. This field can take the following
6388	// values: ELIGIBLE, PENDING_UPDATE, IN_PROGRESS, COMPLETED, and NOT_ELIGIBLE.
6389	UpdateStatus *string `type:"string" enum:"DeploymentStatus"`
6390}
6391
6392// String returns the string representation
6393func (s ServiceSoftwareOptions) String() string {
6394	return awsutil.Prettify(s)
6395}
6396
6397// GoString returns the string representation
6398func (s ServiceSoftwareOptions) GoString() string {
6399	return s.String()
6400}
6401
6402// SetAutomatedUpdateDate sets the AutomatedUpdateDate field's value.
6403func (s *ServiceSoftwareOptions) SetAutomatedUpdateDate(v time.Time) *ServiceSoftwareOptions {
6404	s.AutomatedUpdateDate = &v
6405	return s
6406}
6407
6408// SetCancellable sets the Cancellable field's value.
6409func (s *ServiceSoftwareOptions) SetCancellable(v bool) *ServiceSoftwareOptions {
6410	s.Cancellable = &v
6411	return s
6412}
6413
6414// SetCurrentVersion sets the CurrentVersion field's value.
6415func (s *ServiceSoftwareOptions) SetCurrentVersion(v string) *ServiceSoftwareOptions {
6416	s.CurrentVersion = &v
6417	return s
6418}
6419
6420// SetDescription sets the Description field's value.
6421func (s *ServiceSoftwareOptions) SetDescription(v string) *ServiceSoftwareOptions {
6422	s.Description = &v
6423	return s
6424}
6425
6426// SetNewVersion sets the NewVersion field's value.
6427func (s *ServiceSoftwareOptions) SetNewVersion(v string) *ServiceSoftwareOptions {
6428	s.NewVersion = &v
6429	return s
6430}
6431
6432// SetUpdateAvailable sets the UpdateAvailable field's value.
6433func (s *ServiceSoftwareOptions) SetUpdateAvailable(v bool) *ServiceSoftwareOptions {
6434	s.UpdateAvailable = &v
6435	return s
6436}
6437
6438// SetUpdateStatus sets the UpdateStatus field's value.
6439func (s *ServiceSoftwareOptions) SetUpdateStatus(v string) *ServiceSoftwareOptions {
6440	s.UpdateStatus = &v
6441	return s
6442}
6443
6444// Specifies the time, in UTC format, when the service takes a daily automated
6445// snapshot of the specified Elasticsearch domain. Default value is 0 hours.
6446type SnapshotOptions struct {
6447	_ struct{} `type:"structure"`
6448
6449	// Specifies the time, in UTC format, when the service takes a daily automated
6450	// snapshot of the specified Elasticsearch domain. Default value is 0 hours.
6451	AutomatedSnapshotStartHour *int64 `type:"integer"`
6452}
6453
6454// String returns the string representation
6455func (s SnapshotOptions) String() string {
6456	return awsutil.Prettify(s)
6457}
6458
6459// GoString returns the string representation
6460func (s SnapshotOptions) GoString() string {
6461	return s.String()
6462}
6463
6464// SetAutomatedSnapshotStartHour sets the AutomatedSnapshotStartHour field's value.
6465func (s *SnapshotOptions) SetAutomatedSnapshotStartHour(v int64) *SnapshotOptions {
6466	s.AutomatedSnapshotStartHour = &v
6467	return s
6468}
6469
6470// Status of a daily automated snapshot.
6471type SnapshotOptionsStatus struct {
6472	_ struct{} `type:"structure"`
6473
6474	// Specifies the daily snapshot options specified for the Elasticsearch domain.
6475	//
6476	// Options is a required field
6477	Options *SnapshotOptions `type:"structure" required:"true"`
6478
6479	// Specifies the status of a daily automated snapshot.
6480	//
6481	// Status is a required field
6482	Status *OptionStatus `type:"structure" required:"true"`
6483}
6484
6485// String returns the string representation
6486func (s SnapshotOptionsStatus) String() string {
6487	return awsutil.Prettify(s)
6488}
6489
6490// GoString returns the string representation
6491func (s SnapshotOptionsStatus) GoString() string {
6492	return s.String()
6493}
6494
6495// SetOptions sets the Options field's value.
6496func (s *SnapshotOptionsStatus) SetOptions(v *SnapshotOptions) *SnapshotOptionsStatus {
6497	s.Options = v
6498	return s
6499}
6500
6501// SetStatus sets the Status field's value.
6502func (s *SnapshotOptionsStatus) SetStatus(v *OptionStatus) *SnapshotOptionsStatus {
6503	s.Status = v
6504	return s
6505}
6506
6507// Container for the parameters to the StartElasticsearchServiceSoftwareUpdate
6508// operation. Specifies the name of the Elasticsearch domain that you wish to
6509// schedule a service software update on.
6510type StartElasticsearchServiceSoftwareUpdateInput struct {
6511	_ struct{} `type:"structure"`
6512
6513	// The name of the domain that you want to update to the latest service software.
6514	//
6515	// DomainName is a required field
6516	DomainName *string `min:"3" type:"string" required:"true"`
6517}
6518
6519// String returns the string representation
6520func (s StartElasticsearchServiceSoftwareUpdateInput) String() string {
6521	return awsutil.Prettify(s)
6522}
6523
6524// GoString returns the string representation
6525func (s StartElasticsearchServiceSoftwareUpdateInput) GoString() string {
6526	return s.String()
6527}
6528
6529// Validate inspects the fields of the type to determine if they are valid.
6530func (s *StartElasticsearchServiceSoftwareUpdateInput) Validate() error {
6531	invalidParams := request.ErrInvalidParams{Context: "StartElasticsearchServiceSoftwareUpdateInput"}
6532	if s.DomainName == nil {
6533		invalidParams.Add(request.NewErrParamRequired("DomainName"))
6534	}
6535	if s.DomainName != nil && len(*s.DomainName) < 3 {
6536		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
6537	}
6538
6539	if invalidParams.Len() > 0 {
6540		return invalidParams
6541	}
6542	return nil
6543}
6544
6545// SetDomainName sets the DomainName field's value.
6546func (s *StartElasticsearchServiceSoftwareUpdateInput) SetDomainName(v string) *StartElasticsearchServiceSoftwareUpdateInput {
6547	s.DomainName = &v
6548	return s
6549}
6550
6551// The result of a StartElasticsearchServiceSoftwareUpdate operation. Contains
6552// the status of the update.
6553type StartElasticsearchServiceSoftwareUpdateOutput struct {
6554	_ struct{} `type:"structure"`
6555
6556	// The current status of the Elasticsearch service software update.
6557	ServiceSoftwareOptions *ServiceSoftwareOptions `type:"structure"`
6558}
6559
6560// String returns the string representation
6561func (s StartElasticsearchServiceSoftwareUpdateOutput) String() string {
6562	return awsutil.Prettify(s)
6563}
6564
6565// GoString returns the string representation
6566func (s StartElasticsearchServiceSoftwareUpdateOutput) GoString() string {
6567	return s.String()
6568}
6569
6570// SetServiceSoftwareOptions sets the ServiceSoftwareOptions field's value.
6571func (s *StartElasticsearchServiceSoftwareUpdateOutput) SetServiceSoftwareOptions(v *ServiceSoftwareOptions) *StartElasticsearchServiceSoftwareUpdateOutput {
6572	s.ServiceSoftwareOptions = v
6573	return s
6574}
6575
6576// StorageTypes represents the list of storage related types and their attributes
6577// that are available for given InstanceType.
6578type StorageType struct {
6579	_ struct{} `type:"structure"`
6580
6581	// SubType of the given storage type. List of available sub-storage options:
6582	// For "instance" storageType we wont have any storageSubType, in case of "ebs"
6583	// storageType we will have following valid storageSubTypes standard gp2 io1
6584	// Refer VolumeType for more information regarding above EBS storage options.
6585	StorageSubTypeName *string `type:"string"`
6586
6587	// List of limits that are applicable for given storage type.
6588	StorageTypeLimits []*StorageTypeLimit `type:"list"`
6589
6590	// Type of the storage. List of available storage options: instance Inbuilt
6591	// storage available for the given Instance ebs Elastic block storage that would
6592	// be attached to the given Instance
6593	StorageTypeName *string `type:"string"`
6594}
6595
6596// String returns the string representation
6597func (s StorageType) String() string {
6598	return awsutil.Prettify(s)
6599}
6600
6601// GoString returns the string representation
6602func (s StorageType) GoString() string {
6603	return s.String()
6604}
6605
6606// SetStorageSubTypeName sets the StorageSubTypeName field's value.
6607func (s *StorageType) SetStorageSubTypeName(v string) *StorageType {
6608	s.StorageSubTypeName = &v
6609	return s
6610}
6611
6612// SetStorageTypeLimits sets the StorageTypeLimits field's value.
6613func (s *StorageType) SetStorageTypeLimits(v []*StorageTypeLimit) *StorageType {
6614	s.StorageTypeLimits = v
6615	return s
6616}
6617
6618// SetStorageTypeName sets the StorageTypeName field's value.
6619func (s *StorageType) SetStorageTypeName(v string) *StorageType {
6620	s.StorageTypeName = &v
6621	return s
6622}
6623
6624// Limits that are applicable for given storage type.
6625type StorageTypeLimit struct {
6626	_ struct{} `type:"structure"`
6627
6628	// Name of storage limits that are applicable for given storage type. If StorageType
6629	// is ebs, following storage options are applicable MinimumVolumeSize Minimum
6630	// amount of volume size that is applicable for given storage type.It can be
6631	// empty if it is not applicable. MaximumVolumeSize Maximum amount of volume
6632	// size that is applicable for given storage type.It can be empty if it is not
6633	// applicable. MaximumIops Maximum amount of Iops that is applicable for given
6634	// storage type.It can be empty if it is not applicable. MinimumIops Minimum
6635	// amount of Iops that is applicable for given storage type.It can be empty
6636	// if it is not applicable.
6637	LimitName *string `type:"string"`
6638
6639	// Values for the StorageTypeLimit$LimitName .
6640	LimitValues []*string `type:"list"`
6641}
6642
6643// String returns the string representation
6644func (s StorageTypeLimit) String() string {
6645	return awsutil.Prettify(s)
6646}
6647
6648// GoString returns the string representation
6649func (s StorageTypeLimit) GoString() string {
6650	return s.String()
6651}
6652
6653// SetLimitName sets the LimitName field's value.
6654func (s *StorageTypeLimit) SetLimitName(v string) *StorageTypeLimit {
6655	s.LimitName = &v
6656	return s
6657}
6658
6659// SetLimitValues sets the LimitValues field's value.
6660func (s *StorageTypeLimit) SetLimitValues(v []*string) *StorageTypeLimit {
6661	s.LimitValues = v
6662	return s
6663}
6664
6665// Specifies a key value pair for a resource tag.
6666type Tag struct {
6667	_ struct{} `type:"structure"`
6668
6669	// Specifies the TagKey, the name of the tag. Tag keys must be unique for the
6670	// Elasticsearch domain to which they are attached.
6671	//
6672	// Key is a required field
6673	Key *string `min:"1" type:"string" required:"true"`
6674
6675	// Specifies the TagValue, the value assigned to the corresponding tag key.
6676	// Tag values can be null and do not have to be unique in a tag set. For example,
6677	// you can have a key value pair in a tag set of project : Trinity and cost-center
6678	// : Trinity
6679	//
6680	// Value is a required field
6681	Value *string `type:"string" required:"true"`
6682}
6683
6684// String returns the string representation
6685func (s Tag) String() string {
6686	return awsutil.Prettify(s)
6687}
6688
6689// GoString returns the string representation
6690func (s Tag) GoString() string {
6691	return s.String()
6692}
6693
6694// Validate inspects the fields of the type to determine if they are valid.
6695func (s *Tag) Validate() error {
6696	invalidParams := request.ErrInvalidParams{Context: "Tag"}
6697	if s.Key == nil {
6698		invalidParams.Add(request.NewErrParamRequired("Key"))
6699	}
6700	if s.Key != nil && len(*s.Key) < 1 {
6701		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
6702	}
6703	if s.Value == nil {
6704		invalidParams.Add(request.NewErrParamRequired("Value"))
6705	}
6706
6707	if invalidParams.Len() > 0 {
6708		return invalidParams
6709	}
6710	return nil
6711}
6712
6713// SetKey sets the Key field's value.
6714func (s *Tag) SetKey(v string) *Tag {
6715	s.Key = &v
6716	return s
6717}
6718
6719// SetValue sets the Value field's value.
6720func (s *Tag) SetValue(v string) *Tag {
6721	s.Value = &v
6722	return s
6723}
6724
6725// Container for the parameters to the UpdateElasticsearchDomain operation.
6726// Specifies the type and number of instances in the domain cluster.
6727type UpdateElasticsearchDomainConfigInput struct {
6728	_ struct{} `type:"structure"`
6729
6730	// IAM access policy as a JSON-formatted string.
6731	AccessPolicies *string `type:"string"`
6732
6733	// Modifies the advanced option to allow references to indices in an HTTP request
6734	// body. Must be false when configuring access to individual sub-resources.
6735	// 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)
6736	// for more information.
6737	AdvancedOptions map[string]*string `type:"map"`
6738
6739	// Specifies advanced security options.
6740	AdvancedSecurityOptions *AdvancedSecurityOptionsInput `type:"structure"`
6741
6742	// Options to specify the Cognito user and identity pools for Kibana authentication.
6743	// For more information, see Amazon Cognito Authentication for Kibana (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html).
6744	CognitoOptions *CognitoOptions `type:"structure"`
6745
6746	// Options to specify configuration that will be applied to the domain endpoint.
6747	DomainEndpointOptions *DomainEndpointOptions `type:"structure"`
6748
6749	// The name of the Elasticsearch domain that you are updating.
6750	//
6751	// DomainName is a required field
6752	DomainName *string `location:"uri" locationName:"DomainName" min:"3" type:"string" required:"true"`
6753
6754	// Specify the type and size of the EBS volume that you want to use.
6755	EBSOptions *EBSOptions `type:"structure"`
6756
6757	// The type and number of instances to instantiate for the domain cluster.
6758	ElasticsearchClusterConfig *ElasticsearchClusterConfig `type:"structure"`
6759
6760	// Map of LogType and LogPublishingOption, each containing options to publish
6761	// a given type of Elasticsearch log.
6762	LogPublishingOptions map[string]*LogPublishingOption `type:"map"`
6763
6764	// Option to set the time, in UTC format, for the daily automated snapshot.
6765	// Default value is 0 hours.
6766	SnapshotOptions *SnapshotOptions `type:"structure"`
6767
6768	// Options to specify the subnets and security groups for VPC endpoint. For
6769	// more information, see Creating a VPC (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-creating-vpc)
6770	// in VPC Endpoints for Amazon Elasticsearch Service Domains
6771	VPCOptions *VPCOptions `type:"structure"`
6772}
6773
6774// String returns the string representation
6775func (s UpdateElasticsearchDomainConfigInput) String() string {
6776	return awsutil.Prettify(s)
6777}
6778
6779// GoString returns the string representation
6780func (s UpdateElasticsearchDomainConfigInput) GoString() string {
6781	return s.String()
6782}
6783
6784// Validate inspects the fields of the type to determine if they are valid.
6785func (s *UpdateElasticsearchDomainConfigInput) Validate() error {
6786	invalidParams := request.ErrInvalidParams{Context: "UpdateElasticsearchDomainConfigInput"}
6787	if s.DomainName == nil {
6788		invalidParams.Add(request.NewErrParamRequired("DomainName"))
6789	}
6790	if s.DomainName != nil && len(*s.DomainName) < 3 {
6791		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
6792	}
6793	if s.AdvancedSecurityOptions != nil {
6794		if err := s.AdvancedSecurityOptions.Validate(); err != nil {
6795			invalidParams.AddNested("AdvancedSecurityOptions", err.(request.ErrInvalidParams))
6796		}
6797	}
6798	if s.CognitoOptions != nil {
6799		if err := s.CognitoOptions.Validate(); err != nil {
6800			invalidParams.AddNested("CognitoOptions", err.(request.ErrInvalidParams))
6801		}
6802	}
6803
6804	if invalidParams.Len() > 0 {
6805		return invalidParams
6806	}
6807	return nil
6808}
6809
6810// SetAccessPolicies sets the AccessPolicies field's value.
6811func (s *UpdateElasticsearchDomainConfigInput) SetAccessPolicies(v string) *UpdateElasticsearchDomainConfigInput {
6812	s.AccessPolicies = &v
6813	return s
6814}
6815
6816// SetAdvancedOptions sets the AdvancedOptions field's value.
6817func (s *UpdateElasticsearchDomainConfigInput) SetAdvancedOptions(v map[string]*string) *UpdateElasticsearchDomainConfigInput {
6818	s.AdvancedOptions = v
6819	return s
6820}
6821
6822// SetAdvancedSecurityOptions sets the AdvancedSecurityOptions field's value.
6823func (s *UpdateElasticsearchDomainConfigInput) SetAdvancedSecurityOptions(v *AdvancedSecurityOptionsInput) *UpdateElasticsearchDomainConfigInput {
6824	s.AdvancedSecurityOptions = v
6825	return s
6826}
6827
6828// SetCognitoOptions sets the CognitoOptions field's value.
6829func (s *UpdateElasticsearchDomainConfigInput) SetCognitoOptions(v *CognitoOptions) *UpdateElasticsearchDomainConfigInput {
6830	s.CognitoOptions = v
6831	return s
6832}
6833
6834// SetDomainEndpointOptions sets the DomainEndpointOptions field's value.
6835func (s *UpdateElasticsearchDomainConfigInput) SetDomainEndpointOptions(v *DomainEndpointOptions) *UpdateElasticsearchDomainConfigInput {
6836	s.DomainEndpointOptions = v
6837	return s
6838}
6839
6840// SetDomainName sets the DomainName field's value.
6841func (s *UpdateElasticsearchDomainConfigInput) SetDomainName(v string) *UpdateElasticsearchDomainConfigInput {
6842	s.DomainName = &v
6843	return s
6844}
6845
6846// SetEBSOptions sets the EBSOptions field's value.
6847func (s *UpdateElasticsearchDomainConfigInput) SetEBSOptions(v *EBSOptions) *UpdateElasticsearchDomainConfigInput {
6848	s.EBSOptions = v
6849	return s
6850}
6851
6852// SetElasticsearchClusterConfig sets the ElasticsearchClusterConfig field's value.
6853func (s *UpdateElasticsearchDomainConfigInput) SetElasticsearchClusterConfig(v *ElasticsearchClusterConfig) *UpdateElasticsearchDomainConfigInput {
6854	s.ElasticsearchClusterConfig = v
6855	return s
6856}
6857
6858// SetLogPublishingOptions sets the LogPublishingOptions field's value.
6859func (s *UpdateElasticsearchDomainConfigInput) SetLogPublishingOptions(v map[string]*LogPublishingOption) *UpdateElasticsearchDomainConfigInput {
6860	s.LogPublishingOptions = v
6861	return s
6862}
6863
6864// SetSnapshotOptions sets the SnapshotOptions field's value.
6865func (s *UpdateElasticsearchDomainConfigInput) SetSnapshotOptions(v *SnapshotOptions) *UpdateElasticsearchDomainConfigInput {
6866	s.SnapshotOptions = v
6867	return s
6868}
6869
6870// SetVPCOptions sets the VPCOptions field's value.
6871func (s *UpdateElasticsearchDomainConfigInput) SetVPCOptions(v *VPCOptions) *UpdateElasticsearchDomainConfigInput {
6872	s.VPCOptions = v
6873	return s
6874}
6875
6876// The result of an UpdateElasticsearchDomain request. Contains the status of
6877// the Elasticsearch domain being updated.
6878type UpdateElasticsearchDomainConfigOutput struct {
6879	_ struct{} `type:"structure"`
6880
6881	// The status of the updated Elasticsearch domain.
6882	//
6883	// DomainConfig is a required field
6884	DomainConfig *ElasticsearchDomainConfig `type:"structure" required:"true"`
6885}
6886
6887// String returns the string representation
6888func (s UpdateElasticsearchDomainConfigOutput) String() string {
6889	return awsutil.Prettify(s)
6890}
6891
6892// GoString returns the string representation
6893func (s UpdateElasticsearchDomainConfigOutput) GoString() string {
6894	return s.String()
6895}
6896
6897// SetDomainConfig sets the DomainConfig field's value.
6898func (s *UpdateElasticsearchDomainConfigOutput) SetDomainConfig(v *ElasticsearchDomainConfig) *UpdateElasticsearchDomainConfigOutput {
6899	s.DomainConfig = v
6900	return s
6901}
6902
6903// Container for request parameters to UpgradeElasticsearchDomain operation.
6904type UpgradeElasticsearchDomainInput struct {
6905	_ struct{} `type:"structure"`
6906
6907	// The name of an Elasticsearch domain. Domain names are unique across the domains
6908	// owned by an account within an AWS region. Domain names start with a letter
6909	// or number and can contain the following characters: a-z (lowercase), 0-9,
6910	// and - (hyphen).
6911	//
6912	// DomainName is a required field
6913	DomainName *string `min:"3" type:"string" required:"true"`
6914
6915	// This flag, when set to True, indicates that an Upgrade Eligibility Check
6916	// needs to be performed. This will not actually perform the Upgrade.
6917	PerformCheckOnly *bool `type:"boolean"`
6918
6919	// The version of Elasticsearch that you intend to upgrade the domain to.
6920	//
6921	// TargetVersion is a required field
6922	TargetVersion *string `type:"string" required:"true"`
6923}
6924
6925// String returns the string representation
6926func (s UpgradeElasticsearchDomainInput) String() string {
6927	return awsutil.Prettify(s)
6928}
6929
6930// GoString returns the string representation
6931func (s UpgradeElasticsearchDomainInput) GoString() string {
6932	return s.String()
6933}
6934
6935// Validate inspects the fields of the type to determine if they are valid.
6936func (s *UpgradeElasticsearchDomainInput) Validate() error {
6937	invalidParams := request.ErrInvalidParams{Context: "UpgradeElasticsearchDomainInput"}
6938	if s.DomainName == nil {
6939		invalidParams.Add(request.NewErrParamRequired("DomainName"))
6940	}
6941	if s.DomainName != nil && len(*s.DomainName) < 3 {
6942		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
6943	}
6944	if s.TargetVersion == nil {
6945		invalidParams.Add(request.NewErrParamRequired("TargetVersion"))
6946	}
6947
6948	if invalidParams.Len() > 0 {
6949		return invalidParams
6950	}
6951	return nil
6952}
6953
6954// SetDomainName sets the DomainName field's value.
6955func (s *UpgradeElasticsearchDomainInput) SetDomainName(v string) *UpgradeElasticsearchDomainInput {
6956	s.DomainName = &v
6957	return s
6958}
6959
6960// SetPerformCheckOnly sets the PerformCheckOnly field's value.
6961func (s *UpgradeElasticsearchDomainInput) SetPerformCheckOnly(v bool) *UpgradeElasticsearchDomainInput {
6962	s.PerformCheckOnly = &v
6963	return s
6964}
6965
6966// SetTargetVersion sets the TargetVersion field's value.
6967func (s *UpgradeElasticsearchDomainInput) SetTargetVersion(v string) *UpgradeElasticsearchDomainInput {
6968	s.TargetVersion = &v
6969	return s
6970}
6971
6972// Container for response returned by UpgradeElasticsearchDomain operation.
6973type UpgradeElasticsearchDomainOutput struct {
6974	_ struct{} `type:"structure"`
6975
6976	// The name of an Elasticsearch domain. Domain names are unique across the domains
6977	// owned by an account within an AWS region. Domain names start with a letter
6978	// or number and can contain the following characters: a-z (lowercase), 0-9,
6979	// and - (hyphen).
6980	DomainName *string `min:"3" type:"string"`
6981
6982	// This flag, when set to True, indicates that an Upgrade Eligibility Check
6983	// needs to be performed. This will not actually perform the Upgrade.
6984	PerformCheckOnly *bool `type:"boolean"`
6985
6986	// The version of Elasticsearch that you intend to upgrade the domain to.
6987	TargetVersion *string `type:"string"`
6988}
6989
6990// String returns the string representation
6991func (s UpgradeElasticsearchDomainOutput) String() string {
6992	return awsutil.Prettify(s)
6993}
6994
6995// GoString returns the string representation
6996func (s UpgradeElasticsearchDomainOutput) GoString() string {
6997	return s.String()
6998}
6999
7000// SetDomainName sets the DomainName field's value.
7001func (s *UpgradeElasticsearchDomainOutput) SetDomainName(v string) *UpgradeElasticsearchDomainOutput {
7002	s.DomainName = &v
7003	return s
7004}
7005
7006// SetPerformCheckOnly sets the PerformCheckOnly field's value.
7007func (s *UpgradeElasticsearchDomainOutput) SetPerformCheckOnly(v bool) *UpgradeElasticsearchDomainOutput {
7008	s.PerformCheckOnly = &v
7009	return s
7010}
7011
7012// SetTargetVersion sets the TargetVersion field's value.
7013func (s *UpgradeElasticsearchDomainOutput) SetTargetVersion(v string) *UpgradeElasticsearchDomainOutput {
7014	s.TargetVersion = &v
7015	return s
7016}
7017
7018// History of the last 10 Upgrades and Upgrade Eligibility Checks.
7019type UpgradeHistory struct {
7020	_ struct{} `type:"structure"`
7021
7022	// UTC Timestamp at which the Upgrade API call was made in "yyyy-MM-ddTHH:mm:ssZ"
7023	// format.
7024	StartTimestamp *time.Time `type:"timestamp"`
7025
7026	// A list of UpgradeStepItem s representing information about each step performed
7027	// as pard of a specific Upgrade or Upgrade Eligibility Check.
7028	StepsList []*UpgradeStepItem `type:"list"`
7029
7030	// A string that describes the update briefly
7031	UpgradeName *string `type:"string"`
7032
7033	// The overall status of the update. The status can take one of the following
7034	// values:
7035	//    * In Progress
7036	//
7037	//    * Succeeded
7038	//
7039	//    * Succeeded with Issues
7040	//
7041	//    * Failed
7042	UpgradeStatus *string `type:"string" enum:"UpgradeStatus"`
7043}
7044
7045// String returns the string representation
7046func (s UpgradeHistory) String() string {
7047	return awsutil.Prettify(s)
7048}
7049
7050// GoString returns the string representation
7051func (s UpgradeHistory) GoString() string {
7052	return s.String()
7053}
7054
7055// SetStartTimestamp sets the StartTimestamp field's value.
7056func (s *UpgradeHistory) SetStartTimestamp(v time.Time) *UpgradeHistory {
7057	s.StartTimestamp = &v
7058	return s
7059}
7060
7061// SetStepsList sets the StepsList field's value.
7062func (s *UpgradeHistory) SetStepsList(v []*UpgradeStepItem) *UpgradeHistory {
7063	s.StepsList = v
7064	return s
7065}
7066
7067// SetUpgradeName sets the UpgradeName field's value.
7068func (s *UpgradeHistory) SetUpgradeName(v string) *UpgradeHistory {
7069	s.UpgradeName = &v
7070	return s
7071}
7072
7073// SetUpgradeStatus sets the UpgradeStatus field's value.
7074func (s *UpgradeHistory) SetUpgradeStatus(v string) *UpgradeHistory {
7075	s.UpgradeStatus = &v
7076	return s
7077}
7078
7079// Represents a single step of the Upgrade or Upgrade Eligibility Check workflow.
7080type UpgradeStepItem struct {
7081	_ struct{} `type:"structure"`
7082
7083	// A list of strings containing detailed information about the errors encountered
7084	// in a particular step.
7085	Issues []*string `type:"list"`
7086
7087	// The Floating point value representing progress percentage of a particular
7088	// step.
7089	ProgressPercent *float64 `type:"double"`
7090
7091	// Represents one of 3 steps that an Upgrade or Upgrade Eligibility Check does
7092	// through:
7093	//    * PreUpgradeCheck
7094	//
7095	//    * Snapshot
7096	//
7097	//    * Upgrade
7098	UpgradeStep *string `type:"string" enum:"UpgradeStep"`
7099
7100	// The status of a particular step during an upgrade. The status can take one
7101	// of the following values:
7102	//    * In Progress
7103	//
7104	//    * Succeeded
7105	//
7106	//    * Succeeded with Issues
7107	//
7108	//    * Failed
7109	UpgradeStepStatus *string `type:"string" enum:"UpgradeStatus"`
7110}
7111
7112// String returns the string representation
7113func (s UpgradeStepItem) String() string {
7114	return awsutil.Prettify(s)
7115}
7116
7117// GoString returns the string representation
7118func (s UpgradeStepItem) GoString() string {
7119	return s.String()
7120}
7121
7122// SetIssues sets the Issues field's value.
7123func (s *UpgradeStepItem) SetIssues(v []*string) *UpgradeStepItem {
7124	s.Issues = v
7125	return s
7126}
7127
7128// SetProgressPercent sets the ProgressPercent field's value.
7129func (s *UpgradeStepItem) SetProgressPercent(v float64) *UpgradeStepItem {
7130	s.ProgressPercent = &v
7131	return s
7132}
7133
7134// SetUpgradeStep sets the UpgradeStep field's value.
7135func (s *UpgradeStepItem) SetUpgradeStep(v string) *UpgradeStepItem {
7136	s.UpgradeStep = &v
7137	return s
7138}
7139
7140// SetUpgradeStepStatus sets the UpgradeStepStatus field's value.
7141func (s *UpgradeStepItem) SetUpgradeStepStatus(v string) *UpgradeStepItem {
7142	s.UpgradeStepStatus = &v
7143	return s
7144}
7145
7146// Options to specify the subnets and security groups for VPC endpoint. For
7147// more information, see VPC Endpoints for Amazon Elasticsearch Service Domains
7148// (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html).
7149type VPCDerivedInfo struct {
7150	_ struct{} `type:"structure"`
7151
7152	// The availability zones for the Elasticsearch domain. Exists only if the domain
7153	// was created with VPCOptions.
7154	AvailabilityZones []*string `type:"list"`
7155
7156	// Specifies the security groups for VPC endpoint.
7157	SecurityGroupIds []*string `type:"list"`
7158
7159	// Specifies the subnets for VPC endpoint.
7160	SubnetIds []*string `type:"list"`
7161
7162	// The VPC Id for the Elasticsearch domain. Exists only if the domain was created
7163	// with VPCOptions.
7164	VPCId *string `type:"string"`
7165}
7166
7167// String returns the string representation
7168func (s VPCDerivedInfo) String() string {
7169	return awsutil.Prettify(s)
7170}
7171
7172// GoString returns the string representation
7173func (s VPCDerivedInfo) GoString() string {
7174	return s.String()
7175}
7176
7177// SetAvailabilityZones sets the AvailabilityZones field's value.
7178func (s *VPCDerivedInfo) SetAvailabilityZones(v []*string) *VPCDerivedInfo {
7179	s.AvailabilityZones = v
7180	return s
7181}
7182
7183// SetSecurityGroupIds sets the SecurityGroupIds field's value.
7184func (s *VPCDerivedInfo) SetSecurityGroupIds(v []*string) *VPCDerivedInfo {
7185	s.SecurityGroupIds = v
7186	return s
7187}
7188
7189// SetSubnetIds sets the SubnetIds field's value.
7190func (s *VPCDerivedInfo) SetSubnetIds(v []*string) *VPCDerivedInfo {
7191	s.SubnetIds = v
7192	return s
7193}
7194
7195// SetVPCId sets the VPCId field's value.
7196func (s *VPCDerivedInfo) SetVPCId(v string) *VPCDerivedInfo {
7197	s.VPCId = &v
7198	return s
7199}
7200
7201// Status of the VPC options for the specified Elasticsearch domain.
7202type VPCDerivedInfoStatus struct {
7203	_ struct{} `type:"structure"`
7204
7205	// Specifies the VPC options for the specified Elasticsearch domain.
7206	//
7207	// Options is a required field
7208	Options *VPCDerivedInfo `type:"structure" required:"true"`
7209
7210	// Specifies the status of the VPC options for the specified Elasticsearch domain.
7211	//
7212	// Status is a required field
7213	Status *OptionStatus `type:"structure" required:"true"`
7214}
7215
7216// String returns the string representation
7217func (s VPCDerivedInfoStatus) String() string {
7218	return awsutil.Prettify(s)
7219}
7220
7221// GoString returns the string representation
7222func (s VPCDerivedInfoStatus) GoString() string {
7223	return s.String()
7224}
7225
7226// SetOptions sets the Options field's value.
7227func (s *VPCDerivedInfoStatus) SetOptions(v *VPCDerivedInfo) *VPCDerivedInfoStatus {
7228	s.Options = v
7229	return s
7230}
7231
7232// SetStatus sets the Status field's value.
7233func (s *VPCDerivedInfoStatus) SetStatus(v *OptionStatus) *VPCDerivedInfoStatus {
7234	s.Status = v
7235	return s
7236}
7237
7238// Options to specify the subnets and security groups for VPC endpoint. For
7239// more information, see VPC Endpoints for Amazon Elasticsearch Service Domains
7240// (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html).
7241type VPCOptions struct {
7242	_ struct{} `type:"structure"`
7243
7244	// Specifies the security groups for VPC endpoint.
7245	SecurityGroupIds []*string `type:"list"`
7246
7247	// Specifies the subnets for VPC endpoint.
7248	SubnetIds []*string `type:"list"`
7249}
7250
7251// String returns the string representation
7252func (s VPCOptions) String() string {
7253	return awsutil.Prettify(s)
7254}
7255
7256// GoString returns the string representation
7257func (s VPCOptions) GoString() string {
7258	return s.String()
7259}
7260
7261// SetSecurityGroupIds sets the SecurityGroupIds field's value.
7262func (s *VPCOptions) SetSecurityGroupIds(v []*string) *VPCOptions {
7263	s.SecurityGroupIds = v
7264	return s
7265}
7266
7267// SetSubnetIds sets the SubnetIds field's value.
7268func (s *VPCOptions) SetSubnetIds(v []*string) *VPCOptions {
7269	s.SubnetIds = v
7270	return s
7271}
7272
7273// An exception for missing / invalid input fields. Gives http status code of
7274// 400.
7275type ValidationException struct {
7276	_            struct{} `type:"structure"`
7277	respMetadata protocol.ResponseMetadata
7278
7279	Message_ *string `locationName:"message" type:"string"`
7280}
7281
7282// String returns the string representation
7283func (s ValidationException) String() string {
7284	return awsutil.Prettify(s)
7285}
7286
7287// GoString returns the string representation
7288func (s ValidationException) GoString() string {
7289	return s.String()
7290}
7291
7292func newErrorValidationException(v protocol.ResponseMetadata) error {
7293	return &ValidationException{
7294		respMetadata: v,
7295	}
7296}
7297
7298// Code returns the exception type name.
7299func (s ValidationException) Code() string {
7300	return "ValidationException"
7301}
7302
7303// Message returns the exception's message.
7304func (s ValidationException) Message() string {
7305	if s.Message_ != nil {
7306		return *s.Message_
7307	}
7308	return ""
7309}
7310
7311// OrigErr always returns nil, satisfies awserr.Error interface.
7312func (s ValidationException) OrigErr() error {
7313	return nil
7314}
7315
7316func (s ValidationException) Error() string {
7317	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7318}
7319
7320// Status code returns the HTTP status code for the request's response error.
7321func (s ValidationException) StatusCode() int {
7322	return s.respMetadata.StatusCode
7323}
7324
7325// RequestID returns the service's response RequestID for request.
7326func (s ValidationException) RequestID() string {
7327	return s.respMetadata.RequestID
7328}
7329
7330// Specifies the zone awareness configuration for the domain cluster, such as
7331// the number of availability zones.
7332type ZoneAwarenessConfig struct {
7333	_ struct{} `type:"structure"`
7334
7335	// An integer value to indicate the number of availability zones for a domain
7336	// when zone awareness is enabled. This should be equal to number of subnets
7337	// if VPC endpoints is enabled
7338	AvailabilityZoneCount *int64 `type:"integer"`
7339}
7340
7341// String returns the string representation
7342func (s ZoneAwarenessConfig) String() string {
7343	return awsutil.Prettify(s)
7344}
7345
7346// GoString returns the string representation
7347func (s ZoneAwarenessConfig) GoString() string {
7348	return s.String()
7349}
7350
7351// SetAvailabilityZoneCount sets the AvailabilityZoneCount field's value.
7352func (s *ZoneAwarenessConfig) SetAvailabilityZoneCount(v int64) *ZoneAwarenessConfig {
7353	s.AvailabilityZoneCount = &v
7354	return s
7355}
7356
7357const (
7358	// DeploymentStatusPendingUpdate is a DeploymentStatus enum value
7359	DeploymentStatusPendingUpdate = "PENDING_UPDATE"
7360
7361	// DeploymentStatusInProgress is a DeploymentStatus enum value
7362	DeploymentStatusInProgress = "IN_PROGRESS"
7363
7364	// DeploymentStatusCompleted is a DeploymentStatus enum value
7365	DeploymentStatusCompleted = "COMPLETED"
7366
7367	// DeploymentStatusNotEligible is a DeploymentStatus enum value
7368	DeploymentStatusNotEligible = "NOT_ELIGIBLE"
7369
7370	// DeploymentStatusEligible is a DeploymentStatus enum value
7371	DeploymentStatusEligible = "ELIGIBLE"
7372)
7373
7374const (
7375	// ESPartitionInstanceTypeM3MediumElasticsearch is a ESPartitionInstanceType enum value
7376	ESPartitionInstanceTypeM3MediumElasticsearch = "m3.medium.elasticsearch"
7377
7378	// ESPartitionInstanceTypeM3LargeElasticsearch is a ESPartitionInstanceType enum value
7379	ESPartitionInstanceTypeM3LargeElasticsearch = "m3.large.elasticsearch"
7380
7381	// ESPartitionInstanceTypeM3XlargeElasticsearch is a ESPartitionInstanceType enum value
7382	ESPartitionInstanceTypeM3XlargeElasticsearch = "m3.xlarge.elasticsearch"
7383
7384	// ESPartitionInstanceTypeM32xlargeElasticsearch is a ESPartitionInstanceType enum value
7385	ESPartitionInstanceTypeM32xlargeElasticsearch = "m3.2xlarge.elasticsearch"
7386
7387	// ESPartitionInstanceTypeM4LargeElasticsearch is a ESPartitionInstanceType enum value
7388	ESPartitionInstanceTypeM4LargeElasticsearch = "m4.large.elasticsearch"
7389
7390	// ESPartitionInstanceTypeM4XlargeElasticsearch is a ESPartitionInstanceType enum value
7391	ESPartitionInstanceTypeM4XlargeElasticsearch = "m4.xlarge.elasticsearch"
7392
7393	// ESPartitionInstanceTypeM42xlargeElasticsearch is a ESPartitionInstanceType enum value
7394	ESPartitionInstanceTypeM42xlargeElasticsearch = "m4.2xlarge.elasticsearch"
7395
7396	// ESPartitionInstanceTypeM44xlargeElasticsearch is a ESPartitionInstanceType enum value
7397	ESPartitionInstanceTypeM44xlargeElasticsearch = "m4.4xlarge.elasticsearch"
7398
7399	// ESPartitionInstanceTypeM410xlargeElasticsearch is a ESPartitionInstanceType enum value
7400	ESPartitionInstanceTypeM410xlargeElasticsearch = "m4.10xlarge.elasticsearch"
7401
7402	// ESPartitionInstanceTypeM5LargeElasticsearch is a ESPartitionInstanceType enum value
7403	ESPartitionInstanceTypeM5LargeElasticsearch = "m5.large.elasticsearch"
7404
7405	// ESPartitionInstanceTypeM5XlargeElasticsearch is a ESPartitionInstanceType enum value
7406	ESPartitionInstanceTypeM5XlargeElasticsearch = "m5.xlarge.elasticsearch"
7407
7408	// ESPartitionInstanceTypeM52xlargeElasticsearch is a ESPartitionInstanceType enum value
7409	ESPartitionInstanceTypeM52xlargeElasticsearch = "m5.2xlarge.elasticsearch"
7410
7411	// ESPartitionInstanceTypeM54xlargeElasticsearch is a ESPartitionInstanceType enum value
7412	ESPartitionInstanceTypeM54xlargeElasticsearch = "m5.4xlarge.elasticsearch"
7413
7414	// ESPartitionInstanceTypeM512xlargeElasticsearch is a ESPartitionInstanceType enum value
7415	ESPartitionInstanceTypeM512xlargeElasticsearch = "m5.12xlarge.elasticsearch"
7416
7417	// ESPartitionInstanceTypeR5LargeElasticsearch is a ESPartitionInstanceType enum value
7418	ESPartitionInstanceTypeR5LargeElasticsearch = "r5.large.elasticsearch"
7419
7420	// ESPartitionInstanceTypeR5XlargeElasticsearch is a ESPartitionInstanceType enum value
7421	ESPartitionInstanceTypeR5XlargeElasticsearch = "r5.xlarge.elasticsearch"
7422
7423	// ESPartitionInstanceTypeR52xlargeElasticsearch is a ESPartitionInstanceType enum value
7424	ESPartitionInstanceTypeR52xlargeElasticsearch = "r5.2xlarge.elasticsearch"
7425
7426	// ESPartitionInstanceTypeR54xlargeElasticsearch is a ESPartitionInstanceType enum value
7427	ESPartitionInstanceTypeR54xlargeElasticsearch = "r5.4xlarge.elasticsearch"
7428
7429	// ESPartitionInstanceTypeR512xlargeElasticsearch is a ESPartitionInstanceType enum value
7430	ESPartitionInstanceTypeR512xlargeElasticsearch = "r5.12xlarge.elasticsearch"
7431
7432	// ESPartitionInstanceTypeC5LargeElasticsearch is a ESPartitionInstanceType enum value
7433	ESPartitionInstanceTypeC5LargeElasticsearch = "c5.large.elasticsearch"
7434
7435	// ESPartitionInstanceTypeC5XlargeElasticsearch is a ESPartitionInstanceType enum value
7436	ESPartitionInstanceTypeC5XlargeElasticsearch = "c5.xlarge.elasticsearch"
7437
7438	// ESPartitionInstanceTypeC52xlargeElasticsearch is a ESPartitionInstanceType enum value
7439	ESPartitionInstanceTypeC52xlargeElasticsearch = "c5.2xlarge.elasticsearch"
7440
7441	// ESPartitionInstanceTypeC54xlargeElasticsearch is a ESPartitionInstanceType enum value
7442	ESPartitionInstanceTypeC54xlargeElasticsearch = "c5.4xlarge.elasticsearch"
7443
7444	// ESPartitionInstanceTypeC59xlargeElasticsearch is a ESPartitionInstanceType enum value
7445	ESPartitionInstanceTypeC59xlargeElasticsearch = "c5.9xlarge.elasticsearch"
7446
7447	// ESPartitionInstanceTypeC518xlargeElasticsearch is a ESPartitionInstanceType enum value
7448	ESPartitionInstanceTypeC518xlargeElasticsearch = "c5.18xlarge.elasticsearch"
7449
7450	// ESPartitionInstanceTypeUltrawarm1MediumElasticsearch is a ESPartitionInstanceType enum value
7451	ESPartitionInstanceTypeUltrawarm1MediumElasticsearch = "ultrawarm1.medium.elasticsearch"
7452
7453	// ESPartitionInstanceTypeUltrawarm1LargeElasticsearch is a ESPartitionInstanceType enum value
7454	ESPartitionInstanceTypeUltrawarm1LargeElasticsearch = "ultrawarm1.large.elasticsearch"
7455
7456	// ESPartitionInstanceTypeT2MicroElasticsearch is a ESPartitionInstanceType enum value
7457	ESPartitionInstanceTypeT2MicroElasticsearch = "t2.micro.elasticsearch"
7458
7459	// ESPartitionInstanceTypeT2SmallElasticsearch is a ESPartitionInstanceType enum value
7460	ESPartitionInstanceTypeT2SmallElasticsearch = "t2.small.elasticsearch"
7461
7462	// ESPartitionInstanceTypeT2MediumElasticsearch is a ESPartitionInstanceType enum value
7463	ESPartitionInstanceTypeT2MediumElasticsearch = "t2.medium.elasticsearch"
7464
7465	// ESPartitionInstanceTypeR3LargeElasticsearch is a ESPartitionInstanceType enum value
7466	ESPartitionInstanceTypeR3LargeElasticsearch = "r3.large.elasticsearch"
7467
7468	// ESPartitionInstanceTypeR3XlargeElasticsearch is a ESPartitionInstanceType enum value
7469	ESPartitionInstanceTypeR3XlargeElasticsearch = "r3.xlarge.elasticsearch"
7470
7471	// ESPartitionInstanceTypeR32xlargeElasticsearch is a ESPartitionInstanceType enum value
7472	ESPartitionInstanceTypeR32xlargeElasticsearch = "r3.2xlarge.elasticsearch"
7473
7474	// ESPartitionInstanceTypeR34xlargeElasticsearch is a ESPartitionInstanceType enum value
7475	ESPartitionInstanceTypeR34xlargeElasticsearch = "r3.4xlarge.elasticsearch"
7476
7477	// ESPartitionInstanceTypeR38xlargeElasticsearch is a ESPartitionInstanceType enum value
7478	ESPartitionInstanceTypeR38xlargeElasticsearch = "r3.8xlarge.elasticsearch"
7479
7480	// ESPartitionInstanceTypeI2XlargeElasticsearch is a ESPartitionInstanceType enum value
7481	ESPartitionInstanceTypeI2XlargeElasticsearch = "i2.xlarge.elasticsearch"
7482
7483	// ESPartitionInstanceTypeI22xlargeElasticsearch is a ESPartitionInstanceType enum value
7484	ESPartitionInstanceTypeI22xlargeElasticsearch = "i2.2xlarge.elasticsearch"
7485
7486	// ESPartitionInstanceTypeD2XlargeElasticsearch is a ESPartitionInstanceType enum value
7487	ESPartitionInstanceTypeD2XlargeElasticsearch = "d2.xlarge.elasticsearch"
7488
7489	// ESPartitionInstanceTypeD22xlargeElasticsearch is a ESPartitionInstanceType enum value
7490	ESPartitionInstanceTypeD22xlargeElasticsearch = "d2.2xlarge.elasticsearch"
7491
7492	// ESPartitionInstanceTypeD24xlargeElasticsearch is a ESPartitionInstanceType enum value
7493	ESPartitionInstanceTypeD24xlargeElasticsearch = "d2.4xlarge.elasticsearch"
7494
7495	// ESPartitionInstanceTypeD28xlargeElasticsearch is a ESPartitionInstanceType enum value
7496	ESPartitionInstanceTypeD28xlargeElasticsearch = "d2.8xlarge.elasticsearch"
7497
7498	// ESPartitionInstanceTypeC4LargeElasticsearch is a ESPartitionInstanceType enum value
7499	ESPartitionInstanceTypeC4LargeElasticsearch = "c4.large.elasticsearch"
7500
7501	// ESPartitionInstanceTypeC4XlargeElasticsearch is a ESPartitionInstanceType enum value
7502	ESPartitionInstanceTypeC4XlargeElasticsearch = "c4.xlarge.elasticsearch"
7503
7504	// ESPartitionInstanceTypeC42xlargeElasticsearch is a ESPartitionInstanceType enum value
7505	ESPartitionInstanceTypeC42xlargeElasticsearch = "c4.2xlarge.elasticsearch"
7506
7507	// ESPartitionInstanceTypeC44xlargeElasticsearch is a ESPartitionInstanceType enum value
7508	ESPartitionInstanceTypeC44xlargeElasticsearch = "c4.4xlarge.elasticsearch"
7509
7510	// ESPartitionInstanceTypeC48xlargeElasticsearch is a ESPartitionInstanceType enum value
7511	ESPartitionInstanceTypeC48xlargeElasticsearch = "c4.8xlarge.elasticsearch"
7512
7513	// ESPartitionInstanceTypeR4LargeElasticsearch is a ESPartitionInstanceType enum value
7514	ESPartitionInstanceTypeR4LargeElasticsearch = "r4.large.elasticsearch"
7515
7516	// ESPartitionInstanceTypeR4XlargeElasticsearch is a ESPartitionInstanceType enum value
7517	ESPartitionInstanceTypeR4XlargeElasticsearch = "r4.xlarge.elasticsearch"
7518
7519	// ESPartitionInstanceTypeR42xlargeElasticsearch is a ESPartitionInstanceType enum value
7520	ESPartitionInstanceTypeR42xlargeElasticsearch = "r4.2xlarge.elasticsearch"
7521
7522	// ESPartitionInstanceTypeR44xlargeElasticsearch is a ESPartitionInstanceType enum value
7523	ESPartitionInstanceTypeR44xlargeElasticsearch = "r4.4xlarge.elasticsearch"
7524
7525	// ESPartitionInstanceTypeR48xlargeElasticsearch is a ESPartitionInstanceType enum value
7526	ESPartitionInstanceTypeR48xlargeElasticsearch = "r4.8xlarge.elasticsearch"
7527
7528	// ESPartitionInstanceTypeR416xlargeElasticsearch is a ESPartitionInstanceType enum value
7529	ESPartitionInstanceTypeR416xlargeElasticsearch = "r4.16xlarge.elasticsearch"
7530
7531	// ESPartitionInstanceTypeI3LargeElasticsearch is a ESPartitionInstanceType enum value
7532	ESPartitionInstanceTypeI3LargeElasticsearch = "i3.large.elasticsearch"
7533
7534	// ESPartitionInstanceTypeI3XlargeElasticsearch is a ESPartitionInstanceType enum value
7535	ESPartitionInstanceTypeI3XlargeElasticsearch = "i3.xlarge.elasticsearch"
7536
7537	// ESPartitionInstanceTypeI32xlargeElasticsearch is a ESPartitionInstanceType enum value
7538	ESPartitionInstanceTypeI32xlargeElasticsearch = "i3.2xlarge.elasticsearch"
7539
7540	// ESPartitionInstanceTypeI34xlargeElasticsearch is a ESPartitionInstanceType enum value
7541	ESPartitionInstanceTypeI34xlargeElasticsearch = "i3.4xlarge.elasticsearch"
7542
7543	// ESPartitionInstanceTypeI38xlargeElasticsearch is a ESPartitionInstanceType enum value
7544	ESPartitionInstanceTypeI38xlargeElasticsearch = "i3.8xlarge.elasticsearch"
7545
7546	// ESPartitionInstanceTypeI316xlargeElasticsearch is a ESPartitionInstanceType enum value
7547	ESPartitionInstanceTypeI316xlargeElasticsearch = "i3.16xlarge.elasticsearch"
7548)
7549
7550const (
7551	// ESWarmPartitionInstanceTypeUltrawarm1MediumElasticsearch is a ESWarmPartitionInstanceType enum value
7552	ESWarmPartitionInstanceTypeUltrawarm1MediumElasticsearch = "ultrawarm1.medium.elasticsearch"
7553
7554	// ESWarmPartitionInstanceTypeUltrawarm1LargeElasticsearch is a ESWarmPartitionInstanceType enum value
7555	ESWarmPartitionInstanceTypeUltrawarm1LargeElasticsearch = "ultrawarm1.large.elasticsearch"
7556)
7557
7558// Type of Log File, it can be one of the following:
7559//    * INDEX_SLOW_LOGS: Index slow logs contain insert requests that took more
7560//    time than configured index query log threshold to execute.
7561//
7562//    * SEARCH_SLOW_LOGS: Search slow logs contain search queries that took
7563//    more time than configured search query log threshold to execute.
7564//
7565//    * ES_APPLICATION_LOGS: Elasticsearch application logs contain information
7566//    about errors and warnings raised during the operation of the service and
7567//    can be useful for troubleshooting.
7568const (
7569	// LogTypeIndexSlowLogs is a LogType enum value
7570	LogTypeIndexSlowLogs = "INDEX_SLOW_LOGS"
7571
7572	// LogTypeSearchSlowLogs is a LogType enum value
7573	LogTypeSearchSlowLogs = "SEARCH_SLOW_LOGS"
7574
7575	// LogTypeEsApplicationLogs is a LogType enum value
7576	LogTypeEsApplicationLogs = "ES_APPLICATION_LOGS"
7577)
7578
7579// The state of a requested change. One of the following:
7580//
7581//    * Processing: The request change is still in-process.
7582//
7583//    * Active: The request change is processed and deployed to the Elasticsearch
7584//    domain.
7585const (
7586	// OptionStateRequiresIndexDocuments is a OptionState enum value
7587	OptionStateRequiresIndexDocuments = "RequiresIndexDocuments"
7588
7589	// OptionStateProcessing is a OptionState enum value
7590	OptionStateProcessing = "Processing"
7591
7592	// OptionStateActive is a OptionState enum value
7593	OptionStateActive = "Active"
7594)
7595
7596const (
7597	// ReservedElasticsearchInstancePaymentOptionAllUpfront is a ReservedElasticsearchInstancePaymentOption enum value
7598	ReservedElasticsearchInstancePaymentOptionAllUpfront = "ALL_UPFRONT"
7599
7600	// ReservedElasticsearchInstancePaymentOptionPartialUpfront is a ReservedElasticsearchInstancePaymentOption enum value
7601	ReservedElasticsearchInstancePaymentOptionPartialUpfront = "PARTIAL_UPFRONT"
7602
7603	// ReservedElasticsearchInstancePaymentOptionNoUpfront is a ReservedElasticsearchInstancePaymentOption enum value
7604	ReservedElasticsearchInstancePaymentOptionNoUpfront = "NO_UPFRONT"
7605)
7606
7607const (
7608	// TLSSecurityPolicyPolicyMinTls10201907 is a TLSSecurityPolicy enum value
7609	TLSSecurityPolicyPolicyMinTls10201907 = "Policy-Min-TLS-1-0-2019-07"
7610
7611	// TLSSecurityPolicyPolicyMinTls12201907 is a TLSSecurityPolicy enum value
7612	TLSSecurityPolicyPolicyMinTls12201907 = "Policy-Min-TLS-1-2-2019-07"
7613)
7614
7615const (
7616	// UpgradeStatusInProgress is a UpgradeStatus enum value
7617	UpgradeStatusInProgress = "IN_PROGRESS"
7618
7619	// UpgradeStatusSucceeded is a UpgradeStatus enum value
7620	UpgradeStatusSucceeded = "SUCCEEDED"
7621
7622	// UpgradeStatusSucceededWithIssues is a UpgradeStatus enum value
7623	UpgradeStatusSucceededWithIssues = "SUCCEEDED_WITH_ISSUES"
7624
7625	// UpgradeStatusFailed is a UpgradeStatus enum value
7626	UpgradeStatusFailed = "FAILED"
7627)
7628
7629const (
7630	// UpgradeStepPreUpgradeCheck is a UpgradeStep enum value
7631	UpgradeStepPreUpgradeCheck = "PRE_UPGRADE_CHECK"
7632
7633	// UpgradeStepSnapshot is a UpgradeStep enum value
7634	UpgradeStepSnapshot = "SNAPSHOT"
7635
7636	// UpgradeStepUpgrade is a UpgradeStep enum value
7637	UpgradeStepUpgrade = "UPGRADE"
7638)
7639
7640// The type of EBS volume, standard, gp2, or io1. See Configuring EBS-based
7641// Storage (http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs)for
7642// more information.
7643const (
7644	// VolumeTypeStandard is a VolumeType enum value
7645	VolumeTypeStandard = "standard"
7646
7647	// VolumeTypeGp2 is a VolumeType enum value
7648	VolumeTypeGp2 = "gp2"
7649
7650	// VolumeTypeIo1 is a VolumeType enum value
7651	VolumeTypeIo1 = "io1"
7652)
7653