1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package emr
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
14)
15
16const opAddInstanceFleet = "AddInstanceFleet"
17
18// AddInstanceFleetRequest generates a "aws/request.Request" representing the
19// client's request for the AddInstanceFleet 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 AddInstanceFleet for more information on using the AddInstanceFleet
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 AddInstanceFleetRequest method.
34//    req, resp := client.AddInstanceFleetRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceFleet
42func (c *EMR) AddInstanceFleetRequest(input *AddInstanceFleetInput) (req *request.Request, output *AddInstanceFleetOutput) {
43	op := &request.Operation{
44		Name:       opAddInstanceFleet,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AddInstanceFleetInput{}
51	}
52
53	output = &AddInstanceFleetOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// AddInstanceFleet API operation for Amazon Elastic MapReduce.
59//
60// Adds an instance fleet to a running cluster.
61//
62// The instance fleet configuration is available only in Amazon EMR versions
63// 4.8.0 and later, excluding 5.0.x.
64//
65// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
66// with awserr.Error's Code and Message methods to get detailed information about
67// the error.
68//
69// See the AWS API reference guide for Amazon Elastic MapReduce's
70// API operation AddInstanceFleet for usage and error information.
71//
72// Returned Error Types:
73//   * InternalServerException
74//   This exception occurs when there is an internal failure in the EMR service.
75//
76//   * InvalidRequestException
77//   This exception occurs when there is something wrong with user input.
78//
79// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceFleet
80func (c *EMR) AddInstanceFleet(input *AddInstanceFleetInput) (*AddInstanceFleetOutput, error) {
81	req, out := c.AddInstanceFleetRequest(input)
82	return out, req.Send()
83}
84
85// AddInstanceFleetWithContext is the same as AddInstanceFleet with the addition of
86// the ability to pass a context and additional request options.
87//
88// See AddInstanceFleet for details on how to use this API operation.
89//
90// The context must be non-nil and will be used for request cancellation. If
91// the context is nil a panic will occur. In the future the SDK may create
92// sub-contexts for http.Requests. See https://golang.org/pkg/context/
93// for more information on using Contexts.
94func (c *EMR) AddInstanceFleetWithContext(ctx aws.Context, input *AddInstanceFleetInput, opts ...request.Option) (*AddInstanceFleetOutput, error) {
95	req, out := c.AddInstanceFleetRequest(input)
96	req.SetContext(ctx)
97	req.ApplyOptions(opts...)
98	return out, req.Send()
99}
100
101const opAddInstanceGroups = "AddInstanceGroups"
102
103// AddInstanceGroupsRequest generates a "aws/request.Request" representing the
104// client's request for the AddInstanceGroups operation. The "output" return
105// value will be populated with the request's response once the request completes
106// successfully.
107//
108// Use "Send" method on the returned Request to send the API call to the service.
109// the "output" return value is not valid until after Send returns without error.
110//
111// See AddInstanceGroups for more information on using the AddInstanceGroups
112// API call, and error handling.
113//
114// This method is useful when you want to inject custom logic or configuration
115// into the SDK's request lifecycle. Such as custom headers, or retry logic.
116//
117//
118//    // Example sending a request using the AddInstanceGroupsRequest method.
119//    req, resp := client.AddInstanceGroupsRequest(params)
120//
121//    err := req.Send()
122//    if err == nil { // resp is now filled
123//        fmt.Println(resp)
124//    }
125//
126// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceGroups
127func (c *EMR) AddInstanceGroupsRequest(input *AddInstanceGroupsInput) (req *request.Request, output *AddInstanceGroupsOutput) {
128	op := &request.Operation{
129		Name:       opAddInstanceGroups,
130		HTTPMethod: "POST",
131		HTTPPath:   "/",
132	}
133
134	if input == nil {
135		input = &AddInstanceGroupsInput{}
136	}
137
138	output = &AddInstanceGroupsOutput{}
139	req = c.newRequest(op, input, output)
140	return
141}
142
143// AddInstanceGroups API operation for Amazon Elastic MapReduce.
144//
145// Adds one or more instance groups to a running cluster.
146//
147// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
148// with awserr.Error's Code and Message methods to get detailed information about
149// the error.
150//
151// See the AWS API reference guide for Amazon Elastic MapReduce's
152// API operation AddInstanceGroups for usage and error information.
153//
154// Returned Error Types:
155//   * InternalServerError
156//   Indicates that an error occurred while processing the request and that the
157//   request was not completed.
158//
159// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceGroups
160func (c *EMR) AddInstanceGroups(input *AddInstanceGroupsInput) (*AddInstanceGroupsOutput, error) {
161	req, out := c.AddInstanceGroupsRequest(input)
162	return out, req.Send()
163}
164
165// AddInstanceGroupsWithContext is the same as AddInstanceGroups with the addition of
166// the ability to pass a context and additional request options.
167//
168// See AddInstanceGroups for details on how to use this API operation.
169//
170// The context must be non-nil and will be used for request cancellation. If
171// the context is nil a panic will occur. In the future the SDK may create
172// sub-contexts for http.Requests. See https://golang.org/pkg/context/
173// for more information on using Contexts.
174func (c *EMR) AddInstanceGroupsWithContext(ctx aws.Context, input *AddInstanceGroupsInput, opts ...request.Option) (*AddInstanceGroupsOutput, error) {
175	req, out := c.AddInstanceGroupsRequest(input)
176	req.SetContext(ctx)
177	req.ApplyOptions(opts...)
178	return out, req.Send()
179}
180
181const opAddJobFlowSteps = "AddJobFlowSteps"
182
183// AddJobFlowStepsRequest generates a "aws/request.Request" representing the
184// client's request for the AddJobFlowSteps operation. The "output" return
185// value will be populated with the request's response once the request completes
186// successfully.
187//
188// Use "Send" method on the returned Request to send the API call to the service.
189// the "output" return value is not valid until after Send returns without error.
190//
191// See AddJobFlowSteps for more information on using the AddJobFlowSteps
192// API call, and error handling.
193//
194// This method is useful when you want to inject custom logic or configuration
195// into the SDK's request lifecycle. Such as custom headers, or retry logic.
196//
197//
198//    // Example sending a request using the AddJobFlowStepsRequest method.
199//    req, resp := client.AddJobFlowStepsRequest(params)
200//
201//    err := req.Send()
202//    if err == nil { // resp is now filled
203//        fmt.Println(resp)
204//    }
205//
206// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddJobFlowSteps
207func (c *EMR) AddJobFlowStepsRequest(input *AddJobFlowStepsInput) (req *request.Request, output *AddJobFlowStepsOutput) {
208	op := &request.Operation{
209		Name:       opAddJobFlowSteps,
210		HTTPMethod: "POST",
211		HTTPPath:   "/",
212	}
213
214	if input == nil {
215		input = &AddJobFlowStepsInput{}
216	}
217
218	output = &AddJobFlowStepsOutput{}
219	req = c.newRequest(op, input, output)
220	return
221}
222
223// AddJobFlowSteps API operation for Amazon Elastic MapReduce.
224//
225// AddJobFlowSteps adds new steps to a running cluster. A maximum of 256 steps
226// are allowed in each job flow.
227//
228// If your cluster is long-running (such as a Hive data warehouse) or complex,
229// you may require more than 256 steps to process your data. You can bypass
230// the 256-step limitation in various ways, including using SSH to connect to
231// the master node and submitting queries directly to the software running on
232// the master node, such as Hive and Hadoop. For more information on how to
233// do this, see Add More than 256 Steps to a Cluster (https://docs.aws.amazon.com/emr/latest/ManagementGuide/AddMoreThan256Steps.html)
234// in the Amazon EMR Management Guide.
235//
236// A step specifies the location of a JAR file stored either on the master node
237// of the cluster or in Amazon S3. Each step is performed by the main function
238// of the main class of the JAR file. The main class can be specified either
239// in the manifest of the JAR or by using the MainFunction parameter of the
240// step.
241//
242// Amazon EMR executes each step in the order listed. For a step to be considered
243// complete, the main function must exit with a zero exit code and all Hadoop
244// jobs started while the step was running must have completed and run successfully.
245//
246// You can only add steps to a cluster that is in one of the following states:
247// STARTING, BOOTSTRAPPING, RUNNING, or WAITING.
248//
249// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
250// with awserr.Error's Code and Message methods to get detailed information about
251// the error.
252//
253// See the AWS API reference guide for Amazon Elastic MapReduce's
254// API operation AddJobFlowSteps for usage and error information.
255//
256// Returned Error Types:
257//   * InternalServerError
258//   Indicates that an error occurred while processing the request and that the
259//   request was not completed.
260//
261// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddJobFlowSteps
262func (c *EMR) AddJobFlowSteps(input *AddJobFlowStepsInput) (*AddJobFlowStepsOutput, error) {
263	req, out := c.AddJobFlowStepsRequest(input)
264	return out, req.Send()
265}
266
267// AddJobFlowStepsWithContext is the same as AddJobFlowSteps with the addition of
268// the ability to pass a context and additional request options.
269//
270// See AddJobFlowSteps for details on how to use this API operation.
271//
272// The context must be non-nil and will be used for request cancellation. If
273// the context is nil a panic will occur. In the future the SDK may create
274// sub-contexts for http.Requests. See https://golang.org/pkg/context/
275// for more information on using Contexts.
276func (c *EMR) AddJobFlowStepsWithContext(ctx aws.Context, input *AddJobFlowStepsInput, opts ...request.Option) (*AddJobFlowStepsOutput, error) {
277	req, out := c.AddJobFlowStepsRequest(input)
278	req.SetContext(ctx)
279	req.ApplyOptions(opts...)
280	return out, req.Send()
281}
282
283const opAddTags = "AddTags"
284
285// AddTagsRequest generates a "aws/request.Request" representing the
286// client's request for the AddTags operation. The "output" return
287// value will be populated with the request's response once the request completes
288// successfully.
289//
290// Use "Send" method on the returned Request to send the API call to the service.
291// the "output" return value is not valid until after Send returns without error.
292//
293// See AddTags for more information on using the AddTags
294// API call, and error handling.
295//
296// This method is useful when you want to inject custom logic or configuration
297// into the SDK's request lifecycle. Such as custom headers, or retry logic.
298//
299//
300//    // Example sending a request using the AddTagsRequest method.
301//    req, resp := client.AddTagsRequest(params)
302//
303//    err := req.Send()
304//    if err == nil { // resp is now filled
305//        fmt.Println(resp)
306//    }
307//
308// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddTags
309func (c *EMR) AddTagsRequest(input *AddTagsInput) (req *request.Request, output *AddTagsOutput) {
310	op := &request.Operation{
311		Name:       opAddTags,
312		HTTPMethod: "POST",
313		HTTPPath:   "/",
314	}
315
316	if input == nil {
317		input = &AddTagsInput{}
318	}
319
320	output = &AddTagsOutput{}
321	req = c.newRequest(op, input, output)
322	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
323	return
324}
325
326// AddTags API operation for Amazon Elastic MapReduce.
327//
328// Adds tags to an Amazon EMR resource. Tags make it easier to associate clusters
329// in various ways, such as grouping clusters to track your Amazon EMR resource
330// allocation costs. For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
331//
332// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
333// with awserr.Error's Code and Message methods to get detailed information about
334// the error.
335//
336// See the AWS API reference guide for Amazon Elastic MapReduce's
337// API operation AddTags for usage and error information.
338//
339// Returned Error Types:
340//   * InternalServerException
341//   This exception occurs when there is an internal failure in the EMR service.
342//
343//   * InvalidRequestException
344//   This exception occurs when there is something wrong with user input.
345//
346// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddTags
347func (c *EMR) AddTags(input *AddTagsInput) (*AddTagsOutput, error) {
348	req, out := c.AddTagsRequest(input)
349	return out, req.Send()
350}
351
352// AddTagsWithContext is the same as AddTags with the addition of
353// the ability to pass a context and additional request options.
354//
355// See AddTags for details on how to use this API operation.
356//
357// The context must be non-nil and will be used for request cancellation. If
358// the context is nil a panic will occur. In the future the SDK may create
359// sub-contexts for http.Requests. See https://golang.org/pkg/context/
360// for more information on using Contexts.
361func (c *EMR) AddTagsWithContext(ctx aws.Context, input *AddTagsInput, opts ...request.Option) (*AddTagsOutput, error) {
362	req, out := c.AddTagsRequest(input)
363	req.SetContext(ctx)
364	req.ApplyOptions(opts...)
365	return out, req.Send()
366}
367
368const opCancelSteps = "CancelSteps"
369
370// CancelStepsRequest generates a "aws/request.Request" representing the
371// client's request for the CancelSteps operation. The "output" return
372// value will be populated with the request's response once the request completes
373// successfully.
374//
375// Use "Send" method on the returned Request to send the API call to the service.
376// the "output" return value is not valid until after Send returns without error.
377//
378// See CancelSteps for more information on using the CancelSteps
379// API call, and error handling.
380//
381// This method is useful when you want to inject custom logic or configuration
382// into the SDK's request lifecycle. Such as custom headers, or retry logic.
383//
384//
385//    // Example sending a request using the CancelStepsRequest method.
386//    req, resp := client.CancelStepsRequest(params)
387//
388//    err := req.Send()
389//    if err == nil { // resp is now filled
390//        fmt.Println(resp)
391//    }
392//
393// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelSteps
394func (c *EMR) CancelStepsRequest(input *CancelStepsInput) (req *request.Request, output *CancelStepsOutput) {
395	op := &request.Operation{
396		Name:       opCancelSteps,
397		HTTPMethod: "POST",
398		HTTPPath:   "/",
399	}
400
401	if input == nil {
402		input = &CancelStepsInput{}
403	}
404
405	output = &CancelStepsOutput{}
406	req = c.newRequest(op, input, output)
407	return
408}
409
410// CancelSteps API operation for Amazon Elastic MapReduce.
411//
412// Cancels a pending step or steps in a running cluster. Available only in Amazon
413// EMR versions 4.8.0 and later, excluding version 5.0.0. A maximum of 256 steps
414// are allowed in each CancelSteps request. CancelSteps is idempotent but asynchronous;
415// it does not guarantee a step will be canceled, even if the request is successfully
416// submitted. You can only cancel steps that are in a PENDING state.
417//
418// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
419// with awserr.Error's Code and Message methods to get detailed information about
420// the error.
421//
422// See the AWS API reference guide for Amazon Elastic MapReduce's
423// API operation CancelSteps for usage and error information.
424//
425// Returned Error Types:
426//   * InternalServerError
427//   Indicates that an error occurred while processing the request and that the
428//   request was not completed.
429//
430//   * InvalidRequestException
431//   This exception occurs when there is something wrong with user input.
432//
433// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelSteps
434func (c *EMR) CancelSteps(input *CancelStepsInput) (*CancelStepsOutput, error) {
435	req, out := c.CancelStepsRequest(input)
436	return out, req.Send()
437}
438
439// CancelStepsWithContext is the same as CancelSteps with the addition of
440// the ability to pass a context and additional request options.
441//
442// See CancelSteps for details on how to use this API operation.
443//
444// The context must be non-nil and will be used for request cancellation. If
445// the context is nil a panic will occur. In the future the SDK may create
446// sub-contexts for http.Requests. See https://golang.org/pkg/context/
447// for more information on using Contexts.
448func (c *EMR) CancelStepsWithContext(ctx aws.Context, input *CancelStepsInput, opts ...request.Option) (*CancelStepsOutput, error) {
449	req, out := c.CancelStepsRequest(input)
450	req.SetContext(ctx)
451	req.ApplyOptions(opts...)
452	return out, req.Send()
453}
454
455const opCreateSecurityConfiguration = "CreateSecurityConfiguration"
456
457// CreateSecurityConfigurationRequest generates a "aws/request.Request" representing the
458// client's request for the CreateSecurityConfiguration operation. The "output" return
459// value will be populated with the request's response once the request completes
460// successfully.
461//
462// Use "Send" method on the returned Request to send the API call to the service.
463// the "output" return value is not valid until after Send returns without error.
464//
465// See CreateSecurityConfiguration for more information on using the CreateSecurityConfiguration
466// API call, and error handling.
467//
468// This method is useful when you want to inject custom logic or configuration
469// into the SDK's request lifecycle. Such as custom headers, or retry logic.
470//
471//
472//    // Example sending a request using the CreateSecurityConfigurationRequest method.
473//    req, resp := client.CreateSecurityConfigurationRequest(params)
474//
475//    err := req.Send()
476//    if err == nil { // resp is now filled
477//        fmt.Println(resp)
478//    }
479//
480// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfiguration
481func (c *EMR) CreateSecurityConfigurationRequest(input *CreateSecurityConfigurationInput) (req *request.Request, output *CreateSecurityConfigurationOutput) {
482	op := &request.Operation{
483		Name:       opCreateSecurityConfiguration,
484		HTTPMethod: "POST",
485		HTTPPath:   "/",
486	}
487
488	if input == nil {
489		input = &CreateSecurityConfigurationInput{}
490	}
491
492	output = &CreateSecurityConfigurationOutput{}
493	req = c.newRequest(op, input, output)
494	return
495}
496
497// CreateSecurityConfiguration API operation for Amazon Elastic MapReduce.
498//
499// Creates a security configuration, which is stored in the service and can
500// be specified when a cluster is created.
501//
502// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
503// with awserr.Error's Code and Message methods to get detailed information about
504// the error.
505//
506// See the AWS API reference guide for Amazon Elastic MapReduce's
507// API operation CreateSecurityConfiguration for usage and error information.
508//
509// Returned Error Types:
510//   * InternalServerException
511//   This exception occurs when there is an internal failure in the EMR service.
512//
513//   * InvalidRequestException
514//   This exception occurs when there is something wrong with user input.
515//
516// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfiguration
517func (c *EMR) CreateSecurityConfiguration(input *CreateSecurityConfigurationInput) (*CreateSecurityConfigurationOutput, error) {
518	req, out := c.CreateSecurityConfigurationRequest(input)
519	return out, req.Send()
520}
521
522// CreateSecurityConfigurationWithContext is the same as CreateSecurityConfiguration with the addition of
523// the ability to pass a context and additional request options.
524//
525// See CreateSecurityConfiguration for details on how to use this API operation.
526//
527// The context must be non-nil and will be used for request cancellation. If
528// the context is nil a panic will occur. In the future the SDK may create
529// sub-contexts for http.Requests. See https://golang.org/pkg/context/
530// for more information on using Contexts.
531func (c *EMR) CreateSecurityConfigurationWithContext(ctx aws.Context, input *CreateSecurityConfigurationInput, opts ...request.Option) (*CreateSecurityConfigurationOutput, error) {
532	req, out := c.CreateSecurityConfigurationRequest(input)
533	req.SetContext(ctx)
534	req.ApplyOptions(opts...)
535	return out, req.Send()
536}
537
538const opDeleteSecurityConfiguration = "DeleteSecurityConfiguration"
539
540// DeleteSecurityConfigurationRequest generates a "aws/request.Request" representing the
541// client's request for the DeleteSecurityConfiguration operation. The "output" return
542// value will be populated with the request's response once the request completes
543// successfully.
544//
545// Use "Send" method on the returned Request to send the API call to the service.
546// the "output" return value is not valid until after Send returns without error.
547//
548// See DeleteSecurityConfiguration for more information on using the DeleteSecurityConfiguration
549// API call, and error handling.
550//
551// This method is useful when you want to inject custom logic or configuration
552// into the SDK's request lifecycle. Such as custom headers, or retry logic.
553//
554//
555//    // Example sending a request using the DeleteSecurityConfigurationRequest method.
556//    req, resp := client.DeleteSecurityConfigurationRequest(params)
557//
558//    err := req.Send()
559//    if err == nil { // resp is now filled
560//        fmt.Println(resp)
561//    }
562//
563// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfiguration
564func (c *EMR) DeleteSecurityConfigurationRequest(input *DeleteSecurityConfigurationInput) (req *request.Request, output *DeleteSecurityConfigurationOutput) {
565	op := &request.Operation{
566		Name:       opDeleteSecurityConfiguration,
567		HTTPMethod: "POST",
568		HTTPPath:   "/",
569	}
570
571	if input == nil {
572		input = &DeleteSecurityConfigurationInput{}
573	}
574
575	output = &DeleteSecurityConfigurationOutput{}
576	req = c.newRequest(op, input, output)
577	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
578	return
579}
580
581// DeleteSecurityConfiguration API operation for Amazon Elastic MapReduce.
582//
583// Deletes a security configuration.
584//
585// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
586// with awserr.Error's Code and Message methods to get detailed information about
587// the error.
588//
589// See the AWS API reference guide for Amazon Elastic MapReduce's
590// API operation DeleteSecurityConfiguration for usage and error information.
591//
592// Returned Error Types:
593//   * InternalServerException
594//   This exception occurs when there is an internal failure in the EMR service.
595//
596//   * InvalidRequestException
597//   This exception occurs when there is something wrong with user input.
598//
599// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfiguration
600func (c *EMR) DeleteSecurityConfiguration(input *DeleteSecurityConfigurationInput) (*DeleteSecurityConfigurationOutput, error) {
601	req, out := c.DeleteSecurityConfigurationRequest(input)
602	return out, req.Send()
603}
604
605// DeleteSecurityConfigurationWithContext is the same as DeleteSecurityConfiguration with the addition of
606// the ability to pass a context and additional request options.
607//
608// See DeleteSecurityConfiguration for details on how to use this API operation.
609//
610// The context must be non-nil and will be used for request cancellation. If
611// the context is nil a panic will occur. In the future the SDK may create
612// sub-contexts for http.Requests. See https://golang.org/pkg/context/
613// for more information on using Contexts.
614func (c *EMR) DeleteSecurityConfigurationWithContext(ctx aws.Context, input *DeleteSecurityConfigurationInput, opts ...request.Option) (*DeleteSecurityConfigurationOutput, error) {
615	req, out := c.DeleteSecurityConfigurationRequest(input)
616	req.SetContext(ctx)
617	req.ApplyOptions(opts...)
618	return out, req.Send()
619}
620
621const opDescribeCluster = "DescribeCluster"
622
623// DescribeClusterRequest generates a "aws/request.Request" representing the
624// client's request for the DescribeCluster operation. The "output" return
625// value will be populated with the request's response once the request completes
626// successfully.
627//
628// Use "Send" method on the returned Request to send the API call to the service.
629// the "output" return value is not valid until after Send returns without error.
630//
631// See DescribeCluster for more information on using the DescribeCluster
632// API call, and error handling.
633//
634// This method is useful when you want to inject custom logic or configuration
635// into the SDK's request lifecycle. Such as custom headers, or retry logic.
636//
637//
638//    // Example sending a request using the DescribeClusterRequest method.
639//    req, resp := client.DescribeClusterRequest(params)
640//
641//    err := req.Send()
642//    if err == nil { // resp is now filled
643//        fmt.Println(resp)
644//    }
645//
646// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeCluster
647func (c *EMR) DescribeClusterRequest(input *DescribeClusterInput) (req *request.Request, output *DescribeClusterOutput) {
648	op := &request.Operation{
649		Name:       opDescribeCluster,
650		HTTPMethod: "POST",
651		HTTPPath:   "/",
652	}
653
654	if input == nil {
655		input = &DescribeClusterInput{}
656	}
657
658	output = &DescribeClusterOutput{}
659	req = c.newRequest(op, input, output)
660	return
661}
662
663// DescribeCluster API operation for Amazon Elastic MapReduce.
664//
665// Provides cluster-level details including status, hardware and software configuration,
666// VPC settings, and so on.
667//
668// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
669// with awserr.Error's Code and Message methods to get detailed information about
670// the error.
671//
672// See the AWS API reference guide for Amazon Elastic MapReduce's
673// API operation DescribeCluster for usage and error information.
674//
675// Returned Error Types:
676//   * InternalServerException
677//   This exception occurs when there is an internal failure in the EMR service.
678//
679//   * InvalidRequestException
680//   This exception occurs when there is something wrong with user input.
681//
682// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeCluster
683func (c *EMR) DescribeCluster(input *DescribeClusterInput) (*DescribeClusterOutput, error) {
684	req, out := c.DescribeClusterRequest(input)
685	return out, req.Send()
686}
687
688// DescribeClusterWithContext is the same as DescribeCluster with the addition of
689// the ability to pass a context and additional request options.
690//
691// See DescribeCluster for details on how to use this API operation.
692//
693// The context must be non-nil and will be used for request cancellation. If
694// the context is nil a panic will occur. In the future the SDK may create
695// sub-contexts for http.Requests. See https://golang.org/pkg/context/
696// for more information on using Contexts.
697func (c *EMR) DescribeClusterWithContext(ctx aws.Context, input *DescribeClusterInput, opts ...request.Option) (*DescribeClusterOutput, error) {
698	req, out := c.DescribeClusterRequest(input)
699	req.SetContext(ctx)
700	req.ApplyOptions(opts...)
701	return out, req.Send()
702}
703
704const opDescribeJobFlows = "DescribeJobFlows"
705
706// DescribeJobFlowsRequest generates a "aws/request.Request" representing the
707// client's request for the DescribeJobFlows operation. The "output" return
708// value will be populated with the request's response once the request completes
709// successfully.
710//
711// Use "Send" method on the returned Request to send the API call to the service.
712// the "output" return value is not valid until after Send returns without error.
713//
714// See DescribeJobFlows for more information on using the DescribeJobFlows
715// API call, and error handling.
716//
717// This method is useful when you want to inject custom logic or configuration
718// into the SDK's request lifecycle. Such as custom headers, or retry logic.
719//
720//
721//    // Example sending a request using the DescribeJobFlowsRequest method.
722//    req, resp := client.DescribeJobFlowsRequest(params)
723//
724//    err := req.Send()
725//    if err == nil { // resp is now filled
726//        fmt.Println(resp)
727//    }
728//
729// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlows
730//
731// Deprecated: DescribeJobFlows has been deprecated
732func (c *EMR) DescribeJobFlowsRequest(input *DescribeJobFlowsInput) (req *request.Request, output *DescribeJobFlowsOutput) {
733	if c.Client.Config.Logger != nil {
734		c.Client.Config.Logger.Log("This operation, DescribeJobFlows, has been deprecated")
735	}
736	op := &request.Operation{
737		Name:       opDescribeJobFlows,
738		HTTPMethod: "POST",
739		HTTPPath:   "/",
740	}
741
742	if input == nil {
743		input = &DescribeJobFlowsInput{}
744	}
745
746	output = &DescribeJobFlowsOutput{}
747	req = c.newRequest(op, input, output)
748	return
749}
750
751// DescribeJobFlows API operation for Amazon Elastic MapReduce.
752//
753// This API is deprecated and will eventually be removed. We recommend you use
754// ListClusters, DescribeCluster, ListSteps, ListInstanceGroups and ListBootstrapActions
755// instead.
756//
757// DescribeJobFlows returns a list of job flows that match all of the supplied
758// parameters. The parameters can include a list of job flow IDs, job flow states,
759// and restrictions on job flow creation date and time.
760//
761// Regardless of supplied parameters, only job flows created within the last
762// two months are returned.
763//
764// If no parameters are supplied, then job flows matching either of the following
765// criteria are returned:
766//
767//    * Job flows created and completed in the last two weeks
768//
769//    * Job flows created within the last two months that are in one of the
770//    following states: RUNNING, WAITING, SHUTTING_DOWN, STARTING
771//
772// Amazon EMR can return a maximum of 512 job flow descriptions.
773//
774// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
775// with awserr.Error's Code and Message methods to get detailed information about
776// the error.
777//
778// See the AWS API reference guide for Amazon Elastic MapReduce's
779// API operation DescribeJobFlows for usage and error information.
780//
781// Returned Error Types:
782//   * InternalServerError
783//   Indicates that an error occurred while processing the request and that the
784//   request was not completed.
785//
786// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlows
787//
788// Deprecated: DescribeJobFlows has been deprecated
789func (c *EMR) DescribeJobFlows(input *DescribeJobFlowsInput) (*DescribeJobFlowsOutput, error) {
790	req, out := c.DescribeJobFlowsRequest(input)
791	return out, req.Send()
792}
793
794// DescribeJobFlowsWithContext is the same as DescribeJobFlows with the addition of
795// the ability to pass a context and additional request options.
796//
797// See DescribeJobFlows for details on how to use this API operation.
798//
799// The context must be non-nil and will be used for request cancellation. If
800// the context is nil a panic will occur. In the future the SDK may create
801// sub-contexts for http.Requests. See https://golang.org/pkg/context/
802// for more information on using Contexts.
803//
804// Deprecated: DescribeJobFlowsWithContext has been deprecated
805func (c *EMR) DescribeJobFlowsWithContext(ctx aws.Context, input *DescribeJobFlowsInput, opts ...request.Option) (*DescribeJobFlowsOutput, error) {
806	req, out := c.DescribeJobFlowsRequest(input)
807	req.SetContext(ctx)
808	req.ApplyOptions(opts...)
809	return out, req.Send()
810}
811
812const opDescribeNotebookExecution = "DescribeNotebookExecution"
813
814// DescribeNotebookExecutionRequest generates a "aws/request.Request" representing the
815// client's request for the DescribeNotebookExecution operation. The "output" return
816// value will be populated with the request's response once the request completes
817// successfully.
818//
819// Use "Send" method on the returned Request to send the API call to the service.
820// the "output" return value is not valid until after Send returns without error.
821//
822// See DescribeNotebookExecution for more information on using the DescribeNotebookExecution
823// API call, and error handling.
824//
825// This method is useful when you want to inject custom logic or configuration
826// into the SDK's request lifecycle. Such as custom headers, or retry logic.
827//
828//
829//    // Example sending a request using the DescribeNotebookExecutionRequest method.
830//    req, resp := client.DescribeNotebookExecutionRequest(params)
831//
832//    err := req.Send()
833//    if err == nil { // resp is now filled
834//        fmt.Println(resp)
835//    }
836//
837// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeNotebookExecution
838func (c *EMR) DescribeNotebookExecutionRequest(input *DescribeNotebookExecutionInput) (req *request.Request, output *DescribeNotebookExecutionOutput) {
839	op := &request.Operation{
840		Name:       opDescribeNotebookExecution,
841		HTTPMethod: "POST",
842		HTTPPath:   "/",
843	}
844
845	if input == nil {
846		input = &DescribeNotebookExecutionInput{}
847	}
848
849	output = &DescribeNotebookExecutionOutput{}
850	req = c.newRequest(op, input, output)
851	return
852}
853
854// DescribeNotebookExecution API operation for Amazon Elastic MapReduce.
855//
856// Provides details of a notebook execution.
857//
858// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
859// with awserr.Error's Code and Message methods to get detailed information about
860// the error.
861//
862// See the AWS API reference guide for Amazon Elastic MapReduce's
863// API operation DescribeNotebookExecution for usage and error information.
864//
865// Returned Error Types:
866//   * InternalServerError
867//   Indicates that an error occurred while processing the request and that the
868//   request was not completed.
869//
870//   * InvalidRequestException
871//   This exception occurs when there is something wrong with user input.
872//
873// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeNotebookExecution
874func (c *EMR) DescribeNotebookExecution(input *DescribeNotebookExecutionInput) (*DescribeNotebookExecutionOutput, error) {
875	req, out := c.DescribeNotebookExecutionRequest(input)
876	return out, req.Send()
877}
878
879// DescribeNotebookExecutionWithContext is the same as DescribeNotebookExecution with the addition of
880// the ability to pass a context and additional request options.
881//
882// See DescribeNotebookExecution for details on how to use this API operation.
883//
884// The context must be non-nil and will be used for request cancellation. If
885// the context is nil a panic will occur. In the future the SDK may create
886// sub-contexts for http.Requests. See https://golang.org/pkg/context/
887// for more information on using Contexts.
888func (c *EMR) DescribeNotebookExecutionWithContext(ctx aws.Context, input *DescribeNotebookExecutionInput, opts ...request.Option) (*DescribeNotebookExecutionOutput, error) {
889	req, out := c.DescribeNotebookExecutionRequest(input)
890	req.SetContext(ctx)
891	req.ApplyOptions(opts...)
892	return out, req.Send()
893}
894
895const opDescribeSecurityConfiguration = "DescribeSecurityConfiguration"
896
897// DescribeSecurityConfigurationRequest generates a "aws/request.Request" representing the
898// client's request for the DescribeSecurityConfiguration operation. The "output" return
899// value will be populated with the request's response once the request completes
900// successfully.
901//
902// Use "Send" method on the returned Request to send the API call to the service.
903// the "output" return value is not valid until after Send returns without error.
904//
905// See DescribeSecurityConfiguration for more information on using the DescribeSecurityConfiguration
906// API call, and error handling.
907//
908// This method is useful when you want to inject custom logic or configuration
909// into the SDK's request lifecycle. Such as custom headers, or retry logic.
910//
911//
912//    // Example sending a request using the DescribeSecurityConfigurationRequest method.
913//    req, resp := client.DescribeSecurityConfigurationRequest(params)
914//
915//    err := req.Send()
916//    if err == nil { // resp is now filled
917//        fmt.Println(resp)
918//    }
919//
920// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfiguration
921func (c *EMR) DescribeSecurityConfigurationRequest(input *DescribeSecurityConfigurationInput) (req *request.Request, output *DescribeSecurityConfigurationOutput) {
922	op := &request.Operation{
923		Name:       opDescribeSecurityConfiguration,
924		HTTPMethod: "POST",
925		HTTPPath:   "/",
926	}
927
928	if input == nil {
929		input = &DescribeSecurityConfigurationInput{}
930	}
931
932	output = &DescribeSecurityConfigurationOutput{}
933	req = c.newRequest(op, input, output)
934	return
935}
936
937// DescribeSecurityConfiguration API operation for Amazon Elastic MapReduce.
938//
939// Provides the details of a security configuration by returning the configuration
940// JSON.
941//
942// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
943// with awserr.Error's Code and Message methods to get detailed information about
944// the error.
945//
946// See the AWS API reference guide for Amazon Elastic MapReduce's
947// API operation DescribeSecurityConfiguration for usage and error information.
948//
949// Returned Error Types:
950//   * InternalServerException
951//   This exception occurs when there is an internal failure in the EMR service.
952//
953//   * InvalidRequestException
954//   This exception occurs when there is something wrong with user input.
955//
956// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfiguration
957func (c *EMR) DescribeSecurityConfiguration(input *DescribeSecurityConfigurationInput) (*DescribeSecurityConfigurationOutput, error) {
958	req, out := c.DescribeSecurityConfigurationRequest(input)
959	return out, req.Send()
960}
961
962// DescribeSecurityConfigurationWithContext is the same as DescribeSecurityConfiguration with the addition of
963// the ability to pass a context and additional request options.
964//
965// See DescribeSecurityConfiguration for details on how to use this API operation.
966//
967// The context must be non-nil and will be used for request cancellation. If
968// the context is nil a panic will occur. In the future the SDK may create
969// sub-contexts for http.Requests. See https://golang.org/pkg/context/
970// for more information on using Contexts.
971func (c *EMR) DescribeSecurityConfigurationWithContext(ctx aws.Context, input *DescribeSecurityConfigurationInput, opts ...request.Option) (*DescribeSecurityConfigurationOutput, error) {
972	req, out := c.DescribeSecurityConfigurationRequest(input)
973	req.SetContext(ctx)
974	req.ApplyOptions(opts...)
975	return out, req.Send()
976}
977
978const opDescribeStep = "DescribeStep"
979
980// DescribeStepRequest generates a "aws/request.Request" representing the
981// client's request for the DescribeStep operation. The "output" return
982// value will be populated with the request's response once the request completes
983// successfully.
984//
985// Use "Send" method on the returned Request to send the API call to the service.
986// the "output" return value is not valid until after Send returns without error.
987//
988// See DescribeStep for more information on using the DescribeStep
989// API call, and error handling.
990//
991// This method is useful when you want to inject custom logic or configuration
992// into the SDK's request lifecycle. Such as custom headers, or retry logic.
993//
994//
995//    // Example sending a request using the DescribeStepRequest method.
996//    req, resp := client.DescribeStepRequest(params)
997//
998//    err := req.Send()
999//    if err == nil { // resp is now filled
1000//        fmt.Println(resp)
1001//    }
1002//
1003// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStep
1004func (c *EMR) DescribeStepRequest(input *DescribeStepInput) (req *request.Request, output *DescribeStepOutput) {
1005	op := &request.Operation{
1006		Name:       opDescribeStep,
1007		HTTPMethod: "POST",
1008		HTTPPath:   "/",
1009	}
1010
1011	if input == nil {
1012		input = &DescribeStepInput{}
1013	}
1014
1015	output = &DescribeStepOutput{}
1016	req = c.newRequest(op, input, output)
1017	return
1018}
1019
1020// DescribeStep API operation for Amazon Elastic MapReduce.
1021//
1022// Provides more detail about the cluster step.
1023//
1024// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1025// with awserr.Error's Code and Message methods to get detailed information about
1026// the error.
1027//
1028// See the AWS API reference guide for Amazon Elastic MapReduce's
1029// API operation DescribeStep for usage and error information.
1030//
1031// Returned Error Types:
1032//   * InternalServerException
1033//   This exception occurs when there is an internal failure in the EMR service.
1034//
1035//   * InvalidRequestException
1036//   This exception occurs when there is something wrong with user input.
1037//
1038// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStep
1039func (c *EMR) DescribeStep(input *DescribeStepInput) (*DescribeStepOutput, error) {
1040	req, out := c.DescribeStepRequest(input)
1041	return out, req.Send()
1042}
1043
1044// DescribeStepWithContext is the same as DescribeStep with the addition of
1045// the ability to pass a context and additional request options.
1046//
1047// See DescribeStep for details on how to use this API operation.
1048//
1049// The context must be non-nil and will be used for request cancellation. If
1050// the context is nil a panic will occur. In the future the SDK may create
1051// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1052// for more information on using Contexts.
1053func (c *EMR) DescribeStepWithContext(ctx aws.Context, input *DescribeStepInput, opts ...request.Option) (*DescribeStepOutput, error) {
1054	req, out := c.DescribeStepRequest(input)
1055	req.SetContext(ctx)
1056	req.ApplyOptions(opts...)
1057	return out, req.Send()
1058}
1059
1060const opGetBlockPublicAccessConfiguration = "GetBlockPublicAccessConfiguration"
1061
1062// GetBlockPublicAccessConfigurationRequest generates a "aws/request.Request" representing the
1063// client's request for the GetBlockPublicAccessConfiguration operation. The "output" return
1064// value will be populated with the request's response once the request completes
1065// successfully.
1066//
1067// Use "Send" method on the returned Request to send the API call to the service.
1068// the "output" return value is not valid until after Send returns without error.
1069//
1070// See GetBlockPublicAccessConfiguration for more information on using the GetBlockPublicAccessConfiguration
1071// API call, and error handling.
1072//
1073// This method is useful when you want to inject custom logic or configuration
1074// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1075//
1076//
1077//    // Example sending a request using the GetBlockPublicAccessConfigurationRequest method.
1078//    req, resp := client.GetBlockPublicAccessConfigurationRequest(params)
1079//
1080//    err := req.Send()
1081//    if err == nil { // resp is now filled
1082//        fmt.Println(resp)
1083//    }
1084//
1085// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetBlockPublicAccessConfiguration
1086func (c *EMR) GetBlockPublicAccessConfigurationRequest(input *GetBlockPublicAccessConfigurationInput) (req *request.Request, output *GetBlockPublicAccessConfigurationOutput) {
1087	op := &request.Operation{
1088		Name:       opGetBlockPublicAccessConfiguration,
1089		HTTPMethod: "POST",
1090		HTTPPath:   "/",
1091	}
1092
1093	if input == nil {
1094		input = &GetBlockPublicAccessConfigurationInput{}
1095	}
1096
1097	output = &GetBlockPublicAccessConfigurationOutput{}
1098	req = c.newRequest(op, input, output)
1099	return
1100}
1101
1102// GetBlockPublicAccessConfiguration API operation for Amazon Elastic MapReduce.
1103//
1104// Returns the Amazon EMR block public access configuration for your AWS account
1105// in the current Region. For more information see Configure Block Public Access
1106// for Amazon EMR (https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html)
1107// in the Amazon EMR Management Guide.
1108//
1109// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1110// with awserr.Error's Code and Message methods to get detailed information about
1111// the error.
1112//
1113// See the AWS API reference guide for Amazon Elastic MapReduce's
1114// API operation GetBlockPublicAccessConfiguration for usage and error information.
1115//
1116// Returned Error Types:
1117//   * InternalServerException
1118//   This exception occurs when there is an internal failure in the EMR service.
1119//
1120//   * InvalidRequestException
1121//   This exception occurs when there is something wrong with user input.
1122//
1123// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetBlockPublicAccessConfiguration
1124func (c *EMR) GetBlockPublicAccessConfiguration(input *GetBlockPublicAccessConfigurationInput) (*GetBlockPublicAccessConfigurationOutput, error) {
1125	req, out := c.GetBlockPublicAccessConfigurationRequest(input)
1126	return out, req.Send()
1127}
1128
1129// GetBlockPublicAccessConfigurationWithContext is the same as GetBlockPublicAccessConfiguration with the addition of
1130// the ability to pass a context and additional request options.
1131//
1132// See GetBlockPublicAccessConfiguration for details on how to use this API operation.
1133//
1134// The context must be non-nil and will be used for request cancellation. If
1135// the context is nil a panic will occur. In the future the SDK may create
1136// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1137// for more information on using Contexts.
1138func (c *EMR) GetBlockPublicAccessConfigurationWithContext(ctx aws.Context, input *GetBlockPublicAccessConfigurationInput, opts ...request.Option) (*GetBlockPublicAccessConfigurationOutput, error) {
1139	req, out := c.GetBlockPublicAccessConfigurationRequest(input)
1140	req.SetContext(ctx)
1141	req.ApplyOptions(opts...)
1142	return out, req.Send()
1143}
1144
1145const opGetManagedScalingPolicy = "GetManagedScalingPolicy"
1146
1147// GetManagedScalingPolicyRequest generates a "aws/request.Request" representing the
1148// client's request for the GetManagedScalingPolicy operation. The "output" return
1149// value will be populated with the request's response once the request completes
1150// successfully.
1151//
1152// Use "Send" method on the returned Request to send the API call to the service.
1153// the "output" return value is not valid until after Send returns without error.
1154//
1155// See GetManagedScalingPolicy for more information on using the GetManagedScalingPolicy
1156// API call, and error handling.
1157//
1158// This method is useful when you want to inject custom logic or configuration
1159// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1160//
1161//
1162//    // Example sending a request using the GetManagedScalingPolicyRequest method.
1163//    req, resp := client.GetManagedScalingPolicyRequest(params)
1164//
1165//    err := req.Send()
1166//    if err == nil { // resp is now filled
1167//        fmt.Println(resp)
1168//    }
1169//
1170// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicy
1171func (c *EMR) GetManagedScalingPolicyRequest(input *GetManagedScalingPolicyInput) (req *request.Request, output *GetManagedScalingPolicyOutput) {
1172	op := &request.Operation{
1173		Name:       opGetManagedScalingPolicy,
1174		HTTPMethod: "POST",
1175		HTTPPath:   "/",
1176	}
1177
1178	if input == nil {
1179		input = &GetManagedScalingPolicyInput{}
1180	}
1181
1182	output = &GetManagedScalingPolicyOutput{}
1183	req = c.newRequest(op, input, output)
1184	return
1185}
1186
1187// GetManagedScalingPolicy API operation for Amazon Elastic MapReduce.
1188//
1189// Fetches the attached managed scaling policy for an Amazon EMR cluster.
1190//
1191// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1192// with awserr.Error's Code and Message methods to get detailed information about
1193// the error.
1194//
1195// See the AWS API reference guide for Amazon Elastic MapReduce's
1196// API operation GetManagedScalingPolicy for usage and error information.
1197// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicy
1198func (c *EMR) GetManagedScalingPolicy(input *GetManagedScalingPolicyInput) (*GetManagedScalingPolicyOutput, error) {
1199	req, out := c.GetManagedScalingPolicyRequest(input)
1200	return out, req.Send()
1201}
1202
1203// GetManagedScalingPolicyWithContext is the same as GetManagedScalingPolicy with the addition of
1204// the ability to pass a context and additional request options.
1205//
1206// See GetManagedScalingPolicy for details on how to use this API operation.
1207//
1208// The context must be non-nil and will be used for request cancellation. If
1209// the context is nil a panic will occur. In the future the SDK may create
1210// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1211// for more information on using Contexts.
1212func (c *EMR) GetManagedScalingPolicyWithContext(ctx aws.Context, input *GetManagedScalingPolicyInput, opts ...request.Option) (*GetManagedScalingPolicyOutput, error) {
1213	req, out := c.GetManagedScalingPolicyRequest(input)
1214	req.SetContext(ctx)
1215	req.ApplyOptions(opts...)
1216	return out, req.Send()
1217}
1218
1219const opListBootstrapActions = "ListBootstrapActions"
1220
1221// ListBootstrapActionsRequest generates a "aws/request.Request" representing the
1222// client's request for the ListBootstrapActions operation. The "output" return
1223// value will be populated with the request's response once the request completes
1224// successfully.
1225//
1226// Use "Send" method on the returned Request to send the API call to the service.
1227// the "output" return value is not valid until after Send returns without error.
1228//
1229// See ListBootstrapActions for more information on using the ListBootstrapActions
1230// API call, and error handling.
1231//
1232// This method is useful when you want to inject custom logic or configuration
1233// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1234//
1235//
1236//    // Example sending a request using the ListBootstrapActionsRequest method.
1237//    req, resp := client.ListBootstrapActionsRequest(params)
1238//
1239//    err := req.Send()
1240//    if err == nil { // resp is now filled
1241//        fmt.Println(resp)
1242//    }
1243//
1244// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActions
1245func (c *EMR) ListBootstrapActionsRequest(input *ListBootstrapActionsInput) (req *request.Request, output *ListBootstrapActionsOutput) {
1246	op := &request.Operation{
1247		Name:       opListBootstrapActions,
1248		HTTPMethod: "POST",
1249		HTTPPath:   "/",
1250		Paginator: &request.Paginator{
1251			InputTokens:     []string{"Marker"},
1252			OutputTokens:    []string{"Marker"},
1253			LimitToken:      "",
1254			TruncationToken: "",
1255		},
1256	}
1257
1258	if input == nil {
1259		input = &ListBootstrapActionsInput{}
1260	}
1261
1262	output = &ListBootstrapActionsOutput{}
1263	req = c.newRequest(op, input, output)
1264	return
1265}
1266
1267// ListBootstrapActions API operation for Amazon Elastic MapReduce.
1268//
1269// Provides information about the bootstrap actions associated with a cluster.
1270//
1271// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1272// with awserr.Error's Code and Message methods to get detailed information about
1273// the error.
1274//
1275// See the AWS API reference guide for Amazon Elastic MapReduce's
1276// API operation ListBootstrapActions for usage and error information.
1277//
1278// Returned Error Types:
1279//   * InternalServerException
1280//   This exception occurs when there is an internal failure in the EMR service.
1281//
1282//   * InvalidRequestException
1283//   This exception occurs when there is something wrong with user input.
1284//
1285// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActions
1286func (c *EMR) ListBootstrapActions(input *ListBootstrapActionsInput) (*ListBootstrapActionsOutput, error) {
1287	req, out := c.ListBootstrapActionsRequest(input)
1288	return out, req.Send()
1289}
1290
1291// ListBootstrapActionsWithContext is the same as ListBootstrapActions with the addition of
1292// the ability to pass a context and additional request options.
1293//
1294// See ListBootstrapActions for details on how to use this API operation.
1295//
1296// The context must be non-nil and will be used for request cancellation. If
1297// the context is nil a panic will occur. In the future the SDK may create
1298// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1299// for more information on using Contexts.
1300func (c *EMR) ListBootstrapActionsWithContext(ctx aws.Context, input *ListBootstrapActionsInput, opts ...request.Option) (*ListBootstrapActionsOutput, error) {
1301	req, out := c.ListBootstrapActionsRequest(input)
1302	req.SetContext(ctx)
1303	req.ApplyOptions(opts...)
1304	return out, req.Send()
1305}
1306
1307// ListBootstrapActionsPages iterates over the pages of a ListBootstrapActions operation,
1308// calling the "fn" function with the response data for each page. To stop
1309// iterating, return false from the fn function.
1310//
1311// See ListBootstrapActions method for more information on how to use this operation.
1312//
1313// Note: This operation can generate multiple requests to a service.
1314//
1315//    // Example iterating over at most 3 pages of a ListBootstrapActions operation.
1316//    pageNum := 0
1317//    err := client.ListBootstrapActionsPages(params,
1318//        func(page *emr.ListBootstrapActionsOutput, lastPage bool) bool {
1319//            pageNum++
1320//            fmt.Println(page)
1321//            return pageNum <= 3
1322//        })
1323//
1324func (c *EMR) ListBootstrapActionsPages(input *ListBootstrapActionsInput, fn func(*ListBootstrapActionsOutput, bool) bool) error {
1325	return c.ListBootstrapActionsPagesWithContext(aws.BackgroundContext(), input, fn)
1326}
1327
1328// ListBootstrapActionsPagesWithContext same as ListBootstrapActionsPages except
1329// it takes a Context and allows setting request options on the pages.
1330//
1331// The context must be non-nil and will be used for request cancellation. If
1332// the context is nil a panic will occur. In the future the SDK may create
1333// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1334// for more information on using Contexts.
1335func (c *EMR) ListBootstrapActionsPagesWithContext(ctx aws.Context, input *ListBootstrapActionsInput, fn func(*ListBootstrapActionsOutput, bool) bool, opts ...request.Option) error {
1336	p := request.Pagination{
1337		NewRequest: func() (*request.Request, error) {
1338			var inCpy *ListBootstrapActionsInput
1339			if input != nil {
1340				tmp := *input
1341				inCpy = &tmp
1342			}
1343			req, _ := c.ListBootstrapActionsRequest(inCpy)
1344			req.SetContext(ctx)
1345			req.ApplyOptions(opts...)
1346			return req, nil
1347		},
1348	}
1349
1350	for p.Next() {
1351		if !fn(p.Page().(*ListBootstrapActionsOutput), !p.HasNextPage()) {
1352			break
1353		}
1354	}
1355
1356	return p.Err()
1357}
1358
1359const opListClusters = "ListClusters"
1360
1361// ListClustersRequest generates a "aws/request.Request" representing the
1362// client's request for the ListClusters operation. The "output" return
1363// value will be populated with the request's response once the request completes
1364// successfully.
1365//
1366// Use "Send" method on the returned Request to send the API call to the service.
1367// the "output" return value is not valid until after Send returns without error.
1368//
1369// See ListClusters for more information on using the ListClusters
1370// API call, and error handling.
1371//
1372// This method is useful when you want to inject custom logic or configuration
1373// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1374//
1375//
1376//    // Example sending a request using the ListClustersRequest method.
1377//    req, resp := client.ListClustersRequest(params)
1378//
1379//    err := req.Send()
1380//    if err == nil { // resp is now filled
1381//        fmt.Println(resp)
1382//    }
1383//
1384// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClusters
1385func (c *EMR) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
1386	op := &request.Operation{
1387		Name:       opListClusters,
1388		HTTPMethod: "POST",
1389		HTTPPath:   "/",
1390		Paginator: &request.Paginator{
1391			InputTokens:     []string{"Marker"},
1392			OutputTokens:    []string{"Marker"},
1393			LimitToken:      "",
1394			TruncationToken: "",
1395		},
1396	}
1397
1398	if input == nil {
1399		input = &ListClustersInput{}
1400	}
1401
1402	output = &ListClustersOutput{}
1403	req = c.newRequest(op, input, output)
1404	return
1405}
1406
1407// ListClusters API operation for Amazon Elastic MapReduce.
1408//
1409// Provides the status of all clusters visible to this AWS account. Allows you
1410// to filter the list of clusters based on certain criteria; for example, filtering
1411// by cluster creation date and time or by status. This call returns a maximum
1412// of 50 clusters per call, but returns a marker to track the paging of the
1413// cluster list across multiple ListClusters calls.
1414//
1415// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1416// with awserr.Error's Code and Message methods to get detailed information about
1417// the error.
1418//
1419// See the AWS API reference guide for Amazon Elastic MapReduce's
1420// API operation ListClusters for usage and error information.
1421//
1422// Returned Error Types:
1423//   * InternalServerException
1424//   This exception occurs when there is an internal failure in the EMR service.
1425//
1426//   * InvalidRequestException
1427//   This exception occurs when there is something wrong with user input.
1428//
1429// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClusters
1430func (c *EMR) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
1431	req, out := c.ListClustersRequest(input)
1432	return out, req.Send()
1433}
1434
1435// ListClustersWithContext is the same as ListClusters with the addition of
1436// the ability to pass a context and additional request options.
1437//
1438// See ListClusters for details on how to use this API operation.
1439//
1440// The context must be non-nil and will be used for request cancellation. If
1441// the context is nil a panic will occur. In the future the SDK may create
1442// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1443// for more information on using Contexts.
1444func (c *EMR) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
1445	req, out := c.ListClustersRequest(input)
1446	req.SetContext(ctx)
1447	req.ApplyOptions(opts...)
1448	return out, req.Send()
1449}
1450
1451// ListClustersPages iterates over the pages of a ListClusters operation,
1452// calling the "fn" function with the response data for each page. To stop
1453// iterating, return false from the fn function.
1454//
1455// See ListClusters method for more information on how to use this operation.
1456//
1457// Note: This operation can generate multiple requests to a service.
1458//
1459//    // Example iterating over at most 3 pages of a ListClusters operation.
1460//    pageNum := 0
1461//    err := client.ListClustersPages(params,
1462//        func(page *emr.ListClustersOutput, lastPage bool) bool {
1463//            pageNum++
1464//            fmt.Println(page)
1465//            return pageNum <= 3
1466//        })
1467//
1468func (c *EMR) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
1469	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
1470}
1471
1472// ListClustersPagesWithContext same as ListClustersPages except
1473// it takes a Context and allows setting request options on the pages.
1474//
1475// The context must be non-nil and will be used for request cancellation. If
1476// the context is nil a panic will occur. In the future the SDK may create
1477// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1478// for more information on using Contexts.
1479func (c *EMR) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
1480	p := request.Pagination{
1481		NewRequest: func() (*request.Request, error) {
1482			var inCpy *ListClustersInput
1483			if input != nil {
1484				tmp := *input
1485				inCpy = &tmp
1486			}
1487			req, _ := c.ListClustersRequest(inCpy)
1488			req.SetContext(ctx)
1489			req.ApplyOptions(opts...)
1490			return req, nil
1491		},
1492	}
1493
1494	for p.Next() {
1495		if !fn(p.Page().(*ListClustersOutput), !p.HasNextPage()) {
1496			break
1497		}
1498	}
1499
1500	return p.Err()
1501}
1502
1503const opListInstanceFleets = "ListInstanceFleets"
1504
1505// ListInstanceFleetsRequest generates a "aws/request.Request" representing the
1506// client's request for the ListInstanceFleets operation. The "output" return
1507// value will be populated with the request's response once the request completes
1508// successfully.
1509//
1510// Use "Send" method on the returned Request to send the API call to the service.
1511// the "output" return value is not valid until after Send returns without error.
1512//
1513// See ListInstanceFleets for more information on using the ListInstanceFleets
1514// API call, and error handling.
1515//
1516// This method is useful when you want to inject custom logic or configuration
1517// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1518//
1519//
1520//    // Example sending a request using the ListInstanceFleetsRequest method.
1521//    req, resp := client.ListInstanceFleetsRequest(params)
1522//
1523//    err := req.Send()
1524//    if err == nil { // resp is now filled
1525//        fmt.Println(resp)
1526//    }
1527//
1528// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleets
1529func (c *EMR) ListInstanceFleetsRequest(input *ListInstanceFleetsInput) (req *request.Request, output *ListInstanceFleetsOutput) {
1530	op := &request.Operation{
1531		Name:       opListInstanceFleets,
1532		HTTPMethod: "POST",
1533		HTTPPath:   "/",
1534		Paginator: &request.Paginator{
1535			InputTokens:     []string{"Marker"},
1536			OutputTokens:    []string{"Marker"},
1537			LimitToken:      "",
1538			TruncationToken: "",
1539		},
1540	}
1541
1542	if input == nil {
1543		input = &ListInstanceFleetsInput{}
1544	}
1545
1546	output = &ListInstanceFleetsOutput{}
1547	req = c.newRequest(op, input, output)
1548	return
1549}
1550
1551// ListInstanceFleets API operation for Amazon Elastic MapReduce.
1552//
1553// Lists all available details about the instance fleets in a cluster.
1554//
1555// The instance fleet configuration is available only in Amazon EMR versions
1556// 4.8.0 and later, excluding 5.0.x versions.
1557//
1558// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1559// with awserr.Error's Code and Message methods to get detailed information about
1560// the error.
1561//
1562// See the AWS API reference guide for Amazon Elastic MapReduce's
1563// API operation ListInstanceFleets for usage and error information.
1564//
1565// Returned Error Types:
1566//   * InternalServerException
1567//   This exception occurs when there is an internal failure in the EMR service.
1568//
1569//   * InvalidRequestException
1570//   This exception occurs when there is something wrong with user input.
1571//
1572// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleets
1573func (c *EMR) ListInstanceFleets(input *ListInstanceFleetsInput) (*ListInstanceFleetsOutput, error) {
1574	req, out := c.ListInstanceFleetsRequest(input)
1575	return out, req.Send()
1576}
1577
1578// ListInstanceFleetsWithContext is the same as ListInstanceFleets with the addition of
1579// the ability to pass a context and additional request options.
1580//
1581// See ListInstanceFleets for details on how to use this API operation.
1582//
1583// The context must be non-nil and will be used for request cancellation. If
1584// the context is nil a panic will occur. In the future the SDK may create
1585// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1586// for more information on using Contexts.
1587func (c *EMR) ListInstanceFleetsWithContext(ctx aws.Context, input *ListInstanceFleetsInput, opts ...request.Option) (*ListInstanceFleetsOutput, error) {
1588	req, out := c.ListInstanceFleetsRequest(input)
1589	req.SetContext(ctx)
1590	req.ApplyOptions(opts...)
1591	return out, req.Send()
1592}
1593
1594// ListInstanceFleetsPages iterates over the pages of a ListInstanceFleets operation,
1595// calling the "fn" function with the response data for each page. To stop
1596// iterating, return false from the fn function.
1597//
1598// See ListInstanceFleets method for more information on how to use this operation.
1599//
1600// Note: This operation can generate multiple requests to a service.
1601//
1602//    // Example iterating over at most 3 pages of a ListInstanceFleets operation.
1603//    pageNum := 0
1604//    err := client.ListInstanceFleetsPages(params,
1605//        func(page *emr.ListInstanceFleetsOutput, lastPage bool) bool {
1606//            pageNum++
1607//            fmt.Println(page)
1608//            return pageNum <= 3
1609//        })
1610//
1611func (c *EMR) ListInstanceFleetsPages(input *ListInstanceFleetsInput, fn func(*ListInstanceFleetsOutput, bool) bool) error {
1612	return c.ListInstanceFleetsPagesWithContext(aws.BackgroundContext(), input, fn)
1613}
1614
1615// ListInstanceFleetsPagesWithContext same as ListInstanceFleetsPages except
1616// it takes a Context and allows setting request options on the pages.
1617//
1618// The context must be non-nil and will be used for request cancellation. If
1619// the context is nil a panic will occur. In the future the SDK may create
1620// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1621// for more information on using Contexts.
1622func (c *EMR) ListInstanceFleetsPagesWithContext(ctx aws.Context, input *ListInstanceFleetsInput, fn func(*ListInstanceFleetsOutput, bool) bool, opts ...request.Option) error {
1623	p := request.Pagination{
1624		NewRequest: func() (*request.Request, error) {
1625			var inCpy *ListInstanceFleetsInput
1626			if input != nil {
1627				tmp := *input
1628				inCpy = &tmp
1629			}
1630			req, _ := c.ListInstanceFleetsRequest(inCpy)
1631			req.SetContext(ctx)
1632			req.ApplyOptions(opts...)
1633			return req, nil
1634		},
1635	}
1636
1637	for p.Next() {
1638		if !fn(p.Page().(*ListInstanceFleetsOutput), !p.HasNextPage()) {
1639			break
1640		}
1641	}
1642
1643	return p.Err()
1644}
1645
1646const opListInstanceGroups = "ListInstanceGroups"
1647
1648// ListInstanceGroupsRequest generates a "aws/request.Request" representing the
1649// client's request for the ListInstanceGroups operation. The "output" return
1650// value will be populated with the request's response once the request completes
1651// successfully.
1652//
1653// Use "Send" method on the returned Request to send the API call to the service.
1654// the "output" return value is not valid until after Send returns without error.
1655//
1656// See ListInstanceGroups for more information on using the ListInstanceGroups
1657// API call, and error handling.
1658//
1659// This method is useful when you want to inject custom logic or configuration
1660// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1661//
1662//
1663//    // Example sending a request using the ListInstanceGroupsRequest method.
1664//    req, resp := client.ListInstanceGroupsRequest(params)
1665//
1666//    err := req.Send()
1667//    if err == nil { // resp is now filled
1668//        fmt.Println(resp)
1669//    }
1670//
1671// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroups
1672func (c *EMR) ListInstanceGroupsRequest(input *ListInstanceGroupsInput) (req *request.Request, output *ListInstanceGroupsOutput) {
1673	op := &request.Operation{
1674		Name:       opListInstanceGroups,
1675		HTTPMethod: "POST",
1676		HTTPPath:   "/",
1677		Paginator: &request.Paginator{
1678			InputTokens:     []string{"Marker"},
1679			OutputTokens:    []string{"Marker"},
1680			LimitToken:      "",
1681			TruncationToken: "",
1682		},
1683	}
1684
1685	if input == nil {
1686		input = &ListInstanceGroupsInput{}
1687	}
1688
1689	output = &ListInstanceGroupsOutput{}
1690	req = c.newRequest(op, input, output)
1691	return
1692}
1693
1694// ListInstanceGroups API operation for Amazon Elastic MapReduce.
1695//
1696// Provides all available details about the instance groups in a cluster.
1697//
1698// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1699// with awserr.Error's Code and Message methods to get detailed information about
1700// the error.
1701//
1702// See the AWS API reference guide for Amazon Elastic MapReduce's
1703// API operation ListInstanceGroups for usage and error information.
1704//
1705// Returned Error Types:
1706//   * InternalServerException
1707//   This exception occurs when there is an internal failure in the EMR service.
1708//
1709//   * InvalidRequestException
1710//   This exception occurs when there is something wrong with user input.
1711//
1712// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroups
1713func (c *EMR) ListInstanceGroups(input *ListInstanceGroupsInput) (*ListInstanceGroupsOutput, error) {
1714	req, out := c.ListInstanceGroupsRequest(input)
1715	return out, req.Send()
1716}
1717
1718// ListInstanceGroupsWithContext is the same as ListInstanceGroups with the addition of
1719// the ability to pass a context and additional request options.
1720//
1721// See ListInstanceGroups for details on how to use this API operation.
1722//
1723// The context must be non-nil and will be used for request cancellation. If
1724// the context is nil a panic will occur. In the future the SDK may create
1725// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1726// for more information on using Contexts.
1727func (c *EMR) ListInstanceGroupsWithContext(ctx aws.Context, input *ListInstanceGroupsInput, opts ...request.Option) (*ListInstanceGroupsOutput, error) {
1728	req, out := c.ListInstanceGroupsRequest(input)
1729	req.SetContext(ctx)
1730	req.ApplyOptions(opts...)
1731	return out, req.Send()
1732}
1733
1734// ListInstanceGroupsPages iterates over the pages of a ListInstanceGroups operation,
1735// calling the "fn" function with the response data for each page. To stop
1736// iterating, return false from the fn function.
1737//
1738// See ListInstanceGroups method for more information on how to use this operation.
1739//
1740// Note: This operation can generate multiple requests to a service.
1741//
1742//    // Example iterating over at most 3 pages of a ListInstanceGroups operation.
1743//    pageNum := 0
1744//    err := client.ListInstanceGroupsPages(params,
1745//        func(page *emr.ListInstanceGroupsOutput, lastPage bool) bool {
1746//            pageNum++
1747//            fmt.Println(page)
1748//            return pageNum <= 3
1749//        })
1750//
1751func (c *EMR) ListInstanceGroupsPages(input *ListInstanceGroupsInput, fn func(*ListInstanceGroupsOutput, bool) bool) error {
1752	return c.ListInstanceGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
1753}
1754
1755// ListInstanceGroupsPagesWithContext same as ListInstanceGroupsPages except
1756// it takes a Context and allows setting request options on the pages.
1757//
1758// The context must be non-nil and will be used for request cancellation. If
1759// the context is nil a panic will occur. In the future the SDK may create
1760// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1761// for more information on using Contexts.
1762func (c *EMR) ListInstanceGroupsPagesWithContext(ctx aws.Context, input *ListInstanceGroupsInput, fn func(*ListInstanceGroupsOutput, bool) bool, opts ...request.Option) error {
1763	p := request.Pagination{
1764		NewRequest: func() (*request.Request, error) {
1765			var inCpy *ListInstanceGroupsInput
1766			if input != nil {
1767				tmp := *input
1768				inCpy = &tmp
1769			}
1770			req, _ := c.ListInstanceGroupsRequest(inCpy)
1771			req.SetContext(ctx)
1772			req.ApplyOptions(opts...)
1773			return req, nil
1774		},
1775	}
1776
1777	for p.Next() {
1778		if !fn(p.Page().(*ListInstanceGroupsOutput), !p.HasNextPage()) {
1779			break
1780		}
1781	}
1782
1783	return p.Err()
1784}
1785
1786const opListInstances = "ListInstances"
1787
1788// ListInstancesRequest generates a "aws/request.Request" representing the
1789// client's request for the ListInstances operation. The "output" return
1790// value will be populated with the request's response once the request completes
1791// successfully.
1792//
1793// Use "Send" method on the returned Request to send the API call to the service.
1794// the "output" return value is not valid until after Send returns without error.
1795//
1796// See ListInstances for more information on using the ListInstances
1797// API call, and error handling.
1798//
1799// This method is useful when you want to inject custom logic or configuration
1800// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1801//
1802//
1803//    // Example sending a request using the ListInstancesRequest method.
1804//    req, resp := client.ListInstancesRequest(params)
1805//
1806//    err := req.Send()
1807//    if err == nil { // resp is now filled
1808//        fmt.Println(resp)
1809//    }
1810//
1811// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstances
1812func (c *EMR) ListInstancesRequest(input *ListInstancesInput) (req *request.Request, output *ListInstancesOutput) {
1813	op := &request.Operation{
1814		Name:       opListInstances,
1815		HTTPMethod: "POST",
1816		HTTPPath:   "/",
1817		Paginator: &request.Paginator{
1818			InputTokens:     []string{"Marker"},
1819			OutputTokens:    []string{"Marker"},
1820			LimitToken:      "",
1821			TruncationToken: "",
1822		},
1823	}
1824
1825	if input == nil {
1826		input = &ListInstancesInput{}
1827	}
1828
1829	output = &ListInstancesOutput{}
1830	req = c.newRequest(op, input, output)
1831	return
1832}
1833
1834// ListInstances API operation for Amazon Elastic MapReduce.
1835//
1836// Provides information for all active EC2 instances and EC2 instances terminated
1837// in the last 30 days, up to a maximum of 2,000. EC2 instances in any of the
1838// following states are considered active: AWAITING_FULFILLMENT, PROVISIONING,
1839// BOOTSTRAPPING, RUNNING.
1840//
1841// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1842// with awserr.Error's Code and Message methods to get detailed information about
1843// the error.
1844//
1845// See the AWS API reference guide for Amazon Elastic MapReduce's
1846// API operation ListInstances for usage and error information.
1847//
1848// Returned Error Types:
1849//   * InternalServerException
1850//   This exception occurs when there is an internal failure in the EMR service.
1851//
1852//   * InvalidRequestException
1853//   This exception occurs when there is something wrong with user input.
1854//
1855// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstances
1856func (c *EMR) ListInstances(input *ListInstancesInput) (*ListInstancesOutput, error) {
1857	req, out := c.ListInstancesRequest(input)
1858	return out, req.Send()
1859}
1860
1861// ListInstancesWithContext is the same as ListInstances with the addition of
1862// the ability to pass a context and additional request options.
1863//
1864// See ListInstances for details on how to use this API operation.
1865//
1866// The context must be non-nil and will be used for request cancellation. If
1867// the context is nil a panic will occur. In the future the SDK may create
1868// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1869// for more information on using Contexts.
1870func (c *EMR) ListInstancesWithContext(ctx aws.Context, input *ListInstancesInput, opts ...request.Option) (*ListInstancesOutput, error) {
1871	req, out := c.ListInstancesRequest(input)
1872	req.SetContext(ctx)
1873	req.ApplyOptions(opts...)
1874	return out, req.Send()
1875}
1876
1877// ListInstancesPages iterates over the pages of a ListInstances operation,
1878// calling the "fn" function with the response data for each page. To stop
1879// iterating, return false from the fn function.
1880//
1881// See ListInstances method for more information on how to use this operation.
1882//
1883// Note: This operation can generate multiple requests to a service.
1884//
1885//    // Example iterating over at most 3 pages of a ListInstances operation.
1886//    pageNum := 0
1887//    err := client.ListInstancesPages(params,
1888//        func(page *emr.ListInstancesOutput, lastPage bool) bool {
1889//            pageNum++
1890//            fmt.Println(page)
1891//            return pageNum <= 3
1892//        })
1893//
1894func (c *EMR) ListInstancesPages(input *ListInstancesInput, fn func(*ListInstancesOutput, bool) bool) error {
1895	return c.ListInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
1896}
1897
1898// ListInstancesPagesWithContext same as ListInstancesPages except
1899// it takes a Context and allows setting request options on the pages.
1900//
1901// The context must be non-nil and will be used for request cancellation. If
1902// the context is nil a panic will occur. In the future the SDK may create
1903// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1904// for more information on using Contexts.
1905func (c *EMR) ListInstancesPagesWithContext(ctx aws.Context, input *ListInstancesInput, fn func(*ListInstancesOutput, bool) bool, opts ...request.Option) error {
1906	p := request.Pagination{
1907		NewRequest: func() (*request.Request, error) {
1908			var inCpy *ListInstancesInput
1909			if input != nil {
1910				tmp := *input
1911				inCpy = &tmp
1912			}
1913			req, _ := c.ListInstancesRequest(inCpy)
1914			req.SetContext(ctx)
1915			req.ApplyOptions(opts...)
1916			return req, nil
1917		},
1918	}
1919
1920	for p.Next() {
1921		if !fn(p.Page().(*ListInstancesOutput), !p.HasNextPage()) {
1922			break
1923		}
1924	}
1925
1926	return p.Err()
1927}
1928
1929const opListNotebookExecutions = "ListNotebookExecutions"
1930
1931// ListNotebookExecutionsRequest generates a "aws/request.Request" representing the
1932// client's request for the ListNotebookExecutions operation. The "output" return
1933// value will be populated with the request's response once the request completes
1934// successfully.
1935//
1936// Use "Send" method on the returned Request to send the API call to the service.
1937// the "output" return value is not valid until after Send returns without error.
1938//
1939// See ListNotebookExecutions for more information on using the ListNotebookExecutions
1940// API call, and error handling.
1941//
1942// This method is useful when you want to inject custom logic or configuration
1943// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1944//
1945//
1946//    // Example sending a request using the ListNotebookExecutionsRequest method.
1947//    req, resp := client.ListNotebookExecutionsRequest(params)
1948//
1949//    err := req.Send()
1950//    if err == nil { // resp is now filled
1951//        fmt.Println(resp)
1952//    }
1953//
1954// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListNotebookExecutions
1955func (c *EMR) ListNotebookExecutionsRequest(input *ListNotebookExecutionsInput) (req *request.Request, output *ListNotebookExecutionsOutput) {
1956	op := &request.Operation{
1957		Name:       opListNotebookExecutions,
1958		HTTPMethod: "POST",
1959		HTTPPath:   "/",
1960		Paginator: &request.Paginator{
1961			InputTokens:     []string{"Marker"},
1962			OutputTokens:    []string{"Marker"},
1963			LimitToken:      "",
1964			TruncationToken: "",
1965		},
1966	}
1967
1968	if input == nil {
1969		input = &ListNotebookExecutionsInput{}
1970	}
1971
1972	output = &ListNotebookExecutionsOutput{}
1973	req = c.newRequest(op, input, output)
1974	return
1975}
1976
1977// ListNotebookExecutions API operation for Amazon Elastic MapReduce.
1978//
1979// Provides summaries of all notebook executions. You can filter the list based
1980// on multiple criteria such as status, time range, and editor id. Returns a
1981// maximum of 50 notebook executions and a marker to track the paging of a longer
1982// notebook execution list across multiple ListNotebookExecution calls.
1983//
1984// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1985// with awserr.Error's Code and Message methods to get detailed information about
1986// the error.
1987//
1988// See the AWS API reference guide for Amazon Elastic MapReduce's
1989// API operation ListNotebookExecutions for usage and error information.
1990//
1991// Returned Error Types:
1992//   * InternalServerError
1993//   Indicates that an error occurred while processing the request and that the
1994//   request was not completed.
1995//
1996//   * InvalidRequestException
1997//   This exception occurs when there is something wrong with user input.
1998//
1999// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListNotebookExecutions
2000func (c *EMR) ListNotebookExecutions(input *ListNotebookExecutionsInput) (*ListNotebookExecutionsOutput, error) {
2001	req, out := c.ListNotebookExecutionsRequest(input)
2002	return out, req.Send()
2003}
2004
2005// ListNotebookExecutionsWithContext is the same as ListNotebookExecutions with the addition of
2006// the ability to pass a context and additional request options.
2007//
2008// See ListNotebookExecutions for details on how to use this API operation.
2009//
2010// The context must be non-nil and will be used for request cancellation. If
2011// the context is nil a panic will occur. In the future the SDK may create
2012// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2013// for more information on using Contexts.
2014func (c *EMR) ListNotebookExecutionsWithContext(ctx aws.Context, input *ListNotebookExecutionsInput, opts ...request.Option) (*ListNotebookExecutionsOutput, error) {
2015	req, out := c.ListNotebookExecutionsRequest(input)
2016	req.SetContext(ctx)
2017	req.ApplyOptions(opts...)
2018	return out, req.Send()
2019}
2020
2021// ListNotebookExecutionsPages iterates over the pages of a ListNotebookExecutions operation,
2022// calling the "fn" function with the response data for each page. To stop
2023// iterating, return false from the fn function.
2024//
2025// See ListNotebookExecutions method for more information on how to use this operation.
2026//
2027// Note: This operation can generate multiple requests to a service.
2028//
2029//    // Example iterating over at most 3 pages of a ListNotebookExecutions operation.
2030//    pageNum := 0
2031//    err := client.ListNotebookExecutionsPages(params,
2032//        func(page *emr.ListNotebookExecutionsOutput, lastPage bool) bool {
2033//            pageNum++
2034//            fmt.Println(page)
2035//            return pageNum <= 3
2036//        })
2037//
2038func (c *EMR) ListNotebookExecutionsPages(input *ListNotebookExecutionsInput, fn func(*ListNotebookExecutionsOutput, bool) bool) error {
2039	return c.ListNotebookExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
2040}
2041
2042// ListNotebookExecutionsPagesWithContext same as ListNotebookExecutionsPages except
2043// it takes a Context and allows setting request options on the pages.
2044//
2045// The context must be non-nil and will be used for request cancellation. If
2046// the context is nil a panic will occur. In the future the SDK may create
2047// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2048// for more information on using Contexts.
2049func (c *EMR) ListNotebookExecutionsPagesWithContext(ctx aws.Context, input *ListNotebookExecutionsInput, fn func(*ListNotebookExecutionsOutput, bool) bool, opts ...request.Option) error {
2050	p := request.Pagination{
2051		NewRequest: func() (*request.Request, error) {
2052			var inCpy *ListNotebookExecutionsInput
2053			if input != nil {
2054				tmp := *input
2055				inCpy = &tmp
2056			}
2057			req, _ := c.ListNotebookExecutionsRequest(inCpy)
2058			req.SetContext(ctx)
2059			req.ApplyOptions(opts...)
2060			return req, nil
2061		},
2062	}
2063
2064	for p.Next() {
2065		if !fn(p.Page().(*ListNotebookExecutionsOutput), !p.HasNextPage()) {
2066			break
2067		}
2068	}
2069
2070	return p.Err()
2071}
2072
2073const opListSecurityConfigurations = "ListSecurityConfigurations"
2074
2075// ListSecurityConfigurationsRequest generates a "aws/request.Request" representing the
2076// client's request for the ListSecurityConfigurations operation. The "output" return
2077// value will be populated with the request's response once the request completes
2078// successfully.
2079//
2080// Use "Send" method on the returned Request to send the API call to the service.
2081// the "output" return value is not valid until after Send returns without error.
2082//
2083// See ListSecurityConfigurations for more information on using the ListSecurityConfigurations
2084// API call, and error handling.
2085//
2086// This method is useful when you want to inject custom logic or configuration
2087// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2088//
2089//
2090//    // Example sending a request using the ListSecurityConfigurationsRequest method.
2091//    req, resp := client.ListSecurityConfigurationsRequest(params)
2092//
2093//    err := req.Send()
2094//    if err == nil { // resp is now filled
2095//        fmt.Println(resp)
2096//    }
2097//
2098// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurations
2099func (c *EMR) ListSecurityConfigurationsRequest(input *ListSecurityConfigurationsInput) (req *request.Request, output *ListSecurityConfigurationsOutput) {
2100	op := &request.Operation{
2101		Name:       opListSecurityConfigurations,
2102		HTTPMethod: "POST",
2103		HTTPPath:   "/",
2104		Paginator: &request.Paginator{
2105			InputTokens:     []string{"Marker"},
2106			OutputTokens:    []string{"Marker"},
2107			LimitToken:      "",
2108			TruncationToken: "",
2109		},
2110	}
2111
2112	if input == nil {
2113		input = &ListSecurityConfigurationsInput{}
2114	}
2115
2116	output = &ListSecurityConfigurationsOutput{}
2117	req = c.newRequest(op, input, output)
2118	return
2119}
2120
2121// ListSecurityConfigurations API operation for Amazon Elastic MapReduce.
2122//
2123// Lists all the security configurations visible to this account, providing
2124// their creation dates and times, and their names. This call returns a maximum
2125// of 50 clusters per call, but returns a marker to track the paging of the
2126// cluster list across multiple ListSecurityConfigurations calls.
2127//
2128// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2129// with awserr.Error's Code and Message methods to get detailed information about
2130// the error.
2131//
2132// See the AWS API reference guide for Amazon Elastic MapReduce's
2133// API operation ListSecurityConfigurations for usage and error information.
2134//
2135// Returned Error Types:
2136//   * InternalServerException
2137//   This exception occurs when there is an internal failure in the EMR service.
2138//
2139//   * InvalidRequestException
2140//   This exception occurs when there is something wrong with user input.
2141//
2142// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurations
2143func (c *EMR) ListSecurityConfigurations(input *ListSecurityConfigurationsInput) (*ListSecurityConfigurationsOutput, error) {
2144	req, out := c.ListSecurityConfigurationsRequest(input)
2145	return out, req.Send()
2146}
2147
2148// ListSecurityConfigurationsWithContext is the same as ListSecurityConfigurations with the addition of
2149// the ability to pass a context and additional request options.
2150//
2151// See ListSecurityConfigurations for details on how to use this API operation.
2152//
2153// The context must be non-nil and will be used for request cancellation. If
2154// the context is nil a panic will occur. In the future the SDK may create
2155// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2156// for more information on using Contexts.
2157func (c *EMR) ListSecurityConfigurationsWithContext(ctx aws.Context, input *ListSecurityConfigurationsInput, opts ...request.Option) (*ListSecurityConfigurationsOutput, error) {
2158	req, out := c.ListSecurityConfigurationsRequest(input)
2159	req.SetContext(ctx)
2160	req.ApplyOptions(opts...)
2161	return out, req.Send()
2162}
2163
2164// ListSecurityConfigurationsPages iterates over the pages of a ListSecurityConfigurations operation,
2165// calling the "fn" function with the response data for each page. To stop
2166// iterating, return false from the fn function.
2167//
2168// See ListSecurityConfigurations method for more information on how to use this operation.
2169//
2170// Note: This operation can generate multiple requests to a service.
2171//
2172//    // Example iterating over at most 3 pages of a ListSecurityConfigurations operation.
2173//    pageNum := 0
2174//    err := client.ListSecurityConfigurationsPages(params,
2175//        func(page *emr.ListSecurityConfigurationsOutput, lastPage bool) bool {
2176//            pageNum++
2177//            fmt.Println(page)
2178//            return pageNum <= 3
2179//        })
2180//
2181func (c *EMR) ListSecurityConfigurationsPages(input *ListSecurityConfigurationsInput, fn func(*ListSecurityConfigurationsOutput, bool) bool) error {
2182	return c.ListSecurityConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
2183}
2184
2185// ListSecurityConfigurationsPagesWithContext same as ListSecurityConfigurationsPages except
2186// it takes a Context and allows setting request options on the pages.
2187//
2188// The context must be non-nil and will be used for request cancellation. If
2189// the context is nil a panic will occur. In the future the SDK may create
2190// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2191// for more information on using Contexts.
2192func (c *EMR) ListSecurityConfigurationsPagesWithContext(ctx aws.Context, input *ListSecurityConfigurationsInput, fn func(*ListSecurityConfigurationsOutput, bool) bool, opts ...request.Option) error {
2193	p := request.Pagination{
2194		NewRequest: func() (*request.Request, error) {
2195			var inCpy *ListSecurityConfigurationsInput
2196			if input != nil {
2197				tmp := *input
2198				inCpy = &tmp
2199			}
2200			req, _ := c.ListSecurityConfigurationsRequest(inCpy)
2201			req.SetContext(ctx)
2202			req.ApplyOptions(opts...)
2203			return req, nil
2204		},
2205	}
2206
2207	for p.Next() {
2208		if !fn(p.Page().(*ListSecurityConfigurationsOutput), !p.HasNextPage()) {
2209			break
2210		}
2211	}
2212
2213	return p.Err()
2214}
2215
2216const opListSteps = "ListSteps"
2217
2218// ListStepsRequest generates a "aws/request.Request" representing the
2219// client's request for the ListSteps operation. The "output" return
2220// value will be populated with the request's response once the request completes
2221// successfully.
2222//
2223// Use "Send" method on the returned Request to send the API call to the service.
2224// the "output" return value is not valid until after Send returns without error.
2225//
2226// See ListSteps for more information on using the ListSteps
2227// API call, and error handling.
2228//
2229// This method is useful when you want to inject custom logic or configuration
2230// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2231//
2232//
2233//    // Example sending a request using the ListStepsRequest method.
2234//    req, resp := client.ListStepsRequest(params)
2235//
2236//    err := req.Send()
2237//    if err == nil { // resp is now filled
2238//        fmt.Println(resp)
2239//    }
2240//
2241// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSteps
2242func (c *EMR) ListStepsRequest(input *ListStepsInput) (req *request.Request, output *ListStepsOutput) {
2243	op := &request.Operation{
2244		Name:       opListSteps,
2245		HTTPMethod: "POST",
2246		HTTPPath:   "/",
2247		Paginator: &request.Paginator{
2248			InputTokens:     []string{"Marker"},
2249			OutputTokens:    []string{"Marker"},
2250			LimitToken:      "",
2251			TruncationToken: "",
2252		},
2253	}
2254
2255	if input == nil {
2256		input = &ListStepsInput{}
2257	}
2258
2259	output = &ListStepsOutput{}
2260	req = c.newRequest(op, input, output)
2261	return
2262}
2263
2264// ListSteps API operation for Amazon Elastic MapReduce.
2265//
2266// Provides a list of steps for the cluster in reverse order unless you specify
2267// stepIds with the request of filter by StepStates. You can specify a maximum
2268// of ten stepIDs.
2269//
2270// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2271// with awserr.Error's Code and Message methods to get detailed information about
2272// the error.
2273//
2274// See the AWS API reference guide for Amazon Elastic MapReduce's
2275// API operation ListSteps for usage and error information.
2276//
2277// Returned Error Types:
2278//   * InternalServerException
2279//   This exception occurs when there is an internal failure in the EMR service.
2280//
2281//   * InvalidRequestException
2282//   This exception occurs when there is something wrong with user input.
2283//
2284// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSteps
2285func (c *EMR) ListSteps(input *ListStepsInput) (*ListStepsOutput, error) {
2286	req, out := c.ListStepsRequest(input)
2287	return out, req.Send()
2288}
2289
2290// ListStepsWithContext is the same as ListSteps with the addition of
2291// the ability to pass a context and additional request options.
2292//
2293// See ListSteps for details on how to use this API operation.
2294//
2295// The context must be non-nil and will be used for request cancellation. If
2296// the context is nil a panic will occur. In the future the SDK may create
2297// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2298// for more information on using Contexts.
2299func (c *EMR) ListStepsWithContext(ctx aws.Context, input *ListStepsInput, opts ...request.Option) (*ListStepsOutput, error) {
2300	req, out := c.ListStepsRequest(input)
2301	req.SetContext(ctx)
2302	req.ApplyOptions(opts...)
2303	return out, req.Send()
2304}
2305
2306// ListStepsPages iterates over the pages of a ListSteps operation,
2307// calling the "fn" function with the response data for each page. To stop
2308// iterating, return false from the fn function.
2309//
2310// See ListSteps method for more information on how to use this operation.
2311//
2312// Note: This operation can generate multiple requests to a service.
2313//
2314//    // Example iterating over at most 3 pages of a ListSteps operation.
2315//    pageNum := 0
2316//    err := client.ListStepsPages(params,
2317//        func(page *emr.ListStepsOutput, lastPage bool) bool {
2318//            pageNum++
2319//            fmt.Println(page)
2320//            return pageNum <= 3
2321//        })
2322//
2323func (c *EMR) ListStepsPages(input *ListStepsInput, fn func(*ListStepsOutput, bool) bool) error {
2324	return c.ListStepsPagesWithContext(aws.BackgroundContext(), input, fn)
2325}
2326
2327// ListStepsPagesWithContext same as ListStepsPages except
2328// it takes a Context and allows setting request options on the pages.
2329//
2330// The context must be non-nil and will be used for request cancellation. If
2331// the context is nil a panic will occur. In the future the SDK may create
2332// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2333// for more information on using Contexts.
2334func (c *EMR) ListStepsPagesWithContext(ctx aws.Context, input *ListStepsInput, fn func(*ListStepsOutput, bool) bool, opts ...request.Option) error {
2335	p := request.Pagination{
2336		NewRequest: func() (*request.Request, error) {
2337			var inCpy *ListStepsInput
2338			if input != nil {
2339				tmp := *input
2340				inCpy = &tmp
2341			}
2342			req, _ := c.ListStepsRequest(inCpy)
2343			req.SetContext(ctx)
2344			req.ApplyOptions(opts...)
2345			return req, nil
2346		},
2347	}
2348
2349	for p.Next() {
2350		if !fn(p.Page().(*ListStepsOutput), !p.HasNextPage()) {
2351			break
2352		}
2353	}
2354
2355	return p.Err()
2356}
2357
2358const opModifyCluster = "ModifyCluster"
2359
2360// ModifyClusterRequest generates a "aws/request.Request" representing the
2361// client's request for the ModifyCluster operation. The "output" return
2362// value will be populated with the request's response once the request completes
2363// successfully.
2364//
2365// Use "Send" method on the returned Request to send the API call to the service.
2366// the "output" return value is not valid until after Send returns without error.
2367//
2368// See ModifyCluster for more information on using the ModifyCluster
2369// API call, and error handling.
2370//
2371// This method is useful when you want to inject custom logic or configuration
2372// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2373//
2374//
2375//    // Example sending a request using the ModifyClusterRequest method.
2376//    req, resp := client.ModifyClusterRequest(params)
2377//
2378//    err := req.Send()
2379//    if err == nil { // resp is now filled
2380//        fmt.Println(resp)
2381//    }
2382//
2383// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyCluster
2384func (c *EMR) ModifyClusterRequest(input *ModifyClusterInput) (req *request.Request, output *ModifyClusterOutput) {
2385	op := &request.Operation{
2386		Name:       opModifyCluster,
2387		HTTPMethod: "POST",
2388		HTTPPath:   "/",
2389	}
2390
2391	if input == nil {
2392		input = &ModifyClusterInput{}
2393	}
2394
2395	output = &ModifyClusterOutput{}
2396	req = c.newRequest(op, input, output)
2397	return
2398}
2399
2400// ModifyCluster API operation for Amazon Elastic MapReduce.
2401//
2402// Modifies the number of steps that can be executed concurrently for the cluster
2403// specified using ClusterID.
2404//
2405// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2406// with awserr.Error's Code and Message methods to get detailed information about
2407// the error.
2408//
2409// See the AWS API reference guide for Amazon Elastic MapReduce's
2410// API operation ModifyCluster for usage and error information.
2411//
2412// Returned Error Types:
2413//   * InternalServerError
2414//   Indicates that an error occurred while processing the request and that the
2415//   request was not completed.
2416//
2417//   * InvalidRequestException
2418//   This exception occurs when there is something wrong with user input.
2419//
2420// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyCluster
2421func (c *EMR) ModifyCluster(input *ModifyClusterInput) (*ModifyClusterOutput, error) {
2422	req, out := c.ModifyClusterRequest(input)
2423	return out, req.Send()
2424}
2425
2426// ModifyClusterWithContext is the same as ModifyCluster with the addition of
2427// the ability to pass a context and additional request options.
2428//
2429// See ModifyCluster for details on how to use this API operation.
2430//
2431// The context must be non-nil and will be used for request cancellation. If
2432// the context is nil a panic will occur. In the future the SDK may create
2433// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2434// for more information on using Contexts.
2435func (c *EMR) ModifyClusterWithContext(ctx aws.Context, input *ModifyClusterInput, opts ...request.Option) (*ModifyClusterOutput, error) {
2436	req, out := c.ModifyClusterRequest(input)
2437	req.SetContext(ctx)
2438	req.ApplyOptions(opts...)
2439	return out, req.Send()
2440}
2441
2442const opModifyInstanceFleet = "ModifyInstanceFleet"
2443
2444// ModifyInstanceFleetRequest generates a "aws/request.Request" representing the
2445// client's request for the ModifyInstanceFleet operation. The "output" return
2446// value will be populated with the request's response once the request completes
2447// successfully.
2448//
2449// Use "Send" method on the returned Request to send the API call to the service.
2450// the "output" return value is not valid until after Send returns without error.
2451//
2452// See ModifyInstanceFleet for more information on using the ModifyInstanceFleet
2453// API call, and error handling.
2454//
2455// This method is useful when you want to inject custom logic or configuration
2456// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2457//
2458//
2459//    // Example sending a request using the ModifyInstanceFleetRequest method.
2460//    req, resp := client.ModifyInstanceFleetRequest(params)
2461//
2462//    err := req.Send()
2463//    if err == nil { // resp is now filled
2464//        fmt.Println(resp)
2465//    }
2466//
2467// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleet
2468func (c *EMR) ModifyInstanceFleetRequest(input *ModifyInstanceFleetInput) (req *request.Request, output *ModifyInstanceFleetOutput) {
2469	op := &request.Operation{
2470		Name:       opModifyInstanceFleet,
2471		HTTPMethod: "POST",
2472		HTTPPath:   "/",
2473	}
2474
2475	if input == nil {
2476		input = &ModifyInstanceFleetInput{}
2477	}
2478
2479	output = &ModifyInstanceFleetOutput{}
2480	req = c.newRequest(op, input, output)
2481	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2482	return
2483}
2484
2485// ModifyInstanceFleet API operation for Amazon Elastic MapReduce.
2486//
2487// Modifies the target On-Demand and target Spot capacities for the instance
2488// fleet with the specified InstanceFleetID within the cluster specified using
2489// ClusterID. The call either succeeds or fails atomically.
2490//
2491// The instance fleet configuration is available only in Amazon EMR versions
2492// 4.8.0 and later, excluding 5.0.x versions.
2493//
2494// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2495// with awserr.Error's Code and Message methods to get detailed information about
2496// the error.
2497//
2498// See the AWS API reference guide for Amazon Elastic MapReduce's
2499// API operation ModifyInstanceFleet for usage and error information.
2500//
2501// Returned Error Types:
2502//   * InternalServerException
2503//   This exception occurs when there is an internal failure in the EMR service.
2504//
2505//   * InvalidRequestException
2506//   This exception occurs when there is something wrong with user input.
2507//
2508// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleet
2509func (c *EMR) ModifyInstanceFleet(input *ModifyInstanceFleetInput) (*ModifyInstanceFleetOutput, error) {
2510	req, out := c.ModifyInstanceFleetRequest(input)
2511	return out, req.Send()
2512}
2513
2514// ModifyInstanceFleetWithContext is the same as ModifyInstanceFleet with the addition of
2515// the ability to pass a context and additional request options.
2516//
2517// See ModifyInstanceFleet for details on how to use this API operation.
2518//
2519// The context must be non-nil and will be used for request cancellation. If
2520// the context is nil a panic will occur. In the future the SDK may create
2521// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2522// for more information on using Contexts.
2523func (c *EMR) ModifyInstanceFleetWithContext(ctx aws.Context, input *ModifyInstanceFleetInput, opts ...request.Option) (*ModifyInstanceFleetOutput, error) {
2524	req, out := c.ModifyInstanceFleetRequest(input)
2525	req.SetContext(ctx)
2526	req.ApplyOptions(opts...)
2527	return out, req.Send()
2528}
2529
2530const opModifyInstanceGroups = "ModifyInstanceGroups"
2531
2532// ModifyInstanceGroupsRequest generates a "aws/request.Request" representing the
2533// client's request for the ModifyInstanceGroups operation. The "output" return
2534// value will be populated with the request's response once the request completes
2535// successfully.
2536//
2537// Use "Send" method on the returned Request to send the API call to the service.
2538// the "output" return value is not valid until after Send returns without error.
2539//
2540// See ModifyInstanceGroups for more information on using the ModifyInstanceGroups
2541// API call, and error handling.
2542//
2543// This method is useful when you want to inject custom logic or configuration
2544// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2545//
2546//
2547//    // Example sending a request using the ModifyInstanceGroupsRequest method.
2548//    req, resp := client.ModifyInstanceGroupsRequest(params)
2549//
2550//    err := req.Send()
2551//    if err == nil { // resp is now filled
2552//        fmt.Println(resp)
2553//    }
2554//
2555// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroups
2556func (c *EMR) ModifyInstanceGroupsRequest(input *ModifyInstanceGroupsInput) (req *request.Request, output *ModifyInstanceGroupsOutput) {
2557	op := &request.Operation{
2558		Name:       opModifyInstanceGroups,
2559		HTTPMethod: "POST",
2560		HTTPPath:   "/",
2561	}
2562
2563	if input == nil {
2564		input = &ModifyInstanceGroupsInput{}
2565	}
2566
2567	output = &ModifyInstanceGroupsOutput{}
2568	req = c.newRequest(op, input, output)
2569	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2570	return
2571}
2572
2573// ModifyInstanceGroups API operation for Amazon Elastic MapReduce.
2574//
2575// ModifyInstanceGroups modifies the number of nodes and configuration settings
2576// of an instance group. The input parameters include the new target instance
2577// count for the group and the instance group ID. The call will either succeed
2578// or fail atomically.
2579//
2580// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2581// with awserr.Error's Code and Message methods to get detailed information about
2582// the error.
2583//
2584// See the AWS API reference guide for Amazon Elastic MapReduce's
2585// API operation ModifyInstanceGroups for usage and error information.
2586//
2587// Returned Error Types:
2588//   * InternalServerError
2589//   Indicates that an error occurred while processing the request and that the
2590//   request was not completed.
2591//
2592// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroups
2593func (c *EMR) ModifyInstanceGroups(input *ModifyInstanceGroupsInput) (*ModifyInstanceGroupsOutput, error) {
2594	req, out := c.ModifyInstanceGroupsRequest(input)
2595	return out, req.Send()
2596}
2597
2598// ModifyInstanceGroupsWithContext is the same as ModifyInstanceGroups with the addition of
2599// the ability to pass a context and additional request options.
2600//
2601// See ModifyInstanceGroups for details on how to use this API operation.
2602//
2603// The context must be non-nil and will be used for request cancellation. If
2604// the context is nil a panic will occur. In the future the SDK may create
2605// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2606// for more information on using Contexts.
2607func (c *EMR) ModifyInstanceGroupsWithContext(ctx aws.Context, input *ModifyInstanceGroupsInput, opts ...request.Option) (*ModifyInstanceGroupsOutput, error) {
2608	req, out := c.ModifyInstanceGroupsRequest(input)
2609	req.SetContext(ctx)
2610	req.ApplyOptions(opts...)
2611	return out, req.Send()
2612}
2613
2614const opPutAutoScalingPolicy = "PutAutoScalingPolicy"
2615
2616// PutAutoScalingPolicyRequest generates a "aws/request.Request" representing the
2617// client's request for the PutAutoScalingPolicy operation. The "output" return
2618// value will be populated with the request's response once the request completes
2619// successfully.
2620//
2621// Use "Send" method on the returned Request to send the API call to the service.
2622// the "output" return value is not valid until after Send returns without error.
2623//
2624// See PutAutoScalingPolicy for more information on using the PutAutoScalingPolicy
2625// API call, and error handling.
2626//
2627// This method is useful when you want to inject custom logic or configuration
2628// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2629//
2630//
2631//    // Example sending a request using the PutAutoScalingPolicyRequest method.
2632//    req, resp := client.PutAutoScalingPolicyRequest(params)
2633//
2634//    err := req.Send()
2635//    if err == nil { // resp is now filled
2636//        fmt.Println(resp)
2637//    }
2638//
2639// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicy
2640func (c *EMR) PutAutoScalingPolicyRequest(input *PutAutoScalingPolicyInput) (req *request.Request, output *PutAutoScalingPolicyOutput) {
2641	op := &request.Operation{
2642		Name:       opPutAutoScalingPolicy,
2643		HTTPMethod: "POST",
2644		HTTPPath:   "/",
2645	}
2646
2647	if input == nil {
2648		input = &PutAutoScalingPolicyInput{}
2649	}
2650
2651	output = &PutAutoScalingPolicyOutput{}
2652	req = c.newRequest(op, input, output)
2653	return
2654}
2655
2656// PutAutoScalingPolicy API operation for Amazon Elastic MapReduce.
2657//
2658// Creates or updates an automatic scaling policy for a core instance group
2659// or task instance group in an Amazon EMR cluster. The automatic scaling policy
2660// defines how an instance group dynamically adds and terminates EC2 instances
2661// in response to the value of a CloudWatch metric.
2662//
2663// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2664// with awserr.Error's Code and Message methods to get detailed information about
2665// the error.
2666//
2667// See the AWS API reference guide for Amazon Elastic MapReduce's
2668// API operation PutAutoScalingPolicy for usage and error information.
2669// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicy
2670func (c *EMR) PutAutoScalingPolicy(input *PutAutoScalingPolicyInput) (*PutAutoScalingPolicyOutput, error) {
2671	req, out := c.PutAutoScalingPolicyRequest(input)
2672	return out, req.Send()
2673}
2674
2675// PutAutoScalingPolicyWithContext is the same as PutAutoScalingPolicy with the addition of
2676// the ability to pass a context and additional request options.
2677//
2678// See PutAutoScalingPolicy for details on how to use this API operation.
2679//
2680// The context must be non-nil and will be used for request cancellation. If
2681// the context is nil a panic will occur. In the future the SDK may create
2682// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2683// for more information on using Contexts.
2684func (c *EMR) PutAutoScalingPolicyWithContext(ctx aws.Context, input *PutAutoScalingPolicyInput, opts ...request.Option) (*PutAutoScalingPolicyOutput, error) {
2685	req, out := c.PutAutoScalingPolicyRequest(input)
2686	req.SetContext(ctx)
2687	req.ApplyOptions(opts...)
2688	return out, req.Send()
2689}
2690
2691const opPutBlockPublicAccessConfiguration = "PutBlockPublicAccessConfiguration"
2692
2693// PutBlockPublicAccessConfigurationRequest generates a "aws/request.Request" representing the
2694// client's request for the PutBlockPublicAccessConfiguration operation. The "output" return
2695// value will be populated with the request's response once the request completes
2696// successfully.
2697//
2698// Use "Send" method on the returned Request to send the API call to the service.
2699// the "output" return value is not valid until after Send returns without error.
2700//
2701// See PutBlockPublicAccessConfiguration for more information on using the PutBlockPublicAccessConfiguration
2702// API call, and error handling.
2703//
2704// This method is useful when you want to inject custom logic or configuration
2705// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2706//
2707//
2708//    // Example sending a request using the PutBlockPublicAccessConfigurationRequest method.
2709//    req, resp := client.PutBlockPublicAccessConfigurationRequest(params)
2710//
2711//    err := req.Send()
2712//    if err == nil { // resp is now filled
2713//        fmt.Println(resp)
2714//    }
2715//
2716// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutBlockPublicAccessConfiguration
2717func (c *EMR) PutBlockPublicAccessConfigurationRequest(input *PutBlockPublicAccessConfigurationInput) (req *request.Request, output *PutBlockPublicAccessConfigurationOutput) {
2718	op := &request.Operation{
2719		Name:       opPutBlockPublicAccessConfiguration,
2720		HTTPMethod: "POST",
2721		HTTPPath:   "/",
2722	}
2723
2724	if input == nil {
2725		input = &PutBlockPublicAccessConfigurationInput{}
2726	}
2727
2728	output = &PutBlockPublicAccessConfigurationOutput{}
2729	req = c.newRequest(op, input, output)
2730	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2731	return
2732}
2733
2734// PutBlockPublicAccessConfiguration API operation for Amazon Elastic MapReduce.
2735//
2736// Creates or updates an Amazon EMR block public access configuration for your
2737// AWS account in the current Region. For more information see Configure Block
2738// Public Access for Amazon EMR (https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html)
2739// in the Amazon EMR Management Guide.
2740//
2741// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2742// with awserr.Error's Code and Message methods to get detailed information about
2743// the error.
2744//
2745// See the AWS API reference guide for Amazon Elastic MapReduce's
2746// API operation PutBlockPublicAccessConfiguration for usage and error information.
2747//
2748// Returned Error Types:
2749//   * InternalServerException
2750//   This exception occurs when there is an internal failure in the EMR service.
2751//
2752//   * InvalidRequestException
2753//   This exception occurs when there is something wrong with user input.
2754//
2755// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutBlockPublicAccessConfiguration
2756func (c *EMR) PutBlockPublicAccessConfiguration(input *PutBlockPublicAccessConfigurationInput) (*PutBlockPublicAccessConfigurationOutput, error) {
2757	req, out := c.PutBlockPublicAccessConfigurationRequest(input)
2758	return out, req.Send()
2759}
2760
2761// PutBlockPublicAccessConfigurationWithContext is the same as PutBlockPublicAccessConfiguration with the addition of
2762// the ability to pass a context and additional request options.
2763//
2764// See PutBlockPublicAccessConfiguration for details on how to use this API operation.
2765//
2766// The context must be non-nil and will be used for request cancellation. If
2767// the context is nil a panic will occur. In the future the SDK may create
2768// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2769// for more information on using Contexts.
2770func (c *EMR) PutBlockPublicAccessConfigurationWithContext(ctx aws.Context, input *PutBlockPublicAccessConfigurationInput, opts ...request.Option) (*PutBlockPublicAccessConfigurationOutput, error) {
2771	req, out := c.PutBlockPublicAccessConfigurationRequest(input)
2772	req.SetContext(ctx)
2773	req.ApplyOptions(opts...)
2774	return out, req.Send()
2775}
2776
2777const opPutManagedScalingPolicy = "PutManagedScalingPolicy"
2778
2779// PutManagedScalingPolicyRequest generates a "aws/request.Request" representing the
2780// client's request for the PutManagedScalingPolicy operation. The "output" return
2781// value will be populated with the request's response once the request completes
2782// successfully.
2783//
2784// Use "Send" method on the returned Request to send the API call to the service.
2785// the "output" return value is not valid until after Send returns without error.
2786//
2787// See PutManagedScalingPolicy for more information on using the PutManagedScalingPolicy
2788// API call, and error handling.
2789//
2790// This method is useful when you want to inject custom logic or configuration
2791// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2792//
2793//
2794//    // Example sending a request using the PutManagedScalingPolicyRequest method.
2795//    req, resp := client.PutManagedScalingPolicyRequest(params)
2796//
2797//    err := req.Send()
2798//    if err == nil { // resp is now filled
2799//        fmt.Println(resp)
2800//    }
2801//
2802// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicy
2803func (c *EMR) PutManagedScalingPolicyRequest(input *PutManagedScalingPolicyInput) (req *request.Request, output *PutManagedScalingPolicyOutput) {
2804	op := &request.Operation{
2805		Name:       opPutManagedScalingPolicy,
2806		HTTPMethod: "POST",
2807		HTTPPath:   "/",
2808	}
2809
2810	if input == nil {
2811		input = &PutManagedScalingPolicyInput{}
2812	}
2813
2814	output = &PutManagedScalingPolicyOutput{}
2815	req = c.newRequest(op, input, output)
2816	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2817	return
2818}
2819
2820// PutManagedScalingPolicy API operation for Amazon Elastic MapReduce.
2821//
2822// Creates or updates a managed scaling policy for an Amazon EMR cluster. The
2823// managed scaling policy defines the limits for resources, such as EC2 instances
2824// that can be added or terminated from a cluster. The policy only applies to
2825// the core and task nodes. The master node cannot be scaled after initial configuration.
2826//
2827// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2828// with awserr.Error's Code and Message methods to get detailed information about
2829// the error.
2830//
2831// See the AWS API reference guide for Amazon Elastic MapReduce's
2832// API operation PutManagedScalingPolicy for usage and error information.
2833// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicy
2834func (c *EMR) PutManagedScalingPolicy(input *PutManagedScalingPolicyInput) (*PutManagedScalingPolicyOutput, error) {
2835	req, out := c.PutManagedScalingPolicyRequest(input)
2836	return out, req.Send()
2837}
2838
2839// PutManagedScalingPolicyWithContext is the same as PutManagedScalingPolicy with the addition of
2840// the ability to pass a context and additional request options.
2841//
2842// See PutManagedScalingPolicy for details on how to use this API operation.
2843//
2844// The context must be non-nil and will be used for request cancellation. If
2845// the context is nil a panic will occur. In the future the SDK may create
2846// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2847// for more information on using Contexts.
2848func (c *EMR) PutManagedScalingPolicyWithContext(ctx aws.Context, input *PutManagedScalingPolicyInput, opts ...request.Option) (*PutManagedScalingPolicyOutput, error) {
2849	req, out := c.PutManagedScalingPolicyRequest(input)
2850	req.SetContext(ctx)
2851	req.ApplyOptions(opts...)
2852	return out, req.Send()
2853}
2854
2855const opRemoveAutoScalingPolicy = "RemoveAutoScalingPolicy"
2856
2857// RemoveAutoScalingPolicyRequest generates a "aws/request.Request" representing the
2858// client's request for the RemoveAutoScalingPolicy operation. The "output" return
2859// value will be populated with the request's response once the request completes
2860// successfully.
2861//
2862// Use "Send" method on the returned Request to send the API call to the service.
2863// the "output" return value is not valid until after Send returns without error.
2864//
2865// See RemoveAutoScalingPolicy for more information on using the RemoveAutoScalingPolicy
2866// API call, and error handling.
2867//
2868// This method is useful when you want to inject custom logic or configuration
2869// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2870//
2871//
2872//    // Example sending a request using the RemoveAutoScalingPolicyRequest method.
2873//    req, resp := client.RemoveAutoScalingPolicyRequest(params)
2874//
2875//    err := req.Send()
2876//    if err == nil { // resp is now filled
2877//        fmt.Println(resp)
2878//    }
2879//
2880// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicy
2881func (c *EMR) RemoveAutoScalingPolicyRequest(input *RemoveAutoScalingPolicyInput) (req *request.Request, output *RemoveAutoScalingPolicyOutput) {
2882	op := &request.Operation{
2883		Name:       opRemoveAutoScalingPolicy,
2884		HTTPMethod: "POST",
2885		HTTPPath:   "/",
2886	}
2887
2888	if input == nil {
2889		input = &RemoveAutoScalingPolicyInput{}
2890	}
2891
2892	output = &RemoveAutoScalingPolicyOutput{}
2893	req = c.newRequest(op, input, output)
2894	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2895	return
2896}
2897
2898// RemoveAutoScalingPolicy API operation for Amazon Elastic MapReduce.
2899//
2900// Removes an automatic scaling policy from a specified instance group within
2901// an EMR cluster.
2902//
2903// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2904// with awserr.Error's Code and Message methods to get detailed information about
2905// the error.
2906//
2907// See the AWS API reference guide for Amazon Elastic MapReduce's
2908// API operation RemoveAutoScalingPolicy for usage and error information.
2909// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicy
2910func (c *EMR) RemoveAutoScalingPolicy(input *RemoveAutoScalingPolicyInput) (*RemoveAutoScalingPolicyOutput, error) {
2911	req, out := c.RemoveAutoScalingPolicyRequest(input)
2912	return out, req.Send()
2913}
2914
2915// RemoveAutoScalingPolicyWithContext is the same as RemoveAutoScalingPolicy with the addition of
2916// the ability to pass a context and additional request options.
2917//
2918// See RemoveAutoScalingPolicy for details on how to use this API operation.
2919//
2920// The context must be non-nil and will be used for request cancellation. If
2921// the context is nil a panic will occur. In the future the SDK may create
2922// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2923// for more information on using Contexts.
2924func (c *EMR) RemoveAutoScalingPolicyWithContext(ctx aws.Context, input *RemoveAutoScalingPolicyInput, opts ...request.Option) (*RemoveAutoScalingPolicyOutput, error) {
2925	req, out := c.RemoveAutoScalingPolicyRequest(input)
2926	req.SetContext(ctx)
2927	req.ApplyOptions(opts...)
2928	return out, req.Send()
2929}
2930
2931const opRemoveManagedScalingPolicy = "RemoveManagedScalingPolicy"
2932
2933// RemoveManagedScalingPolicyRequest generates a "aws/request.Request" representing the
2934// client's request for the RemoveManagedScalingPolicy operation. The "output" return
2935// value will be populated with the request's response once the request completes
2936// successfully.
2937//
2938// Use "Send" method on the returned Request to send the API call to the service.
2939// the "output" return value is not valid until after Send returns without error.
2940//
2941// See RemoveManagedScalingPolicy for more information on using the RemoveManagedScalingPolicy
2942// API call, and error handling.
2943//
2944// This method is useful when you want to inject custom logic or configuration
2945// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2946//
2947//
2948//    // Example sending a request using the RemoveManagedScalingPolicyRequest method.
2949//    req, resp := client.RemoveManagedScalingPolicyRequest(params)
2950//
2951//    err := req.Send()
2952//    if err == nil { // resp is now filled
2953//        fmt.Println(resp)
2954//    }
2955//
2956// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicy
2957func (c *EMR) RemoveManagedScalingPolicyRequest(input *RemoveManagedScalingPolicyInput) (req *request.Request, output *RemoveManagedScalingPolicyOutput) {
2958	op := &request.Operation{
2959		Name:       opRemoveManagedScalingPolicy,
2960		HTTPMethod: "POST",
2961		HTTPPath:   "/",
2962	}
2963
2964	if input == nil {
2965		input = &RemoveManagedScalingPolicyInput{}
2966	}
2967
2968	output = &RemoveManagedScalingPolicyOutput{}
2969	req = c.newRequest(op, input, output)
2970	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2971	return
2972}
2973
2974// RemoveManagedScalingPolicy API operation for Amazon Elastic MapReduce.
2975//
2976// Removes a managed scaling policy from a specified EMR cluster.
2977//
2978// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2979// with awserr.Error's Code and Message methods to get detailed information about
2980// the error.
2981//
2982// See the AWS API reference guide for Amazon Elastic MapReduce's
2983// API operation RemoveManagedScalingPolicy for usage and error information.
2984// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicy
2985func (c *EMR) RemoveManagedScalingPolicy(input *RemoveManagedScalingPolicyInput) (*RemoveManagedScalingPolicyOutput, error) {
2986	req, out := c.RemoveManagedScalingPolicyRequest(input)
2987	return out, req.Send()
2988}
2989
2990// RemoveManagedScalingPolicyWithContext is the same as RemoveManagedScalingPolicy with the addition of
2991// the ability to pass a context and additional request options.
2992//
2993// See RemoveManagedScalingPolicy for details on how to use this API operation.
2994//
2995// The context must be non-nil and will be used for request cancellation. If
2996// the context is nil a panic will occur. In the future the SDK may create
2997// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2998// for more information on using Contexts.
2999func (c *EMR) RemoveManagedScalingPolicyWithContext(ctx aws.Context, input *RemoveManagedScalingPolicyInput, opts ...request.Option) (*RemoveManagedScalingPolicyOutput, error) {
3000	req, out := c.RemoveManagedScalingPolicyRequest(input)
3001	req.SetContext(ctx)
3002	req.ApplyOptions(opts...)
3003	return out, req.Send()
3004}
3005
3006const opRemoveTags = "RemoveTags"
3007
3008// RemoveTagsRequest generates a "aws/request.Request" representing the
3009// client's request for the RemoveTags operation. The "output" return
3010// value will be populated with the request's response once the request completes
3011// successfully.
3012//
3013// Use "Send" method on the returned Request to send the API call to the service.
3014// the "output" return value is not valid until after Send returns without error.
3015//
3016// See RemoveTags for more information on using the RemoveTags
3017// API call, and error handling.
3018//
3019// This method is useful when you want to inject custom logic or configuration
3020// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3021//
3022//
3023//    // Example sending a request using the RemoveTagsRequest method.
3024//    req, resp := client.RemoveTagsRequest(params)
3025//
3026//    err := req.Send()
3027//    if err == nil { // resp is now filled
3028//        fmt.Println(resp)
3029//    }
3030//
3031// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTags
3032func (c *EMR) RemoveTagsRequest(input *RemoveTagsInput) (req *request.Request, output *RemoveTagsOutput) {
3033	op := &request.Operation{
3034		Name:       opRemoveTags,
3035		HTTPMethod: "POST",
3036		HTTPPath:   "/",
3037	}
3038
3039	if input == nil {
3040		input = &RemoveTagsInput{}
3041	}
3042
3043	output = &RemoveTagsOutput{}
3044	req = c.newRequest(op, input, output)
3045	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3046	return
3047}
3048
3049// RemoveTags API operation for Amazon Elastic MapReduce.
3050//
3051// Removes tags from an Amazon EMR resource. Tags make it easier to associate
3052// clusters in various ways, such as grouping clusters to track your Amazon
3053// EMR resource allocation costs. For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
3054//
3055// The following example removes the stack tag with value Prod from a cluster:
3056//
3057// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3058// with awserr.Error's Code and Message methods to get detailed information about
3059// the error.
3060//
3061// See the AWS API reference guide for Amazon Elastic MapReduce's
3062// API operation RemoveTags for usage and error information.
3063//
3064// Returned Error Types:
3065//   * InternalServerException
3066//   This exception occurs when there is an internal failure in the EMR service.
3067//
3068//   * InvalidRequestException
3069//   This exception occurs when there is something wrong with user input.
3070//
3071// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTags
3072func (c *EMR) RemoveTags(input *RemoveTagsInput) (*RemoveTagsOutput, error) {
3073	req, out := c.RemoveTagsRequest(input)
3074	return out, req.Send()
3075}
3076
3077// RemoveTagsWithContext is the same as RemoveTags with the addition of
3078// the ability to pass a context and additional request options.
3079//
3080// See RemoveTags for details on how to use this API operation.
3081//
3082// The context must be non-nil and will be used for request cancellation. If
3083// the context is nil a panic will occur. In the future the SDK may create
3084// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3085// for more information on using Contexts.
3086func (c *EMR) RemoveTagsWithContext(ctx aws.Context, input *RemoveTagsInput, opts ...request.Option) (*RemoveTagsOutput, error) {
3087	req, out := c.RemoveTagsRequest(input)
3088	req.SetContext(ctx)
3089	req.ApplyOptions(opts...)
3090	return out, req.Send()
3091}
3092
3093const opRunJobFlow = "RunJobFlow"
3094
3095// RunJobFlowRequest generates a "aws/request.Request" representing the
3096// client's request for the RunJobFlow operation. The "output" return
3097// value will be populated with the request's response once the request completes
3098// successfully.
3099//
3100// Use "Send" method on the returned Request to send the API call to the service.
3101// the "output" return value is not valid until after Send returns without error.
3102//
3103// See RunJobFlow for more information on using the RunJobFlow
3104// API call, and error handling.
3105//
3106// This method is useful when you want to inject custom logic or configuration
3107// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3108//
3109//
3110//    // Example sending a request using the RunJobFlowRequest method.
3111//    req, resp := client.RunJobFlowRequest(params)
3112//
3113//    err := req.Send()
3114//    if err == nil { // resp is now filled
3115//        fmt.Println(resp)
3116//    }
3117//
3118// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlow
3119func (c *EMR) RunJobFlowRequest(input *RunJobFlowInput) (req *request.Request, output *RunJobFlowOutput) {
3120	op := &request.Operation{
3121		Name:       opRunJobFlow,
3122		HTTPMethod: "POST",
3123		HTTPPath:   "/",
3124	}
3125
3126	if input == nil {
3127		input = &RunJobFlowInput{}
3128	}
3129
3130	output = &RunJobFlowOutput{}
3131	req = c.newRequest(op, input, output)
3132	return
3133}
3134
3135// RunJobFlow API operation for Amazon Elastic MapReduce.
3136//
3137// RunJobFlow creates and starts running a new cluster (job flow). The cluster
3138// runs the steps specified. After the steps complete, the cluster stops and
3139// the HDFS partition is lost. To prevent loss of data, configure the last step
3140// of the job flow to store results in Amazon S3. If the JobFlowInstancesConfig
3141// KeepJobFlowAliveWhenNoSteps parameter is set to TRUE, the cluster transitions
3142// to the WAITING state rather than shutting down after the steps have completed.
3143//
3144// For additional protection, you can set the JobFlowInstancesConfig TerminationProtected
3145// parameter to TRUE to lock the cluster and prevent it from being terminated
3146// by API call, user intervention, or in the event of a job flow error.
3147//
3148// A maximum of 256 steps are allowed in each job flow.
3149//
3150// If your cluster is long-running (such as a Hive data warehouse) or complex,
3151// you may require more than 256 steps to process your data. You can bypass
3152// the 256-step limitation in various ways, including using the SSH shell to
3153// connect to the master node and submitting queries directly to the software
3154// running on the master node, such as Hive and Hadoop. For more information
3155// on how to do this, see Add More than 256 Steps to a Cluster (https://docs.aws.amazon.com/emr/latest/ManagementGuide/AddMoreThan256Steps.html)
3156// in the Amazon EMR Management Guide.
3157//
3158// For long running clusters, we recommend that you periodically store your
3159// results.
3160//
3161// The instance fleets configuration is available only in Amazon EMR versions
3162// 4.8.0 and later, excluding 5.0.x versions. The RunJobFlow request can contain
3163// InstanceFleets parameters or InstanceGroups parameters, but not both.
3164//
3165// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3166// with awserr.Error's Code and Message methods to get detailed information about
3167// the error.
3168//
3169// See the AWS API reference guide for Amazon Elastic MapReduce's
3170// API operation RunJobFlow for usage and error information.
3171//
3172// Returned Error Types:
3173//   * InternalServerError
3174//   Indicates that an error occurred while processing the request and that the
3175//   request was not completed.
3176//
3177// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlow
3178func (c *EMR) RunJobFlow(input *RunJobFlowInput) (*RunJobFlowOutput, error) {
3179	req, out := c.RunJobFlowRequest(input)
3180	return out, req.Send()
3181}
3182
3183// RunJobFlowWithContext is the same as RunJobFlow with the addition of
3184// the ability to pass a context and additional request options.
3185//
3186// See RunJobFlow for details on how to use this API operation.
3187//
3188// The context must be non-nil and will be used for request cancellation. If
3189// the context is nil a panic will occur. In the future the SDK may create
3190// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3191// for more information on using Contexts.
3192func (c *EMR) RunJobFlowWithContext(ctx aws.Context, input *RunJobFlowInput, opts ...request.Option) (*RunJobFlowOutput, error) {
3193	req, out := c.RunJobFlowRequest(input)
3194	req.SetContext(ctx)
3195	req.ApplyOptions(opts...)
3196	return out, req.Send()
3197}
3198
3199const opSetTerminationProtection = "SetTerminationProtection"
3200
3201// SetTerminationProtectionRequest generates a "aws/request.Request" representing the
3202// client's request for the SetTerminationProtection operation. The "output" return
3203// value will be populated with the request's response once the request completes
3204// successfully.
3205//
3206// Use "Send" method on the returned Request to send the API call to the service.
3207// the "output" return value is not valid until after Send returns without error.
3208//
3209// See SetTerminationProtection for more information on using the SetTerminationProtection
3210// API call, and error handling.
3211//
3212// This method is useful when you want to inject custom logic or configuration
3213// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3214//
3215//
3216//    // Example sending a request using the SetTerminationProtectionRequest method.
3217//    req, resp := client.SetTerminationProtectionRequest(params)
3218//
3219//    err := req.Send()
3220//    if err == nil { // resp is now filled
3221//        fmt.Println(resp)
3222//    }
3223//
3224// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtection
3225func (c *EMR) SetTerminationProtectionRequest(input *SetTerminationProtectionInput) (req *request.Request, output *SetTerminationProtectionOutput) {
3226	op := &request.Operation{
3227		Name:       opSetTerminationProtection,
3228		HTTPMethod: "POST",
3229		HTTPPath:   "/",
3230	}
3231
3232	if input == nil {
3233		input = &SetTerminationProtectionInput{}
3234	}
3235
3236	output = &SetTerminationProtectionOutput{}
3237	req = c.newRequest(op, input, output)
3238	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3239	return
3240}
3241
3242// SetTerminationProtection API operation for Amazon Elastic MapReduce.
3243//
3244// SetTerminationProtection locks a cluster (job flow) so the EC2 instances
3245// in the cluster cannot be terminated by user intervention, an API call, or
3246// in the event of a job-flow error. The cluster still terminates upon successful
3247// completion of the job flow. Calling SetTerminationProtection on a cluster
3248// is similar to calling the Amazon EC2 DisableAPITermination API on all EC2
3249// instances in a cluster.
3250//
3251// SetTerminationProtection is used to prevent accidental termination of a cluster
3252// and to ensure that in the event of an error, the instances persist so that
3253// you can recover any data stored in their ephemeral instance storage.
3254//
3255// To terminate a cluster that has been locked by setting SetTerminationProtection
3256// to true, you must first unlock the job flow by a subsequent call to SetTerminationProtection
3257// in which you set the value to false.
3258//
3259// For more information, seeManaging Cluster Termination (https://docs.aws.amazon.com/emr/latest/ManagementGuide/UsingEMR_TerminationProtection.html)
3260// in the Amazon EMR Management Guide.
3261//
3262// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3263// with awserr.Error's Code and Message methods to get detailed information about
3264// the error.
3265//
3266// See the AWS API reference guide for Amazon Elastic MapReduce's
3267// API operation SetTerminationProtection for usage and error information.
3268//
3269// Returned Error Types:
3270//   * InternalServerError
3271//   Indicates that an error occurred while processing the request and that the
3272//   request was not completed.
3273//
3274// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtection
3275func (c *EMR) SetTerminationProtection(input *SetTerminationProtectionInput) (*SetTerminationProtectionOutput, error) {
3276	req, out := c.SetTerminationProtectionRequest(input)
3277	return out, req.Send()
3278}
3279
3280// SetTerminationProtectionWithContext is the same as SetTerminationProtection with the addition of
3281// the ability to pass a context and additional request options.
3282//
3283// See SetTerminationProtection for details on how to use this API operation.
3284//
3285// The context must be non-nil and will be used for request cancellation. If
3286// the context is nil a panic will occur. In the future the SDK may create
3287// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3288// for more information on using Contexts.
3289func (c *EMR) SetTerminationProtectionWithContext(ctx aws.Context, input *SetTerminationProtectionInput, opts ...request.Option) (*SetTerminationProtectionOutput, error) {
3290	req, out := c.SetTerminationProtectionRequest(input)
3291	req.SetContext(ctx)
3292	req.ApplyOptions(opts...)
3293	return out, req.Send()
3294}
3295
3296const opSetVisibleToAllUsers = "SetVisibleToAllUsers"
3297
3298// SetVisibleToAllUsersRequest generates a "aws/request.Request" representing the
3299// client's request for the SetVisibleToAllUsers operation. The "output" return
3300// value will be populated with the request's response once the request completes
3301// successfully.
3302//
3303// Use "Send" method on the returned Request to send the API call to the service.
3304// the "output" return value is not valid until after Send returns without error.
3305//
3306// See SetVisibleToAllUsers for more information on using the SetVisibleToAllUsers
3307// API call, and error handling.
3308//
3309// This method is useful when you want to inject custom logic or configuration
3310// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3311//
3312//
3313//    // Example sending a request using the SetVisibleToAllUsersRequest method.
3314//    req, resp := client.SetVisibleToAllUsersRequest(params)
3315//
3316//    err := req.Send()
3317//    if err == nil { // resp is now filled
3318//        fmt.Println(resp)
3319//    }
3320//
3321// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsers
3322func (c *EMR) SetVisibleToAllUsersRequest(input *SetVisibleToAllUsersInput) (req *request.Request, output *SetVisibleToAllUsersOutput) {
3323	op := &request.Operation{
3324		Name:       opSetVisibleToAllUsers,
3325		HTTPMethod: "POST",
3326		HTTPPath:   "/",
3327	}
3328
3329	if input == nil {
3330		input = &SetVisibleToAllUsersInput{}
3331	}
3332
3333	output = &SetVisibleToAllUsersOutput{}
3334	req = c.newRequest(op, input, output)
3335	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3336	return
3337}
3338
3339// SetVisibleToAllUsers API operation for Amazon Elastic MapReduce.
3340//
3341// Sets the Cluster$VisibleToAllUsers value, which determines whether the cluster
3342// is visible to all IAM users of the AWS account associated with the cluster.
3343// Only the IAM user who created the cluster or the AWS account root user can
3344// call this action. The default value, true, indicates that all IAM users in
3345// the AWS account can perform cluster actions if they have the proper IAM policy
3346// permissions. If set to false, only the IAM user that created the cluster
3347// can perform actions. This action works on running clusters. You can override
3348// the default true setting when you create a cluster by using the VisibleToAllUsers
3349// parameter with RunJobFlow.
3350//
3351// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3352// with awserr.Error's Code and Message methods to get detailed information about
3353// the error.
3354//
3355// See the AWS API reference guide for Amazon Elastic MapReduce's
3356// API operation SetVisibleToAllUsers for usage and error information.
3357//
3358// Returned Error Types:
3359//   * InternalServerError
3360//   Indicates that an error occurred while processing the request and that the
3361//   request was not completed.
3362//
3363// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsers
3364func (c *EMR) SetVisibleToAllUsers(input *SetVisibleToAllUsersInput) (*SetVisibleToAllUsersOutput, error) {
3365	req, out := c.SetVisibleToAllUsersRequest(input)
3366	return out, req.Send()
3367}
3368
3369// SetVisibleToAllUsersWithContext is the same as SetVisibleToAllUsers with the addition of
3370// the ability to pass a context and additional request options.
3371//
3372// See SetVisibleToAllUsers for details on how to use this API operation.
3373//
3374// The context must be non-nil and will be used for request cancellation. If
3375// the context is nil a panic will occur. In the future the SDK may create
3376// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3377// for more information on using Contexts.
3378func (c *EMR) SetVisibleToAllUsersWithContext(ctx aws.Context, input *SetVisibleToAllUsersInput, opts ...request.Option) (*SetVisibleToAllUsersOutput, error) {
3379	req, out := c.SetVisibleToAllUsersRequest(input)
3380	req.SetContext(ctx)
3381	req.ApplyOptions(opts...)
3382	return out, req.Send()
3383}
3384
3385const opStartNotebookExecution = "StartNotebookExecution"
3386
3387// StartNotebookExecutionRequest generates a "aws/request.Request" representing the
3388// client's request for the StartNotebookExecution operation. The "output" return
3389// value will be populated with the request's response once the request completes
3390// successfully.
3391//
3392// Use "Send" method on the returned Request to send the API call to the service.
3393// the "output" return value is not valid until after Send returns without error.
3394//
3395// See StartNotebookExecution for more information on using the StartNotebookExecution
3396// API call, and error handling.
3397//
3398// This method is useful when you want to inject custom logic or configuration
3399// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3400//
3401//
3402//    // Example sending a request using the StartNotebookExecutionRequest method.
3403//    req, resp := client.StartNotebookExecutionRequest(params)
3404//
3405//    err := req.Send()
3406//    if err == nil { // resp is now filled
3407//        fmt.Println(resp)
3408//    }
3409//
3410// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StartNotebookExecution
3411func (c *EMR) StartNotebookExecutionRequest(input *StartNotebookExecutionInput) (req *request.Request, output *StartNotebookExecutionOutput) {
3412	op := &request.Operation{
3413		Name:       opStartNotebookExecution,
3414		HTTPMethod: "POST",
3415		HTTPPath:   "/",
3416	}
3417
3418	if input == nil {
3419		input = &StartNotebookExecutionInput{}
3420	}
3421
3422	output = &StartNotebookExecutionOutput{}
3423	req = c.newRequest(op, input, output)
3424	return
3425}
3426
3427// StartNotebookExecution API operation for Amazon Elastic MapReduce.
3428//
3429// Starts a notebook execution.
3430//
3431// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3432// with awserr.Error's Code and Message methods to get detailed information about
3433// the error.
3434//
3435// See the AWS API reference guide for Amazon Elastic MapReduce's
3436// API operation StartNotebookExecution for usage and error information.
3437//
3438// Returned Error Types:
3439//   * InternalServerException
3440//   This exception occurs when there is an internal failure in the EMR service.
3441//
3442//   * InvalidRequestException
3443//   This exception occurs when there is something wrong with user input.
3444//
3445// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StartNotebookExecution
3446func (c *EMR) StartNotebookExecution(input *StartNotebookExecutionInput) (*StartNotebookExecutionOutput, error) {
3447	req, out := c.StartNotebookExecutionRequest(input)
3448	return out, req.Send()
3449}
3450
3451// StartNotebookExecutionWithContext is the same as StartNotebookExecution with the addition of
3452// the ability to pass a context and additional request options.
3453//
3454// See StartNotebookExecution for details on how to use this API operation.
3455//
3456// The context must be non-nil and will be used for request cancellation. If
3457// the context is nil a panic will occur. In the future the SDK may create
3458// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3459// for more information on using Contexts.
3460func (c *EMR) StartNotebookExecutionWithContext(ctx aws.Context, input *StartNotebookExecutionInput, opts ...request.Option) (*StartNotebookExecutionOutput, error) {
3461	req, out := c.StartNotebookExecutionRequest(input)
3462	req.SetContext(ctx)
3463	req.ApplyOptions(opts...)
3464	return out, req.Send()
3465}
3466
3467const opStopNotebookExecution = "StopNotebookExecution"
3468
3469// StopNotebookExecutionRequest generates a "aws/request.Request" representing the
3470// client's request for the StopNotebookExecution operation. The "output" return
3471// value will be populated with the request's response once the request completes
3472// successfully.
3473//
3474// Use "Send" method on the returned Request to send the API call to the service.
3475// the "output" return value is not valid until after Send returns without error.
3476//
3477// See StopNotebookExecution for more information on using the StopNotebookExecution
3478// API call, and error handling.
3479//
3480// This method is useful when you want to inject custom logic or configuration
3481// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3482//
3483//
3484//    // Example sending a request using the StopNotebookExecutionRequest method.
3485//    req, resp := client.StopNotebookExecutionRequest(params)
3486//
3487//    err := req.Send()
3488//    if err == nil { // resp is now filled
3489//        fmt.Println(resp)
3490//    }
3491//
3492// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StopNotebookExecution
3493func (c *EMR) StopNotebookExecutionRequest(input *StopNotebookExecutionInput) (req *request.Request, output *StopNotebookExecutionOutput) {
3494	op := &request.Operation{
3495		Name:       opStopNotebookExecution,
3496		HTTPMethod: "POST",
3497		HTTPPath:   "/",
3498	}
3499
3500	if input == nil {
3501		input = &StopNotebookExecutionInput{}
3502	}
3503
3504	output = &StopNotebookExecutionOutput{}
3505	req = c.newRequest(op, input, output)
3506	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3507	return
3508}
3509
3510// StopNotebookExecution API operation for Amazon Elastic MapReduce.
3511//
3512// Stops a notebook execution.
3513//
3514// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3515// with awserr.Error's Code and Message methods to get detailed information about
3516// the error.
3517//
3518// See the AWS API reference guide for Amazon Elastic MapReduce's
3519// API operation StopNotebookExecution for usage and error information.
3520//
3521// Returned Error Types:
3522//   * InternalServerError
3523//   Indicates that an error occurred while processing the request and that the
3524//   request was not completed.
3525//
3526//   * InvalidRequestException
3527//   This exception occurs when there is something wrong with user input.
3528//
3529// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StopNotebookExecution
3530func (c *EMR) StopNotebookExecution(input *StopNotebookExecutionInput) (*StopNotebookExecutionOutput, error) {
3531	req, out := c.StopNotebookExecutionRequest(input)
3532	return out, req.Send()
3533}
3534
3535// StopNotebookExecutionWithContext is the same as StopNotebookExecution with the addition of
3536// the ability to pass a context and additional request options.
3537//
3538// See StopNotebookExecution for details on how to use this API operation.
3539//
3540// The context must be non-nil and will be used for request cancellation. If
3541// the context is nil a panic will occur. In the future the SDK may create
3542// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3543// for more information on using Contexts.
3544func (c *EMR) StopNotebookExecutionWithContext(ctx aws.Context, input *StopNotebookExecutionInput, opts ...request.Option) (*StopNotebookExecutionOutput, error) {
3545	req, out := c.StopNotebookExecutionRequest(input)
3546	req.SetContext(ctx)
3547	req.ApplyOptions(opts...)
3548	return out, req.Send()
3549}
3550
3551const opTerminateJobFlows = "TerminateJobFlows"
3552
3553// TerminateJobFlowsRequest generates a "aws/request.Request" representing the
3554// client's request for the TerminateJobFlows operation. The "output" return
3555// value will be populated with the request's response once the request completes
3556// successfully.
3557//
3558// Use "Send" method on the returned Request to send the API call to the service.
3559// the "output" return value is not valid until after Send returns without error.
3560//
3561// See TerminateJobFlows for more information on using the TerminateJobFlows
3562// API call, and error handling.
3563//
3564// This method is useful when you want to inject custom logic or configuration
3565// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3566//
3567//
3568//    // Example sending a request using the TerminateJobFlowsRequest method.
3569//    req, resp := client.TerminateJobFlowsRequest(params)
3570//
3571//    err := req.Send()
3572//    if err == nil { // resp is now filled
3573//        fmt.Println(resp)
3574//    }
3575//
3576// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlows
3577func (c *EMR) TerminateJobFlowsRequest(input *TerminateJobFlowsInput) (req *request.Request, output *TerminateJobFlowsOutput) {
3578	op := &request.Operation{
3579		Name:       opTerminateJobFlows,
3580		HTTPMethod: "POST",
3581		HTTPPath:   "/",
3582	}
3583
3584	if input == nil {
3585		input = &TerminateJobFlowsInput{}
3586	}
3587
3588	output = &TerminateJobFlowsOutput{}
3589	req = c.newRequest(op, input, output)
3590	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3591	return
3592}
3593
3594// TerminateJobFlows API operation for Amazon Elastic MapReduce.
3595//
3596// TerminateJobFlows shuts a list of clusters (job flows) down. When a job flow
3597// is shut down, any step not yet completed is canceled and the EC2 instances
3598// on which the cluster is running are stopped. Any log files not already saved
3599// are uploaded to Amazon S3 if a LogUri was specified when the cluster was
3600// created.
3601//
3602// The maximum number of clusters allowed is 10. The call to TerminateJobFlows
3603// is asynchronous. Depending on the configuration of the cluster, it may take
3604// up to 1-5 minutes for the cluster to completely terminate and release allocated
3605// resources, such as Amazon EC2 instances.
3606//
3607// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3608// with awserr.Error's Code and Message methods to get detailed information about
3609// the error.
3610//
3611// See the AWS API reference guide for Amazon Elastic MapReduce's
3612// API operation TerminateJobFlows for usage and error information.
3613//
3614// Returned Error Types:
3615//   * InternalServerError
3616//   Indicates that an error occurred while processing the request and that the
3617//   request was not completed.
3618//
3619// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlows
3620func (c *EMR) TerminateJobFlows(input *TerminateJobFlowsInput) (*TerminateJobFlowsOutput, error) {
3621	req, out := c.TerminateJobFlowsRequest(input)
3622	return out, req.Send()
3623}
3624
3625// TerminateJobFlowsWithContext is the same as TerminateJobFlows with the addition of
3626// the ability to pass a context and additional request options.
3627//
3628// See TerminateJobFlows for details on how to use this API operation.
3629//
3630// The context must be non-nil and will be used for request cancellation. If
3631// the context is nil a panic will occur. In the future the SDK may create
3632// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3633// for more information on using Contexts.
3634func (c *EMR) TerminateJobFlowsWithContext(ctx aws.Context, input *TerminateJobFlowsInput, opts ...request.Option) (*TerminateJobFlowsOutput, error) {
3635	req, out := c.TerminateJobFlowsRequest(input)
3636	req.SetContext(ctx)
3637	req.ApplyOptions(opts...)
3638	return out, req.Send()
3639}
3640
3641type AddInstanceFleetInput struct {
3642	_ struct{} `type:"structure"`
3643
3644	// The unique identifier of the cluster.
3645	//
3646	// ClusterId is a required field
3647	ClusterId *string `type:"string" required:"true"`
3648
3649	// Specifies the configuration of the instance fleet.
3650	//
3651	// InstanceFleet is a required field
3652	InstanceFleet *InstanceFleetConfig `type:"structure" required:"true"`
3653}
3654
3655// String returns the string representation
3656func (s AddInstanceFleetInput) String() string {
3657	return awsutil.Prettify(s)
3658}
3659
3660// GoString returns the string representation
3661func (s AddInstanceFleetInput) GoString() string {
3662	return s.String()
3663}
3664
3665// Validate inspects the fields of the type to determine if they are valid.
3666func (s *AddInstanceFleetInput) Validate() error {
3667	invalidParams := request.ErrInvalidParams{Context: "AddInstanceFleetInput"}
3668	if s.ClusterId == nil {
3669		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
3670	}
3671	if s.InstanceFleet == nil {
3672		invalidParams.Add(request.NewErrParamRequired("InstanceFleet"))
3673	}
3674	if s.InstanceFleet != nil {
3675		if err := s.InstanceFleet.Validate(); err != nil {
3676			invalidParams.AddNested("InstanceFleet", err.(request.ErrInvalidParams))
3677		}
3678	}
3679
3680	if invalidParams.Len() > 0 {
3681		return invalidParams
3682	}
3683	return nil
3684}
3685
3686// SetClusterId sets the ClusterId field's value.
3687func (s *AddInstanceFleetInput) SetClusterId(v string) *AddInstanceFleetInput {
3688	s.ClusterId = &v
3689	return s
3690}
3691
3692// SetInstanceFleet sets the InstanceFleet field's value.
3693func (s *AddInstanceFleetInput) SetInstanceFleet(v *InstanceFleetConfig) *AddInstanceFleetInput {
3694	s.InstanceFleet = v
3695	return s
3696}
3697
3698type AddInstanceFleetOutput struct {
3699	_ struct{} `type:"structure"`
3700
3701	// The Amazon Resource Name of the cluster.
3702	ClusterArn *string `min:"20" type:"string"`
3703
3704	// The unique identifier of the cluster.
3705	ClusterId *string `type:"string"`
3706
3707	// The unique identifier of the instance fleet.
3708	InstanceFleetId *string `type:"string"`
3709}
3710
3711// String returns the string representation
3712func (s AddInstanceFleetOutput) String() string {
3713	return awsutil.Prettify(s)
3714}
3715
3716// GoString returns the string representation
3717func (s AddInstanceFleetOutput) GoString() string {
3718	return s.String()
3719}
3720
3721// SetClusterArn sets the ClusterArn field's value.
3722func (s *AddInstanceFleetOutput) SetClusterArn(v string) *AddInstanceFleetOutput {
3723	s.ClusterArn = &v
3724	return s
3725}
3726
3727// SetClusterId sets the ClusterId field's value.
3728func (s *AddInstanceFleetOutput) SetClusterId(v string) *AddInstanceFleetOutput {
3729	s.ClusterId = &v
3730	return s
3731}
3732
3733// SetInstanceFleetId sets the InstanceFleetId field's value.
3734func (s *AddInstanceFleetOutput) SetInstanceFleetId(v string) *AddInstanceFleetOutput {
3735	s.InstanceFleetId = &v
3736	return s
3737}
3738
3739// Input to an AddInstanceGroups call.
3740type AddInstanceGroupsInput struct {
3741	_ struct{} `type:"structure"`
3742
3743	// Instance groups to add.
3744	//
3745	// InstanceGroups is a required field
3746	InstanceGroups []*InstanceGroupConfig `type:"list" required:"true"`
3747
3748	// Job flow in which to add the instance groups.
3749	//
3750	// JobFlowId is a required field
3751	JobFlowId *string `type:"string" required:"true"`
3752}
3753
3754// String returns the string representation
3755func (s AddInstanceGroupsInput) String() string {
3756	return awsutil.Prettify(s)
3757}
3758
3759// GoString returns the string representation
3760func (s AddInstanceGroupsInput) GoString() string {
3761	return s.String()
3762}
3763
3764// Validate inspects the fields of the type to determine if they are valid.
3765func (s *AddInstanceGroupsInput) Validate() error {
3766	invalidParams := request.ErrInvalidParams{Context: "AddInstanceGroupsInput"}
3767	if s.InstanceGroups == nil {
3768		invalidParams.Add(request.NewErrParamRequired("InstanceGroups"))
3769	}
3770	if s.JobFlowId == nil {
3771		invalidParams.Add(request.NewErrParamRequired("JobFlowId"))
3772	}
3773	if s.InstanceGroups != nil {
3774		for i, v := range s.InstanceGroups {
3775			if v == nil {
3776				continue
3777			}
3778			if err := v.Validate(); err != nil {
3779				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
3780			}
3781		}
3782	}
3783
3784	if invalidParams.Len() > 0 {
3785		return invalidParams
3786	}
3787	return nil
3788}
3789
3790// SetInstanceGroups sets the InstanceGroups field's value.
3791func (s *AddInstanceGroupsInput) SetInstanceGroups(v []*InstanceGroupConfig) *AddInstanceGroupsInput {
3792	s.InstanceGroups = v
3793	return s
3794}
3795
3796// SetJobFlowId sets the JobFlowId field's value.
3797func (s *AddInstanceGroupsInput) SetJobFlowId(v string) *AddInstanceGroupsInput {
3798	s.JobFlowId = &v
3799	return s
3800}
3801
3802// Output from an AddInstanceGroups call.
3803type AddInstanceGroupsOutput struct {
3804	_ struct{} `type:"structure"`
3805
3806	// The Amazon Resource Name of the cluster.
3807	ClusterArn *string `min:"20" type:"string"`
3808
3809	// Instance group IDs of the newly created instance groups.
3810	InstanceGroupIds []*string `type:"list"`
3811
3812	// The job flow ID in which the instance groups are added.
3813	JobFlowId *string `type:"string"`
3814}
3815
3816// String returns the string representation
3817func (s AddInstanceGroupsOutput) String() string {
3818	return awsutil.Prettify(s)
3819}
3820
3821// GoString returns the string representation
3822func (s AddInstanceGroupsOutput) GoString() string {
3823	return s.String()
3824}
3825
3826// SetClusterArn sets the ClusterArn field's value.
3827func (s *AddInstanceGroupsOutput) SetClusterArn(v string) *AddInstanceGroupsOutput {
3828	s.ClusterArn = &v
3829	return s
3830}
3831
3832// SetInstanceGroupIds sets the InstanceGroupIds field's value.
3833func (s *AddInstanceGroupsOutput) SetInstanceGroupIds(v []*string) *AddInstanceGroupsOutput {
3834	s.InstanceGroupIds = v
3835	return s
3836}
3837
3838// SetJobFlowId sets the JobFlowId field's value.
3839func (s *AddInstanceGroupsOutput) SetJobFlowId(v string) *AddInstanceGroupsOutput {
3840	s.JobFlowId = &v
3841	return s
3842}
3843
3844// The input argument to the AddJobFlowSteps operation.
3845type AddJobFlowStepsInput struct {
3846	_ struct{} `type:"structure"`
3847
3848	// A string that uniquely identifies the job flow. This identifier is returned
3849	// by RunJobFlow and can also be obtained from ListClusters.
3850	//
3851	// JobFlowId is a required field
3852	JobFlowId *string `type:"string" required:"true"`
3853
3854	// A list of StepConfig to be executed by the job flow.
3855	//
3856	// Steps is a required field
3857	Steps []*StepConfig `type:"list" required:"true"`
3858}
3859
3860// String returns the string representation
3861func (s AddJobFlowStepsInput) String() string {
3862	return awsutil.Prettify(s)
3863}
3864
3865// GoString returns the string representation
3866func (s AddJobFlowStepsInput) GoString() string {
3867	return s.String()
3868}
3869
3870// Validate inspects the fields of the type to determine if they are valid.
3871func (s *AddJobFlowStepsInput) Validate() error {
3872	invalidParams := request.ErrInvalidParams{Context: "AddJobFlowStepsInput"}
3873	if s.JobFlowId == nil {
3874		invalidParams.Add(request.NewErrParamRequired("JobFlowId"))
3875	}
3876	if s.Steps == nil {
3877		invalidParams.Add(request.NewErrParamRequired("Steps"))
3878	}
3879	if s.Steps != nil {
3880		for i, v := range s.Steps {
3881			if v == nil {
3882				continue
3883			}
3884			if err := v.Validate(); err != nil {
3885				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Steps", i), err.(request.ErrInvalidParams))
3886			}
3887		}
3888	}
3889
3890	if invalidParams.Len() > 0 {
3891		return invalidParams
3892	}
3893	return nil
3894}
3895
3896// SetJobFlowId sets the JobFlowId field's value.
3897func (s *AddJobFlowStepsInput) SetJobFlowId(v string) *AddJobFlowStepsInput {
3898	s.JobFlowId = &v
3899	return s
3900}
3901
3902// SetSteps sets the Steps field's value.
3903func (s *AddJobFlowStepsInput) SetSteps(v []*StepConfig) *AddJobFlowStepsInput {
3904	s.Steps = v
3905	return s
3906}
3907
3908// The output for the AddJobFlowSteps operation.
3909type AddJobFlowStepsOutput struct {
3910	_ struct{} `type:"structure"`
3911
3912	// The identifiers of the list of steps added to the job flow.
3913	StepIds []*string `type:"list"`
3914}
3915
3916// String returns the string representation
3917func (s AddJobFlowStepsOutput) String() string {
3918	return awsutil.Prettify(s)
3919}
3920
3921// GoString returns the string representation
3922func (s AddJobFlowStepsOutput) GoString() string {
3923	return s.String()
3924}
3925
3926// SetStepIds sets the StepIds field's value.
3927func (s *AddJobFlowStepsOutput) SetStepIds(v []*string) *AddJobFlowStepsOutput {
3928	s.StepIds = v
3929	return s
3930}
3931
3932// This input identifies a cluster and a list of tags to attach.
3933type AddTagsInput struct {
3934	_ struct{} `type:"structure"`
3935
3936	// The Amazon EMR resource identifier to which tags will be added. This value
3937	// must be a cluster identifier.
3938	//
3939	// ResourceId is a required field
3940	ResourceId *string `type:"string" required:"true"`
3941
3942	// A list of tags to associate with a cluster and propagate to EC2 instances.
3943	// Tags are user-defined key/value pairs that consist of a required key string
3944	// with a maximum of 128 characters, and an optional value string with a maximum
3945	// of 256 characters.
3946	//
3947	// Tags is a required field
3948	Tags []*Tag `type:"list" required:"true"`
3949}
3950
3951// String returns the string representation
3952func (s AddTagsInput) String() string {
3953	return awsutil.Prettify(s)
3954}
3955
3956// GoString returns the string representation
3957func (s AddTagsInput) GoString() string {
3958	return s.String()
3959}
3960
3961// Validate inspects the fields of the type to determine if they are valid.
3962func (s *AddTagsInput) Validate() error {
3963	invalidParams := request.ErrInvalidParams{Context: "AddTagsInput"}
3964	if s.ResourceId == nil {
3965		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
3966	}
3967	if s.Tags == nil {
3968		invalidParams.Add(request.NewErrParamRequired("Tags"))
3969	}
3970
3971	if invalidParams.Len() > 0 {
3972		return invalidParams
3973	}
3974	return nil
3975}
3976
3977// SetResourceId sets the ResourceId field's value.
3978func (s *AddTagsInput) SetResourceId(v string) *AddTagsInput {
3979	s.ResourceId = &v
3980	return s
3981}
3982
3983// SetTags sets the Tags field's value.
3984func (s *AddTagsInput) SetTags(v []*Tag) *AddTagsInput {
3985	s.Tags = v
3986	return s
3987}
3988
3989// This output indicates the result of adding tags to a resource.
3990type AddTagsOutput struct {
3991	_ struct{} `type:"structure"`
3992}
3993
3994// String returns the string representation
3995func (s AddTagsOutput) String() string {
3996	return awsutil.Prettify(s)
3997}
3998
3999// GoString returns the string representation
4000func (s AddTagsOutput) GoString() string {
4001	return s.String()
4002}
4003
4004// With Amazon EMR release version 4.0 and later, the only accepted parameter
4005// is the application name. To pass arguments to applications, you use configuration
4006// classifications specified using configuration JSON objects. For more information,
4007// see Configuring Applications (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html).
4008//
4009// With earlier Amazon EMR releases, the application is any Amazon or third-party
4010// software that you can add to the cluster. This structure contains a list
4011// of strings that indicates the software to use with the cluster and accepts
4012// a user argument list. Amazon EMR accepts and forwards the argument list to
4013// the corresponding installation script as bootstrap action argument.
4014type Application struct {
4015	_ struct{} `type:"structure"`
4016
4017	// This option is for advanced users only. This is meta information about third-party
4018	// applications that third-party vendors use for testing purposes.
4019	AdditionalInfo map[string]*string `type:"map"`
4020
4021	// Arguments for Amazon EMR to pass to the application.
4022	Args []*string `type:"list"`
4023
4024	// The name of the application.
4025	Name *string `type:"string"`
4026
4027	// The version of the application.
4028	Version *string `type:"string"`
4029}
4030
4031// String returns the string representation
4032func (s Application) String() string {
4033	return awsutil.Prettify(s)
4034}
4035
4036// GoString returns the string representation
4037func (s Application) GoString() string {
4038	return s.String()
4039}
4040
4041// SetAdditionalInfo sets the AdditionalInfo field's value.
4042func (s *Application) SetAdditionalInfo(v map[string]*string) *Application {
4043	s.AdditionalInfo = v
4044	return s
4045}
4046
4047// SetArgs sets the Args field's value.
4048func (s *Application) SetArgs(v []*string) *Application {
4049	s.Args = v
4050	return s
4051}
4052
4053// SetName sets the Name field's value.
4054func (s *Application) SetName(v string) *Application {
4055	s.Name = &v
4056	return s
4057}
4058
4059// SetVersion sets the Version field's value.
4060func (s *Application) SetVersion(v string) *Application {
4061	s.Version = &v
4062	return s
4063}
4064
4065// An automatic scaling policy for a core instance group or task instance group
4066// in an Amazon EMR cluster. An automatic scaling policy defines how an instance
4067// group dynamically adds and terminates EC2 instances in response to the value
4068// of a CloudWatch metric. See PutAutoScalingPolicy.
4069type AutoScalingPolicy struct {
4070	_ struct{} `type:"structure"`
4071
4072	// The upper and lower EC2 instance limits for an automatic scaling policy.
4073	// Automatic scaling activity will not cause an instance group to grow above
4074	// or below these limits.
4075	//
4076	// Constraints is a required field
4077	Constraints *ScalingConstraints `type:"structure" required:"true"`
4078
4079	// The scale-in and scale-out rules that comprise the automatic scaling policy.
4080	//
4081	// Rules is a required field
4082	Rules []*ScalingRule `type:"list" required:"true"`
4083}
4084
4085// String returns the string representation
4086func (s AutoScalingPolicy) String() string {
4087	return awsutil.Prettify(s)
4088}
4089
4090// GoString returns the string representation
4091func (s AutoScalingPolicy) GoString() string {
4092	return s.String()
4093}
4094
4095// Validate inspects the fields of the type to determine if they are valid.
4096func (s *AutoScalingPolicy) Validate() error {
4097	invalidParams := request.ErrInvalidParams{Context: "AutoScalingPolicy"}
4098	if s.Constraints == nil {
4099		invalidParams.Add(request.NewErrParamRequired("Constraints"))
4100	}
4101	if s.Rules == nil {
4102		invalidParams.Add(request.NewErrParamRequired("Rules"))
4103	}
4104	if s.Constraints != nil {
4105		if err := s.Constraints.Validate(); err != nil {
4106			invalidParams.AddNested("Constraints", err.(request.ErrInvalidParams))
4107		}
4108	}
4109	if s.Rules != nil {
4110		for i, v := range s.Rules {
4111			if v == nil {
4112				continue
4113			}
4114			if err := v.Validate(); err != nil {
4115				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams))
4116			}
4117		}
4118	}
4119
4120	if invalidParams.Len() > 0 {
4121		return invalidParams
4122	}
4123	return nil
4124}
4125
4126// SetConstraints sets the Constraints field's value.
4127func (s *AutoScalingPolicy) SetConstraints(v *ScalingConstraints) *AutoScalingPolicy {
4128	s.Constraints = v
4129	return s
4130}
4131
4132// SetRules sets the Rules field's value.
4133func (s *AutoScalingPolicy) SetRules(v []*ScalingRule) *AutoScalingPolicy {
4134	s.Rules = v
4135	return s
4136}
4137
4138// An automatic scaling policy for a core instance group or task instance group
4139// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
4140// group dynamically adds and terminates EC2 instances in response to the value
4141// of a CloudWatch metric. See PutAutoScalingPolicy.
4142type AutoScalingPolicyDescription struct {
4143	_ struct{} `type:"structure"`
4144
4145	// The upper and lower EC2 instance limits for an automatic scaling policy.
4146	// Automatic scaling activity will not cause an instance group to grow above
4147	// or below these limits.
4148	Constraints *ScalingConstraints `type:"structure"`
4149
4150	// The scale-in and scale-out rules that comprise the automatic scaling policy.
4151	Rules []*ScalingRule `type:"list"`
4152
4153	// The status of an automatic scaling policy.
4154	Status *AutoScalingPolicyStatus `type:"structure"`
4155}
4156
4157// String returns the string representation
4158func (s AutoScalingPolicyDescription) String() string {
4159	return awsutil.Prettify(s)
4160}
4161
4162// GoString returns the string representation
4163func (s AutoScalingPolicyDescription) GoString() string {
4164	return s.String()
4165}
4166
4167// SetConstraints sets the Constraints field's value.
4168func (s *AutoScalingPolicyDescription) SetConstraints(v *ScalingConstraints) *AutoScalingPolicyDescription {
4169	s.Constraints = v
4170	return s
4171}
4172
4173// SetRules sets the Rules field's value.
4174func (s *AutoScalingPolicyDescription) SetRules(v []*ScalingRule) *AutoScalingPolicyDescription {
4175	s.Rules = v
4176	return s
4177}
4178
4179// SetStatus sets the Status field's value.
4180func (s *AutoScalingPolicyDescription) SetStatus(v *AutoScalingPolicyStatus) *AutoScalingPolicyDescription {
4181	s.Status = v
4182	return s
4183}
4184
4185// The reason for an AutoScalingPolicyStatus change.
4186type AutoScalingPolicyStateChangeReason struct {
4187	_ struct{} `type:"structure"`
4188
4189	// The code indicating the reason for the change in status.USER_REQUEST indicates
4190	// that the scaling policy status was changed by a user. PROVISION_FAILURE indicates
4191	// that the status change was because the policy failed to provision. CLEANUP_FAILURE
4192	// indicates an error.
4193	Code *string `type:"string" enum:"AutoScalingPolicyStateChangeReasonCode"`
4194
4195	// A friendly, more verbose message that accompanies an automatic scaling policy
4196	// state change.
4197	Message *string `type:"string"`
4198}
4199
4200// String returns the string representation
4201func (s AutoScalingPolicyStateChangeReason) String() string {
4202	return awsutil.Prettify(s)
4203}
4204
4205// GoString returns the string representation
4206func (s AutoScalingPolicyStateChangeReason) GoString() string {
4207	return s.String()
4208}
4209
4210// SetCode sets the Code field's value.
4211func (s *AutoScalingPolicyStateChangeReason) SetCode(v string) *AutoScalingPolicyStateChangeReason {
4212	s.Code = &v
4213	return s
4214}
4215
4216// SetMessage sets the Message field's value.
4217func (s *AutoScalingPolicyStateChangeReason) SetMessage(v string) *AutoScalingPolicyStateChangeReason {
4218	s.Message = &v
4219	return s
4220}
4221
4222// The status of an automatic scaling policy.
4223type AutoScalingPolicyStatus struct {
4224	_ struct{} `type:"structure"`
4225
4226	// Indicates the status of the automatic scaling policy.
4227	State *string `type:"string" enum:"AutoScalingPolicyState"`
4228
4229	// The reason for a change in status.
4230	StateChangeReason *AutoScalingPolicyStateChangeReason `type:"structure"`
4231}
4232
4233// String returns the string representation
4234func (s AutoScalingPolicyStatus) String() string {
4235	return awsutil.Prettify(s)
4236}
4237
4238// GoString returns the string representation
4239func (s AutoScalingPolicyStatus) GoString() string {
4240	return s.String()
4241}
4242
4243// SetState sets the State field's value.
4244func (s *AutoScalingPolicyStatus) SetState(v string) *AutoScalingPolicyStatus {
4245	s.State = &v
4246	return s
4247}
4248
4249// SetStateChangeReason sets the StateChangeReason field's value.
4250func (s *AutoScalingPolicyStatus) SetStateChangeReason(v *AutoScalingPolicyStateChangeReason) *AutoScalingPolicyStatus {
4251	s.StateChangeReason = v
4252	return s
4253}
4254
4255// A configuration for Amazon EMR block public access. When BlockPublicSecurityGroupRules
4256// is set to true, Amazon EMR prevents cluster creation if one of the cluster's
4257// security groups has a rule that allows inbound traffic from 0.0.0.0/0 or
4258// ::/0 on a port, unless the port is specified as an exception using PermittedPublicSecurityGroupRuleRanges.
4259type BlockPublicAccessConfiguration struct {
4260	_ struct{} `type:"structure"`
4261
4262	// Indicates whether EMR block public access is enabled (true) or disabled (false).
4263	// By default, the value is false for accounts that have created EMR clusters
4264	// before July 2019. For accounts created after this, the default is true.
4265	//
4266	// BlockPublicSecurityGroupRules is a required field
4267	BlockPublicSecurityGroupRules *bool `type:"boolean" required:"true"`
4268
4269	// Specifies ports and port ranges that are permitted to have security group
4270	// rules that allow inbound traffic from all public sources. For example, if
4271	// Port 23 (Telnet) is specified for PermittedPublicSecurityGroupRuleRanges,
4272	// Amazon EMR allows cluster creation if a security group associated with the
4273	// cluster has a rule that allows inbound traffic on Port 23 from IPv4 0.0.0.0/0
4274	// or IPv6 port ::/0 as the source.
4275	//
4276	// By default, Port 22, which is used for SSH access to the cluster EC2 instances,
4277	// is in the list of PermittedPublicSecurityGroupRuleRanges.
4278	PermittedPublicSecurityGroupRuleRanges []*PortRange `type:"list"`
4279}
4280
4281// String returns the string representation
4282func (s BlockPublicAccessConfiguration) String() string {
4283	return awsutil.Prettify(s)
4284}
4285
4286// GoString returns the string representation
4287func (s BlockPublicAccessConfiguration) GoString() string {
4288	return s.String()
4289}
4290
4291// Validate inspects the fields of the type to determine if they are valid.
4292func (s *BlockPublicAccessConfiguration) Validate() error {
4293	invalidParams := request.ErrInvalidParams{Context: "BlockPublicAccessConfiguration"}
4294	if s.BlockPublicSecurityGroupRules == nil {
4295		invalidParams.Add(request.NewErrParamRequired("BlockPublicSecurityGroupRules"))
4296	}
4297	if s.PermittedPublicSecurityGroupRuleRanges != nil {
4298		for i, v := range s.PermittedPublicSecurityGroupRuleRanges {
4299			if v == nil {
4300				continue
4301			}
4302			if err := v.Validate(); err != nil {
4303				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PermittedPublicSecurityGroupRuleRanges", i), err.(request.ErrInvalidParams))
4304			}
4305		}
4306	}
4307
4308	if invalidParams.Len() > 0 {
4309		return invalidParams
4310	}
4311	return nil
4312}
4313
4314// SetBlockPublicSecurityGroupRules sets the BlockPublicSecurityGroupRules field's value.
4315func (s *BlockPublicAccessConfiguration) SetBlockPublicSecurityGroupRules(v bool) *BlockPublicAccessConfiguration {
4316	s.BlockPublicSecurityGroupRules = &v
4317	return s
4318}
4319
4320// SetPermittedPublicSecurityGroupRuleRanges sets the PermittedPublicSecurityGroupRuleRanges field's value.
4321func (s *BlockPublicAccessConfiguration) SetPermittedPublicSecurityGroupRuleRanges(v []*PortRange) *BlockPublicAccessConfiguration {
4322	s.PermittedPublicSecurityGroupRuleRanges = v
4323	return s
4324}
4325
4326// Properties that describe the AWS principal that created the BlockPublicAccessConfiguration
4327// using the PutBlockPublicAccessConfiguration action as well as the date and
4328// time that the configuration was created. Each time a configuration for block
4329// public access is updated, Amazon EMR updates this metadata.
4330type BlockPublicAccessConfigurationMetadata struct {
4331	_ struct{} `type:"structure"`
4332
4333	// The Amazon Resource Name that created or last modified the configuration.
4334	//
4335	// CreatedByArn is a required field
4336	CreatedByArn *string `min:"20" type:"string" required:"true"`
4337
4338	// The date and time that the configuration was created.
4339	//
4340	// CreationDateTime is a required field
4341	CreationDateTime *time.Time `type:"timestamp" required:"true"`
4342}
4343
4344// String returns the string representation
4345func (s BlockPublicAccessConfigurationMetadata) String() string {
4346	return awsutil.Prettify(s)
4347}
4348
4349// GoString returns the string representation
4350func (s BlockPublicAccessConfigurationMetadata) GoString() string {
4351	return s.String()
4352}
4353
4354// SetCreatedByArn sets the CreatedByArn field's value.
4355func (s *BlockPublicAccessConfigurationMetadata) SetCreatedByArn(v string) *BlockPublicAccessConfigurationMetadata {
4356	s.CreatedByArn = &v
4357	return s
4358}
4359
4360// SetCreationDateTime sets the CreationDateTime field's value.
4361func (s *BlockPublicAccessConfigurationMetadata) SetCreationDateTime(v time.Time) *BlockPublicAccessConfigurationMetadata {
4362	s.CreationDateTime = &v
4363	return s
4364}
4365
4366// Configuration of a bootstrap action.
4367type BootstrapActionConfig struct {
4368	_ struct{} `type:"structure"`
4369
4370	// The name of the bootstrap action.
4371	//
4372	// Name is a required field
4373	Name *string `type:"string" required:"true"`
4374
4375	// The script run by the bootstrap action.
4376	//
4377	// ScriptBootstrapAction is a required field
4378	ScriptBootstrapAction *ScriptBootstrapActionConfig `type:"structure" required:"true"`
4379}
4380
4381// String returns the string representation
4382func (s BootstrapActionConfig) String() string {
4383	return awsutil.Prettify(s)
4384}
4385
4386// GoString returns the string representation
4387func (s BootstrapActionConfig) GoString() string {
4388	return s.String()
4389}
4390
4391// Validate inspects the fields of the type to determine if they are valid.
4392func (s *BootstrapActionConfig) Validate() error {
4393	invalidParams := request.ErrInvalidParams{Context: "BootstrapActionConfig"}
4394	if s.Name == nil {
4395		invalidParams.Add(request.NewErrParamRequired("Name"))
4396	}
4397	if s.ScriptBootstrapAction == nil {
4398		invalidParams.Add(request.NewErrParamRequired("ScriptBootstrapAction"))
4399	}
4400	if s.ScriptBootstrapAction != nil {
4401		if err := s.ScriptBootstrapAction.Validate(); err != nil {
4402			invalidParams.AddNested("ScriptBootstrapAction", err.(request.ErrInvalidParams))
4403		}
4404	}
4405
4406	if invalidParams.Len() > 0 {
4407		return invalidParams
4408	}
4409	return nil
4410}
4411
4412// SetName sets the Name field's value.
4413func (s *BootstrapActionConfig) SetName(v string) *BootstrapActionConfig {
4414	s.Name = &v
4415	return s
4416}
4417
4418// SetScriptBootstrapAction sets the ScriptBootstrapAction field's value.
4419func (s *BootstrapActionConfig) SetScriptBootstrapAction(v *ScriptBootstrapActionConfig) *BootstrapActionConfig {
4420	s.ScriptBootstrapAction = v
4421	return s
4422}
4423
4424// Reports the configuration of a bootstrap action in a cluster (job flow).
4425type BootstrapActionDetail struct {
4426	_ struct{} `type:"structure"`
4427
4428	// A description of the bootstrap action.
4429	BootstrapActionConfig *BootstrapActionConfig `type:"structure"`
4430}
4431
4432// String returns the string representation
4433func (s BootstrapActionDetail) String() string {
4434	return awsutil.Prettify(s)
4435}
4436
4437// GoString returns the string representation
4438func (s BootstrapActionDetail) GoString() string {
4439	return s.String()
4440}
4441
4442// SetBootstrapActionConfig sets the BootstrapActionConfig field's value.
4443func (s *BootstrapActionDetail) SetBootstrapActionConfig(v *BootstrapActionConfig) *BootstrapActionDetail {
4444	s.BootstrapActionConfig = v
4445	return s
4446}
4447
4448// Specification of the status of a CancelSteps request. Available only in Amazon
4449// EMR version 4.8.0 and later, excluding version 5.0.0.
4450type CancelStepsInfo struct {
4451	_ struct{} `type:"structure"`
4452
4453	// The reason for the failure if the CancelSteps request fails.
4454	Reason *string `type:"string"`
4455
4456	// The status of a CancelSteps Request. The value may be SUBMITTED or FAILED.
4457	Status *string `type:"string" enum:"CancelStepsRequestStatus"`
4458
4459	// The encrypted StepId of a step.
4460	StepId *string `type:"string"`
4461}
4462
4463// String returns the string representation
4464func (s CancelStepsInfo) String() string {
4465	return awsutil.Prettify(s)
4466}
4467
4468// GoString returns the string representation
4469func (s CancelStepsInfo) GoString() string {
4470	return s.String()
4471}
4472
4473// SetReason sets the Reason field's value.
4474func (s *CancelStepsInfo) SetReason(v string) *CancelStepsInfo {
4475	s.Reason = &v
4476	return s
4477}
4478
4479// SetStatus sets the Status field's value.
4480func (s *CancelStepsInfo) SetStatus(v string) *CancelStepsInfo {
4481	s.Status = &v
4482	return s
4483}
4484
4485// SetStepId sets the StepId field's value.
4486func (s *CancelStepsInfo) SetStepId(v string) *CancelStepsInfo {
4487	s.StepId = &v
4488	return s
4489}
4490
4491// The input argument to the CancelSteps operation.
4492type CancelStepsInput struct {
4493	_ struct{} `type:"structure"`
4494
4495	// The ClusterID for which specified steps will be canceled. Use RunJobFlow
4496	// and ListClusters to get ClusterIDs.
4497	//
4498	// ClusterId is a required field
4499	ClusterId *string `type:"string" required:"true"`
4500
4501	// The option to choose for cancelling RUNNING steps. By default, the value
4502	// is SEND_INTERRUPT.
4503	StepCancellationOption *string `type:"string" enum:"StepCancellationOption"`
4504
4505	// The list of StepIDs to cancel. Use ListSteps to get steps and their states
4506	// for the specified cluster.
4507	//
4508	// StepIds is a required field
4509	StepIds []*string `type:"list" required:"true"`
4510}
4511
4512// String returns the string representation
4513func (s CancelStepsInput) String() string {
4514	return awsutil.Prettify(s)
4515}
4516
4517// GoString returns the string representation
4518func (s CancelStepsInput) GoString() string {
4519	return s.String()
4520}
4521
4522// Validate inspects the fields of the type to determine if they are valid.
4523func (s *CancelStepsInput) Validate() error {
4524	invalidParams := request.ErrInvalidParams{Context: "CancelStepsInput"}
4525	if s.ClusterId == nil {
4526		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
4527	}
4528	if s.StepIds == nil {
4529		invalidParams.Add(request.NewErrParamRequired("StepIds"))
4530	}
4531
4532	if invalidParams.Len() > 0 {
4533		return invalidParams
4534	}
4535	return nil
4536}
4537
4538// SetClusterId sets the ClusterId field's value.
4539func (s *CancelStepsInput) SetClusterId(v string) *CancelStepsInput {
4540	s.ClusterId = &v
4541	return s
4542}
4543
4544// SetStepCancellationOption sets the StepCancellationOption field's value.
4545func (s *CancelStepsInput) SetStepCancellationOption(v string) *CancelStepsInput {
4546	s.StepCancellationOption = &v
4547	return s
4548}
4549
4550// SetStepIds sets the StepIds field's value.
4551func (s *CancelStepsInput) SetStepIds(v []*string) *CancelStepsInput {
4552	s.StepIds = v
4553	return s
4554}
4555
4556// The output for the CancelSteps operation.
4557type CancelStepsOutput struct {
4558	_ struct{} `type:"structure"`
4559
4560	// A list of CancelStepsInfo, which shows the status of specified cancel requests
4561	// for each StepID specified.
4562	CancelStepsInfoList []*CancelStepsInfo `type:"list"`
4563}
4564
4565// String returns the string representation
4566func (s CancelStepsOutput) String() string {
4567	return awsutil.Prettify(s)
4568}
4569
4570// GoString returns the string representation
4571func (s CancelStepsOutput) GoString() string {
4572	return s.String()
4573}
4574
4575// SetCancelStepsInfoList sets the CancelStepsInfoList field's value.
4576func (s *CancelStepsOutput) SetCancelStepsInfoList(v []*CancelStepsInfo) *CancelStepsOutput {
4577	s.CancelStepsInfoList = v
4578	return s
4579}
4580
4581// The definition of a CloudWatch metric alarm, which determines when an automatic
4582// scaling activity is triggered. When the defined alarm conditions are satisfied,
4583// scaling activity begins.
4584type CloudWatchAlarmDefinition struct {
4585	_ struct{} `type:"structure"`
4586
4587	// Determines how the metric specified by MetricName is compared to the value
4588	// specified by Threshold.
4589	//
4590	// ComparisonOperator is a required field
4591	ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"`
4592
4593	// A CloudWatch metric dimension.
4594	Dimensions []*MetricDimension `type:"list"`
4595
4596	// The number of periods, in five-minute increments, during which the alarm
4597	// condition must exist before the alarm triggers automatic scaling activity.
4598	// The default value is 1.
4599	EvaluationPeriods *int64 `type:"integer"`
4600
4601	// The name of the CloudWatch metric that is watched to determine an alarm condition.
4602	//
4603	// MetricName is a required field
4604	MetricName *string `type:"string" required:"true"`
4605
4606	// The namespace for the CloudWatch metric. The default is AWS/ElasticMapReduce.
4607	Namespace *string `type:"string"`
4608
4609	// The period, in seconds, over which the statistic is applied. EMR CloudWatch
4610	// metrics are emitted every five minutes (300 seconds), so if an EMR CloudWatch
4611	// metric is specified, specify 300.
4612	//
4613	// Period is a required field
4614	Period *int64 `type:"integer" required:"true"`
4615
4616	// The statistic to apply to the metric associated with the alarm. The default
4617	// is AVERAGE.
4618	Statistic *string `type:"string" enum:"Statistic"`
4619
4620	// The value against which the specified statistic is compared.
4621	//
4622	// Threshold is a required field
4623	Threshold *float64 `type:"double" required:"true"`
4624
4625	// The unit of measure associated with the CloudWatch metric being watched.
4626	// The value specified for Unit must correspond to the units specified in the
4627	// CloudWatch metric.
4628	Unit *string `type:"string" enum:"Unit"`
4629}
4630
4631// String returns the string representation
4632func (s CloudWatchAlarmDefinition) String() string {
4633	return awsutil.Prettify(s)
4634}
4635
4636// GoString returns the string representation
4637func (s CloudWatchAlarmDefinition) GoString() string {
4638	return s.String()
4639}
4640
4641// Validate inspects the fields of the type to determine if they are valid.
4642func (s *CloudWatchAlarmDefinition) Validate() error {
4643	invalidParams := request.ErrInvalidParams{Context: "CloudWatchAlarmDefinition"}
4644	if s.ComparisonOperator == nil {
4645		invalidParams.Add(request.NewErrParamRequired("ComparisonOperator"))
4646	}
4647	if s.MetricName == nil {
4648		invalidParams.Add(request.NewErrParamRequired("MetricName"))
4649	}
4650	if s.Period == nil {
4651		invalidParams.Add(request.NewErrParamRequired("Period"))
4652	}
4653	if s.Threshold == nil {
4654		invalidParams.Add(request.NewErrParamRequired("Threshold"))
4655	}
4656
4657	if invalidParams.Len() > 0 {
4658		return invalidParams
4659	}
4660	return nil
4661}
4662
4663// SetComparisonOperator sets the ComparisonOperator field's value.
4664func (s *CloudWatchAlarmDefinition) SetComparisonOperator(v string) *CloudWatchAlarmDefinition {
4665	s.ComparisonOperator = &v
4666	return s
4667}
4668
4669// SetDimensions sets the Dimensions field's value.
4670func (s *CloudWatchAlarmDefinition) SetDimensions(v []*MetricDimension) *CloudWatchAlarmDefinition {
4671	s.Dimensions = v
4672	return s
4673}
4674
4675// SetEvaluationPeriods sets the EvaluationPeriods field's value.
4676func (s *CloudWatchAlarmDefinition) SetEvaluationPeriods(v int64) *CloudWatchAlarmDefinition {
4677	s.EvaluationPeriods = &v
4678	return s
4679}
4680
4681// SetMetricName sets the MetricName field's value.
4682func (s *CloudWatchAlarmDefinition) SetMetricName(v string) *CloudWatchAlarmDefinition {
4683	s.MetricName = &v
4684	return s
4685}
4686
4687// SetNamespace sets the Namespace field's value.
4688func (s *CloudWatchAlarmDefinition) SetNamespace(v string) *CloudWatchAlarmDefinition {
4689	s.Namespace = &v
4690	return s
4691}
4692
4693// SetPeriod sets the Period field's value.
4694func (s *CloudWatchAlarmDefinition) SetPeriod(v int64) *CloudWatchAlarmDefinition {
4695	s.Period = &v
4696	return s
4697}
4698
4699// SetStatistic sets the Statistic field's value.
4700func (s *CloudWatchAlarmDefinition) SetStatistic(v string) *CloudWatchAlarmDefinition {
4701	s.Statistic = &v
4702	return s
4703}
4704
4705// SetThreshold sets the Threshold field's value.
4706func (s *CloudWatchAlarmDefinition) SetThreshold(v float64) *CloudWatchAlarmDefinition {
4707	s.Threshold = &v
4708	return s
4709}
4710
4711// SetUnit sets the Unit field's value.
4712func (s *CloudWatchAlarmDefinition) SetUnit(v string) *CloudWatchAlarmDefinition {
4713	s.Unit = &v
4714	return s
4715}
4716
4717// The detailed description of the cluster.
4718type Cluster struct {
4719	_ struct{} `type:"structure"`
4720
4721	// The applications installed on this cluster.
4722	Applications []*Application `type:"list"`
4723
4724	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
4725	// The IAM role provides permissions that the automatic scaling feature requires
4726	// to launch and terminate EC2 instances in an instance group.
4727	AutoScalingRole *string `type:"string"`
4728
4729	// Specifies whether the cluster should terminate after completing all steps.
4730	AutoTerminate *bool `type:"boolean"`
4731
4732	// The Amazon Resource Name of the cluster.
4733	ClusterArn *string `min:"20" type:"string"`
4734
4735	// Applies only to Amazon EMR releases 4.x and later. The list of Configurations
4736	// supplied to the EMR cluster.
4737	Configurations []*Configuration `type:"list"`
4738
4739	// Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
4740	// Amazon EBS-backed Linux AMI if the cluster uses a custom AMI.
4741	CustomAmiId *string `type:"string"`
4742
4743	// The size, in GiB, of the EBS root device volume of the Linux AMI that is
4744	// used for each EC2 instance. Available in Amazon EMR version 4.x and later.
4745	EbsRootVolumeSize *int64 `type:"integer"`
4746
4747	// Provides information about the EC2 instances in a cluster grouped by category.
4748	// For example, key name, subnet ID, IAM instance profile, and so on.
4749	Ec2InstanceAttributes *Ec2InstanceAttributes `type:"structure"`
4750
4751	// The unique identifier for the cluster.
4752	Id *string `type:"string"`
4753
4754	//
4755	// The instance fleet configuration is available only in Amazon EMR versions
4756	// 4.8.0 and later, excluding 5.0.x versions.
4757	//
4758	// The instance group configuration of the cluster. A value of INSTANCE_GROUP
4759	// indicates a uniform instance group configuration. A value of INSTANCE_FLEET
4760	// indicates an instance fleets configuration.
4761	InstanceCollectionType *string `type:"string" enum:"InstanceCollectionType"`
4762
4763	// Attributes for Kerberos configuration when Kerberos authentication is enabled
4764	// using a security configuration. For more information see Use Kerberos Authentication
4765	// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
4766	// in the EMR Management Guide.
4767	KerberosAttributes *KerberosAttributes `type:"structure"`
4768
4769	// The AWS KMS customer master key (CMK) used for encrypting log files. This
4770	// attribute is only available with EMR version 5.30.0 and later, excluding
4771	// EMR 6.0.0.
4772	LogEncryptionKmsKeyId *string `type:"string"`
4773
4774	// The path to the Amazon S3 location where logs for this cluster are stored.
4775	LogUri *string `type:"string"`
4776
4777	// The DNS name of the master node. If the cluster is on a private subnet, this
4778	// is the private DNS name. On a public subnet, this is the public DNS name.
4779	MasterPublicDnsName *string `type:"string"`
4780
4781	// The name of the cluster.
4782	Name *string `type:"string"`
4783
4784	// An approximation of the cost of the cluster, represented in m1.small/hours.
4785	// This value is incremented one time for every hour an m1.small instance runs.
4786	// Larger instances are weighted more, so an EC2 instance that is roughly four
4787	// times more expensive would result in the normalized instance hours being
4788	// incremented by four. This result is only an approximation and does not reflect
4789	// the actual billing rate.
4790	NormalizedInstanceHours *int64 `type:"integer"`
4791
4792	// The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
4793	OutpostArn *string `type:"string"`
4794
4795	// Placement group configured for an Amazon EMR cluster.
4796	PlacementGroups []*PlacementGroupConfig `type:"list"`
4797
4798	// The Amazon EMR release label, which determines the version of open-source
4799	// application packages installed on the cluster. Release labels are in the
4800	// form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0.
4801	// For more information about Amazon EMR release versions and included application
4802	// versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/
4803	// (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/). The release label
4804	// applies only to Amazon EMR releases version 4.0 and later. Earlier versions
4805	// use AmiVersion.
4806	ReleaseLabel *string `type:"string"`
4807
4808	// Applies only when CustomAmiID is used. Specifies the type of updates that
4809	// are applied from the Amazon Linux AMI package repositories when an instance
4810	// boots using the AMI.
4811	RepoUpgradeOnBoot *string `type:"string" enum:"RepoUpgradeOnBoot"`
4812
4813	// The AMI version requested for this cluster.
4814	RequestedAmiVersion *string `type:"string"`
4815
4816	// The AMI version running on this cluster.
4817	RunningAmiVersion *string `type:"string"`
4818
4819	// The way that individual Amazon EC2 instances terminate when an automatic
4820	// scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
4821	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
4822	// regardless of when the request to terminate the instance was submitted. This
4823	// option is only available with Amazon EMR 5.1.0 and later and is the default
4824	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
4825	// that Amazon EMR blacklists and drains tasks from nodes before terminating
4826	// the Amazon EC2 instances, regardless of the instance-hour boundary. With
4827	// either behavior, Amazon EMR removes the least active nodes first and blocks
4828	// instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
4829	// is available only in Amazon EMR version 4.1.0 and later, and is the default
4830	// for versions of Amazon EMR earlier than 5.1.0.
4831	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
4832
4833	// The name of the security configuration applied to the cluster.
4834	SecurityConfiguration *string `type:"string"`
4835
4836	// The IAM role that will be assumed by the Amazon EMR service to access AWS
4837	// resources on your behalf.
4838	ServiceRole *string `type:"string"`
4839
4840	// The current status details about the cluster.
4841	Status *ClusterStatus `type:"structure"`
4842
4843	// Specifies the number of steps that can be executed concurrently.
4844	StepConcurrencyLevel *int64 `type:"integer"`
4845
4846	// A list of tags associated with a cluster.
4847	Tags []*Tag `type:"list"`
4848
4849	// Indicates whether Amazon EMR will lock the cluster to prevent the EC2 instances
4850	// from being terminated by an API call or user intervention, or in the event
4851	// of a cluster error.
4852	TerminationProtected *bool `type:"boolean"`
4853
4854	// Indicates whether the cluster is visible to all IAM users of the AWS account
4855	// associated with the cluster. The default value, true, indicates that all
4856	// IAM users in the AWS account can perform cluster actions if they have the
4857	// proper IAM policy permissions. If this value is false, only the IAM user
4858	// that created the cluster can perform actions. This value can be changed on
4859	// a running cluster by using the SetVisibleToAllUsers action. You can override
4860	// the default value of true when you create a cluster by using the VisibleToAllUsers
4861	// parameter of the RunJobFlow action.
4862	VisibleToAllUsers *bool `type:"boolean"`
4863}
4864
4865// String returns the string representation
4866func (s Cluster) String() string {
4867	return awsutil.Prettify(s)
4868}
4869
4870// GoString returns the string representation
4871func (s Cluster) GoString() string {
4872	return s.String()
4873}
4874
4875// SetApplications sets the Applications field's value.
4876func (s *Cluster) SetApplications(v []*Application) *Cluster {
4877	s.Applications = v
4878	return s
4879}
4880
4881// SetAutoScalingRole sets the AutoScalingRole field's value.
4882func (s *Cluster) SetAutoScalingRole(v string) *Cluster {
4883	s.AutoScalingRole = &v
4884	return s
4885}
4886
4887// SetAutoTerminate sets the AutoTerminate field's value.
4888func (s *Cluster) SetAutoTerminate(v bool) *Cluster {
4889	s.AutoTerminate = &v
4890	return s
4891}
4892
4893// SetClusterArn sets the ClusterArn field's value.
4894func (s *Cluster) SetClusterArn(v string) *Cluster {
4895	s.ClusterArn = &v
4896	return s
4897}
4898
4899// SetConfigurations sets the Configurations field's value.
4900func (s *Cluster) SetConfigurations(v []*Configuration) *Cluster {
4901	s.Configurations = v
4902	return s
4903}
4904
4905// SetCustomAmiId sets the CustomAmiId field's value.
4906func (s *Cluster) SetCustomAmiId(v string) *Cluster {
4907	s.CustomAmiId = &v
4908	return s
4909}
4910
4911// SetEbsRootVolumeSize sets the EbsRootVolumeSize field's value.
4912func (s *Cluster) SetEbsRootVolumeSize(v int64) *Cluster {
4913	s.EbsRootVolumeSize = &v
4914	return s
4915}
4916
4917// SetEc2InstanceAttributes sets the Ec2InstanceAttributes field's value.
4918func (s *Cluster) SetEc2InstanceAttributes(v *Ec2InstanceAttributes) *Cluster {
4919	s.Ec2InstanceAttributes = v
4920	return s
4921}
4922
4923// SetId sets the Id field's value.
4924func (s *Cluster) SetId(v string) *Cluster {
4925	s.Id = &v
4926	return s
4927}
4928
4929// SetInstanceCollectionType sets the InstanceCollectionType field's value.
4930func (s *Cluster) SetInstanceCollectionType(v string) *Cluster {
4931	s.InstanceCollectionType = &v
4932	return s
4933}
4934
4935// SetKerberosAttributes sets the KerberosAttributes field's value.
4936func (s *Cluster) SetKerberosAttributes(v *KerberosAttributes) *Cluster {
4937	s.KerberosAttributes = v
4938	return s
4939}
4940
4941// SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
4942func (s *Cluster) SetLogEncryptionKmsKeyId(v string) *Cluster {
4943	s.LogEncryptionKmsKeyId = &v
4944	return s
4945}
4946
4947// SetLogUri sets the LogUri field's value.
4948func (s *Cluster) SetLogUri(v string) *Cluster {
4949	s.LogUri = &v
4950	return s
4951}
4952
4953// SetMasterPublicDnsName sets the MasterPublicDnsName field's value.
4954func (s *Cluster) SetMasterPublicDnsName(v string) *Cluster {
4955	s.MasterPublicDnsName = &v
4956	return s
4957}
4958
4959// SetName sets the Name field's value.
4960func (s *Cluster) SetName(v string) *Cluster {
4961	s.Name = &v
4962	return s
4963}
4964
4965// SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
4966func (s *Cluster) SetNormalizedInstanceHours(v int64) *Cluster {
4967	s.NormalizedInstanceHours = &v
4968	return s
4969}
4970
4971// SetOutpostArn sets the OutpostArn field's value.
4972func (s *Cluster) SetOutpostArn(v string) *Cluster {
4973	s.OutpostArn = &v
4974	return s
4975}
4976
4977// SetPlacementGroups sets the PlacementGroups field's value.
4978func (s *Cluster) SetPlacementGroups(v []*PlacementGroupConfig) *Cluster {
4979	s.PlacementGroups = v
4980	return s
4981}
4982
4983// SetReleaseLabel sets the ReleaseLabel field's value.
4984func (s *Cluster) SetReleaseLabel(v string) *Cluster {
4985	s.ReleaseLabel = &v
4986	return s
4987}
4988
4989// SetRepoUpgradeOnBoot sets the RepoUpgradeOnBoot field's value.
4990func (s *Cluster) SetRepoUpgradeOnBoot(v string) *Cluster {
4991	s.RepoUpgradeOnBoot = &v
4992	return s
4993}
4994
4995// SetRequestedAmiVersion sets the RequestedAmiVersion field's value.
4996func (s *Cluster) SetRequestedAmiVersion(v string) *Cluster {
4997	s.RequestedAmiVersion = &v
4998	return s
4999}
5000
5001// SetRunningAmiVersion sets the RunningAmiVersion field's value.
5002func (s *Cluster) SetRunningAmiVersion(v string) *Cluster {
5003	s.RunningAmiVersion = &v
5004	return s
5005}
5006
5007// SetScaleDownBehavior sets the ScaleDownBehavior field's value.
5008func (s *Cluster) SetScaleDownBehavior(v string) *Cluster {
5009	s.ScaleDownBehavior = &v
5010	return s
5011}
5012
5013// SetSecurityConfiguration sets the SecurityConfiguration field's value.
5014func (s *Cluster) SetSecurityConfiguration(v string) *Cluster {
5015	s.SecurityConfiguration = &v
5016	return s
5017}
5018
5019// SetServiceRole sets the ServiceRole field's value.
5020func (s *Cluster) SetServiceRole(v string) *Cluster {
5021	s.ServiceRole = &v
5022	return s
5023}
5024
5025// SetStatus sets the Status field's value.
5026func (s *Cluster) SetStatus(v *ClusterStatus) *Cluster {
5027	s.Status = v
5028	return s
5029}
5030
5031// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
5032func (s *Cluster) SetStepConcurrencyLevel(v int64) *Cluster {
5033	s.StepConcurrencyLevel = &v
5034	return s
5035}
5036
5037// SetTags sets the Tags field's value.
5038func (s *Cluster) SetTags(v []*Tag) *Cluster {
5039	s.Tags = v
5040	return s
5041}
5042
5043// SetTerminationProtected sets the TerminationProtected field's value.
5044func (s *Cluster) SetTerminationProtected(v bool) *Cluster {
5045	s.TerminationProtected = &v
5046	return s
5047}
5048
5049// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
5050func (s *Cluster) SetVisibleToAllUsers(v bool) *Cluster {
5051	s.VisibleToAllUsers = &v
5052	return s
5053}
5054
5055// The reason that the cluster changed to its current state.
5056type ClusterStateChangeReason struct {
5057	_ struct{} `type:"structure"`
5058
5059	// The programmatic code for the state change reason.
5060	Code *string `type:"string" enum:"ClusterStateChangeReasonCode"`
5061
5062	// The descriptive message for the state change reason.
5063	Message *string `type:"string"`
5064}
5065
5066// String returns the string representation
5067func (s ClusterStateChangeReason) String() string {
5068	return awsutil.Prettify(s)
5069}
5070
5071// GoString returns the string representation
5072func (s ClusterStateChangeReason) GoString() string {
5073	return s.String()
5074}
5075
5076// SetCode sets the Code field's value.
5077func (s *ClusterStateChangeReason) SetCode(v string) *ClusterStateChangeReason {
5078	s.Code = &v
5079	return s
5080}
5081
5082// SetMessage sets the Message field's value.
5083func (s *ClusterStateChangeReason) SetMessage(v string) *ClusterStateChangeReason {
5084	s.Message = &v
5085	return s
5086}
5087
5088// The detailed status of the cluster.
5089type ClusterStatus struct {
5090	_ struct{} `type:"structure"`
5091
5092	// The current state of the cluster.
5093	State *string `type:"string" enum:"ClusterState"`
5094
5095	// The reason for the cluster status change.
5096	StateChangeReason *ClusterStateChangeReason `type:"structure"`
5097
5098	// A timeline that represents the status of a cluster over the lifetime of the
5099	// cluster.
5100	Timeline *ClusterTimeline `type:"structure"`
5101}
5102
5103// String returns the string representation
5104func (s ClusterStatus) String() string {
5105	return awsutil.Prettify(s)
5106}
5107
5108// GoString returns the string representation
5109func (s ClusterStatus) GoString() string {
5110	return s.String()
5111}
5112
5113// SetState sets the State field's value.
5114func (s *ClusterStatus) SetState(v string) *ClusterStatus {
5115	s.State = &v
5116	return s
5117}
5118
5119// SetStateChangeReason sets the StateChangeReason field's value.
5120func (s *ClusterStatus) SetStateChangeReason(v *ClusterStateChangeReason) *ClusterStatus {
5121	s.StateChangeReason = v
5122	return s
5123}
5124
5125// SetTimeline sets the Timeline field's value.
5126func (s *ClusterStatus) SetTimeline(v *ClusterTimeline) *ClusterStatus {
5127	s.Timeline = v
5128	return s
5129}
5130
5131// The summary description of the cluster.
5132type ClusterSummary struct {
5133	_ struct{} `type:"structure"`
5134
5135	// The Amazon Resource Name of the cluster.
5136	ClusterArn *string `min:"20" type:"string"`
5137
5138	// The unique identifier for the cluster.
5139	Id *string `type:"string"`
5140
5141	// The name of the cluster.
5142	Name *string `type:"string"`
5143
5144	// An approximation of the cost of the cluster, represented in m1.small/hours.
5145	// This value is incremented one time for every hour an m1.small instance runs.
5146	// Larger instances are weighted more, so an EC2 instance that is roughly four
5147	// times more expensive would result in the normalized instance hours being
5148	// incremented by four. This result is only an approximation and does not reflect
5149	// the actual billing rate.
5150	NormalizedInstanceHours *int64 `type:"integer"`
5151
5152	// The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
5153	OutpostArn *string `type:"string"`
5154
5155	// The details about the current status of the cluster.
5156	Status *ClusterStatus `type:"structure"`
5157}
5158
5159// String returns the string representation
5160func (s ClusterSummary) String() string {
5161	return awsutil.Prettify(s)
5162}
5163
5164// GoString returns the string representation
5165func (s ClusterSummary) GoString() string {
5166	return s.String()
5167}
5168
5169// SetClusterArn sets the ClusterArn field's value.
5170func (s *ClusterSummary) SetClusterArn(v string) *ClusterSummary {
5171	s.ClusterArn = &v
5172	return s
5173}
5174
5175// SetId sets the Id field's value.
5176func (s *ClusterSummary) SetId(v string) *ClusterSummary {
5177	s.Id = &v
5178	return s
5179}
5180
5181// SetName sets the Name field's value.
5182func (s *ClusterSummary) SetName(v string) *ClusterSummary {
5183	s.Name = &v
5184	return s
5185}
5186
5187// SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
5188func (s *ClusterSummary) SetNormalizedInstanceHours(v int64) *ClusterSummary {
5189	s.NormalizedInstanceHours = &v
5190	return s
5191}
5192
5193// SetOutpostArn sets the OutpostArn field's value.
5194func (s *ClusterSummary) SetOutpostArn(v string) *ClusterSummary {
5195	s.OutpostArn = &v
5196	return s
5197}
5198
5199// SetStatus sets the Status field's value.
5200func (s *ClusterSummary) SetStatus(v *ClusterStatus) *ClusterSummary {
5201	s.Status = v
5202	return s
5203}
5204
5205// Represents the timeline of the cluster's lifecycle.
5206type ClusterTimeline struct {
5207	_ struct{} `type:"structure"`
5208
5209	// The creation date and time of the cluster.
5210	CreationDateTime *time.Time `type:"timestamp"`
5211
5212	// The date and time when the cluster was terminated.
5213	EndDateTime *time.Time `type:"timestamp"`
5214
5215	// The date and time when the cluster was ready to execute steps.
5216	ReadyDateTime *time.Time `type:"timestamp"`
5217}
5218
5219// String returns the string representation
5220func (s ClusterTimeline) String() string {
5221	return awsutil.Prettify(s)
5222}
5223
5224// GoString returns the string representation
5225func (s ClusterTimeline) GoString() string {
5226	return s.String()
5227}
5228
5229// SetCreationDateTime sets the CreationDateTime field's value.
5230func (s *ClusterTimeline) SetCreationDateTime(v time.Time) *ClusterTimeline {
5231	s.CreationDateTime = &v
5232	return s
5233}
5234
5235// SetEndDateTime sets the EndDateTime field's value.
5236func (s *ClusterTimeline) SetEndDateTime(v time.Time) *ClusterTimeline {
5237	s.EndDateTime = &v
5238	return s
5239}
5240
5241// SetReadyDateTime sets the ReadyDateTime field's value.
5242func (s *ClusterTimeline) SetReadyDateTime(v time.Time) *ClusterTimeline {
5243	s.ReadyDateTime = &v
5244	return s
5245}
5246
5247// An entity describing an executable that runs on a cluster.
5248type Command struct {
5249	_ struct{} `type:"structure"`
5250
5251	// Arguments for Amazon EMR to pass to the command for execution.
5252	Args []*string `type:"list"`
5253
5254	// The name of the command.
5255	Name *string `type:"string"`
5256
5257	// The Amazon S3 location of the command script.
5258	ScriptPath *string `type:"string"`
5259}
5260
5261// String returns the string representation
5262func (s Command) String() string {
5263	return awsutil.Prettify(s)
5264}
5265
5266// GoString returns the string representation
5267func (s Command) GoString() string {
5268	return s.String()
5269}
5270
5271// SetArgs sets the Args field's value.
5272func (s *Command) SetArgs(v []*string) *Command {
5273	s.Args = v
5274	return s
5275}
5276
5277// SetName sets the Name field's value.
5278func (s *Command) SetName(v string) *Command {
5279	s.Name = &v
5280	return s
5281}
5282
5283// SetScriptPath sets the ScriptPath field's value.
5284func (s *Command) SetScriptPath(v string) *Command {
5285	s.ScriptPath = &v
5286	return s
5287}
5288
5289// The EC2 unit limits for a managed scaling policy. The managed scaling activity
5290// of a cluster can not be above or below these limits. The limit only applies
5291// to the core and task nodes. The master node cannot be scaled after initial
5292// configuration.
5293type ComputeLimits struct {
5294	_ struct{} `type:"structure"`
5295
5296	// The upper boundary of EC2 units. It is measured through VCPU cores or instances
5297	// for instance groups and measured through units for instance fleets. Managed
5298	// scaling activities are not allowed beyond this boundary. The limit only applies
5299	// to the core and task nodes. The master node cannot be scaled after initial
5300	// configuration.
5301	//
5302	// MaximumCapacityUnits is a required field
5303	MaximumCapacityUnits *int64 `type:"integer" required:"true"`
5304
5305	// The upper boundary of EC2 units for core node type in a cluster. It is measured
5306	// through VCPU cores or instances for instance groups and measured through
5307	// units for instance fleets. The core units are not allowed to scale beyond
5308	// this boundary. The parameter is used to split capacity allocation between
5309	// core and task nodes.
5310	MaximumCoreCapacityUnits *int64 `type:"integer"`
5311
5312	// The upper boundary of On-Demand EC2 units. It is measured through VCPU cores
5313	// or instances for instance groups and measured through units for instance
5314	// fleets. The On-Demand units are not allowed to scale beyond this boundary.
5315	// The parameter is used to split capacity allocation between On-Demand and
5316	// Spot instances.
5317	MaximumOnDemandCapacityUnits *int64 `type:"integer"`
5318
5319	// The lower boundary of EC2 units. It is measured through VCPU cores or instances
5320	// for instance groups and measured through units for instance fleets. Managed
5321	// scaling activities are not allowed beyond this boundary. The limit only applies
5322	// to the core and task nodes. The master node cannot be scaled after initial
5323	// configuration.
5324	//
5325	// MinimumCapacityUnits is a required field
5326	MinimumCapacityUnits *int64 `type:"integer" required:"true"`
5327
5328	// The unit type used for specifying a managed scaling policy.
5329	//
5330	// UnitType is a required field
5331	UnitType *string `type:"string" required:"true" enum:"ComputeLimitsUnitType"`
5332}
5333
5334// String returns the string representation
5335func (s ComputeLimits) String() string {
5336	return awsutil.Prettify(s)
5337}
5338
5339// GoString returns the string representation
5340func (s ComputeLimits) GoString() string {
5341	return s.String()
5342}
5343
5344// Validate inspects the fields of the type to determine if they are valid.
5345func (s *ComputeLimits) Validate() error {
5346	invalidParams := request.ErrInvalidParams{Context: "ComputeLimits"}
5347	if s.MaximumCapacityUnits == nil {
5348		invalidParams.Add(request.NewErrParamRequired("MaximumCapacityUnits"))
5349	}
5350	if s.MinimumCapacityUnits == nil {
5351		invalidParams.Add(request.NewErrParamRequired("MinimumCapacityUnits"))
5352	}
5353	if s.UnitType == nil {
5354		invalidParams.Add(request.NewErrParamRequired("UnitType"))
5355	}
5356
5357	if invalidParams.Len() > 0 {
5358		return invalidParams
5359	}
5360	return nil
5361}
5362
5363// SetMaximumCapacityUnits sets the MaximumCapacityUnits field's value.
5364func (s *ComputeLimits) SetMaximumCapacityUnits(v int64) *ComputeLimits {
5365	s.MaximumCapacityUnits = &v
5366	return s
5367}
5368
5369// SetMaximumCoreCapacityUnits sets the MaximumCoreCapacityUnits field's value.
5370func (s *ComputeLimits) SetMaximumCoreCapacityUnits(v int64) *ComputeLimits {
5371	s.MaximumCoreCapacityUnits = &v
5372	return s
5373}
5374
5375// SetMaximumOnDemandCapacityUnits sets the MaximumOnDemandCapacityUnits field's value.
5376func (s *ComputeLimits) SetMaximumOnDemandCapacityUnits(v int64) *ComputeLimits {
5377	s.MaximumOnDemandCapacityUnits = &v
5378	return s
5379}
5380
5381// SetMinimumCapacityUnits sets the MinimumCapacityUnits field's value.
5382func (s *ComputeLimits) SetMinimumCapacityUnits(v int64) *ComputeLimits {
5383	s.MinimumCapacityUnits = &v
5384	return s
5385}
5386
5387// SetUnitType sets the UnitType field's value.
5388func (s *ComputeLimits) SetUnitType(v string) *ComputeLimits {
5389	s.UnitType = &v
5390	return s
5391}
5392
5393//
5394// Amazon EMR releases 4.x or later.
5395//
5396// An optional configuration specification to be used when provisioning cluster
5397// instances, which can include configurations for applications and software
5398// bundled with Amazon EMR. A configuration consists of a classification, properties,
5399// and optional nested configurations. A classification refers to an application-specific
5400// configuration file. Properties are the settings you want to change in that
5401// file. For more information, see Configuring Applications (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html).
5402type Configuration struct {
5403	_ struct{} `type:"structure"`
5404
5405	// The classification within a configuration.
5406	Classification *string `type:"string"`
5407
5408	// A list of additional configurations to apply within a configuration object.
5409	Configurations []*Configuration `type:"list"`
5410
5411	// A set of properties specified within a configuration classification.
5412	Properties map[string]*string `type:"map"`
5413}
5414
5415// String returns the string representation
5416func (s Configuration) String() string {
5417	return awsutil.Prettify(s)
5418}
5419
5420// GoString returns the string representation
5421func (s Configuration) GoString() string {
5422	return s.String()
5423}
5424
5425// SetClassification sets the Classification field's value.
5426func (s *Configuration) SetClassification(v string) *Configuration {
5427	s.Classification = &v
5428	return s
5429}
5430
5431// SetConfigurations sets the Configurations field's value.
5432func (s *Configuration) SetConfigurations(v []*Configuration) *Configuration {
5433	s.Configurations = v
5434	return s
5435}
5436
5437// SetProperties sets the Properties field's value.
5438func (s *Configuration) SetProperties(v map[string]*string) *Configuration {
5439	s.Properties = v
5440	return s
5441}
5442
5443type CreateSecurityConfigurationInput struct {
5444	_ struct{} `type:"structure"`
5445
5446	// The name of the security configuration.
5447	//
5448	// Name is a required field
5449	Name *string `type:"string" required:"true"`
5450
5451	// The security configuration details in JSON format. For JSON parameters and
5452	// examples, see Use Security Configurations to Set Up Cluster Security (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html)
5453	// in the Amazon EMR Management Guide.
5454	//
5455	// SecurityConfiguration is a required field
5456	SecurityConfiguration *string `type:"string" required:"true"`
5457}
5458
5459// String returns the string representation
5460func (s CreateSecurityConfigurationInput) String() string {
5461	return awsutil.Prettify(s)
5462}
5463
5464// GoString returns the string representation
5465func (s CreateSecurityConfigurationInput) GoString() string {
5466	return s.String()
5467}
5468
5469// Validate inspects the fields of the type to determine if they are valid.
5470func (s *CreateSecurityConfigurationInput) Validate() error {
5471	invalidParams := request.ErrInvalidParams{Context: "CreateSecurityConfigurationInput"}
5472	if s.Name == nil {
5473		invalidParams.Add(request.NewErrParamRequired("Name"))
5474	}
5475	if s.SecurityConfiguration == nil {
5476		invalidParams.Add(request.NewErrParamRequired("SecurityConfiguration"))
5477	}
5478
5479	if invalidParams.Len() > 0 {
5480		return invalidParams
5481	}
5482	return nil
5483}
5484
5485// SetName sets the Name field's value.
5486func (s *CreateSecurityConfigurationInput) SetName(v string) *CreateSecurityConfigurationInput {
5487	s.Name = &v
5488	return s
5489}
5490
5491// SetSecurityConfiguration sets the SecurityConfiguration field's value.
5492func (s *CreateSecurityConfigurationInput) SetSecurityConfiguration(v string) *CreateSecurityConfigurationInput {
5493	s.SecurityConfiguration = &v
5494	return s
5495}
5496
5497type CreateSecurityConfigurationOutput struct {
5498	_ struct{} `type:"structure"`
5499
5500	// The date and time the security configuration was created.
5501	//
5502	// CreationDateTime is a required field
5503	CreationDateTime *time.Time `type:"timestamp" required:"true"`
5504
5505	// The name of the security configuration.
5506	//
5507	// Name is a required field
5508	Name *string `type:"string" required:"true"`
5509}
5510
5511// String returns the string representation
5512func (s CreateSecurityConfigurationOutput) String() string {
5513	return awsutil.Prettify(s)
5514}
5515
5516// GoString returns the string representation
5517func (s CreateSecurityConfigurationOutput) GoString() string {
5518	return s.String()
5519}
5520
5521// SetCreationDateTime sets the CreationDateTime field's value.
5522func (s *CreateSecurityConfigurationOutput) SetCreationDateTime(v time.Time) *CreateSecurityConfigurationOutput {
5523	s.CreationDateTime = &v
5524	return s
5525}
5526
5527// SetName sets the Name field's value.
5528func (s *CreateSecurityConfigurationOutput) SetName(v string) *CreateSecurityConfigurationOutput {
5529	s.Name = &v
5530	return s
5531}
5532
5533type DeleteSecurityConfigurationInput struct {
5534	_ struct{} `type:"structure"`
5535
5536	// The name of the security configuration.
5537	//
5538	// Name is a required field
5539	Name *string `type:"string" required:"true"`
5540}
5541
5542// String returns the string representation
5543func (s DeleteSecurityConfigurationInput) String() string {
5544	return awsutil.Prettify(s)
5545}
5546
5547// GoString returns the string representation
5548func (s DeleteSecurityConfigurationInput) GoString() string {
5549	return s.String()
5550}
5551
5552// Validate inspects the fields of the type to determine if they are valid.
5553func (s *DeleteSecurityConfigurationInput) Validate() error {
5554	invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityConfigurationInput"}
5555	if s.Name == nil {
5556		invalidParams.Add(request.NewErrParamRequired("Name"))
5557	}
5558
5559	if invalidParams.Len() > 0 {
5560		return invalidParams
5561	}
5562	return nil
5563}
5564
5565// SetName sets the Name field's value.
5566func (s *DeleteSecurityConfigurationInput) SetName(v string) *DeleteSecurityConfigurationInput {
5567	s.Name = &v
5568	return s
5569}
5570
5571type DeleteSecurityConfigurationOutput struct {
5572	_ struct{} `type:"structure"`
5573}
5574
5575// String returns the string representation
5576func (s DeleteSecurityConfigurationOutput) String() string {
5577	return awsutil.Prettify(s)
5578}
5579
5580// GoString returns the string representation
5581func (s DeleteSecurityConfigurationOutput) GoString() string {
5582	return s.String()
5583}
5584
5585// This input determines which cluster to describe.
5586type DescribeClusterInput struct {
5587	_ struct{} `type:"structure"`
5588
5589	// The identifier of the cluster to describe.
5590	//
5591	// ClusterId is a required field
5592	ClusterId *string `type:"string" required:"true"`
5593}
5594
5595// String returns the string representation
5596func (s DescribeClusterInput) String() string {
5597	return awsutil.Prettify(s)
5598}
5599
5600// GoString returns the string representation
5601func (s DescribeClusterInput) GoString() string {
5602	return s.String()
5603}
5604
5605// Validate inspects the fields of the type to determine if they are valid.
5606func (s *DescribeClusterInput) Validate() error {
5607	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterInput"}
5608	if s.ClusterId == nil {
5609		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
5610	}
5611
5612	if invalidParams.Len() > 0 {
5613		return invalidParams
5614	}
5615	return nil
5616}
5617
5618// SetClusterId sets the ClusterId field's value.
5619func (s *DescribeClusterInput) SetClusterId(v string) *DescribeClusterInput {
5620	s.ClusterId = &v
5621	return s
5622}
5623
5624// This output contains the description of the cluster.
5625type DescribeClusterOutput struct {
5626	_ struct{} `type:"structure"`
5627
5628	// This output contains the details for the requested cluster.
5629	Cluster *Cluster `type:"structure"`
5630}
5631
5632// String returns the string representation
5633func (s DescribeClusterOutput) String() string {
5634	return awsutil.Prettify(s)
5635}
5636
5637// GoString returns the string representation
5638func (s DescribeClusterOutput) GoString() string {
5639	return s.String()
5640}
5641
5642// SetCluster sets the Cluster field's value.
5643func (s *DescribeClusterOutput) SetCluster(v *Cluster) *DescribeClusterOutput {
5644	s.Cluster = v
5645	return s
5646}
5647
5648// The input for the DescribeJobFlows operation.
5649type DescribeJobFlowsInput struct {
5650	_ struct{} `type:"structure"`
5651
5652	// Return only job flows created after this date and time.
5653	CreatedAfter *time.Time `type:"timestamp"`
5654
5655	// Return only job flows created before this date and time.
5656	CreatedBefore *time.Time `type:"timestamp"`
5657
5658	// Return only job flows whose job flow ID is contained in this list.
5659	JobFlowIds []*string `type:"list"`
5660
5661	// Return only job flows whose state is contained in this list.
5662	JobFlowStates []*string `type:"list"`
5663}
5664
5665// String returns the string representation
5666func (s DescribeJobFlowsInput) String() string {
5667	return awsutil.Prettify(s)
5668}
5669
5670// GoString returns the string representation
5671func (s DescribeJobFlowsInput) GoString() string {
5672	return s.String()
5673}
5674
5675// SetCreatedAfter sets the CreatedAfter field's value.
5676func (s *DescribeJobFlowsInput) SetCreatedAfter(v time.Time) *DescribeJobFlowsInput {
5677	s.CreatedAfter = &v
5678	return s
5679}
5680
5681// SetCreatedBefore sets the CreatedBefore field's value.
5682func (s *DescribeJobFlowsInput) SetCreatedBefore(v time.Time) *DescribeJobFlowsInput {
5683	s.CreatedBefore = &v
5684	return s
5685}
5686
5687// SetJobFlowIds sets the JobFlowIds field's value.
5688func (s *DescribeJobFlowsInput) SetJobFlowIds(v []*string) *DescribeJobFlowsInput {
5689	s.JobFlowIds = v
5690	return s
5691}
5692
5693// SetJobFlowStates sets the JobFlowStates field's value.
5694func (s *DescribeJobFlowsInput) SetJobFlowStates(v []*string) *DescribeJobFlowsInput {
5695	s.JobFlowStates = v
5696	return s
5697}
5698
5699// The output for the DescribeJobFlows operation.
5700type DescribeJobFlowsOutput struct {
5701	_ struct{} `type:"structure"`
5702
5703	// A list of job flows matching the parameters supplied.
5704	JobFlows []*JobFlowDetail `type:"list"`
5705}
5706
5707// String returns the string representation
5708func (s DescribeJobFlowsOutput) String() string {
5709	return awsutil.Prettify(s)
5710}
5711
5712// GoString returns the string representation
5713func (s DescribeJobFlowsOutput) GoString() string {
5714	return s.String()
5715}
5716
5717// SetJobFlows sets the JobFlows field's value.
5718func (s *DescribeJobFlowsOutput) SetJobFlows(v []*JobFlowDetail) *DescribeJobFlowsOutput {
5719	s.JobFlows = v
5720	return s
5721}
5722
5723type DescribeNotebookExecutionInput struct {
5724	_ struct{} `type:"structure"`
5725
5726	// The unique identifier of the notebook execution.
5727	//
5728	// NotebookExecutionId is a required field
5729	NotebookExecutionId *string `type:"string" required:"true"`
5730}
5731
5732// String returns the string representation
5733func (s DescribeNotebookExecutionInput) String() string {
5734	return awsutil.Prettify(s)
5735}
5736
5737// GoString returns the string representation
5738func (s DescribeNotebookExecutionInput) GoString() string {
5739	return s.String()
5740}
5741
5742// Validate inspects the fields of the type to determine if they are valid.
5743func (s *DescribeNotebookExecutionInput) Validate() error {
5744	invalidParams := request.ErrInvalidParams{Context: "DescribeNotebookExecutionInput"}
5745	if s.NotebookExecutionId == nil {
5746		invalidParams.Add(request.NewErrParamRequired("NotebookExecutionId"))
5747	}
5748
5749	if invalidParams.Len() > 0 {
5750		return invalidParams
5751	}
5752	return nil
5753}
5754
5755// SetNotebookExecutionId sets the NotebookExecutionId field's value.
5756func (s *DescribeNotebookExecutionInput) SetNotebookExecutionId(v string) *DescribeNotebookExecutionInput {
5757	s.NotebookExecutionId = &v
5758	return s
5759}
5760
5761type DescribeNotebookExecutionOutput struct {
5762	_ struct{} `type:"structure"`
5763
5764	// Properties of the notebook execution.
5765	NotebookExecution *NotebookExecution `type:"structure"`
5766}
5767
5768// String returns the string representation
5769func (s DescribeNotebookExecutionOutput) String() string {
5770	return awsutil.Prettify(s)
5771}
5772
5773// GoString returns the string representation
5774func (s DescribeNotebookExecutionOutput) GoString() string {
5775	return s.String()
5776}
5777
5778// SetNotebookExecution sets the NotebookExecution field's value.
5779func (s *DescribeNotebookExecutionOutput) SetNotebookExecution(v *NotebookExecution) *DescribeNotebookExecutionOutput {
5780	s.NotebookExecution = v
5781	return s
5782}
5783
5784type DescribeSecurityConfigurationInput struct {
5785	_ struct{} `type:"structure"`
5786
5787	// The name of the security configuration.
5788	//
5789	// Name is a required field
5790	Name *string `type:"string" required:"true"`
5791}
5792
5793// String returns the string representation
5794func (s DescribeSecurityConfigurationInput) String() string {
5795	return awsutil.Prettify(s)
5796}
5797
5798// GoString returns the string representation
5799func (s DescribeSecurityConfigurationInput) GoString() string {
5800	return s.String()
5801}
5802
5803// Validate inspects the fields of the type to determine if they are valid.
5804func (s *DescribeSecurityConfigurationInput) Validate() error {
5805	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityConfigurationInput"}
5806	if s.Name == nil {
5807		invalidParams.Add(request.NewErrParamRequired("Name"))
5808	}
5809
5810	if invalidParams.Len() > 0 {
5811		return invalidParams
5812	}
5813	return nil
5814}
5815
5816// SetName sets the Name field's value.
5817func (s *DescribeSecurityConfigurationInput) SetName(v string) *DescribeSecurityConfigurationInput {
5818	s.Name = &v
5819	return s
5820}
5821
5822type DescribeSecurityConfigurationOutput struct {
5823	_ struct{} `type:"structure"`
5824
5825	// The date and time the security configuration was created
5826	CreationDateTime *time.Time `type:"timestamp"`
5827
5828	// The name of the security configuration.
5829	Name *string `type:"string"`
5830
5831	// The security configuration details in JSON format.
5832	SecurityConfiguration *string `type:"string"`
5833}
5834
5835// String returns the string representation
5836func (s DescribeSecurityConfigurationOutput) String() string {
5837	return awsutil.Prettify(s)
5838}
5839
5840// GoString returns the string representation
5841func (s DescribeSecurityConfigurationOutput) GoString() string {
5842	return s.String()
5843}
5844
5845// SetCreationDateTime sets the CreationDateTime field's value.
5846func (s *DescribeSecurityConfigurationOutput) SetCreationDateTime(v time.Time) *DescribeSecurityConfigurationOutput {
5847	s.CreationDateTime = &v
5848	return s
5849}
5850
5851// SetName sets the Name field's value.
5852func (s *DescribeSecurityConfigurationOutput) SetName(v string) *DescribeSecurityConfigurationOutput {
5853	s.Name = &v
5854	return s
5855}
5856
5857// SetSecurityConfiguration sets the SecurityConfiguration field's value.
5858func (s *DescribeSecurityConfigurationOutput) SetSecurityConfiguration(v string) *DescribeSecurityConfigurationOutput {
5859	s.SecurityConfiguration = &v
5860	return s
5861}
5862
5863// This input determines which step to describe.
5864type DescribeStepInput struct {
5865	_ struct{} `type:"structure"`
5866
5867	// The identifier of the cluster with steps to describe.
5868	//
5869	// ClusterId is a required field
5870	ClusterId *string `type:"string" required:"true"`
5871
5872	// The identifier of the step to describe.
5873	//
5874	// StepId is a required field
5875	StepId *string `type:"string" required:"true"`
5876}
5877
5878// String returns the string representation
5879func (s DescribeStepInput) String() string {
5880	return awsutil.Prettify(s)
5881}
5882
5883// GoString returns the string representation
5884func (s DescribeStepInput) GoString() string {
5885	return s.String()
5886}
5887
5888// Validate inspects the fields of the type to determine if they are valid.
5889func (s *DescribeStepInput) Validate() error {
5890	invalidParams := request.ErrInvalidParams{Context: "DescribeStepInput"}
5891	if s.ClusterId == nil {
5892		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
5893	}
5894	if s.StepId == nil {
5895		invalidParams.Add(request.NewErrParamRequired("StepId"))
5896	}
5897
5898	if invalidParams.Len() > 0 {
5899		return invalidParams
5900	}
5901	return nil
5902}
5903
5904// SetClusterId sets the ClusterId field's value.
5905func (s *DescribeStepInput) SetClusterId(v string) *DescribeStepInput {
5906	s.ClusterId = &v
5907	return s
5908}
5909
5910// SetStepId sets the StepId field's value.
5911func (s *DescribeStepInput) SetStepId(v string) *DescribeStepInput {
5912	s.StepId = &v
5913	return s
5914}
5915
5916// This output contains the description of the cluster step.
5917type DescribeStepOutput struct {
5918	_ struct{} `type:"structure"`
5919
5920	// The step details for the requested step identifier.
5921	Step *Step `type:"structure"`
5922}
5923
5924// String returns the string representation
5925func (s DescribeStepOutput) String() string {
5926	return awsutil.Prettify(s)
5927}
5928
5929// GoString returns the string representation
5930func (s DescribeStepOutput) GoString() string {
5931	return s.String()
5932}
5933
5934// SetStep sets the Step field's value.
5935func (s *DescribeStepOutput) SetStep(v *Step) *DescribeStepOutput {
5936	s.Step = v
5937	return s
5938}
5939
5940// Configuration of requested EBS block device associated with the instance
5941// group.
5942type EbsBlockDevice struct {
5943	_ struct{} `type:"structure"`
5944
5945	// The device name that is exposed to the instance, such as /dev/sdh.
5946	Device *string `type:"string"`
5947
5948	// EBS volume specifications such as volume type, IOPS, and size (GiB) that
5949	// will be requested for the EBS volume attached to an EC2 instance in the cluster.
5950	VolumeSpecification *VolumeSpecification `type:"structure"`
5951}
5952
5953// String returns the string representation
5954func (s EbsBlockDevice) String() string {
5955	return awsutil.Prettify(s)
5956}
5957
5958// GoString returns the string representation
5959func (s EbsBlockDevice) GoString() string {
5960	return s.String()
5961}
5962
5963// SetDevice sets the Device field's value.
5964func (s *EbsBlockDevice) SetDevice(v string) *EbsBlockDevice {
5965	s.Device = &v
5966	return s
5967}
5968
5969// SetVolumeSpecification sets the VolumeSpecification field's value.
5970func (s *EbsBlockDevice) SetVolumeSpecification(v *VolumeSpecification) *EbsBlockDevice {
5971	s.VolumeSpecification = v
5972	return s
5973}
5974
5975// Configuration of requested EBS block device associated with the instance
5976// group with count of volumes that will be associated to every instance.
5977type EbsBlockDeviceConfig struct {
5978	_ struct{} `type:"structure"`
5979
5980	// EBS volume specifications such as volume type, IOPS, and size (GiB) that
5981	// will be requested for the EBS volume attached to an EC2 instance in the cluster.
5982	//
5983	// VolumeSpecification is a required field
5984	VolumeSpecification *VolumeSpecification `type:"structure" required:"true"`
5985
5986	// Number of EBS volumes with a specific volume configuration that will be associated
5987	// with every instance in the instance group
5988	VolumesPerInstance *int64 `type:"integer"`
5989}
5990
5991// String returns the string representation
5992func (s EbsBlockDeviceConfig) String() string {
5993	return awsutil.Prettify(s)
5994}
5995
5996// GoString returns the string representation
5997func (s EbsBlockDeviceConfig) GoString() string {
5998	return s.String()
5999}
6000
6001// Validate inspects the fields of the type to determine if they are valid.
6002func (s *EbsBlockDeviceConfig) Validate() error {
6003	invalidParams := request.ErrInvalidParams{Context: "EbsBlockDeviceConfig"}
6004	if s.VolumeSpecification == nil {
6005		invalidParams.Add(request.NewErrParamRequired("VolumeSpecification"))
6006	}
6007	if s.VolumeSpecification != nil {
6008		if err := s.VolumeSpecification.Validate(); err != nil {
6009			invalidParams.AddNested("VolumeSpecification", err.(request.ErrInvalidParams))
6010		}
6011	}
6012
6013	if invalidParams.Len() > 0 {
6014		return invalidParams
6015	}
6016	return nil
6017}
6018
6019// SetVolumeSpecification sets the VolumeSpecification field's value.
6020func (s *EbsBlockDeviceConfig) SetVolumeSpecification(v *VolumeSpecification) *EbsBlockDeviceConfig {
6021	s.VolumeSpecification = v
6022	return s
6023}
6024
6025// SetVolumesPerInstance sets the VolumesPerInstance field's value.
6026func (s *EbsBlockDeviceConfig) SetVolumesPerInstance(v int64) *EbsBlockDeviceConfig {
6027	s.VolumesPerInstance = &v
6028	return s
6029}
6030
6031// The Amazon EBS configuration of a cluster instance.
6032type EbsConfiguration struct {
6033	_ struct{} `type:"structure"`
6034
6035	// An array of Amazon EBS volume specifications attached to a cluster instance.
6036	EbsBlockDeviceConfigs []*EbsBlockDeviceConfig `type:"list"`
6037
6038	// Indicates whether an Amazon EBS volume is EBS-optimized.
6039	EbsOptimized *bool `type:"boolean"`
6040}
6041
6042// String returns the string representation
6043func (s EbsConfiguration) String() string {
6044	return awsutil.Prettify(s)
6045}
6046
6047// GoString returns the string representation
6048func (s EbsConfiguration) GoString() string {
6049	return s.String()
6050}
6051
6052// Validate inspects the fields of the type to determine if they are valid.
6053func (s *EbsConfiguration) Validate() error {
6054	invalidParams := request.ErrInvalidParams{Context: "EbsConfiguration"}
6055	if s.EbsBlockDeviceConfigs != nil {
6056		for i, v := range s.EbsBlockDeviceConfigs {
6057			if v == nil {
6058				continue
6059			}
6060			if err := v.Validate(); err != nil {
6061				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EbsBlockDeviceConfigs", i), err.(request.ErrInvalidParams))
6062			}
6063		}
6064	}
6065
6066	if invalidParams.Len() > 0 {
6067		return invalidParams
6068	}
6069	return nil
6070}
6071
6072// SetEbsBlockDeviceConfigs sets the EbsBlockDeviceConfigs field's value.
6073func (s *EbsConfiguration) SetEbsBlockDeviceConfigs(v []*EbsBlockDeviceConfig) *EbsConfiguration {
6074	s.EbsBlockDeviceConfigs = v
6075	return s
6076}
6077
6078// SetEbsOptimized sets the EbsOptimized field's value.
6079func (s *EbsConfiguration) SetEbsOptimized(v bool) *EbsConfiguration {
6080	s.EbsOptimized = &v
6081	return s
6082}
6083
6084// EBS block device that's attached to an EC2 instance.
6085type EbsVolume struct {
6086	_ struct{} `type:"structure"`
6087
6088	// The device name that is exposed to the instance, such as /dev/sdh.
6089	Device *string `type:"string"`
6090
6091	// The volume identifier of the EBS volume.
6092	VolumeId *string `type:"string"`
6093}
6094
6095// String returns the string representation
6096func (s EbsVolume) String() string {
6097	return awsutil.Prettify(s)
6098}
6099
6100// GoString returns the string representation
6101func (s EbsVolume) GoString() string {
6102	return s.String()
6103}
6104
6105// SetDevice sets the Device field's value.
6106func (s *EbsVolume) SetDevice(v string) *EbsVolume {
6107	s.Device = &v
6108	return s
6109}
6110
6111// SetVolumeId sets the VolumeId field's value.
6112func (s *EbsVolume) SetVolumeId(v string) *EbsVolume {
6113	s.VolumeId = &v
6114	return s
6115}
6116
6117// Provides information about the EC2 instances in a cluster grouped by category.
6118// For example, key name, subnet ID, IAM instance profile, and so on.
6119type Ec2InstanceAttributes struct {
6120	_ struct{} `type:"structure"`
6121
6122	// A list of additional Amazon EC2 security group IDs for the master node.
6123	AdditionalMasterSecurityGroups []*string `type:"list"`
6124
6125	// A list of additional Amazon EC2 security group IDs for the core and task
6126	// nodes.
6127	AdditionalSlaveSecurityGroups []*string `type:"list"`
6128
6129	// The Availability Zone in which the cluster will run.
6130	Ec2AvailabilityZone *string `type:"string"`
6131
6132	// The name of the Amazon EC2 key pair to use when connecting with SSH into
6133	// the master node as a user named "hadoop".
6134	Ec2KeyName *string `type:"string"`
6135
6136	// Set this parameter to the identifier of the Amazon VPC subnet where you want
6137	// the cluster to launch. If you do not specify this value, and your account
6138	// supports EC2-Classic, the cluster launches in EC2-Classic.
6139	Ec2SubnetId *string `type:"string"`
6140
6141	// The identifier of the Amazon EC2 security group for the master node.
6142	EmrManagedMasterSecurityGroup *string `type:"string"`
6143
6144	// The identifier of the Amazon EC2 security group for the core and task nodes.
6145	EmrManagedSlaveSecurityGroup *string `type:"string"`
6146
6147	// The IAM role that was specified when the cluster was launched. The EC2 instances
6148	// of the cluster assume this role.
6149	IamInstanceProfile *string `type:"string"`
6150
6151	// Applies to clusters configured with the instance fleets option. Specifies
6152	// one or more Availability Zones in which to launch EC2 cluster instances when
6153	// the EC2-Classic network configuration is supported. Amazon EMR chooses the
6154	// Availability Zone with the best fit from among the list of RequestedEc2AvailabilityZones,
6155	// and then launches all cluster instances within that Availability Zone. If
6156	// you do not specify this value, Amazon EMR chooses the Availability Zone for
6157	// you. RequestedEc2SubnetIDs and RequestedEc2AvailabilityZones cannot be specified
6158	// together.
6159	RequestedEc2AvailabilityZones []*string `type:"list"`
6160
6161	// Applies to clusters configured with the instance fleets option. Specifies
6162	// the unique identifier of one or more Amazon EC2 subnets in which to launch
6163	// EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR
6164	// chooses the EC2 subnet with the best fit from among the list of RequestedEc2SubnetIds,
6165	// and then launches all cluster instances within that Subnet. If this value
6166	// is not specified, and the account and Region support EC2-Classic networks,
6167	// the cluster launches instances in the EC2-Classic network and uses RequestedEc2AvailabilityZones
6168	// instead of this setting. If EC2-Classic is not supported, and no Subnet is
6169	// specified, Amazon EMR chooses the subnet for you. RequestedEc2SubnetIDs and
6170	// RequestedEc2AvailabilityZones cannot be specified together.
6171	RequestedEc2SubnetIds []*string `type:"list"`
6172
6173	// The identifier of the Amazon EC2 security group for the Amazon EMR service
6174	// to access clusters in VPC private subnets.
6175	ServiceAccessSecurityGroup *string `type:"string"`
6176}
6177
6178// String returns the string representation
6179func (s Ec2InstanceAttributes) String() string {
6180	return awsutil.Prettify(s)
6181}
6182
6183// GoString returns the string representation
6184func (s Ec2InstanceAttributes) GoString() string {
6185	return s.String()
6186}
6187
6188// SetAdditionalMasterSecurityGroups sets the AdditionalMasterSecurityGroups field's value.
6189func (s *Ec2InstanceAttributes) SetAdditionalMasterSecurityGroups(v []*string) *Ec2InstanceAttributes {
6190	s.AdditionalMasterSecurityGroups = v
6191	return s
6192}
6193
6194// SetAdditionalSlaveSecurityGroups sets the AdditionalSlaveSecurityGroups field's value.
6195func (s *Ec2InstanceAttributes) SetAdditionalSlaveSecurityGroups(v []*string) *Ec2InstanceAttributes {
6196	s.AdditionalSlaveSecurityGroups = v
6197	return s
6198}
6199
6200// SetEc2AvailabilityZone sets the Ec2AvailabilityZone field's value.
6201func (s *Ec2InstanceAttributes) SetEc2AvailabilityZone(v string) *Ec2InstanceAttributes {
6202	s.Ec2AvailabilityZone = &v
6203	return s
6204}
6205
6206// SetEc2KeyName sets the Ec2KeyName field's value.
6207func (s *Ec2InstanceAttributes) SetEc2KeyName(v string) *Ec2InstanceAttributes {
6208	s.Ec2KeyName = &v
6209	return s
6210}
6211
6212// SetEc2SubnetId sets the Ec2SubnetId field's value.
6213func (s *Ec2InstanceAttributes) SetEc2SubnetId(v string) *Ec2InstanceAttributes {
6214	s.Ec2SubnetId = &v
6215	return s
6216}
6217
6218// SetEmrManagedMasterSecurityGroup sets the EmrManagedMasterSecurityGroup field's value.
6219func (s *Ec2InstanceAttributes) SetEmrManagedMasterSecurityGroup(v string) *Ec2InstanceAttributes {
6220	s.EmrManagedMasterSecurityGroup = &v
6221	return s
6222}
6223
6224// SetEmrManagedSlaveSecurityGroup sets the EmrManagedSlaveSecurityGroup field's value.
6225func (s *Ec2InstanceAttributes) SetEmrManagedSlaveSecurityGroup(v string) *Ec2InstanceAttributes {
6226	s.EmrManagedSlaveSecurityGroup = &v
6227	return s
6228}
6229
6230// SetIamInstanceProfile sets the IamInstanceProfile field's value.
6231func (s *Ec2InstanceAttributes) SetIamInstanceProfile(v string) *Ec2InstanceAttributes {
6232	s.IamInstanceProfile = &v
6233	return s
6234}
6235
6236// SetRequestedEc2AvailabilityZones sets the RequestedEc2AvailabilityZones field's value.
6237func (s *Ec2InstanceAttributes) SetRequestedEc2AvailabilityZones(v []*string) *Ec2InstanceAttributes {
6238	s.RequestedEc2AvailabilityZones = v
6239	return s
6240}
6241
6242// SetRequestedEc2SubnetIds sets the RequestedEc2SubnetIds field's value.
6243func (s *Ec2InstanceAttributes) SetRequestedEc2SubnetIds(v []*string) *Ec2InstanceAttributes {
6244	s.RequestedEc2SubnetIds = v
6245	return s
6246}
6247
6248// SetServiceAccessSecurityGroup sets the ServiceAccessSecurityGroup field's value.
6249func (s *Ec2InstanceAttributes) SetServiceAccessSecurityGroup(v string) *Ec2InstanceAttributes {
6250	s.ServiceAccessSecurityGroup = &v
6251	return s
6252}
6253
6254// Specifies the execution engine (cluster) to run the notebook and perform
6255// the notebook execution, for example, an EMR cluster.
6256type ExecutionEngineConfig struct {
6257	_ struct{} `type:"structure"`
6258
6259	// The unique identifier of the execution engine. For an EMR cluster, this is
6260	// the cluster ID.
6261	//
6262	// Id is a required field
6263	Id *string `type:"string" required:"true"`
6264
6265	// An optional unique ID of an EC2 security group to associate with the master
6266	// instance of the EMR cluster for this notebook execution. For more information
6267	// see Specifying EC2 Security Groups for EMR Notebooks (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html)
6268	// in the EMR Management Guide.
6269	MasterInstanceSecurityGroupId *string `type:"string"`
6270
6271	// The type of execution engine. A value of EMR specifies an EMR cluster.
6272	Type *string `type:"string" enum:"ExecutionEngineType"`
6273}
6274
6275// String returns the string representation
6276func (s ExecutionEngineConfig) String() string {
6277	return awsutil.Prettify(s)
6278}
6279
6280// GoString returns the string representation
6281func (s ExecutionEngineConfig) GoString() string {
6282	return s.String()
6283}
6284
6285// Validate inspects the fields of the type to determine if they are valid.
6286func (s *ExecutionEngineConfig) Validate() error {
6287	invalidParams := request.ErrInvalidParams{Context: "ExecutionEngineConfig"}
6288	if s.Id == nil {
6289		invalidParams.Add(request.NewErrParamRequired("Id"))
6290	}
6291
6292	if invalidParams.Len() > 0 {
6293		return invalidParams
6294	}
6295	return nil
6296}
6297
6298// SetId sets the Id field's value.
6299func (s *ExecutionEngineConfig) SetId(v string) *ExecutionEngineConfig {
6300	s.Id = &v
6301	return s
6302}
6303
6304// SetMasterInstanceSecurityGroupId sets the MasterInstanceSecurityGroupId field's value.
6305func (s *ExecutionEngineConfig) SetMasterInstanceSecurityGroupId(v string) *ExecutionEngineConfig {
6306	s.MasterInstanceSecurityGroupId = &v
6307	return s
6308}
6309
6310// SetType sets the Type field's value.
6311func (s *ExecutionEngineConfig) SetType(v string) *ExecutionEngineConfig {
6312	s.Type = &v
6313	return s
6314}
6315
6316// The details of the step failure. The service attempts to detect the root
6317// cause for many common failures.
6318type FailureDetails struct {
6319	_ struct{} `type:"structure"`
6320
6321	// The path to the log file where the step failure root cause was originally
6322	// recorded.
6323	LogFile *string `type:"string"`
6324
6325	// The descriptive message including the error the EMR service has identified
6326	// as the cause of step failure. This is text from an error log that describes
6327	// the root cause of the failure.
6328	Message *string `type:"string"`
6329
6330	// The reason for the step failure. In the case where the service cannot successfully
6331	// determine the root cause of the failure, it returns "Unknown Error" as a
6332	// reason.
6333	Reason *string `type:"string"`
6334}
6335
6336// String returns the string representation
6337func (s FailureDetails) String() string {
6338	return awsutil.Prettify(s)
6339}
6340
6341// GoString returns the string representation
6342func (s FailureDetails) GoString() string {
6343	return s.String()
6344}
6345
6346// SetLogFile sets the LogFile field's value.
6347func (s *FailureDetails) SetLogFile(v string) *FailureDetails {
6348	s.LogFile = &v
6349	return s
6350}
6351
6352// SetMessage sets the Message field's value.
6353func (s *FailureDetails) SetMessage(v string) *FailureDetails {
6354	s.Message = &v
6355	return s
6356}
6357
6358// SetReason sets the Reason field's value.
6359func (s *FailureDetails) SetReason(v string) *FailureDetails {
6360	s.Reason = &v
6361	return s
6362}
6363
6364type GetBlockPublicAccessConfigurationInput struct {
6365	_ struct{} `type:"structure"`
6366}
6367
6368// String returns the string representation
6369func (s GetBlockPublicAccessConfigurationInput) String() string {
6370	return awsutil.Prettify(s)
6371}
6372
6373// GoString returns the string representation
6374func (s GetBlockPublicAccessConfigurationInput) GoString() string {
6375	return s.String()
6376}
6377
6378type GetBlockPublicAccessConfigurationOutput struct {
6379	_ struct{} `type:"structure"`
6380
6381	// A configuration for Amazon EMR block public access. The configuration applies
6382	// to all clusters created in your account for the current Region. The configuration
6383	// specifies whether block public access is enabled. If block public access
6384	// is enabled, security groups associated with the cluster cannot have rules
6385	// that allow inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port
6386	// is specified as an exception using PermittedPublicSecurityGroupRuleRanges
6387	// in the BlockPublicAccessConfiguration. By default, Port 22 (SSH) is an exception,
6388	// and public access is allowed on this port. You can change this by updating
6389	// the block public access configuration to remove the exception.
6390	//
6391	// For accounts that created clusters in a Region before November 25, 2019,
6392	// block public access is disabled by default in that Region. To use this feature,
6393	// you must manually enable and configure it. For accounts that did not create
6394	// an EMR cluster in a Region before this date, block public access is enabled
6395	// by default in that Region.
6396	//
6397	// BlockPublicAccessConfiguration is a required field
6398	BlockPublicAccessConfiguration *BlockPublicAccessConfiguration `type:"structure" required:"true"`
6399
6400	// Properties that describe the AWS principal that created the BlockPublicAccessConfiguration
6401	// using the PutBlockPublicAccessConfiguration action as well as the date and
6402	// time that the configuration was created. Each time a configuration for block
6403	// public access is updated, Amazon EMR updates this metadata.
6404	//
6405	// BlockPublicAccessConfigurationMetadata is a required field
6406	BlockPublicAccessConfigurationMetadata *BlockPublicAccessConfigurationMetadata `type:"structure" required:"true"`
6407}
6408
6409// String returns the string representation
6410func (s GetBlockPublicAccessConfigurationOutput) String() string {
6411	return awsutil.Prettify(s)
6412}
6413
6414// GoString returns the string representation
6415func (s GetBlockPublicAccessConfigurationOutput) GoString() string {
6416	return s.String()
6417}
6418
6419// SetBlockPublicAccessConfiguration sets the BlockPublicAccessConfiguration field's value.
6420func (s *GetBlockPublicAccessConfigurationOutput) SetBlockPublicAccessConfiguration(v *BlockPublicAccessConfiguration) *GetBlockPublicAccessConfigurationOutput {
6421	s.BlockPublicAccessConfiguration = v
6422	return s
6423}
6424
6425// SetBlockPublicAccessConfigurationMetadata sets the BlockPublicAccessConfigurationMetadata field's value.
6426func (s *GetBlockPublicAccessConfigurationOutput) SetBlockPublicAccessConfigurationMetadata(v *BlockPublicAccessConfigurationMetadata) *GetBlockPublicAccessConfigurationOutput {
6427	s.BlockPublicAccessConfigurationMetadata = v
6428	return s
6429}
6430
6431type GetManagedScalingPolicyInput struct {
6432	_ struct{} `type:"structure"`
6433
6434	// Specifies the ID of the cluster for which the managed scaling policy will
6435	// be fetched.
6436	//
6437	// ClusterId is a required field
6438	ClusterId *string `type:"string" required:"true"`
6439}
6440
6441// String returns the string representation
6442func (s GetManagedScalingPolicyInput) String() string {
6443	return awsutil.Prettify(s)
6444}
6445
6446// GoString returns the string representation
6447func (s GetManagedScalingPolicyInput) GoString() string {
6448	return s.String()
6449}
6450
6451// Validate inspects the fields of the type to determine if they are valid.
6452func (s *GetManagedScalingPolicyInput) Validate() error {
6453	invalidParams := request.ErrInvalidParams{Context: "GetManagedScalingPolicyInput"}
6454	if s.ClusterId == nil {
6455		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
6456	}
6457
6458	if invalidParams.Len() > 0 {
6459		return invalidParams
6460	}
6461	return nil
6462}
6463
6464// SetClusterId sets the ClusterId field's value.
6465func (s *GetManagedScalingPolicyInput) SetClusterId(v string) *GetManagedScalingPolicyInput {
6466	s.ClusterId = &v
6467	return s
6468}
6469
6470type GetManagedScalingPolicyOutput struct {
6471	_ struct{} `type:"structure"`
6472
6473	// Specifies the managed scaling policy that is attached to an Amazon EMR cluster.
6474	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure"`
6475}
6476
6477// String returns the string representation
6478func (s GetManagedScalingPolicyOutput) String() string {
6479	return awsutil.Prettify(s)
6480}
6481
6482// GoString returns the string representation
6483func (s GetManagedScalingPolicyOutput) GoString() string {
6484	return s.String()
6485}
6486
6487// SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
6488func (s *GetManagedScalingPolicyOutput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *GetManagedScalingPolicyOutput {
6489	s.ManagedScalingPolicy = v
6490	return s
6491}
6492
6493// A job flow step consisting of a JAR file whose main function will be executed.
6494// The main function submits a job for Hadoop to execute and waits for the job
6495// to finish or fail.
6496type HadoopJarStepConfig struct {
6497	_ struct{} `type:"structure"`
6498
6499	// A list of command line arguments passed to the JAR file's main function when
6500	// executed.
6501	Args []*string `type:"list"`
6502
6503	// A path to a JAR file run during the step.
6504	//
6505	// Jar is a required field
6506	Jar *string `type:"string" required:"true"`
6507
6508	// The name of the main class in the specified Java file. If not specified,
6509	// the JAR file should specify a Main-Class in its manifest file.
6510	MainClass *string `type:"string"`
6511
6512	// A list of Java properties that are set when the step runs. You can use these
6513	// properties to pass key value pairs to your main function.
6514	Properties []*KeyValue `type:"list"`
6515}
6516
6517// String returns the string representation
6518func (s HadoopJarStepConfig) String() string {
6519	return awsutil.Prettify(s)
6520}
6521
6522// GoString returns the string representation
6523func (s HadoopJarStepConfig) GoString() string {
6524	return s.String()
6525}
6526
6527// Validate inspects the fields of the type to determine if they are valid.
6528func (s *HadoopJarStepConfig) Validate() error {
6529	invalidParams := request.ErrInvalidParams{Context: "HadoopJarStepConfig"}
6530	if s.Jar == nil {
6531		invalidParams.Add(request.NewErrParamRequired("Jar"))
6532	}
6533
6534	if invalidParams.Len() > 0 {
6535		return invalidParams
6536	}
6537	return nil
6538}
6539
6540// SetArgs sets the Args field's value.
6541func (s *HadoopJarStepConfig) SetArgs(v []*string) *HadoopJarStepConfig {
6542	s.Args = v
6543	return s
6544}
6545
6546// SetJar sets the Jar field's value.
6547func (s *HadoopJarStepConfig) SetJar(v string) *HadoopJarStepConfig {
6548	s.Jar = &v
6549	return s
6550}
6551
6552// SetMainClass sets the MainClass field's value.
6553func (s *HadoopJarStepConfig) SetMainClass(v string) *HadoopJarStepConfig {
6554	s.MainClass = &v
6555	return s
6556}
6557
6558// SetProperties sets the Properties field's value.
6559func (s *HadoopJarStepConfig) SetProperties(v []*KeyValue) *HadoopJarStepConfig {
6560	s.Properties = v
6561	return s
6562}
6563
6564// A cluster step consisting of a JAR file whose main function will be executed.
6565// The main function submits a job for Hadoop to execute and waits for the job
6566// to finish or fail.
6567type HadoopStepConfig struct {
6568	_ struct{} `type:"structure"`
6569
6570	// The list of command line arguments to pass to the JAR file's main function
6571	// for execution.
6572	Args []*string `type:"list"`
6573
6574	// The path to the JAR file that runs during the step.
6575	Jar *string `type:"string"`
6576
6577	// The name of the main class in the specified Java file. If not specified,
6578	// the JAR file should specify a main class in its manifest file.
6579	MainClass *string `type:"string"`
6580
6581	// The list of Java properties that are set when the step runs. You can use
6582	// these properties to pass key value pairs to your main function.
6583	Properties map[string]*string `type:"map"`
6584}
6585
6586// String returns the string representation
6587func (s HadoopStepConfig) String() string {
6588	return awsutil.Prettify(s)
6589}
6590
6591// GoString returns the string representation
6592func (s HadoopStepConfig) GoString() string {
6593	return s.String()
6594}
6595
6596// SetArgs sets the Args field's value.
6597func (s *HadoopStepConfig) SetArgs(v []*string) *HadoopStepConfig {
6598	s.Args = v
6599	return s
6600}
6601
6602// SetJar sets the Jar field's value.
6603func (s *HadoopStepConfig) SetJar(v string) *HadoopStepConfig {
6604	s.Jar = &v
6605	return s
6606}
6607
6608// SetMainClass sets the MainClass field's value.
6609func (s *HadoopStepConfig) SetMainClass(v string) *HadoopStepConfig {
6610	s.MainClass = &v
6611	return s
6612}
6613
6614// SetProperties sets the Properties field's value.
6615func (s *HadoopStepConfig) SetProperties(v map[string]*string) *HadoopStepConfig {
6616	s.Properties = v
6617	return s
6618}
6619
6620// Represents an EC2 instance provisioned as part of cluster.
6621type Instance struct {
6622	_ struct{} `type:"structure"`
6623
6624	// The list of EBS volumes that are attached to this instance.
6625	EbsVolumes []*EbsVolume `type:"list"`
6626
6627	// The unique identifier of the instance in Amazon EC2.
6628	Ec2InstanceId *string `type:"string"`
6629
6630	// The unique identifier for the instance in Amazon EMR.
6631	Id *string `type:"string"`
6632
6633	// The unique identifier of the instance fleet to which an EC2 instance belongs.
6634	InstanceFleetId *string `type:"string"`
6635
6636	// The identifier of the instance group to which this instance belongs.
6637	InstanceGroupId *string `type:"string"`
6638
6639	// The EC2 instance type, for example m3.xlarge.
6640	InstanceType *string `min:"1" type:"string"`
6641
6642	// The instance purchasing option. Valid values are ON_DEMAND or SPOT.
6643	Market *string `type:"string" enum:"MarketType"`
6644
6645	// The private DNS name of the instance.
6646	PrivateDnsName *string `type:"string"`
6647
6648	// The private IP address of the instance.
6649	PrivateIpAddress *string `type:"string"`
6650
6651	// The public DNS name of the instance.
6652	PublicDnsName *string `type:"string"`
6653
6654	// The public IP address of the instance.
6655	PublicIpAddress *string `type:"string"`
6656
6657	// The current status of the instance.
6658	Status *InstanceStatus `type:"structure"`
6659}
6660
6661// String returns the string representation
6662func (s Instance) String() string {
6663	return awsutil.Prettify(s)
6664}
6665
6666// GoString returns the string representation
6667func (s Instance) GoString() string {
6668	return s.String()
6669}
6670
6671// SetEbsVolumes sets the EbsVolumes field's value.
6672func (s *Instance) SetEbsVolumes(v []*EbsVolume) *Instance {
6673	s.EbsVolumes = v
6674	return s
6675}
6676
6677// SetEc2InstanceId sets the Ec2InstanceId field's value.
6678func (s *Instance) SetEc2InstanceId(v string) *Instance {
6679	s.Ec2InstanceId = &v
6680	return s
6681}
6682
6683// SetId sets the Id field's value.
6684func (s *Instance) SetId(v string) *Instance {
6685	s.Id = &v
6686	return s
6687}
6688
6689// SetInstanceFleetId sets the InstanceFleetId field's value.
6690func (s *Instance) SetInstanceFleetId(v string) *Instance {
6691	s.InstanceFleetId = &v
6692	return s
6693}
6694
6695// SetInstanceGroupId sets the InstanceGroupId field's value.
6696func (s *Instance) SetInstanceGroupId(v string) *Instance {
6697	s.InstanceGroupId = &v
6698	return s
6699}
6700
6701// SetInstanceType sets the InstanceType field's value.
6702func (s *Instance) SetInstanceType(v string) *Instance {
6703	s.InstanceType = &v
6704	return s
6705}
6706
6707// SetMarket sets the Market field's value.
6708func (s *Instance) SetMarket(v string) *Instance {
6709	s.Market = &v
6710	return s
6711}
6712
6713// SetPrivateDnsName sets the PrivateDnsName field's value.
6714func (s *Instance) SetPrivateDnsName(v string) *Instance {
6715	s.PrivateDnsName = &v
6716	return s
6717}
6718
6719// SetPrivateIpAddress sets the PrivateIpAddress field's value.
6720func (s *Instance) SetPrivateIpAddress(v string) *Instance {
6721	s.PrivateIpAddress = &v
6722	return s
6723}
6724
6725// SetPublicDnsName sets the PublicDnsName field's value.
6726func (s *Instance) SetPublicDnsName(v string) *Instance {
6727	s.PublicDnsName = &v
6728	return s
6729}
6730
6731// SetPublicIpAddress sets the PublicIpAddress field's value.
6732func (s *Instance) SetPublicIpAddress(v string) *Instance {
6733	s.PublicIpAddress = &v
6734	return s
6735}
6736
6737// SetStatus sets the Status field's value.
6738func (s *Instance) SetStatus(v *InstanceStatus) *Instance {
6739	s.Status = v
6740	return s
6741}
6742
6743// Describes an instance fleet, which is a group of EC2 instances that host
6744// a particular node type (master, core, or task) in an Amazon EMR cluster.
6745// Instance fleets can consist of a mix of instance types and On-Demand and
6746// Spot instances, which are provisioned to meet a defined target capacity.
6747//
6748// The instance fleet configuration is available only in Amazon EMR versions
6749// 4.8.0 and later, excluding 5.0.x versions.
6750type InstanceFleet struct {
6751	_ struct{} `type:"structure"`
6752
6753	// The unique identifier of the instance fleet.
6754	Id *string `type:"string"`
6755
6756	// The node type that the instance fleet hosts. Valid values are MASTER, CORE,
6757	// or TASK.
6758	InstanceFleetType *string `type:"string" enum:"InstanceFleetType"`
6759
6760	// The specification for the instance types that comprise an instance fleet.
6761	// Up to five unique instance specifications may be defined for each instance
6762	// fleet.
6763	InstanceTypeSpecifications []*InstanceTypeSpecification `type:"list"`
6764
6765	// Describes the launch specification for an instance fleet.
6766	LaunchSpecifications *InstanceFleetProvisioningSpecifications `type:"structure"`
6767
6768	// A friendly name for the instance fleet.
6769	Name *string `type:"string"`
6770
6771	// The number of On-Demand units that have been provisioned for the instance
6772	// fleet to fulfill TargetOnDemandCapacity. This provisioned capacity might
6773	// be less than or greater than TargetOnDemandCapacity.
6774	ProvisionedOnDemandCapacity *int64 `type:"integer"`
6775
6776	// The number of Spot units that have been provisioned for this instance fleet
6777	// to fulfill TargetSpotCapacity. This provisioned capacity might be less than
6778	// or greater than TargetSpotCapacity.
6779	ProvisionedSpotCapacity *int64 `type:"integer"`
6780
6781	// The current status of the instance fleet.
6782	Status *InstanceFleetStatus `type:"structure"`
6783
6784	// The target capacity of On-Demand units for the instance fleet, which determines
6785	// how many On-Demand instances to provision. When the instance fleet launches,
6786	// Amazon EMR tries to provision On-Demand instances as specified by InstanceTypeConfig.
6787	// Each instance configuration has a specified WeightedCapacity. When an On-Demand
6788	// instance is provisioned, the WeightedCapacity units count toward the target
6789	// capacity. Amazon EMR provisions instances until the target capacity is totally
6790	// fulfilled, even if this results in an overage. For example, if there are
6791	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
6792	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
6793	// and the target capacity is exceeded by 3 units. You can use InstanceFleet$ProvisionedOnDemandCapacity
6794	// to determine the Spot capacity units that have been provisioned for the instance
6795	// fleet.
6796	//
6797	// If not specified or set to 0, only Spot instances are provisioned for the
6798	// instance fleet using TargetSpotCapacity. At least one of TargetSpotCapacity
6799	// and TargetOnDemandCapacity should be greater than 0. For a master instance
6800	// fleet, only one of TargetSpotCapacity and TargetOnDemandCapacity can be specified,
6801	// and its value must be 1.
6802	TargetOnDemandCapacity *int64 `type:"integer"`
6803
6804	// The target capacity of Spot units for the instance fleet, which determines
6805	// how many Spot instances to provision. When the instance fleet launches, Amazon
6806	// EMR tries to provision Spot instances as specified by InstanceTypeConfig.
6807	// Each instance configuration has a specified WeightedCapacity. When a Spot
6808	// instance is provisioned, the WeightedCapacity units count toward the target
6809	// capacity. Amazon EMR provisions instances until the target capacity is totally
6810	// fulfilled, even if this results in an overage. For example, if there are
6811	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
6812	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
6813	// and the target capacity is exceeded by 3 units. You can use InstanceFleet$ProvisionedSpotCapacity
6814	// to determine the Spot capacity units that have been provisioned for the instance
6815	// fleet.
6816	//
6817	// If not specified or set to 0, only On-Demand instances are provisioned for
6818	// the instance fleet. At least one of TargetSpotCapacity and TargetOnDemandCapacity
6819	// should be greater than 0. For a master instance fleet, only one of TargetSpotCapacity
6820	// and TargetOnDemandCapacity can be specified, and its value must be 1.
6821	TargetSpotCapacity *int64 `type:"integer"`
6822}
6823
6824// String returns the string representation
6825func (s InstanceFleet) String() string {
6826	return awsutil.Prettify(s)
6827}
6828
6829// GoString returns the string representation
6830func (s InstanceFleet) GoString() string {
6831	return s.String()
6832}
6833
6834// SetId sets the Id field's value.
6835func (s *InstanceFleet) SetId(v string) *InstanceFleet {
6836	s.Id = &v
6837	return s
6838}
6839
6840// SetInstanceFleetType sets the InstanceFleetType field's value.
6841func (s *InstanceFleet) SetInstanceFleetType(v string) *InstanceFleet {
6842	s.InstanceFleetType = &v
6843	return s
6844}
6845
6846// SetInstanceTypeSpecifications sets the InstanceTypeSpecifications field's value.
6847func (s *InstanceFleet) SetInstanceTypeSpecifications(v []*InstanceTypeSpecification) *InstanceFleet {
6848	s.InstanceTypeSpecifications = v
6849	return s
6850}
6851
6852// SetLaunchSpecifications sets the LaunchSpecifications field's value.
6853func (s *InstanceFleet) SetLaunchSpecifications(v *InstanceFleetProvisioningSpecifications) *InstanceFleet {
6854	s.LaunchSpecifications = v
6855	return s
6856}
6857
6858// SetName sets the Name field's value.
6859func (s *InstanceFleet) SetName(v string) *InstanceFleet {
6860	s.Name = &v
6861	return s
6862}
6863
6864// SetProvisionedOnDemandCapacity sets the ProvisionedOnDemandCapacity field's value.
6865func (s *InstanceFleet) SetProvisionedOnDemandCapacity(v int64) *InstanceFleet {
6866	s.ProvisionedOnDemandCapacity = &v
6867	return s
6868}
6869
6870// SetProvisionedSpotCapacity sets the ProvisionedSpotCapacity field's value.
6871func (s *InstanceFleet) SetProvisionedSpotCapacity(v int64) *InstanceFleet {
6872	s.ProvisionedSpotCapacity = &v
6873	return s
6874}
6875
6876// SetStatus sets the Status field's value.
6877func (s *InstanceFleet) SetStatus(v *InstanceFleetStatus) *InstanceFleet {
6878	s.Status = v
6879	return s
6880}
6881
6882// SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
6883func (s *InstanceFleet) SetTargetOnDemandCapacity(v int64) *InstanceFleet {
6884	s.TargetOnDemandCapacity = &v
6885	return s
6886}
6887
6888// SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
6889func (s *InstanceFleet) SetTargetSpotCapacity(v int64) *InstanceFleet {
6890	s.TargetSpotCapacity = &v
6891	return s
6892}
6893
6894// The configuration that defines an instance fleet.
6895//
6896// The instance fleet configuration is available only in Amazon EMR versions
6897// 4.8.0 and later, excluding 5.0.x versions.
6898type InstanceFleetConfig struct {
6899	_ struct{} `type:"structure"`
6900
6901	// The node type that the instance fleet hosts. Valid values are MASTER,CORE,and
6902	// TASK.
6903	//
6904	// InstanceFleetType is a required field
6905	InstanceFleetType *string `type:"string" required:"true" enum:"InstanceFleetType"`
6906
6907	// The instance type configurations that define the EC2 instances in the instance
6908	// fleet.
6909	InstanceTypeConfigs []*InstanceTypeConfig `type:"list"`
6910
6911	// The launch specification for the instance fleet.
6912	LaunchSpecifications *InstanceFleetProvisioningSpecifications `type:"structure"`
6913
6914	// The friendly name of the instance fleet.
6915	Name *string `type:"string"`
6916
6917	// The target capacity of On-Demand units for the instance fleet, which determines
6918	// how many On-Demand instances to provision. When the instance fleet launches,
6919	// Amazon EMR tries to provision On-Demand instances as specified by InstanceTypeConfig.
6920	// Each instance configuration has a specified WeightedCapacity. When an On-Demand
6921	// instance is provisioned, the WeightedCapacity units count toward the target
6922	// capacity. Amazon EMR provisions instances until the target capacity is totally
6923	// fulfilled, even if this results in an overage. For example, if there are
6924	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
6925	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
6926	// and the target capacity is exceeded by 3 units.
6927	//
6928	// If not specified or set to 0, only Spot instances are provisioned for the
6929	// instance fleet using TargetSpotCapacity. At least one of TargetSpotCapacity
6930	// and TargetOnDemandCapacity should be greater than 0. For a master instance
6931	// fleet, only one of TargetSpotCapacity and TargetOnDemandCapacity can be specified,
6932	// and its value must be 1.
6933	TargetOnDemandCapacity *int64 `type:"integer"`
6934
6935	// The target capacity of Spot units for the instance fleet, which determines
6936	// how many Spot instances to provision. When the instance fleet launches, Amazon
6937	// EMR tries to provision Spot instances as specified by InstanceTypeConfig.
6938	// Each instance configuration has a specified WeightedCapacity. When a Spot
6939	// instance is provisioned, the WeightedCapacity units count toward the target
6940	// capacity. Amazon EMR provisions instances until the target capacity is totally
6941	// fulfilled, even if this results in an overage. For example, if there are
6942	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
6943	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
6944	// and the target capacity is exceeded by 3 units.
6945	//
6946	// If not specified or set to 0, only On-Demand instances are provisioned for
6947	// the instance fleet. At least one of TargetSpotCapacity and TargetOnDemandCapacity
6948	// should be greater than 0. For a master instance fleet, only one of TargetSpotCapacity
6949	// and TargetOnDemandCapacity can be specified, and its value must be 1.
6950	TargetSpotCapacity *int64 `type:"integer"`
6951}
6952
6953// String returns the string representation
6954func (s InstanceFleetConfig) String() string {
6955	return awsutil.Prettify(s)
6956}
6957
6958// GoString returns the string representation
6959func (s InstanceFleetConfig) GoString() string {
6960	return s.String()
6961}
6962
6963// Validate inspects the fields of the type to determine if they are valid.
6964func (s *InstanceFleetConfig) Validate() error {
6965	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetConfig"}
6966	if s.InstanceFleetType == nil {
6967		invalidParams.Add(request.NewErrParamRequired("InstanceFleetType"))
6968	}
6969	if s.InstanceTypeConfigs != nil {
6970		for i, v := range s.InstanceTypeConfigs {
6971			if v == nil {
6972				continue
6973			}
6974			if err := v.Validate(); err != nil {
6975				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceTypeConfigs", i), err.(request.ErrInvalidParams))
6976			}
6977		}
6978	}
6979	if s.LaunchSpecifications != nil {
6980		if err := s.LaunchSpecifications.Validate(); err != nil {
6981			invalidParams.AddNested("LaunchSpecifications", err.(request.ErrInvalidParams))
6982		}
6983	}
6984
6985	if invalidParams.Len() > 0 {
6986		return invalidParams
6987	}
6988	return nil
6989}
6990
6991// SetInstanceFleetType sets the InstanceFleetType field's value.
6992func (s *InstanceFleetConfig) SetInstanceFleetType(v string) *InstanceFleetConfig {
6993	s.InstanceFleetType = &v
6994	return s
6995}
6996
6997// SetInstanceTypeConfigs sets the InstanceTypeConfigs field's value.
6998func (s *InstanceFleetConfig) SetInstanceTypeConfigs(v []*InstanceTypeConfig) *InstanceFleetConfig {
6999	s.InstanceTypeConfigs = v
7000	return s
7001}
7002
7003// SetLaunchSpecifications sets the LaunchSpecifications field's value.
7004func (s *InstanceFleetConfig) SetLaunchSpecifications(v *InstanceFleetProvisioningSpecifications) *InstanceFleetConfig {
7005	s.LaunchSpecifications = v
7006	return s
7007}
7008
7009// SetName sets the Name field's value.
7010func (s *InstanceFleetConfig) SetName(v string) *InstanceFleetConfig {
7011	s.Name = &v
7012	return s
7013}
7014
7015// SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
7016func (s *InstanceFleetConfig) SetTargetOnDemandCapacity(v int64) *InstanceFleetConfig {
7017	s.TargetOnDemandCapacity = &v
7018	return s
7019}
7020
7021// SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
7022func (s *InstanceFleetConfig) SetTargetSpotCapacity(v int64) *InstanceFleetConfig {
7023	s.TargetSpotCapacity = &v
7024	return s
7025}
7026
7027// Configuration parameters for an instance fleet modification request.
7028//
7029// The instance fleet configuration is available only in Amazon EMR versions
7030// 4.8.0 and later, excluding 5.0.x versions.
7031type InstanceFleetModifyConfig struct {
7032	_ struct{} `type:"structure"`
7033
7034	// A unique identifier for the instance fleet.
7035	//
7036	// InstanceFleetId is a required field
7037	InstanceFleetId *string `type:"string" required:"true"`
7038
7039	// The target capacity of On-Demand units for the instance fleet. For more information
7040	// see InstanceFleetConfig$TargetOnDemandCapacity.
7041	TargetOnDemandCapacity *int64 `type:"integer"`
7042
7043	// The target capacity of Spot units for the instance fleet. For more information,
7044	// see InstanceFleetConfig$TargetSpotCapacity.
7045	TargetSpotCapacity *int64 `type:"integer"`
7046}
7047
7048// String returns the string representation
7049func (s InstanceFleetModifyConfig) String() string {
7050	return awsutil.Prettify(s)
7051}
7052
7053// GoString returns the string representation
7054func (s InstanceFleetModifyConfig) GoString() string {
7055	return s.String()
7056}
7057
7058// Validate inspects the fields of the type to determine if they are valid.
7059func (s *InstanceFleetModifyConfig) Validate() error {
7060	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetModifyConfig"}
7061	if s.InstanceFleetId == nil {
7062		invalidParams.Add(request.NewErrParamRequired("InstanceFleetId"))
7063	}
7064
7065	if invalidParams.Len() > 0 {
7066		return invalidParams
7067	}
7068	return nil
7069}
7070
7071// SetInstanceFleetId sets the InstanceFleetId field's value.
7072func (s *InstanceFleetModifyConfig) SetInstanceFleetId(v string) *InstanceFleetModifyConfig {
7073	s.InstanceFleetId = &v
7074	return s
7075}
7076
7077// SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
7078func (s *InstanceFleetModifyConfig) SetTargetOnDemandCapacity(v int64) *InstanceFleetModifyConfig {
7079	s.TargetOnDemandCapacity = &v
7080	return s
7081}
7082
7083// SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
7084func (s *InstanceFleetModifyConfig) SetTargetSpotCapacity(v int64) *InstanceFleetModifyConfig {
7085	s.TargetSpotCapacity = &v
7086	return s
7087}
7088
7089// The launch specification for Spot instances in the fleet, which determines
7090// the defined duration, provisioning timeout behavior, and allocation strategy.
7091//
7092// The instance fleet configuration is available only in Amazon EMR versions
7093// 4.8.0 and later, excluding 5.0.x versions. On-Demand and Spot instance allocation
7094// strategies are available in Amazon EMR version 5.12.1 and later.
7095type InstanceFleetProvisioningSpecifications struct {
7096	_ struct{} `type:"structure"`
7097
7098	// The launch specification for On-Demand instances in the instance fleet, which
7099	// determines the allocation strategy.
7100	//
7101	// The instance fleet configuration is available only in Amazon EMR versions
7102	// 4.8.0 and later, excluding 5.0.x versions. On-Demand instances allocation
7103	// strategy is available in Amazon EMR version 5.12.1 and later.
7104	OnDemandSpecification *OnDemandProvisioningSpecification `type:"structure"`
7105
7106	// The launch specification for Spot instances in the fleet, which determines
7107	// the defined duration, provisioning timeout behavior, and allocation strategy.
7108	SpotSpecification *SpotProvisioningSpecification `type:"structure"`
7109}
7110
7111// String returns the string representation
7112func (s InstanceFleetProvisioningSpecifications) String() string {
7113	return awsutil.Prettify(s)
7114}
7115
7116// GoString returns the string representation
7117func (s InstanceFleetProvisioningSpecifications) GoString() string {
7118	return s.String()
7119}
7120
7121// Validate inspects the fields of the type to determine if they are valid.
7122func (s *InstanceFleetProvisioningSpecifications) Validate() error {
7123	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetProvisioningSpecifications"}
7124	if s.OnDemandSpecification != nil {
7125		if err := s.OnDemandSpecification.Validate(); err != nil {
7126			invalidParams.AddNested("OnDemandSpecification", err.(request.ErrInvalidParams))
7127		}
7128	}
7129	if s.SpotSpecification != nil {
7130		if err := s.SpotSpecification.Validate(); err != nil {
7131			invalidParams.AddNested("SpotSpecification", err.(request.ErrInvalidParams))
7132		}
7133	}
7134
7135	if invalidParams.Len() > 0 {
7136		return invalidParams
7137	}
7138	return nil
7139}
7140
7141// SetOnDemandSpecification sets the OnDemandSpecification field's value.
7142func (s *InstanceFleetProvisioningSpecifications) SetOnDemandSpecification(v *OnDemandProvisioningSpecification) *InstanceFleetProvisioningSpecifications {
7143	s.OnDemandSpecification = v
7144	return s
7145}
7146
7147// SetSpotSpecification sets the SpotSpecification field's value.
7148func (s *InstanceFleetProvisioningSpecifications) SetSpotSpecification(v *SpotProvisioningSpecification) *InstanceFleetProvisioningSpecifications {
7149	s.SpotSpecification = v
7150	return s
7151}
7152
7153// Provides status change reason details for the instance fleet.
7154//
7155// The instance fleet configuration is available only in Amazon EMR versions
7156// 4.8.0 and later, excluding 5.0.x versions.
7157type InstanceFleetStateChangeReason struct {
7158	_ struct{} `type:"structure"`
7159
7160	// A code corresponding to the reason the state change occurred.
7161	Code *string `type:"string" enum:"InstanceFleetStateChangeReasonCode"`
7162
7163	// An explanatory message.
7164	Message *string `type:"string"`
7165}
7166
7167// String returns the string representation
7168func (s InstanceFleetStateChangeReason) String() string {
7169	return awsutil.Prettify(s)
7170}
7171
7172// GoString returns the string representation
7173func (s InstanceFleetStateChangeReason) GoString() string {
7174	return s.String()
7175}
7176
7177// SetCode sets the Code field's value.
7178func (s *InstanceFleetStateChangeReason) SetCode(v string) *InstanceFleetStateChangeReason {
7179	s.Code = &v
7180	return s
7181}
7182
7183// SetMessage sets the Message field's value.
7184func (s *InstanceFleetStateChangeReason) SetMessage(v string) *InstanceFleetStateChangeReason {
7185	s.Message = &v
7186	return s
7187}
7188
7189// The status of the instance fleet.
7190//
7191// The instance fleet configuration is available only in Amazon EMR versions
7192// 4.8.0 and later, excluding 5.0.x versions.
7193type InstanceFleetStatus struct {
7194	_ struct{} `type:"structure"`
7195
7196	// A code representing the instance fleet status.
7197	//
7198	//    * PROVISIONING—The instance fleet is provisioning EC2 resources and
7199	//    is not yet ready to run jobs.
7200	//
7201	//    * BOOTSTRAPPING—EC2 instances and other resources have been provisioned
7202	//    and the bootstrap actions specified for the instances are underway.
7203	//
7204	//    * RUNNING—EC2 instances and other resources are running. They are either
7205	//    executing jobs or waiting to execute jobs.
7206	//
7207	//    * RESIZING—A resize operation is underway. EC2 instances are either
7208	//    being added or removed.
7209	//
7210	//    * SUSPENDED—A resize operation could not complete. Existing EC2 instances
7211	//    are running, but instances can't be added or removed.
7212	//
7213	//    * TERMINATING—The instance fleet is terminating EC2 instances.
7214	//
7215	//    * TERMINATED—The instance fleet is no longer active, and all EC2 instances
7216	//    have been terminated.
7217	State *string `type:"string" enum:"InstanceFleetState"`
7218
7219	// Provides status change reason details for the instance fleet.
7220	StateChangeReason *InstanceFleetStateChangeReason `type:"structure"`
7221
7222	// Provides historical timestamps for the instance fleet, including the time
7223	// of creation, the time it became ready to run jobs, and the time of termination.
7224	Timeline *InstanceFleetTimeline `type:"structure"`
7225}
7226
7227// String returns the string representation
7228func (s InstanceFleetStatus) String() string {
7229	return awsutil.Prettify(s)
7230}
7231
7232// GoString returns the string representation
7233func (s InstanceFleetStatus) GoString() string {
7234	return s.String()
7235}
7236
7237// SetState sets the State field's value.
7238func (s *InstanceFleetStatus) SetState(v string) *InstanceFleetStatus {
7239	s.State = &v
7240	return s
7241}
7242
7243// SetStateChangeReason sets the StateChangeReason field's value.
7244func (s *InstanceFleetStatus) SetStateChangeReason(v *InstanceFleetStateChangeReason) *InstanceFleetStatus {
7245	s.StateChangeReason = v
7246	return s
7247}
7248
7249// SetTimeline sets the Timeline field's value.
7250func (s *InstanceFleetStatus) SetTimeline(v *InstanceFleetTimeline) *InstanceFleetStatus {
7251	s.Timeline = v
7252	return s
7253}
7254
7255// Provides historical timestamps for the instance fleet, including the time
7256// of creation, the time it became ready to run jobs, and the time of termination.
7257//
7258// The instance fleet configuration is available only in Amazon EMR versions
7259// 4.8.0 and later, excluding 5.0.x versions.
7260type InstanceFleetTimeline struct {
7261	_ struct{} `type:"structure"`
7262
7263	// The time and date the instance fleet was created.
7264	CreationDateTime *time.Time `type:"timestamp"`
7265
7266	// The time and date the instance fleet terminated.
7267	EndDateTime *time.Time `type:"timestamp"`
7268
7269	// The time and date the instance fleet was ready to run jobs.
7270	ReadyDateTime *time.Time `type:"timestamp"`
7271}
7272
7273// String returns the string representation
7274func (s InstanceFleetTimeline) String() string {
7275	return awsutil.Prettify(s)
7276}
7277
7278// GoString returns the string representation
7279func (s InstanceFleetTimeline) GoString() string {
7280	return s.String()
7281}
7282
7283// SetCreationDateTime sets the CreationDateTime field's value.
7284func (s *InstanceFleetTimeline) SetCreationDateTime(v time.Time) *InstanceFleetTimeline {
7285	s.CreationDateTime = &v
7286	return s
7287}
7288
7289// SetEndDateTime sets the EndDateTime field's value.
7290func (s *InstanceFleetTimeline) SetEndDateTime(v time.Time) *InstanceFleetTimeline {
7291	s.EndDateTime = &v
7292	return s
7293}
7294
7295// SetReadyDateTime sets the ReadyDateTime field's value.
7296func (s *InstanceFleetTimeline) SetReadyDateTime(v time.Time) *InstanceFleetTimeline {
7297	s.ReadyDateTime = &v
7298	return s
7299}
7300
7301// This entity represents an instance group, which is a group of instances that
7302// have common purpose. For example, CORE instance group is used for HDFS.
7303type InstanceGroup struct {
7304	_ struct{} `type:"structure"`
7305
7306	// An automatic scaling policy for a core instance group or task instance group
7307	// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
7308	// group dynamically adds and terminates EC2 instances in response to the value
7309	// of a CloudWatch metric. See PutAutoScalingPolicy.
7310	AutoScalingPolicy *AutoScalingPolicyDescription `type:"structure"`
7311
7312	// The bid price for each EC2 Spot instance type as defined by InstanceType.
7313	// Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice
7314	// is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
7315	BidPrice *string `type:"string"`
7316
7317	//
7318	// Amazon EMR releases 4.x or later.
7319	//
7320	// The list of configurations supplied for an EMR cluster instance group. You
7321	// can specify a separate configuration for each instance group (master, core,
7322	// and task).
7323	Configurations []*Configuration `type:"list"`
7324
7325	// The version number of the requested configuration specification for this
7326	// instance group.
7327	ConfigurationsVersion *int64 `type:"long"`
7328
7329	// The EBS block devices that are mapped to this instance group.
7330	EbsBlockDevices []*EbsBlockDevice `type:"list"`
7331
7332	// If the instance group is EBS-optimized. An Amazon EBS-optimized instance
7333	// uses an optimized configuration stack and provides additional, dedicated
7334	// capacity for Amazon EBS I/O.
7335	EbsOptimized *bool `type:"boolean"`
7336
7337	// The identifier of the instance group.
7338	Id *string `type:"string"`
7339
7340	// The type of the instance group. Valid values are MASTER, CORE or TASK.
7341	InstanceGroupType *string `type:"string" enum:"InstanceGroupType"`
7342
7343	// The EC2 instance type for all instances in the instance group.
7344	InstanceType *string `min:"1" type:"string"`
7345
7346	// A list of configurations that were successfully applied for an instance group
7347	// last time.
7348	LastSuccessfullyAppliedConfigurations []*Configuration `type:"list"`
7349
7350	// The version number of a configuration specification that was successfully
7351	// applied for an instance group last time.
7352	LastSuccessfullyAppliedConfigurationsVersion *int64 `type:"long"`
7353
7354	// The marketplace to provision instances for this group. Valid values are ON_DEMAND
7355	// or SPOT.
7356	Market *string `type:"string" enum:"MarketType"`
7357
7358	// The name of the instance group.
7359	Name *string `type:"string"`
7360
7361	// The target number of instances for the instance group.
7362	RequestedInstanceCount *int64 `type:"integer"`
7363
7364	// The number of instances currently running in this instance group.
7365	RunningInstanceCount *int64 `type:"integer"`
7366
7367	// Policy for customizing shrink operations.
7368	ShrinkPolicy *ShrinkPolicy `type:"structure"`
7369
7370	// The current status of the instance group.
7371	Status *InstanceGroupStatus `type:"structure"`
7372}
7373
7374// String returns the string representation
7375func (s InstanceGroup) String() string {
7376	return awsutil.Prettify(s)
7377}
7378
7379// GoString returns the string representation
7380func (s InstanceGroup) GoString() string {
7381	return s.String()
7382}
7383
7384// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
7385func (s *InstanceGroup) SetAutoScalingPolicy(v *AutoScalingPolicyDescription) *InstanceGroup {
7386	s.AutoScalingPolicy = v
7387	return s
7388}
7389
7390// SetBidPrice sets the BidPrice field's value.
7391func (s *InstanceGroup) SetBidPrice(v string) *InstanceGroup {
7392	s.BidPrice = &v
7393	return s
7394}
7395
7396// SetConfigurations sets the Configurations field's value.
7397func (s *InstanceGroup) SetConfigurations(v []*Configuration) *InstanceGroup {
7398	s.Configurations = v
7399	return s
7400}
7401
7402// SetConfigurationsVersion sets the ConfigurationsVersion field's value.
7403func (s *InstanceGroup) SetConfigurationsVersion(v int64) *InstanceGroup {
7404	s.ConfigurationsVersion = &v
7405	return s
7406}
7407
7408// SetEbsBlockDevices sets the EbsBlockDevices field's value.
7409func (s *InstanceGroup) SetEbsBlockDevices(v []*EbsBlockDevice) *InstanceGroup {
7410	s.EbsBlockDevices = v
7411	return s
7412}
7413
7414// SetEbsOptimized sets the EbsOptimized field's value.
7415func (s *InstanceGroup) SetEbsOptimized(v bool) *InstanceGroup {
7416	s.EbsOptimized = &v
7417	return s
7418}
7419
7420// SetId sets the Id field's value.
7421func (s *InstanceGroup) SetId(v string) *InstanceGroup {
7422	s.Id = &v
7423	return s
7424}
7425
7426// SetInstanceGroupType sets the InstanceGroupType field's value.
7427func (s *InstanceGroup) SetInstanceGroupType(v string) *InstanceGroup {
7428	s.InstanceGroupType = &v
7429	return s
7430}
7431
7432// SetInstanceType sets the InstanceType field's value.
7433func (s *InstanceGroup) SetInstanceType(v string) *InstanceGroup {
7434	s.InstanceType = &v
7435	return s
7436}
7437
7438// SetLastSuccessfullyAppliedConfigurations sets the LastSuccessfullyAppliedConfigurations field's value.
7439func (s *InstanceGroup) SetLastSuccessfullyAppliedConfigurations(v []*Configuration) *InstanceGroup {
7440	s.LastSuccessfullyAppliedConfigurations = v
7441	return s
7442}
7443
7444// SetLastSuccessfullyAppliedConfigurationsVersion sets the LastSuccessfullyAppliedConfigurationsVersion field's value.
7445func (s *InstanceGroup) SetLastSuccessfullyAppliedConfigurationsVersion(v int64) *InstanceGroup {
7446	s.LastSuccessfullyAppliedConfigurationsVersion = &v
7447	return s
7448}
7449
7450// SetMarket sets the Market field's value.
7451func (s *InstanceGroup) SetMarket(v string) *InstanceGroup {
7452	s.Market = &v
7453	return s
7454}
7455
7456// SetName sets the Name field's value.
7457func (s *InstanceGroup) SetName(v string) *InstanceGroup {
7458	s.Name = &v
7459	return s
7460}
7461
7462// SetRequestedInstanceCount sets the RequestedInstanceCount field's value.
7463func (s *InstanceGroup) SetRequestedInstanceCount(v int64) *InstanceGroup {
7464	s.RequestedInstanceCount = &v
7465	return s
7466}
7467
7468// SetRunningInstanceCount sets the RunningInstanceCount field's value.
7469func (s *InstanceGroup) SetRunningInstanceCount(v int64) *InstanceGroup {
7470	s.RunningInstanceCount = &v
7471	return s
7472}
7473
7474// SetShrinkPolicy sets the ShrinkPolicy field's value.
7475func (s *InstanceGroup) SetShrinkPolicy(v *ShrinkPolicy) *InstanceGroup {
7476	s.ShrinkPolicy = v
7477	return s
7478}
7479
7480// SetStatus sets the Status field's value.
7481func (s *InstanceGroup) SetStatus(v *InstanceGroupStatus) *InstanceGroup {
7482	s.Status = v
7483	return s
7484}
7485
7486// Configuration defining a new instance group.
7487type InstanceGroupConfig struct {
7488	_ struct{} `type:"structure"`
7489
7490	// An automatic scaling policy for a core instance group or task instance group
7491	// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
7492	// group dynamically adds and terminates EC2 instances in response to the value
7493	// of a CloudWatch metric. See PutAutoScalingPolicy.
7494	AutoScalingPolicy *AutoScalingPolicy `type:"structure"`
7495
7496	// The bid price for each EC2 Spot instance type as defined by InstanceType.
7497	// Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice
7498	// is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
7499	BidPrice *string `type:"string"`
7500
7501	//
7502	// Amazon EMR releases 4.x or later.
7503	//
7504	// The list of configurations supplied for an EMR cluster instance group. You
7505	// can specify a separate configuration for each instance group (master, core,
7506	// and task).
7507	Configurations []*Configuration `type:"list"`
7508
7509	// EBS configurations that will be attached to each EC2 instance in the instance
7510	// group.
7511	EbsConfiguration *EbsConfiguration `type:"structure"`
7512
7513	// Target number of instances for the instance group.
7514	//
7515	// InstanceCount is a required field
7516	InstanceCount *int64 `type:"integer" required:"true"`
7517
7518	// The role of the instance group in the cluster.
7519	//
7520	// InstanceRole is a required field
7521	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
7522
7523	// The EC2 instance type for all instances in the instance group.
7524	//
7525	// InstanceType is a required field
7526	InstanceType *string `min:"1" type:"string" required:"true"`
7527
7528	// Market type of the EC2 instances used to create a cluster node.
7529	Market *string `type:"string" enum:"MarketType"`
7530
7531	// Friendly name given to the instance group.
7532	Name *string `type:"string"`
7533}
7534
7535// String returns the string representation
7536func (s InstanceGroupConfig) String() string {
7537	return awsutil.Prettify(s)
7538}
7539
7540// GoString returns the string representation
7541func (s InstanceGroupConfig) GoString() string {
7542	return s.String()
7543}
7544
7545// Validate inspects the fields of the type to determine if they are valid.
7546func (s *InstanceGroupConfig) Validate() error {
7547	invalidParams := request.ErrInvalidParams{Context: "InstanceGroupConfig"}
7548	if s.InstanceCount == nil {
7549		invalidParams.Add(request.NewErrParamRequired("InstanceCount"))
7550	}
7551	if s.InstanceRole == nil {
7552		invalidParams.Add(request.NewErrParamRequired("InstanceRole"))
7553	}
7554	if s.InstanceType == nil {
7555		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
7556	}
7557	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
7558		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
7559	}
7560	if s.AutoScalingPolicy != nil {
7561		if err := s.AutoScalingPolicy.Validate(); err != nil {
7562			invalidParams.AddNested("AutoScalingPolicy", err.(request.ErrInvalidParams))
7563		}
7564	}
7565	if s.EbsConfiguration != nil {
7566		if err := s.EbsConfiguration.Validate(); err != nil {
7567			invalidParams.AddNested("EbsConfiguration", err.(request.ErrInvalidParams))
7568		}
7569	}
7570
7571	if invalidParams.Len() > 0 {
7572		return invalidParams
7573	}
7574	return nil
7575}
7576
7577// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
7578func (s *InstanceGroupConfig) SetAutoScalingPolicy(v *AutoScalingPolicy) *InstanceGroupConfig {
7579	s.AutoScalingPolicy = v
7580	return s
7581}
7582
7583// SetBidPrice sets the BidPrice field's value.
7584func (s *InstanceGroupConfig) SetBidPrice(v string) *InstanceGroupConfig {
7585	s.BidPrice = &v
7586	return s
7587}
7588
7589// SetConfigurations sets the Configurations field's value.
7590func (s *InstanceGroupConfig) SetConfigurations(v []*Configuration) *InstanceGroupConfig {
7591	s.Configurations = v
7592	return s
7593}
7594
7595// SetEbsConfiguration sets the EbsConfiguration field's value.
7596func (s *InstanceGroupConfig) SetEbsConfiguration(v *EbsConfiguration) *InstanceGroupConfig {
7597	s.EbsConfiguration = v
7598	return s
7599}
7600
7601// SetInstanceCount sets the InstanceCount field's value.
7602func (s *InstanceGroupConfig) SetInstanceCount(v int64) *InstanceGroupConfig {
7603	s.InstanceCount = &v
7604	return s
7605}
7606
7607// SetInstanceRole sets the InstanceRole field's value.
7608func (s *InstanceGroupConfig) SetInstanceRole(v string) *InstanceGroupConfig {
7609	s.InstanceRole = &v
7610	return s
7611}
7612
7613// SetInstanceType sets the InstanceType field's value.
7614func (s *InstanceGroupConfig) SetInstanceType(v string) *InstanceGroupConfig {
7615	s.InstanceType = &v
7616	return s
7617}
7618
7619// SetMarket sets the Market field's value.
7620func (s *InstanceGroupConfig) SetMarket(v string) *InstanceGroupConfig {
7621	s.Market = &v
7622	return s
7623}
7624
7625// SetName sets the Name field's value.
7626func (s *InstanceGroupConfig) SetName(v string) *InstanceGroupConfig {
7627	s.Name = &v
7628	return s
7629}
7630
7631// Detailed information about an instance group.
7632type InstanceGroupDetail struct {
7633	_ struct{} `type:"structure"`
7634
7635	// The bid price for each EC2 Spot instance type as defined by InstanceType.
7636	// Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice
7637	// is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
7638	BidPrice *string `type:"string"`
7639
7640	// The date/time the instance group was created.
7641	//
7642	// CreationDateTime is a required field
7643	CreationDateTime *time.Time `type:"timestamp" required:"true"`
7644
7645	// The date/time the instance group was terminated.
7646	EndDateTime *time.Time `type:"timestamp"`
7647
7648	// Unique identifier for the instance group.
7649	InstanceGroupId *string `type:"string"`
7650
7651	// Target number of instances to run in the instance group.
7652	//
7653	// InstanceRequestCount is a required field
7654	InstanceRequestCount *int64 `type:"integer" required:"true"`
7655
7656	// Instance group role in the cluster
7657	//
7658	// InstanceRole is a required field
7659	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
7660
7661	// Actual count of running instances.
7662	//
7663	// InstanceRunningCount is a required field
7664	InstanceRunningCount *int64 `type:"integer" required:"true"`
7665
7666	// EC2 instance type.
7667	//
7668	// InstanceType is a required field
7669	InstanceType *string `min:"1" type:"string" required:"true"`
7670
7671	// Details regarding the state of the instance group.
7672	LastStateChangeReason *string `type:"string"`
7673
7674	// Market type of the EC2 instances used to create a cluster node.
7675	//
7676	// Market is a required field
7677	Market *string `type:"string" required:"true" enum:"MarketType"`
7678
7679	// Friendly name for the instance group.
7680	Name *string `type:"string"`
7681
7682	// The date/time the instance group was available to the cluster.
7683	ReadyDateTime *time.Time `type:"timestamp"`
7684
7685	// The date/time the instance group was started.
7686	StartDateTime *time.Time `type:"timestamp"`
7687
7688	// State of instance group. The following values are deprecated: STARTING, TERMINATED,
7689	// and FAILED.
7690	//
7691	// State is a required field
7692	State *string `type:"string" required:"true" enum:"InstanceGroupState"`
7693}
7694
7695// String returns the string representation
7696func (s InstanceGroupDetail) String() string {
7697	return awsutil.Prettify(s)
7698}
7699
7700// GoString returns the string representation
7701func (s InstanceGroupDetail) GoString() string {
7702	return s.String()
7703}
7704
7705// SetBidPrice sets the BidPrice field's value.
7706func (s *InstanceGroupDetail) SetBidPrice(v string) *InstanceGroupDetail {
7707	s.BidPrice = &v
7708	return s
7709}
7710
7711// SetCreationDateTime sets the CreationDateTime field's value.
7712func (s *InstanceGroupDetail) SetCreationDateTime(v time.Time) *InstanceGroupDetail {
7713	s.CreationDateTime = &v
7714	return s
7715}
7716
7717// SetEndDateTime sets the EndDateTime field's value.
7718func (s *InstanceGroupDetail) SetEndDateTime(v time.Time) *InstanceGroupDetail {
7719	s.EndDateTime = &v
7720	return s
7721}
7722
7723// SetInstanceGroupId sets the InstanceGroupId field's value.
7724func (s *InstanceGroupDetail) SetInstanceGroupId(v string) *InstanceGroupDetail {
7725	s.InstanceGroupId = &v
7726	return s
7727}
7728
7729// SetInstanceRequestCount sets the InstanceRequestCount field's value.
7730func (s *InstanceGroupDetail) SetInstanceRequestCount(v int64) *InstanceGroupDetail {
7731	s.InstanceRequestCount = &v
7732	return s
7733}
7734
7735// SetInstanceRole sets the InstanceRole field's value.
7736func (s *InstanceGroupDetail) SetInstanceRole(v string) *InstanceGroupDetail {
7737	s.InstanceRole = &v
7738	return s
7739}
7740
7741// SetInstanceRunningCount sets the InstanceRunningCount field's value.
7742func (s *InstanceGroupDetail) SetInstanceRunningCount(v int64) *InstanceGroupDetail {
7743	s.InstanceRunningCount = &v
7744	return s
7745}
7746
7747// SetInstanceType sets the InstanceType field's value.
7748func (s *InstanceGroupDetail) SetInstanceType(v string) *InstanceGroupDetail {
7749	s.InstanceType = &v
7750	return s
7751}
7752
7753// SetLastStateChangeReason sets the LastStateChangeReason field's value.
7754func (s *InstanceGroupDetail) SetLastStateChangeReason(v string) *InstanceGroupDetail {
7755	s.LastStateChangeReason = &v
7756	return s
7757}
7758
7759// SetMarket sets the Market field's value.
7760func (s *InstanceGroupDetail) SetMarket(v string) *InstanceGroupDetail {
7761	s.Market = &v
7762	return s
7763}
7764
7765// SetName sets the Name field's value.
7766func (s *InstanceGroupDetail) SetName(v string) *InstanceGroupDetail {
7767	s.Name = &v
7768	return s
7769}
7770
7771// SetReadyDateTime sets the ReadyDateTime field's value.
7772func (s *InstanceGroupDetail) SetReadyDateTime(v time.Time) *InstanceGroupDetail {
7773	s.ReadyDateTime = &v
7774	return s
7775}
7776
7777// SetStartDateTime sets the StartDateTime field's value.
7778func (s *InstanceGroupDetail) SetStartDateTime(v time.Time) *InstanceGroupDetail {
7779	s.StartDateTime = &v
7780	return s
7781}
7782
7783// SetState sets the State field's value.
7784func (s *InstanceGroupDetail) SetState(v string) *InstanceGroupDetail {
7785	s.State = &v
7786	return s
7787}
7788
7789// Modify the size or configurations of an instance group.
7790type InstanceGroupModifyConfig struct {
7791	_ struct{} `type:"structure"`
7792
7793	// A list of new or modified configurations to apply for an instance group.
7794	Configurations []*Configuration `type:"list"`
7795
7796	// The EC2 InstanceIds to terminate. After you terminate the instances, the
7797	// instance group will not return to its original requested size.
7798	EC2InstanceIdsToTerminate []*string `type:"list"`
7799
7800	// Target size for the instance group.
7801	InstanceCount *int64 `type:"integer"`
7802
7803	// Unique ID of the instance group to expand or shrink.
7804	//
7805	// InstanceGroupId is a required field
7806	InstanceGroupId *string `type:"string" required:"true"`
7807
7808	// Policy for customizing shrink operations.
7809	ShrinkPolicy *ShrinkPolicy `type:"structure"`
7810}
7811
7812// String returns the string representation
7813func (s InstanceGroupModifyConfig) String() string {
7814	return awsutil.Prettify(s)
7815}
7816
7817// GoString returns the string representation
7818func (s InstanceGroupModifyConfig) GoString() string {
7819	return s.String()
7820}
7821
7822// Validate inspects the fields of the type to determine if they are valid.
7823func (s *InstanceGroupModifyConfig) Validate() error {
7824	invalidParams := request.ErrInvalidParams{Context: "InstanceGroupModifyConfig"}
7825	if s.InstanceGroupId == nil {
7826		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
7827	}
7828
7829	if invalidParams.Len() > 0 {
7830		return invalidParams
7831	}
7832	return nil
7833}
7834
7835// SetConfigurations sets the Configurations field's value.
7836func (s *InstanceGroupModifyConfig) SetConfigurations(v []*Configuration) *InstanceGroupModifyConfig {
7837	s.Configurations = v
7838	return s
7839}
7840
7841// SetEC2InstanceIdsToTerminate sets the EC2InstanceIdsToTerminate field's value.
7842func (s *InstanceGroupModifyConfig) SetEC2InstanceIdsToTerminate(v []*string) *InstanceGroupModifyConfig {
7843	s.EC2InstanceIdsToTerminate = v
7844	return s
7845}
7846
7847// SetInstanceCount sets the InstanceCount field's value.
7848func (s *InstanceGroupModifyConfig) SetInstanceCount(v int64) *InstanceGroupModifyConfig {
7849	s.InstanceCount = &v
7850	return s
7851}
7852
7853// SetInstanceGroupId sets the InstanceGroupId field's value.
7854func (s *InstanceGroupModifyConfig) SetInstanceGroupId(v string) *InstanceGroupModifyConfig {
7855	s.InstanceGroupId = &v
7856	return s
7857}
7858
7859// SetShrinkPolicy sets the ShrinkPolicy field's value.
7860func (s *InstanceGroupModifyConfig) SetShrinkPolicy(v *ShrinkPolicy) *InstanceGroupModifyConfig {
7861	s.ShrinkPolicy = v
7862	return s
7863}
7864
7865// The status change reason details for the instance group.
7866type InstanceGroupStateChangeReason struct {
7867	_ struct{} `type:"structure"`
7868
7869	// The programmable code for the state change reason.
7870	Code *string `type:"string" enum:"InstanceGroupStateChangeReasonCode"`
7871
7872	// The status change reason description.
7873	Message *string `type:"string"`
7874}
7875
7876// String returns the string representation
7877func (s InstanceGroupStateChangeReason) String() string {
7878	return awsutil.Prettify(s)
7879}
7880
7881// GoString returns the string representation
7882func (s InstanceGroupStateChangeReason) GoString() string {
7883	return s.String()
7884}
7885
7886// SetCode sets the Code field's value.
7887func (s *InstanceGroupStateChangeReason) SetCode(v string) *InstanceGroupStateChangeReason {
7888	s.Code = &v
7889	return s
7890}
7891
7892// SetMessage sets the Message field's value.
7893func (s *InstanceGroupStateChangeReason) SetMessage(v string) *InstanceGroupStateChangeReason {
7894	s.Message = &v
7895	return s
7896}
7897
7898// The details of the instance group status.
7899type InstanceGroupStatus struct {
7900	_ struct{} `type:"structure"`
7901
7902	// The current state of the instance group.
7903	State *string `type:"string" enum:"InstanceGroupState"`
7904
7905	// The status change reason details for the instance group.
7906	StateChangeReason *InstanceGroupStateChangeReason `type:"structure"`
7907
7908	// The timeline of the instance group status over time.
7909	Timeline *InstanceGroupTimeline `type:"structure"`
7910}
7911
7912// String returns the string representation
7913func (s InstanceGroupStatus) String() string {
7914	return awsutil.Prettify(s)
7915}
7916
7917// GoString returns the string representation
7918func (s InstanceGroupStatus) GoString() string {
7919	return s.String()
7920}
7921
7922// SetState sets the State field's value.
7923func (s *InstanceGroupStatus) SetState(v string) *InstanceGroupStatus {
7924	s.State = &v
7925	return s
7926}
7927
7928// SetStateChangeReason sets the StateChangeReason field's value.
7929func (s *InstanceGroupStatus) SetStateChangeReason(v *InstanceGroupStateChangeReason) *InstanceGroupStatus {
7930	s.StateChangeReason = v
7931	return s
7932}
7933
7934// SetTimeline sets the Timeline field's value.
7935func (s *InstanceGroupStatus) SetTimeline(v *InstanceGroupTimeline) *InstanceGroupStatus {
7936	s.Timeline = v
7937	return s
7938}
7939
7940// The timeline of the instance group lifecycle.
7941type InstanceGroupTimeline struct {
7942	_ struct{} `type:"structure"`
7943
7944	// The creation date and time of the instance group.
7945	CreationDateTime *time.Time `type:"timestamp"`
7946
7947	// The date and time when the instance group terminated.
7948	EndDateTime *time.Time `type:"timestamp"`
7949
7950	// The date and time when the instance group became ready to perform tasks.
7951	ReadyDateTime *time.Time `type:"timestamp"`
7952}
7953
7954// String returns the string representation
7955func (s InstanceGroupTimeline) String() string {
7956	return awsutil.Prettify(s)
7957}
7958
7959// GoString returns the string representation
7960func (s InstanceGroupTimeline) GoString() string {
7961	return s.String()
7962}
7963
7964// SetCreationDateTime sets the CreationDateTime field's value.
7965func (s *InstanceGroupTimeline) SetCreationDateTime(v time.Time) *InstanceGroupTimeline {
7966	s.CreationDateTime = &v
7967	return s
7968}
7969
7970// SetEndDateTime sets the EndDateTime field's value.
7971func (s *InstanceGroupTimeline) SetEndDateTime(v time.Time) *InstanceGroupTimeline {
7972	s.EndDateTime = &v
7973	return s
7974}
7975
7976// SetReadyDateTime sets the ReadyDateTime field's value.
7977func (s *InstanceGroupTimeline) SetReadyDateTime(v time.Time) *InstanceGroupTimeline {
7978	s.ReadyDateTime = &v
7979	return s
7980}
7981
7982// Custom policy for requesting termination protection or termination of specific
7983// instances when shrinking an instance group.
7984type InstanceResizePolicy struct {
7985	_ struct{} `type:"structure"`
7986
7987	// Decommissioning timeout override for the specific list of instances to be
7988	// terminated.
7989	InstanceTerminationTimeout *int64 `type:"integer"`
7990
7991	// Specific list of instances to be protected when shrinking an instance group.
7992	InstancesToProtect []*string `type:"list"`
7993
7994	// Specific list of instances to be terminated when shrinking an instance group.
7995	InstancesToTerminate []*string `type:"list"`
7996}
7997
7998// String returns the string representation
7999func (s InstanceResizePolicy) String() string {
8000	return awsutil.Prettify(s)
8001}
8002
8003// GoString returns the string representation
8004func (s InstanceResizePolicy) GoString() string {
8005	return s.String()
8006}
8007
8008// SetInstanceTerminationTimeout sets the InstanceTerminationTimeout field's value.
8009func (s *InstanceResizePolicy) SetInstanceTerminationTimeout(v int64) *InstanceResizePolicy {
8010	s.InstanceTerminationTimeout = &v
8011	return s
8012}
8013
8014// SetInstancesToProtect sets the InstancesToProtect field's value.
8015func (s *InstanceResizePolicy) SetInstancesToProtect(v []*string) *InstanceResizePolicy {
8016	s.InstancesToProtect = v
8017	return s
8018}
8019
8020// SetInstancesToTerminate sets the InstancesToTerminate field's value.
8021func (s *InstanceResizePolicy) SetInstancesToTerminate(v []*string) *InstanceResizePolicy {
8022	s.InstancesToTerminate = v
8023	return s
8024}
8025
8026// The details of the status change reason for the instance.
8027type InstanceStateChangeReason struct {
8028	_ struct{} `type:"structure"`
8029
8030	// The programmable code for the state change reason.
8031	Code *string `type:"string" enum:"InstanceStateChangeReasonCode"`
8032
8033	// The status change reason description.
8034	Message *string `type:"string"`
8035}
8036
8037// String returns the string representation
8038func (s InstanceStateChangeReason) String() string {
8039	return awsutil.Prettify(s)
8040}
8041
8042// GoString returns the string representation
8043func (s InstanceStateChangeReason) GoString() string {
8044	return s.String()
8045}
8046
8047// SetCode sets the Code field's value.
8048func (s *InstanceStateChangeReason) SetCode(v string) *InstanceStateChangeReason {
8049	s.Code = &v
8050	return s
8051}
8052
8053// SetMessage sets the Message field's value.
8054func (s *InstanceStateChangeReason) SetMessage(v string) *InstanceStateChangeReason {
8055	s.Message = &v
8056	return s
8057}
8058
8059// The instance status details.
8060type InstanceStatus struct {
8061	_ struct{} `type:"structure"`
8062
8063	// The current state of the instance.
8064	State *string `type:"string" enum:"InstanceState"`
8065
8066	// The details of the status change reason for the instance.
8067	StateChangeReason *InstanceStateChangeReason `type:"structure"`
8068
8069	// The timeline of the instance status over time.
8070	Timeline *InstanceTimeline `type:"structure"`
8071}
8072
8073// String returns the string representation
8074func (s InstanceStatus) String() string {
8075	return awsutil.Prettify(s)
8076}
8077
8078// GoString returns the string representation
8079func (s InstanceStatus) GoString() string {
8080	return s.String()
8081}
8082
8083// SetState sets the State field's value.
8084func (s *InstanceStatus) SetState(v string) *InstanceStatus {
8085	s.State = &v
8086	return s
8087}
8088
8089// SetStateChangeReason sets the StateChangeReason field's value.
8090func (s *InstanceStatus) SetStateChangeReason(v *InstanceStateChangeReason) *InstanceStatus {
8091	s.StateChangeReason = v
8092	return s
8093}
8094
8095// SetTimeline sets the Timeline field's value.
8096func (s *InstanceStatus) SetTimeline(v *InstanceTimeline) *InstanceStatus {
8097	s.Timeline = v
8098	return s
8099}
8100
8101// The timeline of the instance lifecycle.
8102type InstanceTimeline struct {
8103	_ struct{} `type:"structure"`
8104
8105	// The creation date and time of the instance.
8106	CreationDateTime *time.Time `type:"timestamp"`
8107
8108	// The date and time when the instance was terminated.
8109	EndDateTime *time.Time `type:"timestamp"`
8110
8111	// The date and time when the instance was ready to perform tasks.
8112	ReadyDateTime *time.Time `type:"timestamp"`
8113}
8114
8115// String returns the string representation
8116func (s InstanceTimeline) String() string {
8117	return awsutil.Prettify(s)
8118}
8119
8120// GoString returns the string representation
8121func (s InstanceTimeline) GoString() string {
8122	return s.String()
8123}
8124
8125// SetCreationDateTime sets the CreationDateTime field's value.
8126func (s *InstanceTimeline) SetCreationDateTime(v time.Time) *InstanceTimeline {
8127	s.CreationDateTime = &v
8128	return s
8129}
8130
8131// SetEndDateTime sets the EndDateTime field's value.
8132func (s *InstanceTimeline) SetEndDateTime(v time.Time) *InstanceTimeline {
8133	s.EndDateTime = &v
8134	return s
8135}
8136
8137// SetReadyDateTime sets the ReadyDateTime field's value.
8138func (s *InstanceTimeline) SetReadyDateTime(v time.Time) *InstanceTimeline {
8139	s.ReadyDateTime = &v
8140	return s
8141}
8142
8143// An instance type configuration for each instance type in an instance fleet,
8144// which determines the EC2 instances Amazon EMR attempts to provision to fulfill
8145// On-Demand and Spot target capacities. There can be a maximum of 5 instance
8146// type configurations in a fleet.
8147//
8148// The instance fleet configuration is available only in Amazon EMR versions
8149// 4.8.0 and later, excluding 5.0.x versions.
8150type InstanceTypeConfig struct {
8151	_ struct{} `type:"structure"`
8152
8153	// The bid price for each EC2 Spot instance type as defined by InstanceType.
8154	// Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice
8155	// is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
8156	BidPrice *string `type:"string"`
8157
8158	// The bid price, as a percentage of On-Demand price, for each EC2 Spot instance
8159	// as defined by InstanceType. Expressed as a number (for example, 20 specifies
8160	// 20%). If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice is provided,
8161	// BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
8162	BidPriceAsPercentageOfOnDemandPrice *float64 `type:"double"`
8163
8164	// A configuration classification that applies when provisioning cluster instances,
8165	// which can include configurations for applications and software that run on
8166	// the cluster.
8167	Configurations []*Configuration `type:"list"`
8168
8169	// The configuration of Amazon Elastic Block Storage (EBS) attached to each
8170	// instance as defined by InstanceType.
8171	EbsConfiguration *EbsConfiguration `type:"structure"`
8172
8173	// An EC2 instance type, such as m3.xlarge.
8174	//
8175	// InstanceType is a required field
8176	InstanceType *string `min:"1" type:"string" required:"true"`
8177
8178	// The number of units that a provisioned instance of this type provides toward
8179	// fulfilling the target capacities defined in InstanceFleetConfig. This value
8180	// is 1 for a master instance fleet, and must be 1 or greater for core and task
8181	// instance fleets. Defaults to 1 if not specified.
8182	WeightedCapacity *int64 `type:"integer"`
8183}
8184
8185// String returns the string representation
8186func (s InstanceTypeConfig) String() string {
8187	return awsutil.Prettify(s)
8188}
8189
8190// GoString returns the string representation
8191func (s InstanceTypeConfig) GoString() string {
8192	return s.String()
8193}
8194
8195// Validate inspects the fields of the type to determine if they are valid.
8196func (s *InstanceTypeConfig) Validate() error {
8197	invalidParams := request.ErrInvalidParams{Context: "InstanceTypeConfig"}
8198	if s.InstanceType == nil {
8199		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
8200	}
8201	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
8202		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
8203	}
8204	if s.EbsConfiguration != nil {
8205		if err := s.EbsConfiguration.Validate(); err != nil {
8206			invalidParams.AddNested("EbsConfiguration", err.(request.ErrInvalidParams))
8207		}
8208	}
8209
8210	if invalidParams.Len() > 0 {
8211		return invalidParams
8212	}
8213	return nil
8214}
8215
8216// SetBidPrice sets the BidPrice field's value.
8217func (s *InstanceTypeConfig) SetBidPrice(v string) *InstanceTypeConfig {
8218	s.BidPrice = &v
8219	return s
8220}
8221
8222// SetBidPriceAsPercentageOfOnDemandPrice sets the BidPriceAsPercentageOfOnDemandPrice field's value.
8223func (s *InstanceTypeConfig) SetBidPriceAsPercentageOfOnDemandPrice(v float64) *InstanceTypeConfig {
8224	s.BidPriceAsPercentageOfOnDemandPrice = &v
8225	return s
8226}
8227
8228// SetConfigurations sets the Configurations field's value.
8229func (s *InstanceTypeConfig) SetConfigurations(v []*Configuration) *InstanceTypeConfig {
8230	s.Configurations = v
8231	return s
8232}
8233
8234// SetEbsConfiguration sets the EbsConfiguration field's value.
8235func (s *InstanceTypeConfig) SetEbsConfiguration(v *EbsConfiguration) *InstanceTypeConfig {
8236	s.EbsConfiguration = v
8237	return s
8238}
8239
8240// SetInstanceType sets the InstanceType field's value.
8241func (s *InstanceTypeConfig) SetInstanceType(v string) *InstanceTypeConfig {
8242	s.InstanceType = &v
8243	return s
8244}
8245
8246// SetWeightedCapacity sets the WeightedCapacity field's value.
8247func (s *InstanceTypeConfig) SetWeightedCapacity(v int64) *InstanceTypeConfig {
8248	s.WeightedCapacity = &v
8249	return s
8250}
8251
8252// The configuration specification for each instance type in an instance fleet.
8253//
8254// The instance fleet configuration is available only in Amazon EMR versions
8255// 4.8.0 and later, excluding 5.0.x versions.
8256type InstanceTypeSpecification struct {
8257	_ struct{} `type:"structure"`
8258
8259	// The bid price for each EC2 Spot instance type as defined by InstanceType.
8260	// Expressed in USD.
8261	BidPrice *string `type:"string"`
8262
8263	// The bid price, as a percentage of On-Demand price, for each EC2 Spot instance
8264	// as defined by InstanceType. Expressed as a number (for example, 20 specifies
8265	// 20%).
8266	BidPriceAsPercentageOfOnDemandPrice *float64 `type:"double"`
8267
8268	// A configuration classification that applies when provisioning cluster instances,
8269	// which can include configurations for applications and software bundled with
8270	// Amazon EMR.
8271	Configurations []*Configuration `type:"list"`
8272
8273	// The configuration of Amazon Elastic Block Storage (EBS) attached to each
8274	// instance as defined by InstanceType.
8275	EbsBlockDevices []*EbsBlockDevice `type:"list"`
8276
8277	// Evaluates to TRUE when the specified InstanceType is EBS-optimized.
8278	EbsOptimized *bool `type:"boolean"`
8279
8280	// The EC2 instance type, for example m3.xlarge.
8281	InstanceType *string `min:"1" type:"string"`
8282
8283	// The number of units that a provisioned instance of this type provides toward
8284	// fulfilling the target capacities defined in InstanceFleetConfig. Capacity
8285	// values represent performance characteristics such as vCPUs, memory, or I/O.
8286	// If not specified, the default value is 1.
8287	WeightedCapacity *int64 `type:"integer"`
8288}
8289
8290// String returns the string representation
8291func (s InstanceTypeSpecification) String() string {
8292	return awsutil.Prettify(s)
8293}
8294
8295// GoString returns the string representation
8296func (s InstanceTypeSpecification) GoString() string {
8297	return s.String()
8298}
8299
8300// SetBidPrice sets the BidPrice field's value.
8301func (s *InstanceTypeSpecification) SetBidPrice(v string) *InstanceTypeSpecification {
8302	s.BidPrice = &v
8303	return s
8304}
8305
8306// SetBidPriceAsPercentageOfOnDemandPrice sets the BidPriceAsPercentageOfOnDemandPrice field's value.
8307func (s *InstanceTypeSpecification) SetBidPriceAsPercentageOfOnDemandPrice(v float64) *InstanceTypeSpecification {
8308	s.BidPriceAsPercentageOfOnDemandPrice = &v
8309	return s
8310}
8311
8312// SetConfigurations sets the Configurations field's value.
8313func (s *InstanceTypeSpecification) SetConfigurations(v []*Configuration) *InstanceTypeSpecification {
8314	s.Configurations = v
8315	return s
8316}
8317
8318// SetEbsBlockDevices sets the EbsBlockDevices field's value.
8319func (s *InstanceTypeSpecification) SetEbsBlockDevices(v []*EbsBlockDevice) *InstanceTypeSpecification {
8320	s.EbsBlockDevices = v
8321	return s
8322}
8323
8324// SetEbsOptimized sets the EbsOptimized field's value.
8325func (s *InstanceTypeSpecification) SetEbsOptimized(v bool) *InstanceTypeSpecification {
8326	s.EbsOptimized = &v
8327	return s
8328}
8329
8330// SetInstanceType sets the InstanceType field's value.
8331func (s *InstanceTypeSpecification) SetInstanceType(v string) *InstanceTypeSpecification {
8332	s.InstanceType = &v
8333	return s
8334}
8335
8336// SetWeightedCapacity sets the WeightedCapacity field's value.
8337func (s *InstanceTypeSpecification) SetWeightedCapacity(v int64) *InstanceTypeSpecification {
8338	s.WeightedCapacity = &v
8339	return s
8340}
8341
8342// Indicates that an error occurred while processing the request and that the
8343// request was not completed.
8344type InternalServerError struct {
8345	_            struct{}                  `type:"structure"`
8346	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8347
8348	Message_ *string `locationName:"message" type:"string"`
8349}
8350
8351// String returns the string representation
8352func (s InternalServerError) String() string {
8353	return awsutil.Prettify(s)
8354}
8355
8356// GoString returns the string representation
8357func (s InternalServerError) GoString() string {
8358	return s.String()
8359}
8360
8361func newErrorInternalServerError(v protocol.ResponseMetadata) error {
8362	return &InternalServerError{
8363		RespMetadata: v,
8364	}
8365}
8366
8367// Code returns the exception type name.
8368func (s *InternalServerError) Code() string {
8369	return "InternalServerError"
8370}
8371
8372// Message returns the exception's message.
8373func (s *InternalServerError) Message() string {
8374	if s.Message_ != nil {
8375		return *s.Message_
8376	}
8377	return ""
8378}
8379
8380// OrigErr always returns nil, satisfies awserr.Error interface.
8381func (s *InternalServerError) OrigErr() error {
8382	return nil
8383}
8384
8385func (s *InternalServerError) Error() string {
8386	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8387}
8388
8389// Status code returns the HTTP status code for the request's response error.
8390func (s *InternalServerError) StatusCode() int {
8391	return s.RespMetadata.StatusCode
8392}
8393
8394// RequestID returns the service's response RequestID for request.
8395func (s *InternalServerError) RequestID() string {
8396	return s.RespMetadata.RequestID
8397}
8398
8399// This exception occurs when there is an internal failure in the EMR service.
8400type InternalServerException struct {
8401	_            struct{}                  `type:"structure"`
8402	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8403
8404	// The message associated with the exception.
8405	Message_ *string `locationName:"Message" type:"string"`
8406}
8407
8408// String returns the string representation
8409func (s InternalServerException) String() string {
8410	return awsutil.Prettify(s)
8411}
8412
8413// GoString returns the string representation
8414func (s InternalServerException) GoString() string {
8415	return s.String()
8416}
8417
8418func newErrorInternalServerException(v protocol.ResponseMetadata) error {
8419	return &InternalServerException{
8420		RespMetadata: v,
8421	}
8422}
8423
8424// Code returns the exception type name.
8425func (s *InternalServerException) Code() string {
8426	return "InternalServerException"
8427}
8428
8429// Message returns the exception's message.
8430func (s *InternalServerException) Message() string {
8431	if s.Message_ != nil {
8432		return *s.Message_
8433	}
8434	return ""
8435}
8436
8437// OrigErr always returns nil, satisfies awserr.Error interface.
8438func (s *InternalServerException) OrigErr() error {
8439	return nil
8440}
8441
8442func (s *InternalServerException) Error() string {
8443	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8444}
8445
8446// Status code returns the HTTP status code for the request's response error.
8447func (s *InternalServerException) StatusCode() int {
8448	return s.RespMetadata.StatusCode
8449}
8450
8451// RequestID returns the service's response RequestID for request.
8452func (s *InternalServerException) RequestID() string {
8453	return s.RespMetadata.RequestID
8454}
8455
8456// This exception occurs when there is something wrong with user input.
8457type InvalidRequestException struct {
8458	_            struct{}                  `type:"structure"`
8459	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8460
8461	// The error code associated with the exception.
8462	ErrorCode *string `min:"1" type:"string"`
8463
8464	// The message associated with the exception.
8465	Message_ *string `locationName:"Message" type:"string"`
8466}
8467
8468// String returns the string representation
8469func (s InvalidRequestException) String() string {
8470	return awsutil.Prettify(s)
8471}
8472
8473// GoString returns the string representation
8474func (s InvalidRequestException) GoString() string {
8475	return s.String()
8476}
8477
8478func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
8479	return &InvalidRequestException{
8480		RespMetadata: v,
8481	}
8482}
8483
8484// Code returns the exception type name.
8485func (s *InvalidRequestException) Code() string {
8486	return "InvalidRequestException"
8487}
8488
8489// Message returns the exception's message.
8490func (s *InvalidRequestException) Message() string {
8491	if s.Message_ != nil {
8492		return *s.Message_
8493	}
8494	return ""
8495}
8496
8497// OrigErr always returns nil, satisfies awserr.Error interface.
8498func (s *InvalidRequestException) OrigErr() error {
8499	return nil
8500}
8501
8502func (s *InvalidRequestException) Error() string {
8503	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
8504}
8505
8506// Status code returns the HTTP status code for the request's response error.
8507func (s *InvalidRequestException) StatusCode() int {
8508	return s.RespMetadata.StatusCode
8509}
8510
8511// RequestID returns the service's response RequestID for request.
8512func (s *InvalidRequestException) RequestID() string {
8513	return s.RespMetadata.RequestID
8514}
8515
8516// A description of a cluster (job flow).
8517type JobFlowDetail struct {
8518	_ struct{} `type:"structure"`
8519
8520	// Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
8521	// 4.0 and later, ReleaseLabel is used. To specify a custom AMI, use CustomAmiID.
8522	AmiVersion *string `type:"string"`
8523
8524	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
8525	// The IAM role provides a way for the automatic scaling feature to get the
8526	// required permissions it needs to launch and terminate EC2 instances in an
8527	// instance group.
8528	AutoScalingRole *string `type:"string"`
8529
8530	// A list of the bootstrap actions run by the job flow.
8531	BootstrapActions []*BootstrapActionDetail `type:"list"`
8532
8533	// Describes the execution status of the job flow.
8534	//
8535	// ExecutionStatusDetail is a required field
8536	ExecutionStatusDetail *JobFlowExecutionStatusDetail `type:"structure" required:"true"`
8537
8538	// Describes the Amazon EC2 instances of the job flow.
8539	//
8540	// Instances is a required field
8541	Instances *JobFlowInstancesDetail `type:"structure" required:"true"`
8542
8543	// The job flow identifier.
8544	//
8545	// JobFlowId is a required field
8546	JobFlowId *string `type:"string" required:"true"`
8547
8548	// The IAM role that was specified when the job flow was launched. The EC2 instances
8549	// of the job flow assume this role.
8550	JobFlowRole *string `type:"string"`
8551
8552	// The AWS KMS customer master key (CMK) used for encrypting log files. This
8553	// attribute is only available with EMR version 5.30.0 and later, excluding
8554	// EMR 6.0.0.
8555	LogEncryptionKmsKeyId *string `type:"string"`
8556
8557	// The location in Amazon S3 where log files for the job are stored.
8558	LogUri *string `type:"string"`
8559
8560	// The name of the job flow.
8561	//
8562	// Name is a required field
8563	Name *string `type:"string" required:"true"`
8564
8565	// The way that individual Amazon EC2 instances terminate when an automatic
8566	// scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
8567	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
8568	// regardless of when the request to terminate the instance was submitted. This
8569	// option is only available with Amazon EMR 5.1.0 and later and is the default
8570	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
8571	// that Amazon EMR blacklists and drains tasks from nodes before terminating
8572	// the Amazon EC2 instances, regardless of the instance-hour boundary. With
8573	// either behavior, Amazon EMR removes the least active nodes first and blocks
8574	// instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
8575	// available only in Amazon EMR version 4.1.0 and later, and is the default
8576	// for versions of Amazon EMR earlier than 5.1.0.
8577	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
8578
8579	// The IAM role that will be assumed by the Amazon EMR service to access AWS
8580	// resources on your behalf.
8581	ServiceRole *string `type:"string"`
8582
8583	// A list of steps run by the job flow.
8584	Steps []*StepDetail `type:"list"`
8585
8586	// A list of strings set by third party software when the job flow is launched.
8587	// If you are not using third party software to manage the job flow this value
8588	// is empty.
8589	SupportedProducts []*string `type:"list"`
8590
8591	// Indicates whether the cluster is visible to all IAM users of the AWS account
8592	// associated with the cluster. The default value, true, indicates that all
8593	// IAM users in the AWS account can perform cluster actions if they have the
8594	// proper IAM policy permissions. If this value is false, only the IAM user
8595	// that created the cluster can perform actions. This value can be changed on
8596	// a running cluster by using the SetVisibleToAllUsers action. You can override
8597	// the default value of true when you create a cluster by using the VisibleToAllUsers
8598	// parameter of the RunJobFlow action.
8599	VisibleToAllUsers *bool `type:"boolean"`
8600}
8601
8602// String returns the string representation
8603func (s JobFlowDetail) String() string {
8604	return awsutil.Prettify(s)
8605}
8606
8607// GoString returns the string representation
8608func (s JobFlowDetail) GoString() string {
8609	return s.String()
8610}
8611
8612// SetAmiVersion sets the AmiVersion field's value.
8613func (s *JobFlowDetail) SetAmiVersion(v string) *JobFlowDetail {
8614	s.AmiVersion = &v
8615	return s
8616}
8617
8618// SetAutoScalingRole sets the AutoScalingRole field's value.
8619func (s *JobFlowDetail) SetAutoScalingRole(v string) *JobFlowDetail {
8620	s.AutoScalingRole = &v
8621	return s
8622}
8623
8624// SetBootstrapActions sets the BootstrapActions field's value.
8625func (s *JobFlowDetail) SetBootstrapActions(v []*BootstrapActionDetail) *JobFlowDetail {
8626	s.BootstrapActions = v
8627	return s
8628}
8629
8630// SetExecutionStatusDetail sets the ExecutionStatusDetail field's value.
8631func (s *JobFlowDetail) SetExecutionStatusDetail(v *JobFlowExecutionStatusDetail) *JobFlowDetail {
8632	s.ExecutionStatusDetail = v
8633	return s
8634}
8635
8636// SetInstances sets the Instances field's value.
8637func (s *JobFlowDetail) SetInstances(v *JobFlowInstancesDetail) *JobFlowDetail {
8638	s.Instances = v
8639	return s
8640}
8641
8642// SetJobFlowId sets the JobFlowId field's value.
8643func (s *JobFlowDetail) SetJobFlowId(v string) *JobFlowDetail {
8644	s.JobFlowId = &v
8645	return s
8646}
8647
8648// SetJobFlowRole sets the JobFlowRole field's value.
8649func (s *JobFlowDetail) SetJobFlowRole(v string) *JobFlowDetail {
8650	s.JobFlowRole = &v
8651	return s
8652}
8653
8654// SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
8655func (s *JobFlowDetail) SetLogEncryptionKmsKeyId(v string) *JobFlowDetail {
8656	s.LogEncryptionKmsKeyId = &v
8657	return s
8658}
8659
8660// SetLogUri sets the LogUri field's value.
8661func (s *JobFlowDetail) SetLogUri(v string) *JobFlowDetail {
8662	s.LogUri = &v
8663	return s
8664}
8665
8666// SetName sets the Name field's value.
8667func (s *JobFlowDetail) SetName(v string) *JobFlowDetail {
8668	s.Name = &v
8669	return s
8670}
8671
8672// SetScaleDownBehavior sets the ScaleDownBehavior field's value.
8673func (s *JobFlowDetail) SetScaleDownBehavior(v string) *JobFlowDetail {
8674	s.ScaleDownBehavior = &v
8675	return s
8676}
8677
8678// SetServiceRole sets the ServiceRole field's value.
8679func (s *JobFlowDetail) SetServiceRole(v string) *JobFlowDetail {
8680	s.ServiceRole = &v
8681	return s
8682}
8683
8684// SetSteps sets the Steps field's value.
8685func (s *JobFlowDetail) SetSteps(v []*StepDetail) *JobFlowDetail {
8686	s.Steps = v
8687	return s
8688}
8689
8690// SetSupportedProducts sets the SupportedProducts field's value.
8691func (s *JobFlowDetail) SetSupportedProducts(v []*string) *JobFlowDetail {
8692	s.SupportedProducts = v
8693	return s
8694}
8695
8696// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
8697func (s *JobFlowDetail) SetVisibleToAllUsers(v bool) *JobFlowDetail {
8698	s.VisibleToAllUsers = &v
8699	return s
8700}
8701
8702// Describes the status of the cluster (job flow).
8703type JobFlowExecutionStatusDetail struct {
8704	_ struct{} `type:"structure"`
8705
8706	// The creation date and time of the job flow.
8707	//
8708	// CreationDateTime is a required field
8709	CreationDateTime *time.Time `type:"timestamp" required:"true"`
8710
8711	// The completion date and time of the job flow.
8712	EndDateTime *time.Time `type:"timestamp"`
8713
8714	// Description of the job flow last changed state.
8715	LastStateChangeReason *string `type:"string"`
8716
8717	// The date and time when the job flow was ready to start running bootstrap
8718	// actions.
8719	ReadyDateTime *time.Time `type:"timestamp"`
8720
8721	// The start date and time of the job flow.
8722	StartDateTime *time.Time `type:"timestamp"`
8723
8724	// The state of the job flow.
8725	//
8726	// State is a required field
8727	State *string `type:"string" required:"true" enum:"JobFlowExecutionState"`
8728}
8729
8730// String returns the string representation
8731func (s JobFlowExecutionStatusDetail) String() string {
8732	return awsutil.Prettify(s)
8733}
8734
8735// GoString returns the string representation
8736func (s JobFlowExecutionStatusDetail) GoString() string {
8737	return s.String()
8738}
8739
8740// SetCreationDateTime sets the CreationDateTime field's value.
8741func (s *JobFlowExecutionStatusDetail) SetCreationDateTime(v time.Time) *JobFlowExecutionStatusDetail {
8742	s.CreationDateTime = &v
8743	return s
8744}
8745
8746// SetEndDateTime sets the EndDateTime field's value.
8747func (s *JobFlowExecutionStatusDetail) SetEndDateTime(v time.Time) *JobFlowExecutionStatusDetail {
8748	s.EndDateTime = &v
8749	return s
8750}
8751
8752// SetLastStateChangeReason sets the LastStateChangeReason field's value.
8753func (s *JobFlowExecutionStatusDetail) SetLastStateChangeReason(v string) *JobFlowExecutionStatusDetail {
8754	s.LastStateChangeReason = &v
8755	return s
8756}
8757
8758// SetReadyDateTime sets the ReadyDateTime field's value.
8759func (s *JobFlowExecutionStatusDetail) SetReadyDateTime(v time.Time) *JobFlowExecutionStatusDetail {
8760	s.ReadyDateTime = &v
8761	return s
8762}
8763
8764// SetStartDateTime sets the StartDateTime field's value.
8765func (s *JobFlowExecutionStatusDetail) SetStartDateTime(v time.Time) *JobFlowExecutionStatusDetail {
8766	s.StartDateTime = &v
8767	return s
8768}
8769
8770// SetState sets the State field's value.
8771func (s *JobFlowExecutionStatusDetail) SetState(v string) *JobFlowExecutionStatusDetail {
8772	s.State = &v
8773	return s
8774}
8775
8776// A description of the Amazon EC2 instance on which the cluster (job flow)
8777// runs. A valid JobFlowInstancesConfig must contain either InstanceGroups or
8778// InstanceFleets, which is the recommended configuration. They cannot be used
8779// together. You may also have MasterInstanceType, SlaveInstanceType, and InstanceCount
8780// (all three must be present), but we don't recommend this configuration.
8781type JobFlowInstancesConfig struct {
8782	_ struct{} `type:"structure"`
8783
8784	// A list of additional Amazon EC2 security group IDs for the master node.
8785	AdditionalMasterSecurityGroups []*string `type:"list"`
8786
8787	// A list of additional Amazon EC2 security group IDs for the core and task
8788	// nodes.
8789	AdditionalSlaveSecurityGroups []*string `type:"list"`
8790
8791	// The name of the EC2 key pair that can be used to ssh to the master node as
8792	// the user called "hadoop."
8793	Ec2KeyName *string `type:"string"`
8794
8795	// Applies to clusters that use the uniform instance group configuration. To
8796	// launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this
8797	// parameter to the identifier of the Amazon VPC subnet where you want the cluster
8798	// to launch. If you do not specify this value and your account supports EC2-Classic,
8799	// the cluster launches in EC2-Classic.
8800	Ec2SubnetId *string `type:"string"`
8801
8802	// Applies to clusters that use the instance fleet configuration. When multiple
8803	// EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances
8804	// in the optimal subnet.
8805	//
8806	// The instance fleet configuration is available only in Amazon EMR versions
8807	// 4.8.0 and later, excluding 5.0.x versions.
8808	Ec2SubnetIds []*string `type:"list"`
8809
8810	// The identifier of the Amazon EC2 security group for the master node.
8811	EmrManagedMasterSecurityGroup *string `type:"string"`
8812
8813	// The identifier of the Amazon EC2 security group for the core and task nodes.
8814	EmrManagedSlaveSecurityGroup *string `type:"string"`
8815
8816	// Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop
8817	// version for the cluster. Valid inputs are "0.18" (deprecated), "0.20" (deprecated),
8818	// "0.20.205" (deprecated), "1.0.3", "2.2.0", or "2.4.0". If you do not set
8819	// this value, the default of 0.18 is used, unless the AmiVersion parameter
8820	// is set in the RunJobFlow call, in which case the default version of Hadoop
8821	// for that AMI version is used.
8822	HadoopVersion *string `type:"string"`
8823
8824	// The number of EC2 instances in the cluster.
8825	InstanceCount *int64 `type:"integer"`
8826
8827	//
8828	// The instance fleet configuration is available only in Amazon EMR versions
8829	// 4.8.0 and later, excluding 5.0.x versions.
8830	//
8831	// Describes the EC2 instances and instance configurations for clusters that
8832	// use the instance fleet configuration.
8833	InstanceFleets []*InstanceFleetConfig `type:"list"`
8834
8835	// Configuration for the instance groups in a cluster.
8836	InstanceGroups []*InstanceGroupConfig `type:"list"`
8837
8838	// Specifies whether the cluster should remain available after completing all
8839	// steps.
8840	KeepJobFlowAliveWhenNoSteps *bool `type:"boolean"`
8841
8842	// The EC2 instance type of the master node.
8843	MasterInstanceType *string `min:"1" type:"string"`
8844
8845	// The Availability Zone in which the cluster runs.
8846	Placement *PlacementType `type:"structure"`
8847
8848	// The identifier of the Amazon EC2 security group for the Amazon EMR service
8849	// to access clusters in VPC private subnets.
8850	ServiceAccessSecurityGroup *string `type:"string"`
8851
8852	// The EC2 instance type of the core and task nodes.
8853	SlaveInstanceType *string `min:"1" type:"string"`
8854
8855	// Specifies whether to lock the cluster to prevent the Amazon EC2 instances
8856	// from being terminated by API call, user intervention, or in the event of
8857	// a job-flow error.
8858	TerminationProtected *bool `type:"boolean"`
8859}
8860
8861// String returns the string representation
8862func (s JobFlowInstancesConfig) String() string {
8863	return awsutil.Prettify(s)
8864}
8865
8866// GoString returns the string representation
8867func (s JobFlowInstancesConfig) GoString() string {
8868	return s.String()
8869}
8870
8871// Validate inspects the fields of the type to determine if they are valid.
8872func (s *JobFlowInstancesConfig) Validate() error {
8873	invalidParams := request.ErrInvalidParams{Context: "JobFlowInstancesConfig"}
8874	if s.MasterInstanceType != nil && len(*s.MasterInstanceType) < 1 {
8875		invalidParams.Add(request.NewErrParamMinLen("MasterInstanceType", 1))
8876	}
8877	if s.SlaveInstanceType != nil && len(*s.SlaveInstanceType) < 1 {
8878		invalidParams.Add(request.NewErrParamMinLen("SlaveInstanceType", 1))
8879	}
8880	if s.InstanceFleets != nil {
8881		for i, v := range s.InstanceFleets {
8882			if v == nil {
8883				continue
8884			}
8885			if err := v.Validate(); err != nil {
8886				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceFleets", i), err.(request.ErrInvalidParams))
8887			}
8888		}
8889	}
8890	if s.InstanceGroups != nil {
8891		for i, v := range s.InstanceGroups {
8892			if v == nil {
8893				continue
8894			}
8895			if err := v.Validate(); err != nil {
8896				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
8897			}
8898		}
8899	}
8900
8901	if invalidParams.Len() > 0 {
8902		return invalidParams
8903	}
8904	return nil
8905}
8906
8907// SetAdditionalMasterSecurityGroups sets the AdditionalMasterSecurityGroups field's value.
8908func (s *JobFlowInstancesConfig) SetAdditionalMasterSecurityGroups(v []*string) *JobFlowInstancesConfig {
8909	s.AdditionalMasterSecurityGroups = v
8910	return s
8911}
8912
8913// SetAdditionalSlaveSecurityGroups sets the AdditionalSlaveSecurityGroups field's value.
8914func (s *JobFlowInstancesConfig) SetAdditionalSlaveSecurityGroups(v []*string) *JobFlowInstancesConfig {
8915	s.AdditionalSlaveSecurityGroups = v
8916	return s
8917}
8918
8919// SetEc2KeyName sets the Ec2KeyName field's value.
8920func (s *JobFlowInstancesConfig) SetEc2KeyName(v string) *JobFlowInstancesConfig {
8921	s.Ec2KeyName = &v
8922	return s
8923}
8924
8925// SetEc2SubnetId sets the Ec2SubnetId field's value.
8926func (s *JobFlowInstancesConfig) SetEc2SubnetId(v string) *JobFlowInstancesConfig {
8927	s.Ec2SubnetId = &v
8928	return s
8929}
8930
8931// SetEc2SubnetIds sets the Ec2SubnetIds field's value.
8932func (s *JobFlowInstancesConfig) SetEc2SubnetIds(v []*string) *JobFlowInstancesConfig {
8933	s.Ec2SubnetIds = v
8934	return s
8935}
8936
8937// SetEmrManagedMasterSecurityGroup sets the EmrManagedMasterSecurityGroup field's value.
8938func (s *JobFlowInstancesConfig) SetEmrManagedMasterSecurityGroup(v string) *JobFlowInstancesConfig {
8939	s.EmrManagedMasterSecurityGroup = &v
8940	return s
8941}
8942
8943// SetEmrManagedSlaveSecurityGroup sets the EmrManagedSlaveSecurityGroup field's value.
8944func (s *JobFlowInstancesConfig) SetEmrManagedSlaveSecurityGroup(v string) *JobFlowInstancesConfig {
8945	s.EmrManagedSlaveSecurityGroup = &v
8946	return s
8947}
8948
8949// SetHadoopVersion sets the HadoopVersion field's value.
8950func (s *JobFlowInstancesConfig) SetHadoopVersion(v string) *JobFlowInstancesConfig {
8951	s.HadoopVersion = &v
8952	return s
8953}
8954
8955// SetInstanceCount sets the InstanceCount field's value.
8956func (s *JobFlowInstancesConfig) SetInstanceCount(v int64) *JobFlowInstancesConfig {
8957	s.InstanceCount = &v
8958	return s
8959}
8960
8961// SetInstanceFleets sets the InstanceFleets field's value.
8962func (s *JobFlowInstancesConfig) SetInstanceFleets(v []*InstanceFleetConfig) *JobFlowInstancesConfig {
8963	s.InstanceFleets = v
8964	return s
8965}
8966
8967// SetInstanceGroups sets the InstanceGroups field's value.
8968func (s *JobFlowInstancesConfig) SetInstanceGroups(v []*InstanceGroupConfig) *JobFlowInstancesConfig {
8969	s.InstanceGroups = v
8970	return s
8971}
8972
8973// SetKeepJobFlowAliveWhenNoSteps sets the KeepJobFlowAliveWhenNoSteps field's value.
8974func (s *JobFlowInstancesConfig) SetKeepJobFlowAliveWhenNoSteps(v bool) *JobFlowInstancesConfig {
8975	s.KeepJobFlowAliveWhenNoSteps = &v
8976	return s
8977}
8978
8979// SetMasterInstanceType sets the MasterInstanceType field's value.
8980func (s *JobFlowInstancesConfig) SetMasterInstanceType(v string) *JobFlowInstancesConfig {
8981	s.MasterInstanceType = &v
8982	return s
8983}
8984
8985// SetPlacement sets the Placement field's value.
8986func (s *JobFlowInstancesConfig) SetPlacement(v *PlacementType) *JobFlowInstancesConfig {
8987	s.Placement = v
8988	return s
8989}
8990
8991// SetServiceAccessSecurityGroup sets the ServiceAccessSecurityGroup field's value.
8992func (s *JobFlowInstancesConfig) SetServiceAccessSecurityGroup(v string) *JobFlowInstancesConfig {
8993	s.ServiceAccessSecurityGroup = &v
8994	return s
8995}
8996
8997// SetSlaveInstanceType sets the SlaveInstanceType field's value.
8998func (s *JobFlowInstancesConfig) SetSlaveInstanceType(v string) *JobFlowInstancesConfig {
8999	s.SlaveInstanceType = &v
9000	return s
9001}
9002
9003// SetTerminationProtected sets the TerminationProtected field's value.
9004func (s *JobFlowInstancesConfig) SetTerminationProtected(v bool) *JobFlowInstancesConfig {
9005	s.TerminationProtected = &v
9006	return s
9007}
9008
9009// Specify the type of Amazon EC2 instances that the cluster (job flow) runs
9010// on.
9011type JobFlowInstancesDetail struct {
9012	_ struct{} `type:"structure"`
9013
9014	// The name of an Amazon EC2 key pair that can be used to ssh to the master
9015	// node.
9016	Ec2KeyName *string `type:"string"`
9017
9018	// For clusters launched within Amazon Virtual Private Cloud, this is the identifier
9019	// of the subnet where the cluster was launched.
9020	Ec2SubnetId *string `type:"string"`
9021
9022	// The Hadoop version for the cluster.
9023	HadoopVersion *string `type:"string"`
9024
9025	// The number of Amazon EC2 instances in the cluster. If the value is 1, the
9026	// same instance serves as both the master and core and task node. If the value
9027	// is greater than 1, one instance is the master node and all others are core
9028	// and task nodes.
9029	//
9030	// InstanceCount is a required field
9031	InstanceCount *int64 `type:"integer" required:"true"`
9032
9033	// Details about the instance groups in a cluster.
9034	InstanceGroups []*InstanceGroupDetail `type:"list"`
9035
9036	// Specifies whether the cluster should remain available after completing all
9037	// steps.
9038	KeepJobFlowAliveWhenNoSteps *bool `type:"boolean"`
9039
9040	// The Amazon EC2 instance identifier of the master node.
9041	MasterInstanceId *string `type:"string"`
9042
9043	// The Amazon EC2 master node instance type.
9044	//
9045	// MasterInstanceType is a required field
9046	MasterInstanceType *string `min:"1" type:"string" required:"true"`
9047
9048	// The DNS name of the master node. If the cluster is on a private subnet, this
9049	// is the private DNS name. On a public subnet, this is the public DNS name.
9050	MasterPublicDnsName *string `type:"string"`
9051
9052	// An approximation of the cost of the cluster, represented in m1.small/hours.
9053	// This value is incremented one time for every hour that an m1.small runs.
9054	// Larger instances are weighted more, so an Amazon EC2 instance that is roughly
9055	// four times more expensive would result in the normalized instance hours being
9056	// incremented by four. This result is only an approximation and does not reflect
9057	// the actual billing rate.
9058	NormalizedInstanceHours *int64 `type:"integer"`
9059
9060	// The Amazon EC2 Availability Zone for the cluster.
9061	Placement *PlacementType `type:"structure"`
9062
9063	// The Amazon EC2 core and task node instance type.
9064	//
9065	// SlaveInstanceType is a required field
9066	SlaveInstanceType *string `min:"1" type:"string" required:"true"`
9067
9068	// Specifies whether the Amazon EC2 instances in the cluster are protected from
9069	// termination by API calls, user intervention, or in the event of a job-flow
9070	// error.
9071	TerminationProtected *bool `type:"boolean"`
9072}
9073
9074// String returns the string representation
9075func (s JobFlowInstancesDetail) String() string {
9076	return awsutil.Prettify(s)
9077}
9078
9079// GoString returns the string representation
9080func (s JobFlowInstancesDetail) GoString() string {
9081	return s.String()
9082}
9083
9084// SetEc2KeyName sets the Ec2KeyName field's value.
9085func (s *JobFlowInstancesDetail) SetEc2KeyName(v string) *JobFlowInstancesDetail {
9086	s.Ec2KeyName = &v
9087	return s
9088}
9089
9090// SetEc2SubnetId sets the Ec2SubnetId field's value.
9091func (s *JobFlowInstancesDetail) SetEc2SubnetId(v string) *JobFlowInstancesDetail {
9092	s.Ec2SubnetId = &v
9093	return s
9094}
9095
9096// SetHadoopVersion sets the HadoopVersion field's value.
9097func (s *JobFlowInstancesDetail) SetHadoopVersion(v string) *JobFlowInstancesDetail {
9098	s.HadoopVersion = &v
9099	return s
9100}
9101
9102// SetInstanceCount sets the InstanceCount field's value.
9103func (s *JobFlowInstancesDetail) SetInstanceCount(v int64) *JobFlowInstancesDetail {
9104	s.InstanceCount = &v
9105	return s
9106}
9107
9108// SetInstanceGroups sets the InstanceGroups field's value.
9109func (s *JobFlowInstancesDetail) SetInstanceGroups(v []*InstanceGroupDetail) *JobFlowInstancesDetail {
9110	s.InstanceGroups = v
9111	return s
9112}
9113
9114// SetKeepJobFlowAliveWhenNoSteps sets the KeepJobFlowAliveWhenNoSteps field's value.
9115func (s *JobFlowInstancesDetail) SetKeepJobFlowAliveWhenNoSteps(v bool) *JobFlowInstancesDetail {
9116	s.KeepJobFlowAliveWhenNoSteps = &v
9117	return s
9118}
9119
9120// SetMasterInstanceId sets the MasterInstanceId field's value.
9121func (s *JobFlowInstancesDetail) SetMasterInstanceId(v string) *JobFlowInstancesDetail {
9122	s.MasterInstanceId = &v
9123	return s
9124}
9125
9126// SetMasterInstanceType sets the MasterInstanceType field's value.
9127func (s *JobFlowInstancesDetail) SetMasterInstanceType(v string) *JobFlowInstancesDetail {
9128	s.MasterInstanceType = &v
9129	return s
9130}
9131
9132// SetMasterPublicDnsName sets the MasterPublicDnsName field's value.
9133func (s *JobFlowInstancesDetail) SetMasterPublicDnsName(v string) *JobFlowInstancesDetail {
9134	s.MasterPublicDnsName = &v
9135	return s
9136}
9137
9138// SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
9139func (s *JobFlowInstancesDetail) SetNormalizedInstanceHours(v int64) *JobFlowInstancesDetail {
9140	s.NormalizedInstanceHours = &v
9141	return s
9142}
9143
9144// SetPlacement sets the Placement field's value.
9145func (s *JobFlowInstancesDetail) SetPlacement(v *PlacementType) *JobFlowInstancesDetail {
9146	s.Placement = v
9147	return s
9148}
9149
9150// SetSlaveInstanceType sets the SlaveInstanceType field's value.
9151func (s *JobFlowInstancesDetail) SetSlaveInstanceType(v string) *JobFlowInstancesDetail {
9152	s.SlaveInstanceType = &v
9153	return s
9154}
9155
9156// SetTerminationProtected sets the TerminationProtected field's value.
9157func (s *JobFlowInstancesDetail) SetTerminationProtected(v bool) *JobFlowInstancesDetail {
9158	s.TerminationProtected = &v
9159	return s
9160}
9161
9162// Attributes for Kerberos configuration when Kerberos authentication is enabled
9163// using a security configuration. For more information see Use Kerberos Authentication
9164// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
9165// in the EMR Management Guide.
9166type KerberosAttributes struct {
9167	_ struct{} `type:"structure"`
9168
9169	// The Active Directory password for ADDomainJoinUser.
9170	ADDomainJoinPassword *string `type:"string"`
9171
9172	// Required only when establishing a cross-realm trust with an Active Directory
9173	// domain. A user with sufficient privileges to join resources to the domain.
9174	ADDomainJoinUser *string `type:"string"`
9175
9176	// Required only when establishing a cross-realm trust with a KDC in a different
9177	// realm. The cross-realm principal password, which must be identical across
9178	// realms.
9179	CrossRealmTrustPrincipalPassword *string `type:"string"`
9180
9181	// The password used within the cluster for the kadmin service on the cluster-dedicated
9182	// KDC, which maintains Kerberos principals, password policies, and keytabs
9183	// for the cluster.
9184	//
9185	// KdcAdminPassword is a required field
9186	KdcAdminPassword *string `type:"string" required:"true"`
9187
9188	// The name of the Kerberos realm to which all nodes in a cluster belong. For
9189	// example, EC2.INTERNAL.
9190	//
9191	// Realm is a required field
9192	Realm *string `type:"string" required:"true"`
9193}
9194
9195// String returns the string representation
9196func (s KerberosAttributes) String() string {
9197	return awsutil.Prettify(s)
9198}
9199
9200// GoString returns the string representation
9201func (s KerberosAttributes) GoString() string {
9202	return s.String()
9203}
9204
9205// Validate inspects the fields of the type to determine if they are valid.
9206func (s *KerberosAttributes) Validate() error {
9207	invalidParams := request.ErrInvalidParams{Context: "KerberosAttributes"}
9208	if s.KdcAdminPassword == nil {
9209		invalidParams.Add(request.NewErrParamRequired("KdcAdminPassword"))
9210	}
9211	if s.Realm == nil {
9212		invalidParams.Add(request.NewErrParamRequired("Realm"))
9213	}
9214
9215	if invalidParams.Len() > 0 {
9216		return invalidParams
9217	}
9218	return nil
9219}
9220
9221// SetADDomainJoinPassword sets the ADDomainJoinPassword field's value.
9222func (s *KerberosAttributes) SetADDomainJoinPassword(v string) *KerberosAttributes {
9223	s.ADDomainJoinPassword = &v
9224	return s
9225}
9226
9227// SetADDomainJoinUser sets the ADDomainJoinUser field's value.
9228func (s *KerberosAttributes) SetADDomainJoinUser(v string) *KerberosAttributes {
9229	s.ADDomainJoinUser = &v
9230	return s
9231}
9232
9233// SetCrossRealmTrustPrincipalPassword sets the CrossRealmTrustPrincipalPassword field's value.
9234func (s *KerberosAttributes) SetCrossRealmTrustPrincipalPassword(v string) *KerberosAttributes {
9235	s.CrossRealmTrustPrincipalPassword = &v
9236	return s
9237}
9238
9239// SetKdcAdminPassword sets the KdcAdminPassword field's value.
9240func (s *KerberosAttributes) SetKdcAdminPassword(v string) *KerberosAttributes {
9241	s.KdcAdminPassword = &v
9242	return s
9243}
9244
9245// SetRealm sets the Realm field's value.
9246func (s *KerberosAttributes) SetRealm(v string) *KerberosAttributes {
9247	s.Realm = &v
9248	return s
9249}
9250
9251// A key value pair.
9252type KeyValue struct {
9253	_ struct{} `type:"structure"`
9254
9255	// The unique identifier of a key value pair.
9256	Key *string `type:"string"`
9257
9258	// The value part of the identified key.
9259	Value *string `type:"string"`
9260}
9261
9262// String returns the string representation
9263func (s KeyValue) String() string {
9264	return awsutil.Prettify(s)
9265}
9266
9267// GoString returns the string representation
9268func (s KeyValue) GoString() string {
9269	return s.String()
9270}
9271
9272// SetKey sets the Key field's value.
9273func (s *KeyValue) SetKey(v string) *KeyValue {
9274	s.Key = &v
9275	return s
9276}
9277
9278// SetValue sets the Value field's value.
9279func (s *KeyValue) SetValue(v string) *KeyValue {
9280	s.Value = &v
9281	return s
9282}
9283
9284// This input determines which bootstrap actions to retrieve.
9285type ListBootstrapActionsInput struct {
9286	_ struct{} `type:"structure"`
9287
9288	// The cluster identifier for the bootstrap actions to list.
9289	//
9290	// ClusterId is a required field
9291	ClusterId *string `type:"string" required:"true"`
9292
9293	// The pagination token that indicates the next set of results to retrieve.
9294	Marker *string `type:"string"`
9295}
9296
9297// String returns the string representation
9298func (s ListBootstrapActionsInput) String() string {
9299	return awsutil.Prettify(s)
9300}
9301
9302// GoString returns the string representation
9303func (s ListBootstrapActionsInput) GoString() string {
9304	return s.String()
9305}
9306
9307// Validate inspects the fields of the type to determine if they are valid.
9308func (s *ListBootstrapActionsInput) Validate() error {
9309	invalidParams := request.ErrInvalidParams{Context: "ListBootstrapActionsInput"}
9310	if s.ClusterId == nil {
9311		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
9312	}
9313
9314	if invalidParams.Len() > 0 {
9315		return invalidParams
9316	}
9317	return nil
9318}
9319
9320// SetClusterId sets the ClusterId field's value.
9321func (s *ListBootstrapActionsInput) SetClusterId(v string) *ListBootstrapActionsInput {
9322	s.ClusterId = &v
9323	return s
9324}
9325
9326// SetMarker sets the Marker field's value.
9327func (s *ListBootstrapActionsInput) SetMarker(v string) *ListBootstrapActionsInput {
9328	s.Marker = &v
9329	return s
9330}
9331
9332// This output contains the bootstrap actions detail.
9333type ListBootstrapActionsOutput struct {
9334	_ struct{} `type:"structure"`
9335
9336	// The bootstrap actions associated with the cluster.
9337	BootstrapActions []*Command `type:"list"`
9338
9339	// The pagination token that indicates the next set of results to retrieve.
9340	Marker *string `type:"string"`
9341}
9342
9343// String returns the string representation
9344func (s ListBootstrapActionsOutput) String() string {
9345	return awsutil.Prettify(s)
9346}
9347
9348// GoString returns the string representation
9349func (s ListBootstrapActionsOutput) GoString() string {
9350	return s.String()
9351}
9352
9353// SetBootstrapActions sets the BootstrapActions field's value.
9354func (s *ListBootstrapActionsOutput) SetBootstrapActions(v []*Command) *ListBootstrapActionsOutput {
9355	s.BootstrapActions = v
9356	return s
9357}
9358
9359// SetMarker sets the Marker field's value.
9360func (s *ListBootstrapActionsOutput) SetMarker(v string) *ListBootstrapActionsOutput {
9361	s.Marker = &v
9362	return s
9363}
9364
9365// This input determines how the ListClusters action filters the list of clusters
9366// that it returns.
9367type ListClustersInput struct {
9368	_ struct{} `type:"structure"`
9369
9370	// The cluster state filters to apply when listing clusters.
9371	ClusterStates []*string `type:"list"`
9372
9373	// The creation date and time beginning value filter for listing clusters.
9374	CreatedAfter *time.Time `type:"timestamp"`
9375
9376	// The creation date and time end value filter for listing clusters.
9377	CreatedBefore *time.Time `type:"timestamp"`
9378
9379	// The pagination token that indicates the next set of results to retrieve.
9380	Marker *string `type:"string"`
9381}
9382
9383// String returns the string representation
9384func (s ListClustersInput) String() string {
9385	return awsutil.Prettify(s)
9386}
9387
9388// GoString returns the string representation
9389func (s ListClustersInput) GoString() string {
9390	return s.String()
9391}
9392
9393// SetClusterStates sets the ClusterStates field's value.
9394func (s *ListClustersInput) SetClusterStates(v []*string) *ListClustersInput {
9395	s.ClusterStates = v
9396	return s
9397}
9398
9399// SetCreatedAfter sets the CreatedAfter field's value.
9400func (s *ListClustersInput) SetCreatedAfter(v time.Time) *ListClustersInput {
9401	s.CreatedAfter = &v
9402	return s
9403}
9404
9405// SetCreatedBefore sets the CreatedBefore field's value.
9406func (s *ListClustersInput) SetCreatedBefore(v time.Time) *ListClustersInput {
9407	s.CreatedBefore = &v
9408	return s
9409}
9410
9411// SetMarker sets the Marker field's value.
9412func (s *ListClustersInput) SetMarker(v string) *ListClustersInput {
9413	s.Marker = &v
9414	return s
9415}
9416
9417// This contains a ClusterSummaryList with the cluster details; for example,
9418// the cluster IDs, names, and status.
9419type ListClustersOutput struct {
9420	_ struct{} `type:"structure"`
9421
9422	// The list of clusters for the account based on the given filters.
9423	Clusters []*ClusterSummary `type:"list"`
9424
9425	// The pagination token that indicates the next set of results to retrieve.
9426	Marker *string `type:"string"`
9427}
9428
9429// String returns the string representation
9430func (s ListClustersOutput) String() string {
9431	return awsutil.Prettify(s)
9432}
9433
9434// GoString returns the string representation
9435func (s ListClustersOutput) GoString() string {
9436	return s.String()
9437}
9438
9439// SetClusters sets the Clusters field's value.
9440func (s *ListClustersOutput) SetClusters(v []*ClusterSummary) *ListClustersOutput {
9441	s.Clusters = v
9442	return s
9443}
9444
9445// SetMarker sets the Marker field's value.
9446func (s *ListClustersOutput) SetMarker(v string) *ListClustersOutput {
9447	s.Marker = &v
9448	return s
9449}
9450
9451type ListInstanceFleetsInput struct {
9452	_ struct{} `type:"structure"`
9453
9454	// The unique identifier of the cluster.
9455	//
9456	// ClusterId is a required field
9457	ClusterId *string `type:"string" required:"true"`
9458
9459	// The pagination token that indicates the next set of results to retrieve.
9460	Marker *string `type:"string"`
9461}
9462
9463// String returns the string representation
9464func (s ListInstanceFleetsInput) String() string {
9465	return awsutil.Prettify(s)
9466}
9467
9468// GoString returns the string representation
9469func (s ListInstanceFleetsInput) GoString() string {
9470	return s.String()
9471}
9472
9473// Validate inspects the fields of the type to determine if they are valid.
9474func (s *ListInstanceFleetsInput) Validate() error {
9475	invalidParams := request.ErrInvalidParams{Context: "ListInstanceFleetsInput"}
9476	if s.ClusterId == nil {
9477		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
9478	}
9479
9480	if invalidParams.Len() > 0 {
9481		return invalidParams
9482	}
9483	return nil
9484}
9485
9486// SetClusterId sets the ClusterId field's value.
9487func (s *ListInstanceFleetsInput) SetClusterId(v string) *ListInstanceFleetsInput {
9488	s.ClusterId = &v
9489	return s
9490}
9491
9492// SetMarker sets the Marker field's value.
9493func (s *ListInstanceFleetsInput) SetMarker(v string) *ListInstanceFleetsInput {
9494	s.Marker = &v
9495	return s
9496}
9497
9498type ListInstanceFleetsOutput struct {
9499	_ struct{} `type:"structure"`
9500
9501	// The list of instance fleets for the cluster and given filters.
9502	InstanceFleets []*InstanceFleet `type:"list"`
9503
9504	// The pagination token that indicates the next set of results to retrieve.
9505	Marker *string `type:"string"`
9506}
9507
9508// String returns the string representation
9509func (s ListInstanceFleetsOutput) String() string {
9510	return awsutil.Prettify(s)
9511}
9512
9513// GoString returns the string representation
9514func (s ListInstanceFleetsOutput) GoString() string {
9515	return s.String()
9516}
9517
9518// SetInstanceFleets sets the InstanceFleets field's value.
9519func (s *ListInstanceFleetsOutput) SetInstanceFleets(v []*InstanceFleet) *ListInstanceFleetsOutput {
9520	s.InstanceFleets = v
9521	return s
9522}
9523
9524// SetMarker sets the Marker field's value.
9525func (s *ListInstanceFleetsOutput) SetMarker(v string) *ListInstanceFleetsOutput {
9526	s.Marker = &v
9527	return s
9528}
9529
9530// This input determines which instance groups to retrieve.
9531type ListInstanceGroupsInput struct {
9532	_ struct{} `type:"structure"`
9533
9534	// The identifier of the cluster for which to list the instance groups.
9535	//
9536	// ClusterId is a required field
9537	ClusterId *string `type:"string" required:"true"`
9538
9539	// The pagination token that indicates the next set of results to retrieve.
9540	Marker *string `type:"string"`
9541}
9542
9543// String returns the string representation
9544func (s ListInstanceGroupsInput) String() string {
9545	return awsutil.Prettify(s)
9546}
9547
9548// GoString returns the string representation
9549func (s ListInstanceGroupsInput) GoString() string {
9550	return s.String()
9551}
9552
9553// Validate inspects the fields of the type to determine if they are valid.
9554func (s *ListInstanceGroupsInput) Validate() error {
9555	invalidParams := request.ErrInvalidParams{Context: "ListInstanceGroupsInput"}
9556	if s.ClusterId == nil {
9557		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
9558	}
9559
9560	if invalidParams.Len() > 0 {
9561		return invalidParams
9562	}
9563	return nil
9564}
9565
9566// SetClusterId sets the ClusterId field's value.
9567func (s *ListInstanceGroupsInput) SetClusterId(v string) *ListInstanceGroupsInput {
9568	s.ClusterId = &v
9569	return s
9570}
9571
9572// SetMarker sets the Marker field's value.
9573func (s *ListInstanceGroupsInput) SetMarker(v string) *ListInstanceGroupsInput {
9574	s.Marker = &v
9575	return s
9576}
9577
9578// This input determines which instance groups to retrieve.
9579type ListInstanceGroupsOutput struct {
9580	_ struct{} `type:"structure"`
9581
9582	// The list of instance groups for the cluster and given filters.
9583	InstanceGroups []*InstanceGroup `type:"list"`
9584
9585	// The pagination token that indicates the next set of results to retrieve.
9586	Marker *string `type:"string"`
9587}
9588
9589// String returns the string representation
9590func (s ListInstanceGroupsOutput) String() string {
9591	return awsutil.Prettify(s)
9592}
9593
9594// GoString returns the string representation
9595func (s ListInstanceGroupsOutput) GoString() string {
9596	return s.String()
9597}
9598
9599// SetInstanceGroups sets the InstanceGroups field's value.
9600func (s *ListInstanceGroupsOutput) SetInstanceGroups(v []*InstanceGroup) *ListInstanceGroupsOutput {
9601	s.InstanceGroups = v
9602	return s
9603}
9604
9605// SetMarker sets the Marker field's value.
9606func (s *ListInstanceGroupsOutput) SetMarker(v string) *ListInstanceGroupsOutput {
9607	s.Marker = &v
9608	return s
9609}
9610
9611// This input determines which instances to list.
9612type ListInstancesInput struct {
9613	_ struct{} `type:"structure"`
9614
9615	// The identifier of the cluster for which to list the instances.
9616	//
9617	// ClusterId is a required field
9618	ClusterId *string `type:"string" required:"true"`
9619
9620	// The unique identifier of the instance fleet.
9621	InstanceFleetId *string `type:"string"`
9622
9623	// The node type of the instance fleet. For example MASTER, CORE, or TASK.
9624	InstanceFleetType *string `type:"string" enum:"InstanceFleetType"`
9625
9626	// The identifier of the instance group for which to list the instances.
9627	InstanceGroupId *string `type:"string"`
9628
9629	// The type of instance group for which to list the instances.
9630	InstanceGroupTypes []*string `type:"list"`
9631
9632	// A list of instance states that will filter the instances returned with this
9633	// request.
9634	InstanceStates []*string `type:"list"`
9635
9636	// The pagination token that indicates the next set of results to retrieve.
9637	Marker *string `type:"string"`
9638}
9639
9640// String returns the string representation
9641func (s ListInstancesInput) String() string {
9642	return awsutil.Prettify(s)
9643}
9644
9645// GoString returns the string representation
9646func (s ListInstancesInput) GoString() string {
9647	return s.String()
9648}
9649
9650// Validate inspects the fields of the type to determine if they are valid.
9651func (s *ListInstancesInput) Validate() error {
9652	invalidParams := request.ErrInvalidParams{Context: "ListInstancesInput"}
9653	if s.ClusterId == nil {
9654		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
9655	}
9656
9657	if invalidParams.Len() > 0 {
9658		return invalidParams
9659	}
9660	return nil
9661}
9662
9663// SetClusterId sets the ClusterId field's value.
9664func (s *ListInstancesInput) SetClusterId(v string) *ListInstancesInput {
9665	s.ClusterId = &v
9666	return s
9667}
9668
9669// SetInstanceFleetId sets the InstanceFleetId field's value.
9670func (s *ListInstancesInput) SetInstanceFleetId(v string) *ListInstancesInput {
9671	s.InstanceFleetId = &v
9672	return s
9673}
9674
9675// SetInstanceFleetType sets the InstanceFleetType field's value.
9676func (s *ListInstancesInput) SetInstanceFleetType(v string) *ListInstancesInput {
9677	s.InstanceFleetType = &v
9678	return s
9679}
9680
9681// SetInstanceGroupId sets the InstanceGroupId field's value.
9682func (s *ListInstancesInput) SetInstanceGroupId(v string) *ListInstancesInput {
9683	s.InstanceGroupId = &v
9684	return s
9685}
9686
9687// SetInstanceGroupTypes sets the InstanceGroupTypes field's value.
9688func (s *ListInstancesInput) SetInstanceGroupTypes(v []*string) *ListInstancesInput {
9689	s.InstanceGroupTypes = v
9690	return s
9691}
9692
9693// SetInstanceStates sets the InstanceStates field's value.
9694func (s *ListInstancesInput) SetInstanceStates(v []*string) *ListInstancesInput {
9695	s.InstanceStates = v
9696	return s
9697}
9698
9699// SetMarker sets the Marker field's value.
9700func (s *ListInstancesInput) SetMarker(v string) *ListInstancesInput {
9701	s.Marker = &v
9702	return s
9703}
9704
9705// This output contains the list of instances.
9706type ListInstancesOutput struct {
9707	_ struct{} `type:"structure"`
9708
9709	// The list of instances for the cluster and given filters.
9710	Instances []*Instance `type:"list"`
9711
9712	// The pagination token that indicates the next set of results to retrieve.
9713	Marker *string `type:"string"`
9714}
9715
9716// String returns the string representation
9717func (s ListInstancesOutput) String() string {
9718	return awsutil.Prettify(s)
9719}
9720
9721// GoString returns the string representation
9722func (s ListInstancesOutput) GoString() string {
9723	return s.String()
9724}
9725
9726// SetInstances sets the Instances field's value.
9727func (s *ListInstancesOutput) SetInstances(v []*Instance) *ListInstancesOutput {
9728	s.Instances = v
9729	return s
9730}
9731
9732// SetMarker sets the Marker field's value.
9733func (s *ListInstancesOutput) SetMarker(v string) *ListInstancesOutput {
9734	s.Marker = &v
9735	return s
9736}
9737
9738type ListNotebookExecutionsInput struct {
9739	_ struct{} `type:"structure"`
9740
9741	// The unique ID of the editor associated with the notebook execution.
9742	EditorId *string `type:"string"`
9743
9744	// The beginning of time range filter for listing notebook executions. The default
9745	// is the timestamp of 30 days ago.
9746	From *time.Time `type:"timestamp"`
9747
9748	// The pagination token, returned by a previous ListNotebookExecutions call,
9749	// that indicates the start of the list for this ListNotebookExecutions call.
9750	Marker *string `type:"string"`
9751
9752	// The status filter for listing notebook executions.
9753	//
9754	//    * START_PENDING indicates that the cluster has received the execution
9755	//    request but execution has not begun.
9756	//
9757	//    * STARTING indicates that the execution is starting on the cluster.
9758	//
9759	//    * RUNNING indicates that the execution is being processed by the cluster.
9760	//
9761	//    * FINISHING indicates that execution processing is in the final stages.
9762	//
9763	//    * FINISHED indicates that the execution has completed without error.
9764	//
9765	//    * FAILING indicates that the execution is failing and will not finish
9766	//    successfully.
9767	//
9768	//    * FAILED indicates that the execution failed.
9769	//
9770	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
9771	//    request and the stop is pending.
9772	//
9773	//    * STOPPING indicates that the cluster is in the process of stopping the
9774	//    execution as a result of a StopNotebookExecution request.
9775	//
9776	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
9777	//    request.
9778	Status *string `type:"string" enum:"NotebookExecutionStatus"`
9779
9780	// The end of time range filter for listing notebook executions. The default
9781	// is the current timestamp.
9782	To *time.Time `type:"timestamp"`
9783}
9784
9785// String returns the string representation
9786func (s ListNotebookExecutionsInput) String() string {
9787	return awsutil.Prettify(s)
9788}
9789
9790// GoString returns the string representation
9791func (s ListNotebookExecutionsInput) GoString() string {
9792	return s.String()
9793}
9794
9795// SetEditorId sets the EditorId field's value.
9796func (s *ListNotebookExecutionsInput) SetEditorId(v string) *ListNotebookExecutionsInput {
9797	s.EditorId = &v
9798	return s
9799}
9800
9801// SetFrom sets the From field's value.
9802func (s *ListNotebookExecutionsInput) SetFrom(v time.Time) *ListNotebookExecutionsInput {
9803	s.From = &v
9804	return s
9805}
9806
9807// SetMarker sets the Marker field's value.
9808func (s *ListNotebookExecutionsInput) SetMarker(v string) *ListNotebookExecutionsInput {
9809	s.Marker = &v
9810	return s
9811}
9812
9813// SetStatus sets the Status field's value.
9814func (s *ListNotebookExecutionsInput) SetStatus(v string) *ListNotebookExecutionsInput {
9815	s.Status = &v
9816	return s
9817}
9818
9819// SetTo sets the To field's value.
9820func (s *ListNotebookExecutionsInput) SetTo(v time.Time) *ListNotebookExecutionsInput {
9821	s.To = &v
9822	return s
9823}
9824
9825type ListNotebookExecutionsOutput struct {
9826	_ struct{} `type:"structure"`
9827
9828	// A pagination token that a subsequent ListNotebookExecutions can use to determine
9829	// the next set of results to retrieve.
9830	Marker *string `type:"string"`
9831
9832	// A list of notebook executions.
9833	NotebookExecutions []*NotebookExecutionSummary `type:"list"`
9834}
9835
9836// String returns the string representation
9837func (s ListNotebookExecutionsOutput) String() string {
9838	return awsutil.Prettify(s)
9839}
9840
9841// GoString returns the string representation
9842func (s ListNotebookExecutionsOutput) GoString() string {
9843	return s.String()
9844}
9845
9846// SetMarker sets the Marker field's value.
9847func (s *ListNotebookExecutionsOutput) SetMarker(v string) *ListNotebookExecutionsOutput {
9848	s.Marker = &v
9849	return s
9850}
9851
9852// SetNotebookExecutions sets the NotebookExecutions field's value.
9853func (s *ListNotebookExecutionsOutput) SetNotebookExecutions(v []*NotebookExecutionSummary) *ListNotebookExecutionsOutput {
9854	s.NotebookExecutions = v
9855	return s
9856}
9857
9858type ListSecurityConfigurationsInput struct {
9859	_ struct{} `type:"structure"`
9860
9861	// The pagination token that indicates the set of results to retrieve.
9862	Marker *string `type:"string"`
9863}
9864
9865// String returns the string representation
9866func (s ListSecurityConfigurationsInput) String() string {
9867	return awsutil.Prettify(s)
9868}
9869
9870// GoString returns the string representation
9871func (s ListSecurityConfigurationsInput) GoString() string {
9872	return s.String()
9873}
9874
9875// SetMarker sets the Marker field's value.
9876func (s *ListSecurityConfigurationsInput) SetMarker(v string) *ListSecurityConfigurationsInput {
9877	s.Marker = &v
9878	return s
9879}
9880
9881type ListSecurityConfigurationsOutput struct {
9882	_ struct{} `type:"structure"`
9883
9884	// A pagination token that indicates the next set of results to retrieve. Include
9885	// the marker in the next ListSecurityConfiguration call to retrieve the next
9886	// page of results, if required.
9887	Marker *string `type:"string"`
9888
9889	// The creation date and time, and name, of each security configuration.
9890	SecurityConfigurations []*SecurityConfigurationSummary `type:"list"`
9891}
9892
9893// String returns the string representation
9894func (s ListSecurityConfigurationsOutput) String() string {
9895	return awsutil.Prettify(s)
9896}
9897
9898// GoString returns the string representation
9899func (s ListSecurityConfigurationsOutput) GoString() string {
9900	return s.String()
9901}
9902
9903// SetMarker sets the Marker field's value.
9904func (s *ListSecurityConfigurationsOutput) SetMarker(v string) *ListSecurityConfigurationsOutput {
9905	s.Marker = &v
9906	return s
9907}
9908
9909// SetSecurityConfigurations sets the SecurityConfigurations field's value.
9910func (s *ListSecurityConfigurationsOutput) SetSecurityConfigurations(v []*SecurityConfigurationSummary) *ListSecurityConfigurationsOutput {
9911	s.SecurityConfigurations = v
9912	return s
9913}
9914
9915// This input determines which steps to list.
9916type ListStepsInput struct {
9917	_ struct{} `type:"structure"`
9918
9919	// The identifier of the cluster for which to list the steps.
9920	//
9921	// ClusterId is a required field
9922	ClusterId *string `type:"string" required:"true"`
9923
9924	// The pagination token that indicates the next set of results to retrieve.
9925	Marker *string `type:"string"`
9926
9927	// The filter to limit the step list based on the identifier of the steps. You
9928	// can specify a maximum of ten Step IDs. The character constraint applies to
9929	// the overall length of the array.
9930	StepIds []*string `type:"list"`
9931
9932	// The filter to limit the step list based on certain states.
9933	StepStates []*string `type:"list"`
9934}
9935
9936// String returns the string representation
9937func (s ListStepsInput) String() string {
9938	return awsutil.Prettify(s)
9939}
9940
9941// GoString returns the string representation
9942func (s ListStepsInput) GoString() string {
9943	return s.String()
9944}
9945
9946// Validate inspects the fields of the type to determine if they are valid.
9947func (s *ListStepsInput) Validate() error {
9948	invalidParams := request.ErrInvalidParams{Context: "ListStepsInput"}
9949	if s.ClusterId == nil {
9950		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
9951	}
9952
9953	if invalidParams.Len() > 0 {
9954		return invalidParams
9955	}
9956	return nil
9957}
9958
9959// SetClusterId sets the ClusterId field's value.
9960func (s *ListStepsInput) SetClusterId(v string) *ListStepsInput {
9961	s.ClusterId = &v
9962	return s
9963}
9964
9965// SetMarker sets the Marker field's value.
9966func (s *ListStepsInput) SetMarker(v string) *ListStepsInput {
9967	s.Marker = &v
9968	return s
9969}
9970
9971// SetStepIds sets the StepIds field's value.
9972func (s *ListStepsInput) SetStepIds(v []*string) *ListStepsInput {
9973	s.StepIds = v
9974	return s
9975}
9976
9977// SetStepStates sets the StepStates field's value.
9978func (s *ListStepsInput) SetStepStates(v []*string) *ListStepsInput {
9979	s.StepStates = v
9980	return s
9981}
9982
9983// This output contains the list of steps returned in reverse order. This means
9984// that the last step is the first element in the list.
9985type ListStepsOutput struct {
9986	_ struct{} `type:"structure"`
9987
9988	// The pagination token that indicates the next set of results to retrieve.
9989	Marker *string `type:"string"`
9990
9991	// The filtered list of steps for the cluster.
9992	Steps []*StepSummary `type:"list"`
9993}
9994
9995// String returns the string representation
9996func (s ListStepsOutput) String() string {
9997	return awsutil.Prettify(s)
9998}
9999
10000// GoString returns the string representation
10001func (s ListStepsOutput) GoString() string {
10002	return s.String()
10003}
10004
10005// SetMarker sets the Marker field's value.
10006func (s *ListStepsOutput) SetMarker(v string) *ListStepsOutput {
10007	s.Marker = &v
10008	return s
10009}
10010
10011// SetSteps sets the Steps field's value.
10012func (s *ListStepsOutput) SetSteps(v []*StepSummary) *ListStepsOutput {
10013	s.Steps = v
10014	return s
10015}
10016
10017// Managed scaling policy for an Amazon EMR cluster. The policy specifies the
10018// limits for resources that can be added or terminated from a cluster. The
10019// policy only applies to the core and task nodes. The master node cannot be
10020// scaled after initial configuration.
10021type ManagedScalingPolicy struct {
10022	_ struct{} `type:"structure"`
10023
10024	// The EC2 unit limits for a managed scaling policy. The managed scaling activity
10025	// of a cluster is not allowed to go above or below these limits. The limit
10026	// only applies to the core and task nodes. The master node cannot be scaled
10027	// after initial configuration.
10028	ComputeLimits *ComputeLimits `type:"structure"`
10029}
10030
10031// String returns the string representation
10032func (s ManagedScalingPolicy) String() string {
10033	return awsutil.Prettify(s)
10034}
10035
10036// GoString returns the string representation
10037func (s ManagedScalingPolicy) GoString() string {
10038	return s.String()
10039}
10040
10041// Validate inspects the fields of the type to determine if they are valid.
10042func (s *ManagedScalingPolicy) Validate() error {
10043	invalidParams := request.ErrInvalidParams{Context: "ManagedScalingPolicy"}
10044	if s.ComputeLimits != nil {
10045		if err := s.ComputeLimits.Validate(); err != nil {
10046			invalidParams.AddNested("ComputeLimits", err.(request.ErrInvalidParams))
10047		}
10048	}
10049
10050	if invalidParams.Len() > 0 {
10051		return invalidParams
10052	}
10053	return nil
10054}
10055
10056// SetComputeLimits sets the ComputeLimits field's value.
10057func (s *ManagedScalingPolicy) SetComputeLimits(v *ComputeLimits) *ManagedScalingPolicy {
10058	s.ComputeLimits = v
10059	return s
10060}
10061
10062// A CloudWatch dimension, which is specified using a Key (known as a Name in
10063// CloudWatch), Value pair. By default, Amazon EMR uses one dimension whose
10064// Key is JobFlowID and Value is a variable representing the cluster ID, which
10065// is ${emr.clusterId}. This enables the rule to bootstrap when the cluster
10066// ID becomes available.
10067type MetricDimension struct {
10068	_ struct{} `type:"structure"`
10069
10070	// The dimension name.
10071	Key *string `type:"string"`
10072
10073	// The dimension value.
10074	Value *string `type:"string"`
10075}
10076
10077// String returns the string representation
10078func (s MetricDimension) String() string {
10079	return awsutil.Prettify(s)
10080}
10081
10082// GoString returns the string representation
10083func (s MetricDimension) GoString() string {
10084	return s.String()
10085}
10086
10087// SetKey sets the Key field's value.
10088func (s *MetricDimension) SetKey(v string) *MetricDimension {
10089	s.Key = &v
10090	return s
10091}
10092
10093// SetValue sets the Value field's value.
10094func (s *MetricDimension) SetValue(v string) *MetricDimension {
10095	s.Value = &v
10096	return s
10097}
10098
10099type ModifyClusterInput struct {
10100	_ struct{} `type:"structure"`
10101
10102	// The unique identifier of the cluster.
10103	//
10104	// ClusterId is a required field
10105	ClusterId *string `type:"string" required:"true"`
10106
10107	// The number of steps that can be executed concurrently. You can specify a
10108	// maximum of 256 steps.
10109	StepConcurrencyLevel *int64 `type:"integer"`
10110}
10111
10112// String returns the string representation
10113func (s ModifyClusterInput) String() string {
10114	return awsutil.Prettify(s)
10115}
10116
10117// GoString returns the string representation
10118func (s ModifyClusterInput) GoString() string {
10119	return s.String()
10120}
10121
10122// Validate inspects the fields of the type to determine if they are valid.
10123func (s *ModifyClusterInput) Validate() error {
10124	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterInput"}
10125	if s.ClusterId == nil {
10126		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
10127	}
10128
10129	if invalidParams.Len() > 0 {
10130		return invalidParams
10131	}
10132	return nil
10133}
10134
10135// SetClusterId sets the ClusterId field's value.
10136func (s *ModifyClusterInput) SetClusterId(v string) *ModifyClusterInput {
10137	s.ClusterId = &v
10138	return s
10139}
10140
10141// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
10142func (s *ModifyClusterInput) SetStepConcurrencyLevel(v int64) *ModifyClusterInput {
10143	s.StepConcurrencyLevel = &v
10144	return s
10145}
10146
10147type ModifyClusterOutput struct {
10148	_ struct{} `type:"structure"`
10149
10150	// The number of steps that can be executed concurrently.
10151	StepConcurrencyLevel *int64 `type:"integer"`
10152}
10153
10154// String returns the string representation
10155func (s ModifyClusterOutput) String() string {
10156	return awsutil.Prettify(s)
10157}
10158
10159// GoString returns the string representation
10160func (s ModifyClusterOutput) GoString() string {
10161	return s.String()
10162}
10163
10164// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
10165func (s *ModifyClusterOutput) SetStepConcurrencyLevel(v int64) *ModifyClusterOutput {
10166	s.StepConcurrencyLevel = &v
10167	return s
10168}
10169
10170type ModifyInstanceFleetInput struct {
10171	_ struct{} `type:"structure"`
10172
10173	// The unique identifier of the cluster.
10174	//
10175	// ClusterId is a required field
10176	ClusterId *string `type:"string" required:"true"`
10177
10178	// The unique identifier of the instance fleet.
10179	//
10180	// InstanceFleet is a required field
10181	InstanceFleet *InstanceFleetModifyConfig `type:"structure" required:"true"`
10182}
10183
10184// String returns the string representation
10185func (s ModifyInstanceFleetInput) String() string {
10186	return awsutil.Prettify(s)
10187}
10188
10189// GoString returns the string representation
10190func (s ModifyInstanceFleetInput) GoString() string {
10191	return s.String()
10192}
10193
10194// Validate inspects the fields of the type to determine if they are valid.
10195func (s *ModifyInstanceFleetInput) Validate() error {
10196	invalidParams := request.ErrInvalidParams{Context: "ModifyInstanceFleetInput"}
10197	if s.ClusterId == nil {
10198		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
10199	}
10200	if s.InstanceFleet == nil {
10201		invalidParams.Add(request.NewErrParamRequired("InstanceFleet"))
10202	}
10203	if s.InstanceFleet != nil {
10204		if err := s.InstanceFleet.Validate(); err != nil {
10205			invalidParams.AddNested("InstanceFleet", err.(request.ErrInvalidParams))
10206		}
10207	}
10208
10209	if invalidParams.Len() > 0 {
10210		return invalidParams
10211	}
10212	return nil
10213}
10214
10215// SetClusterId sets the ClusterId field's value.
10216func (s *ModifyInstanceFleetInput) SetClusterId(v string) *ModifyInstanceFleetInput {
10217	s.ClusterId = &v
10218	return s
10219}
10220
10221// SetInstanceFleet sets the InstanceFleet field's value.
10222func (s *ModifyInstanceFleetInput) SetInstanceFleet(v *InstanceFleetModifyConfig) *ModifyInstanceFleetInput {
10223	s.InstanceFleet = v
10224	return s
10225}
10226
10227type ModifyInstanceFleetOutput struct {
10228	_ struct{} `type:"structure"`
10229}
10230
10231// String returns the string representation
10232func (s ModifyInstanceFleetOutput) String() string {
10233	return awsutil.Prettify(s)
10234}
10235
10236// GoString returns the string representation
10237func (s ModifyInstanceFleetOutput) GoString() string {
10238	return s.String()
10239}
10240
10241// Change the size of some instance groups.
10242type ModifyInstanceGroupsInput struct {
10243	_ struct{} `type:"structure"`
10244
10245	// The ID of the cluster to which the instance group belongs.
10246	ClusterId *string `type:"string"`
10247
10248	// Instance groups to change.
10249	InstanceGroups []*InstanceGroupModifyConfig `type:"list"`
10250}
10251
10252// String returns the string representation
10253func (s ModifyInstanceGroupsInput) String() string {
10254	return awsutil.Prettify(s)
10255}
10256
10257// GoString returns the string representation
10258func (s ModifyInstanceGroupsInput) GoString() string {
10259	return s.String()
10260}
10261
10262// Validate inspects the fields of the type to determine if they are valid.
10263func (s *ModifyInstanceGroupsInput) Validate() error {
10264	invalidParams := request.ErrInvalidParams{Context: "ModifyInstanceGroupsInput"}
10265	if s.InstanceGroups != nil {
10266		for i, v := range s.InstanceGroups {
10267			if v == nil {
10268				continue
10269			}
10270			if err := v.Validate(); err != nil {
10271				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
10272			}
10273		}
10274	}
10275
10276	if invalidParams.Len() > 0 {
10277		return invalidParams
10278	}
10279	return nil
10280}
10281
10282// SetClusterId sets the ClusterId field's value.
10283func (s *ModifyInstanceGroupsInput) SetClusterId(v string) *ModifyInstanceGroupsInput {
10284	s.ClusterId = &v
10285	return s
10286}
10287
10288// SetInstanceGroups sets the InstanceGroups field's value.
10289func (s *ModifyInstanceGroupsInput) SetInstanceGroups(v []*InstanceGroupModifyConfig) *ModifyInstanceGroupsInput {
10290	s.InstanceGroups = v
10291	return s
10292}
10293
10294type ModifyInstanceGroupsOutput struct {
10295	_ struct{} `type:"structure"`
10296}
10297
10298// String returns the string representation
10299func (s ModifyInstanceGroupsOutput) String() string {
10300	return awsutil.Prettify(s)
10301}
10302
10303// GoString returns the string representation
10304func (s ModifyInstanceGroupsOutput) GoString() string {
10305	return s.String()
10306}
10307
10308// A notebook execution. An execution is a specific instance that an EMR Notebook
10309// is run using the StartNotebookExecution action.
10310type NotebookExecution struct {
10311	_ struct{} `type:"structure"`
10312
10313	// The Amazon Resource Name (ARN) of the notebook execution.
10314	Arn *string `type:"string"`
10315
10316	// The unique identifier of the EMR Notebook that is used for the notebook execution.
10317	EditorId *string `type:"string"`
10318
10319	// The timestamp when notebook execution ended.
10320	EndTime *time.Time `type:"timestamp"`
10321
10322	// The execution engine, such as an EMR cluster, used to run the EMR notebook
10323	// and perform the notebook execution.
10324	ExecutionEngine *ExecutionEngineConfig `type:"structure"`
10325
10326	// The reason for the latest status change of the notebook execution.
10327	LastStateChangeReason *string `type:"string"`
10328
10329	// The unique identifier of a notebook execution.
10330	NotebookExecutionId *string `type:"string"`
10331
10332	// A name for the notebook execution.
10333	NotebookExecutionName *string `type:"string"`
10334
10335	// The unique identifier of the EC2 security group associated with the EMR Notebook
10336	// instance. For more information see Specifying EC2 Security Groups for EMR
10337	// Notebooks (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html)
10338	// in the EMR Management Guide.
10339	NotebookInstanceSecurityGroupId *string `type:"string"`
10340
10341	// Input parameters in JSON format passed to the EMR Notebook at runtime for
10342	// execution.
10343	NotebookParams *string `type:"string"`
10344
10345	// The location of the notebook execution's output file in Amazon S3.
10346	OutputNotebookURI *string `type:"string"`
10347
10348	// The timestamp when notebook execution started.
10349	StartTime *time.Time `type:"timestamp"`
10350
10351	// The status of the notebook execution.
10352	//
10353	//    * START_PENDING indicates that the cluster has received the execution
10354	//    request but execution has not begun.
10355	//
10356	//    * STARTING indicates that the execution is starting on the cluster.
10357	//
10358	//    * RUNNING indicates that the execution is being processed by the cluster.
10359	//
10360	//    * FINISHING indicates that execution processing is in the final stages.
10361	//
10362	//    * FINISHED indicates that the execution has completed without error.
10363	//
10364	//    * FAILING indicates that the execution is failing and will not finish
10365	//    successfully.
10366	//
10367	//    * FAILED indicates that the execution failed.
10368	//
10369	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
10370	//    request and the stop is pending.
10371	//
10372	//    * STOPPING indicates that the cluster is in the process of stopping the
10373	//    execution as a result of a StopNotebookExecution request.
10374	//
10375	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
10376	//    request.
10377	Status *string `type:"string" enum:"NotebookExecutionStatus"`
10378
10379	// A list of tags associated with a notebook execution. Tags are user-defined
10380	// key value pairs that consist of a required key string with a maximum of 128
10381	// characters and an optional value string with a maximum of 256 characters.
10382	Tags []*Tag `type:"list"`
10383}
10384
10385// String returns the string representation
10386func (s NotebookExecution) String() string {
10387	return awsutil.Prettify(s)
10388}
10389
10390// GoString returns the string representation
10391func (s NotebookExecution) GoString() string {
10392	return s.String()
10393}
10394
10395// SetArn sets the Arn field's value.
10396func (s *NotebookExecution) SetArn(v string) *NotebookExecution {
10397	s.Arn = &v
10398	return s
10399}
10400
10401// SetEditorId sets the EditorId field's value.
10402func (s *NotebookExecution) SetEditorId(v string) *NotebookExecution {
10403	s.EditorId = &v
10404	return s
10405}
10406
10407// SetEndTime sets the EndTime field's value.
10408func (s *NotebookExecution) SetEndTime(v time.Time) *NotebookExecution {
10409	s.EndTime = &v
10410	return s
10411}
10412
10413// SetExecutionEngine sets the ExecutionEngine field's value.
10414func (s *NotebookExecution) SetExecutionEngine(v *ExecutionEngineConfig) *NotebookExecution {
10415	s.ExecutionEngine = v
10416	return s
10417}
10418
10419// SetLastStateChangeReason sets the LastStateChangeReason field's value.
10420func (s *NotebookExecution) SetLastStateChangeReason(v string) *NotebookExecution {
10421	s.LastStateChangeReason = &v
10422	return s
10423}
10424
10425// SetNotebookExecutionId sets the NotebookExecutionId field's value.
10426func (s *NotebookExecution) SetNotebookExecutionId(v string) *NotebookExecution {
10427	s.NotebookExecutionId = &v
10428	return s
10429}
10430
10431// SetNotebookExecutionName sets the NotebookExecutionName field's value.
10432func (s *NotebookExecution) SetNotebookExecutionName(v string) *NotebookExecution {
10433	s.NotebookExecutionName = &v
10434	return s
10435}
10436
10437// SetNotebookInstanceSecurityGroupId sets the NotebookInstanceSecurityGroupId field's value.
10438func (s *NotebookExecution) SetNotebookInstanceSecurityGroupId(v string) *NotebookExecution {
10439	s.NotebookInstanceSecurityGroupId = &v
10440	return s
10441}
10442
10443// SetNotebookParams sets the NotebookParams field's value.
10444func (s *NotebookExecution) SetNotebookParams(v string) *NotebookExecution {
10445	s.NotebookParams = &v
10446	return s
10447}
10448
10449// SetOutputNotebookURI sets the OutputNotebookURI field's value.
10450func (s *NotebookExecution) SetOutputNotebookURI(v string) *NotebookExecution {
10451	s.OutputNotebookURI = &v
10452	return s
10453}
10454
10455// SetStartTime sets the StartTime field's value.
10456func (s *NotebookExecution) SetStartTime(v time.Time) *NotebookExecution {
10457	s.StartTime = &v
10458	return s
10459}
10460
10461// SetStatus sets the Status field's value.
10462func (s *NotebookExecution) SetStatus(v string) *NotebookExecution {
10463	s.Status = &v
10464	return s
10465}
10466
10467// SetTags sets the Tags field's value.
10468func (s *NotebookExecution) SetTags(v []*Tag) *NotebookExecution {
10469	s.Tags = v
10470	return s
10471}
10472
10473type NotebookExecutionSummary struct {
10474	_ struct{} `type:"structure"`
10475
10476	// The unique identifier of the editor associated with the notebook execution.
10477	EditorId *string `type:"string"`
10478
10479	// The timestamp when notebook execution started.
10480	EndTime *time.Time `type:"timestamp"`
10481
10482	// The unique identifier of the notebook execution.
10483	NotebookExecutionId *string `type:"string"`
10484
10485	// The name of the notebook execution.
10486	NotebookExecutionName *string `type:"string"`
10487
10488	// The timestamp when notebook execution started.
10489	StartTime *time.Time `type:"timestamp"`
10490
10491	// The status of the notebook execution.
10492	//
10493	//    * START_PENDING indicates that the cluster has received the execution
10494	//    request but execution has not begun.
10495	//
10496	//    * STARTING indicates that the execution is starting on the cluster.
10497	//
10498	//    * RUNNING indicates that the execution is being processed by the cluster.
10499	//
10500	//    * FINISHING indicates that execution processing is in the final stages.
10501	//
10502	//    * FINISHED indicates that the execution has completed without error.
10503	//
10504	//    * FAILING indicates that the execution is failing and will not finish
10505	//    successfully.
10506	//
10507	//    * FAILED indicates that the execution failed.
10508	//
10509	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
10510	//    request and the stop is pending.
10511	//
10512	//    * STOPPING indicates that the cluster is in the process of stopping the
10513	//    execution as a result of a StopNotebookExecution request.
10514	//
10515	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
10516	//    request.
10517	Status *string `type:"string" enum:"NotebookExecutionStatus"`
10518}
10519
10520// String returns the string representation
10521func (s NotebookExecutionSummary) String() string {
10522	return awsutil.Prettify(s)
10523}
10524
10525// GoString returns the string representation
10526func (s NotebookExecutionSummary) GoString() string {
10527	return s.String()
10528}
10529
10530// SetEditorId sets the EditorId field's value.
10531func (s *NotebookExecutionSummary) SetEditorId(v string) *NotebookExecutionSummary {
10532	s.EditorId = &v
10533	return s
10534}
10535
10536// SetEndTime sets the EndTime field's value.
10537func (s *NotebookExecutionSummary) SetEndTime(v time.Time) *NotebookExecutionSummary {
10538	s.EndTime = &v
10539	return s
10540}
10541
10542// SetNotebookExecutionId sets the NotebookExecutionId field's value.
10543func (s *NotebookExecutionSummary) SetNotebookExecutionId(v string) *NotebookExecutionSummary {
10544	s.NotebookExecutionId = &v
10545	return s
10546}
10547
10548// SetNotebookExecutionName sets the NotebookExecutionName field's value.
10549func (s *NotebookExecutionSummary) SetNotebookExecutionName(v string) *NotebookExecutionSummary {
10550	s.NotebookExecutionName = &v
10551	return s
10552}
10553
10554// SetStartTime sets the StartTime field's value.
10555func (s *NotebookExecutionSummary) SetStartTime(v time.Time) *NotebookExecutionSummary {
10556	s.StartTime = &v
10557	return s
10558}
10559
10560// SetStatus sets the Status field's value.
10561func (s *NotebookExecutionSummary) SetStatus(v string) *NotebookExecutionSummary {
10562	s.Status = &v
10563	return s
10564}
10565
10566// The launch specification for On-Demand instances in the instance fleet, which
10567// determines the allocation strategy.
10568//
10569// The instance fleet configuration is available only in Amazon EMR versions
10570// 4.8.0 and later, excluding 5.0.x versions. On-Demand instances allocation
10571// strategy is available in Amazon EMR version 5.12.1 and later.
10572type OnDemandProvisioningSpecification struct {
10573	_ struct{} `type:"structure"`
10574
10575	// Specifies the strategy to use in launching On-Demand instance fleets. Currently,
10576	// the only option is lowest-price (the default), which launches the lowest
10577	// price first.
10578	//
10579	// AllocationStrategy is a required field
10580	AllocationStrategy *string `type:"string" required:"true" enum:"OnDemandProvisioningAllocationStrategy"`
10581}
10582
10583// String returns the string representation
10584func (s OnDemandProvisioningSpecification) String() string {
10585	return awsutil.Prettify(s)
10586}
10587
10588// GoString returns the string representation
10589func (s OnDemandProvisioningSpecification) GoString() string {
10590	return s.String()
10591}
10592
10593// Validate inspects the fields of the type to determine if they are valid.
10594func (s *OnDemandProvisioningSpecification) Validate() error {
10595	invalidParams := request.ErrInvalidParams{Context: "OnDemandProvisioningSpecification"}
10596	if s.AllocationStrategy == nil {
10597		invalidParams.Add(request.NewErrParamRequired("AllocationStrategy"))
10598	}
10599
10600	if invalidParams.Len() > 0 {
10601		return invalidParams
10602	}
10603	return nil
10604}
10605
10606// SetAllocationStrategy sets the AllocationStrategy field's value.
10607func (s *OnDemandProvisioningSpecification) SetAllocationStrategy(v string) *OnDemandProvisioningSpecification {
10608	s.AllocationStrategy = &v
10609	return s
10610}
10611
10612// Placement group configuration for an Amazon EMR cluster. The configuration
10613// specifies the placement strategy that can be applied to instance roles during
10614// cluster creation.
10615//
10616// To use this configuration, consider attaching managed policy AmazonElasticMapReducePlacementGroupPolicy
10617// to the EMR role.
10618type PlacementGroupConfig struct {
10619	_ struct{} `type:"structure"`
10620
10621	// Role of the instance in the cluster.
10622	//
10623	// Starting with Amazon EMR version 5.23.0, the only supported instance role
10624	// is MASTER.
10625	//
10626	// InstanceRole is a required field
10627	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
10628
10629	// EC2 Placement Group strategy associated with instance role.
10630	//
10631	// Starting with Amazon EMR version 5.23.0, the only supported placement strategy
10632	// is SPREAD for the MASTER instance role.
10633	PlacementStrategy *string `type:"string" enum:"PlacementGroupStrategy"`
10634}
10635
10636// String returns the string representation
10637func (s PlacementGroupConfig) String() string {
10638	return awsutil.Prettify(s)
10639}
10640
10641// GoString returns the string representation
10642func (s PlacementGroupConfig) GoString() string {
10643	return s.String()
10644}
10645
10646// Validate inspects the fields of the type to determine if they are valid.
10647func (s *PlacementGroupConfig) Validate() error {
10648	invalidParams := request.ErrInvalidParams{Context: "PlacementGroupConfig"}
10649	if s.InstanceRole == nil {
10650		invalidParams.Add(request.NewErrParamRequired("InstanceRole"))
10651	}
10652
10653	if invalidParams.Len() > 0 {
10654		return invalidParams
10655	}
10656	return nil
10657}
10658
10659// SetInstanceRole sets the InstanceRole field's value.
10660func (s *PlacementGroupConfig) SetInstanceRole(v string) *PlacementGroupConfig {
10661	s.InstanceRole = &v
10662	return s
10663}
10664
10665// SetPlacementStrategy sets the PlacementStrategy field's value.
10666func (s *PlacementGroupConfig) SetPlacementStrategy(v string) *PlacementGroupConfig {
10667	s.PlacementStrategy = &v
10668	return s
10669}
10670
10671// The Amazon EC2 Availability Zone configuration of the cluster (job flow).
10672type PlacementType struct {
10673	_ struct{} `type:"structure"`
10674
10675	// The Amazon EC2 Availability Zone for the cluster. AvailabilityZone is used
10676	// for uniform instance groups, while AvailabilityZones (plural) is used for
10677	// instance fleets.
10678	AvailabilityZone *string `type:"string"`
10679
10680	// When multiple Availability Zones are specified, Amazon EMR evaluates them
10681	// and launches instances in the optimal Availability Zone. AvailabilityZones
10682	// is used for instance fleets, while AvailabilityZone (singular) is used for
10683	// uniform instance groups.
10684	//
10685	// The instance fleet configuration is available only in Amazon EMR versions
10686	// 4.8.0 and later, excluding 5.0.x versions.
10687	AvailabilityZones []*string `type:"list"`
10688}
10689
10690// String returns the string representation
10691func (s PlacementType) String() string {
10692	return awsutil.Prettify(s)
10693}
10694
10695// GoString returns the string representation
10696func (s PlacementType) GoString() string {
10697	return s.String()
10698}
10699
10700// SetAvailabilityZone sets the AvailabilityZone field's value.
10701func (s *PlacementType) SetAvailabilityZone(v string) *PlacementType {
10702	s.AvailabilityZone = &v
10703	return s
10704}
10705
10706// SetAvailabilityZones sets the AvailabilityZones field's value.
10707func (s *PlacementType) SetAvailabilityZones(v []*string) *PlacementType {
10708	s.AvailabilityZones = v
10709	return s
10710}
10711
10712// A list of port ranges that are permitted to allow inbound traffic from all
10713// public IP addresses. To specify a single port, use the same value for MinRange
10714// and MaxRange.
10715type PortRange struct {
10716	_ struct{} `type:"structure"`
10717
10718	// The smallest port number in a specified range of port numbers.
10719	MaxRange *int64 `type:"integer"`
10720
10721	// The smallest port number in a specified range of port numbers.
10722	//
10723	// MinRange is a required field
10724	MinRange *int64 `type:"integer" required:"true"`
10725}
10726
10727// String returns the string representation
10728func (s PortRange) String() string {
10729	return awsutil.Prettify(s)
10730}
10731
10732// GoString returns the string representation
10733func (s PortRange) GoString() string {
10734	return s.String()
10735}
10736
10737// Validate inspects the fields of the type to determine if they are valid.
10738func (s *PortRange) Validate() error {
10739	invalidParams := request.ErrInvalidParams{Context: "PortRange"}
10740	if s.MaxRange != nil && *s.MaxRange < -1 {
10741		invalidParams.Add(request.NewErrParamMinValue("MaxRange", -1))
10742	}
10743	if s.MinRange == nil {
10744		invalidParams.Add(request.NewErrParamRequired("MinRange"))
10745	}
10746	if s.MinRange != nil && *s.MinRange < -1 {
10747		invalidParams.Add(request.NewErrParamMinValue("MinRange", -1))
10748	}
10749
10750	if invalidParams.Len() > 0 {
10751		return invalidParams
10752	}
10753	return nil
10754}
10755
10756// SetMaxRange sets the MaxRange field's value.
10757func (s *PortRange) SetMaxRange(v int64) *PortRange {
10758	s.MaxRange = &v
10759	return s
10760}
10761
10762// SetMinRange sets the MinRange field's value.
10763func (s *PortRange) SetMinRange(v int64) *PortRange {
10764	s.MinRange = &v
10765	return s
10766}
10767
10768type PutAutoScalingPolicyInput struct {
10769	_ struct{} `type:"structure"`
10770
10771	// Specifies the definition of the automatic scaling policy.
10772	//
10773	// AutoScalingPolicy is a required field
10774	AutoScalingPolicy *AutoScalingPolicy `type:"structure" required:"true"`
10775
10776	// Specifies the ID of a cluster. The instance group to which the automatic
10777	// scaling policy is applied is within this cluster.
10778	//
10779	// ClusterId is a required field
10780	ClusterId *string `type:"string" required:"true"`
10781
10782	// Specifies the ID of the instance group to which the automatic scaling policy
10783	// is applied.
10784	//
10785	// InstanceGroupId is a required field
10786	InstanceGroupId *string `type:"string" required:"true"`
10787}
10788
10789// String returns the string representation
10790func (s PutAutoScalingPolicyInput) String() string {
10791	return awsutil.Prettify(s)
10792}
10793
10794// GoString returns the string representation
10795func (s PutAutoScalingPolicyInput) GoString() string {
10796	return s.String()
10797}
10798
10799// Validate inspects the fields of the type to determine if they are valid.
10800func (s *PutAutoScalingPolicyInput) Validate() error {
10801	invalidParams := request.ErrInvalidParams{Context: "PutAutoScalingPolicyInput"}
10802	if s.AutoScalingPolicy == nil {
10803		invalidParams.Add(request.NewErrParamRequired("AutoScalingPolicy"))
10804	}
10805	if s.ClusterId == nil {
10806		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
10807	}
10808	if s.InstanceGroupId == nil {
10809		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
10810	}
10811	if s.AutoScalingPolicy != nil {
10812		if err := s.AutoScalingPolicy.Validate(); err != nil {
10813			invalidParams.AddNested("AutoScalingPolicy", err.(request.ErrInvalidParams))
10814		}
10815	}
10816
10817	if invalidParams.Len() > 0 {
10818		return invalidParams
10819	}
10820	return nil
10821}
10822
10823// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
10824func (s *PutAutoScalingPolicyInput) SetAutoScalingPolicy(v *AutoScalingPolicy) *PutAutoScalingPolicyInput {
10825	s.AutoScalingPolicy = v
10826	return s
10827}
10828
10829// SetClusterId sets the ClusterId field's value.
10830func (s *PutAutoScalingPolicyInput) SetClusterId(v string) *PutAutoScalingPolicyInput {
10831	s.ClusterId = &v
10832	return s
10833}
10834
10835// SetInstanceGroupId sets the InstanceGroupId field's value.
10836func (s *PutAutoScalingPolicyInput) SetInstanceGroupId(v string) *PutAutoScalingPolicyInput {
10837	s.InstanceGroupId = &v
10838	return s
10839}
10840
10841type PutAutoScalingPolicyOutput struct {
10842	_ struct{} `type:"structure"`
10843
10844	// The automatic scaling policy definition.
10845	AutoScalingPolicy *AutoScalingPolicyDescription `type:"structure"`
10846
10847	// The Amazon Resource Name of the cluster.
10848	ClusterArn *string `min:"20" type:"string"`
10849
10850	// Specifies the ID of a cluster. The instance group to which the automatic
10851	// scaling policy is applied is within this cluster.
10852	ClusterId *string `type:"string"`
10853
10854	// Specifies the ID of the instance group to which the scaling policy is applied.
10855	InstanceGroupId *string `type:"string"`
10856}
10857
10858// String returns the string representation
10859func (s PutAutoScalingPolicyOutput) String() string {
10860	return awsutil.Prettify(s)
10861}
10862
10863// GoString returns the string representation
10864func (s PutAutoScalingPolicyOutput) GoString() string {
10865	return s.String()
10866}
10867
10868// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
10869func (s *PutAutoScalingPolicyOutput) SetAutoScalingPolicy(v *AutoScalingPolicyDescription) *PutAutoScalingPolicyOutput {
10870	s.AutoScalingPolicy = v
10871	return s
10872}
10873
10874// SetClusterArn sets the ClusterArn field's value.
10875func (s *PutAutoScalingPolicyOutput) SetClusterArn(v string) *PutAutoScalingPolicyOutput {
10876	s.ClusterArn = &v
10877	return s
10878}
10879
10880// SetClusterId sets the ClusterId field's value.
10881func (s *PutAutoScalingPolicyOutput) SetClusterId(v string) *PutAutoScalingPolicyOutput {
10882	s.ClusterId = &v
10883	return s
10884}
10885
10886// SetInstanceGroupId sets the InstanceGroupId field's value.
10887func (s *PutAutoScalingPolicyOutput) SetInstanceGroupId(v string) *PutAutoScalingPolicyOutput {
10888	s.InstanceGroupId = &v
10889	return s
10890}
10891
10892type PutBlockPublicAccessConfigurationInput struct {
10893	_ struct{} `type:"structure"`
10894
10895	// A configuration for Amazon EMR block public access. The configuration applies
10896	// to all clusters created in your account for the current Region. The configuration
10897	// specifies whether block public access is enabled. If block public access
10898	// is enabled, security groups associated with the cluster cannot have rules
10899	// that allow inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port
10900	// is specified as an exception using PermittedPublicSecurityGroupRuleRanges
10901	// in the BlockPublicAccessConfiguration. By default, Port 22 (SSH) is an exception,
10902	// and public access is allowed on this port. You can change this by updating
10903	// BlockPublicSecurityGroupRules to remove the exception.
10904	//
10905	// For accounts that created clusters in a Region before November 25, 2019,
10906	// block public access is disabled by default in that Region. To use this feature,
10907	// you must manually enable and configure it. For accounts that did not create
10908	// an EMR cluster in a Region before this date, block public access is enabled
10909	// by default in that Region.
10910	//
10911	// BlockPublicAccessConfiguration is a required field
10912	BlockPublicAccessConfiguration *BlockPublicAccessConfiguration `type:"structure" required:"true"`
10913}
10914
10915// String returns the string representation
10916func (s PutBlockPublicAccessConfigurationInput) String() string {
10917	return awsutil.Prettify(s)
10918}
10919
10920// GoString returns the string representation
10921func (s PutBlockPublicAccessConfigurationInput) GoString() string {
10922	return s.String()
10923}
10924
10925// Validate inspects the fields of the type to determine if they are valid.
10926func (s *PutBlockPublicAccessConfigurationInput) Validate() error {
10927	invalidParams := request.ErrInvalidParams{Context: "PutBlockPublicAccessConfigurationInput"}
10928	if s.BlockPublicAccessConfiguration == nil {
10929		invalidParams.Add(request.NewErrParamRequired("BlockPublicAccessConfiguration"))
10930	}
10931	if s.BlockPublicAccessConfiguration != nil {
10932		if err := s.BlockPublicAccessConfiguration.Validate(); err != nil {
10933			invalidParams.AddNested("BlockPublicAccessConfiguration", err.(request.ErrInvalidParams))
10934		}
10935	}
10936
10937	if invalidParams.Len() > 0 {
10938		return invalidParams
10939	}
10940	return nil
10941}
10942
10943// SetBlockPublicAccessConfiguration sets the BlockPublicAccessConfiguration field's value.
10944func (s *PutBlockPublicAccessConfigurationInput) SetBlockPublicAccessConfiguration(v *BlockPublicAccessConfiguration) *PutBlockPublicAccessConfigurationInput {
10945	s.BlockPublicAccessConfiguration = v
10946	return s
10947}
10948
10949type PutBlockPublicAccessConfigurationOutput struct {
10950	_ struct{} `type:"structure"`
10951}
10952
10953// String returns the string representation
10954func (s PutBlockPublicAccessConfigurationOutput) String() string {
10955	return awsutil.Prettify(s)
10956}
10957
10958// GoString returns the string representation
10959func (s PutBlockPublicAccessConfigurationOutput) GoString() string {
10960	return s.String()
10961}
10962
10963type PutManagedScalingPolicyInput struct {
10964	_ struct{} `type:"structure"`
10965
10966	// Specifies the ID of an EMR cluster where the managed scaling policy is attached.
10967	//
10968	// ClusterId is a required field
10969	ClusterId *string `type:"string" required:"true"`
10970
10971	// Specifies the constraints for the managed scaling policy.
10972	//
10973	// ManagedScalingPolicy is a required field
10974	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure" required:"true"`
10975}
10976
10977// String returns the string representation
10978func (s PutManagedScalingPolicyInput) String() string {
10979	return awsutil.Prettify(s)
10980}
10981
10982// GoString returns the string representation
10983func (s PutManagedScalingPolicyInput) GoString() string {
10984	return s.String()
10985}
10986
10987// Validate inspects the fields of the type to determine if they are valid.
10988func (s *PutManagedScalingPolicyInput) Validate() error {
10989	invalidParams := request.ErrInvalidParams{Context: "PutManagedScalingPolicyInput"}
10990	if s.ClusterId == nil {
10991		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
10992	}
10993	if s.ManagedScalingPolicy == nil {
10994		invalidParams.Add(request.NewErrParamRequired("ManagedScalingPolicy"))
10995	}
10996	if s.ManagedScalingPolicy != nil {
10997		if err := s.ManagedScalingPolicy.Validate(); err != nil {
10998			invalidParams.AddNested("ManagedScalingPolicy", err.(request.ErrInvalidParams))
10999		}
11000	}
11001
11002	if invalidParams.Len() > 0 {
11003		return invalidParams
11004	}
11005	return nil
11006}
11007
11008// SetClusterId sets the ClusterId field's value.
11009func (s *PutManagedScalingPolicyInput) SetClusterId(v string) *PutManagedScalingPolicyInput {
11010	s.ClusterId = &v
11011	return s
11012}
11013
11014// SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
11015func (s *PutManagedScalingPolicyInput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *PutManagedScalingPolicyInput {
11016	s.ManagedScalingPolicy = v
11017	return s
11018}
11019
11020type PutManagedScalingPolicyOutput struct {
11021	_ struct{} `type:"structure"`
11022}
11023
11024// String returns the string representation
11025func (s PutManagedScalingPolicyOutput) String() string {
11026	return awsutil.Prettify(s)
11027}
11028
11029// GoString returns the string representation
11030func (s PutManagedScalingPolicyOutput) GoString() string {
11031	return s.String()
11032}
11033
11034type RemoveAutoScalingPolicyInput struct {
11035	_ struct{} `type:"structure"`
11036
11037	// Specifies the ID of a cluster. The instance group to which the automatic
11038	// scaling policy is applied is within this cluster.
11039	//
11040	// ClusterId is a required field
11041	ClusterId *string `type:"string" required:"true"`
11042
11043	// Specifies the ID of the instance group to which the scaling policy is applied.
11044	//
11045	// InstanceGroupId is a required field
11046	InstanceGroupId *string `type:"string" required:"true"`
11047}
11048
11049// String returns the string representation
11050func (s RemoveAutoScalingPolicyInput) String() string {
11051	return awsutil.Prettify(s)
11052}
11053
11054// GoString returns the string representation
11055func (s RemoveAutoScalingPolicyInput) GoString() string {
11056	return s.String()
11057}
11058
11059// Validate inspects the fields of the type to determine if they are valid.
11060func (s *RemoveAutoScalingPolicyInput) Validate() error {
11061	invalidParams := request.ErrInvalidParams{Context: "RemoveAutoScalingPolicyInput"}
11062	if s.ClusterId == nil {
11063		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11064	}
11065	if s.InstanceGroupId == nil {
11066		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
11067	}
11068
11069	if invalidParams.Len() > 0 {
11070		return invalidParams
11071	}
11072	return nil
11073}
11074
11075// SetClusterId sets the ClusterId field's value.
11076func (s *RemoveAutoScalingPolicyInput) SetClusterId(v string) *RemoveAutoScalingPolicyInput {
11077	s.ClusterId = &v
11078	return s
11079}
11080
11081// SetInstanceGroupId sets the InstanceGroupId field's value.
11082func (s *RemoveAutoScalingPolicyInput) SetInstanceGroupId(v string) *RemoveAutoScalingPolicyInput {
11083	s.InstanceGroupId = &v
11084	return s
11085}
11086
11087type RemoveAutoScalingPolicyOutput struct {
11088	_ struct{} `type:"structure"`
11089}
11090
11091// String returns the string representation
11092func (s RemoveAutoScalingPolicyOutput) String() string {
11093	return awsutil.Prettify(s)
11094}
11095
11096// GoString returns the string representation
11097func (s RemoveAutoScalingPolicyOutput) GoString() string {
11098	return s.String()
11099}
11100
11101type RemoveManagedScalingPolicyInput struct {
11102	_ struct{} `type:"structure"`
11103
11104	// Specifies the ID of the cluster from which the managed scaling policy will
11105	// be removed.
11106	//
11107	// ClusterId is a required field
11108	ClusterId *string `type:"string" required:"true"`
11109}
11110
11111// String returns the string representation
11112func (s RemoveManagedScalingPolicyInput) String() string {
11113	return awsutil.Prettify(s)
11114}
11115
11116// GoString returns the string representation
11117func (s RemoveManagedScalingPolicyInput) GoString() string {
11118	return s.String()
11119}
11120
11121// Validate inspects the fields of the type to determine if they are valid.
11122func (s *RemoveManagedScalingPolicyInput) Validate() error {
11123	invalidParams := request.ErrInvalidParams{Context: "RemoveManagedScalingPolicyInput"}
11124	if s.ClusterId == nil {
11125		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11126	}
11127
11128	if invalidParams.Len() > 0 {
11129		return invalidParams
11130	}
11131	return nil
11132}
11133
11134// SetClusterId sets the ClusterId field's value.
11135func (s *RemoveManagedScalingPolicyInput) SetClusterId(v string) *RemoveManagedScalingPolicyInput {
11136	s.ClusterId = &v
11137	return s
11138}
11139
11140type RemoveManagedScalingPolicyOutput struct {
11141	_ struct{} `type:"structure"`
11142}
11143
11144// String returns the string representation
11145func (s RemoveManagedScalingPolicyOutput) String() string {
11146	return awsutil.Prettify(s)
11147}
11148
11149// GoString returns the string representation
11150func (s RemoveManagedScalingPolicyOutput) GoString() string {
11151	return s.String()
11152}
11153
11154// This input identifies a cluster and a list of tags to remove.
11155type RemoveTagsInput struct {
11156	_ struct{} `type:"structure"`
11157
11158	// The Amazon EMR resource identifier from which tags will be removed. This
11159	// value must be a cluster identifier.
11160	//
11161	// ResourceId is a required field
11162	ResourceId *string `type:"string" required:"true"`
11163
11164	// A list of tag keys to remove from a resource.
11165	//
11166	// TagKeys is a required field
11167	TagKeys []*string `type:"list" required:"true"`
11168}
11169
11170// String returns the string representation
11171func (s RemoveTagsInput) String() string {
11172	return awsutil.Prettify(s)
11173}
11174
11175// GoString returns the string representation
11176func (s RemoveTagsInput) GoString() string {
11177	return s.String()
11178}
11179
11180// Validate inspects the fields of the type to determine if they are valid.
11181func (s *RemoveTagsInput) Validate() error {
11182	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsInput"}
11183	if s.ResourceId == nil {
11184		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
11185	}
11186	if s.TagKeys == nil {
11187		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
11188	}
11189
11190	if invalidParams.Len() > 0 {
11191		return invalidParams
11192	}
11193	return nil
11194}
11195
11196// SetResourceId sets the ResourceId field's value.
11197func (s *RemoveTagsInput) SetResourceId(v string) *RemoveTagsInput {
11198	s.ResourceId = &v
11199	return s
11200}
11201
11202// SetTagKeys sets the TagKeys field's value.
11203func (s *RemoveTagsInput) SetTagKeys(v []*string) *RemoveTagsInput {
11204	s.TagKeys = v
11205	return s
11206}
11207
11208// This output indicates the result of removing tags from a resource.
11209type RemoveTagsOutput struct {
11210	_ struct{} `type:"structure"`
11211}
11212
11213// String returns the string representation
11214func (s RemoveTagsOutput) String() string {
11215	return awsutil.Prettify(s)
11216}
11217
11218// GoString returns the string representation
11219func (s RemoveTagsOutput) GoString() string {
11220	return s.String()
11221}
11222
11223// Input to the RunJobFlow operation.
11224type RunJobFlowInput struct {
11225	_ struct{} `type:"structure"`
11226
11227	// A JSON string for selecting additional features.
11228	AdditionalInfo *string `type:"string"`
11229
11230	// Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
11231	// 4.0 and later, ReleaseLabel is used. To specify a custom AMI, use CustomAmiID.
11232	AmiVersion *string `type:"string"`
11233
11234	// Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of
11235	// applications for Amazon EMR to install and configure when launching the cluster.
11236	// For a list of applications available for each Amazon EMR release version,
11237	// see the Amazon EMR Release Guide (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/).
11238	Applications []*Application `type:"list"`
11239
11240	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
11241	// The IAM role provides permissions that the automatic scaling feature requires
11242	// to launch and terminate EC2 instances in an instance group.
11243	AutoScalingRole *string `type:"string"`
11244
11245	// A list of bootstrap actions to run before Hadoop starts on the cluster nodes.
11246	BootstrapActions []*BootstrapActionConfig `type:"list"`
11247
11248	// For Amazon EMR releases 4.0 and later. The list of configurations supplied
11249	// for the EMR cluster you are creating.
11250	Configurations []*Configuration `type:"list"`
11251
11252	// Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
11253	// Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when
11254	// it launches cluster EC2 instances. For more information about custom AMIs
11255	// in Amazon EMR, see Using a Custom AMI (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html)
11256	// in the Amazon EMR Management Guide. If omitted, the cluster uses the base
11257	// Linux AMI for the ReleaseLabel specified. For Amazon EMR versions 2.x and
11258	// 3.x, use AmiVersion instead.
11259	//
11260	// For information about creating a custom AMI, see Creating an Amazon EBS-Backed
11261	// Linux AMI (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html)
11262	// in the Amazon Elastic Compute Cloud User Guide for Linux Instances. For information
11263	// about finding an AMI ID, see Finding a Linux AMI (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html).
11264	CustomAmiId *string `type:"string"`
11265
11266	// The size, in GiB, of the EBS root device volume of the Linux AMI that is
11267	// used for each EC2 instance. Available in Amazon EMR version 4.x and later.
11268	EbsRootVolumeSize *int64 `type:"integer"`
11269
11270	// A specification of the number and type of Amazon EC2 instances.
11271	//
11272	// Instances is a required field
11273	Instances *JobFlowInstancesConfig `type:"structure" required:"true"`
11274
11275	// Also called instance profile and EC2 role. An IAM role for an EMR cluster.
11276	// The EC2 instances of the cluster assume this role. The default role is EMR_EC2_DefaultRole.
11277	// In order to use the default role, you must have already created it using
11278	// the CLI or console.
11279	JobFlowRole *string `type:"string"`
11280
11281	// Attributes for Kerberos configuration when Kerberos authentication is enabled
11282	// using a security configuration. For more information see Use Kerberos Authentication
11283	// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
11284	// in the EMR Management Guide.
11285	KerberosAttributes *KerberosAttributes `type:"structure"`
11286
11287	// The AWS KMS customer master key (CMK) used for encrypting log files. If a
11288	// value is not provided, the logs will remain encrypted by AES-256. This attribute
11289	// is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0.
11290	LogEncryptionKmsKeyId *string `type:"string"`
11291
11292	// The location in Amazon S3 to write the log files of the job flow. If a value
11293	// is not provided, logs are not created.
11294	LogUri *string `type:"string"`
11295
11296	// The specified managed scaling policy for an Amazon EMR cluster.
11297	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure"`
11298
11299	// The name of the job flow.
11300	//
11301	// Name is a required field
11302	Name *string `type:"string" required:"true"`
11303
11304	//
11305	// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later,
11306	// use Applications.
11307	//
11308	// A list of strings that indicates third-party software to use with the job
11309	// flow that accepts a user argument list. EMR accepts and forwards the argument
11310	// list to the corresponding installation script as bootstrap action arguments.
11311	// For more information, see "Launch a Job Flow on the MapR Distribution for
11312	// Hadoop" in the Amazon EMR Developer Guide (https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf).
11313	// Supported values are:
11314	//
11315	//    * "mapr-m3" - launch the cluster using MapR M3 Edition.
11316	//
11317	//    * "mapr-m5" - launch the cluster using MapR M5 Edition.
11318	//
11319	//    * "mapr" with the user arguments specifying "--edition,m3" or "--edition,m5"
11320	//    - launch the job flow using MapR M3 or M5 Edition respectively.
11321	//
11322	//    * "mapr-m7" - launch the cluster using MapR M7 Edition.
11323	//
11324	//    * "hunk" - launch the cluster with the Hunk Big Data Analtics Platform.
11325	//
11326	//    * "hue"- launch the cluster with Hue installed.
11327	//
11328	//    * "spark" - launch the cluster with Apache Spark installed.
11329	//
11330	//    * "ganglia" - launch the cluster with the Ganglia Monitoring System installed.
11331	NewSupportedProducts []*SupportedProductConfig `type:"list"`
11332
11333	// The specified placement group configuration for an Amazon EMR cluster.
11334	PlacementGroupConfigs []*PlacementGroupConfig `type:"list"`
11335
11336	// The Amazon EMR release label, which determines the version of open-source
11337	// application packages installed on the cluster. Release labels are in the
11338	// form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0.
11339	// For more information about Amazon EMR release versions and included application
11340	// versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/
11341	// (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/). The release label
11342	// applies only to Amazon EMR releases version 4.0 and later. Earlier versions
11343	// use AmiVersion.
11344	ReleaseLabel *string `type:"string"`
11345
11346	// Applies only when CustomAmiID is used. Specifies which updates from the Amazon
11347	// Linux AMI package repositories to apply automatically when the instance boots
11348	// using the AMI. If omitted, the default is SECURITY, which indicates that
11349	// only security updates are applied. If NONE is specified, no updates are applied,
11350	// and all updates must be applied manually.
11351	RepoUpgradeOnBoot *string `type:"string" enum:"RepoUpgradeOnBoot"`
11352
11353	// Specifies the way that individual Amazon EC2 instances terminate when an
11354	// automatic scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
11355	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
11356	// regardless of when the request to terminate the instance was submitted. This
11357	// option is only available with Amazon EMR 5.1.0 and later and is the default
11358	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
11359	// that Amazon EMR blacklists and drains tasks from nodes before terminating
11360	// the Amazon EC2 instances, regardless of the instance-hour boundary. With
11361	// either behavior, Amazon EMR removes the least active nodes first and blocks
11362	// instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
11363	// available only in Amazon EMR version 4.1.0 and later, and is the default
11364	// for versions of Amazon EMR earlier than 5.1.0.
11365	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
11366
11367	// The name of a security configuration to apply to the cluster.
11368	SecurityConfiguration *string `type:"string"`
11369
11370	// The IAM role that will be assumed by the Amazon EMR service to access AWS
11371	// resources on your behalf.
11372	ServiceRole *string `type:"string"`
11373
11374	// Specifies the number of steps that can be executed concurrently. The default
11375	// value is 1. The maximum value is 256.
11376	StepConcurrencyLevel *int64 `type:"integer"`
11377
11378	// A list of steps to run.
11379	Steps []*StepConfig `type:"list"`
11380
11381	//
11382	// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later,
11383	// use Applications.
11384	//
11385	// A list of strings that indicates third-party software to use. For more information,
11386	// see the Amazon EMR Developer Guide (https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf).
11387	// Currently supported values are:
11388	//
11389	//    * "mapr-m3" - launch the job flow using MapR M3 Edition.
11390	//
11391	//    * "mapr-m5" - launch the job flow using MapR M5 Edition.
11392	SupportedProducts []*string `type:"list"`
11393
11394	// A list of tags to associate with a cluster and propagate to Amazon EC2 instances.
11395	Tags []*Tag `type:"list"`
11396
11397	// A value of true indicates that all IAM users in the AWS account can perform
11398	// cluster actions if they have the proper IAM policy permissions. This is the
11399	// default. A value of false indicates that only the IAM user who created the
11400	// cluster can perform actions.
11401	VisibleToAllUsers *bool `type:"boolean"`
11402}
11403
11404// String returns the string representation
11405func (s RunJobFlowInput) String() string {
11406	return awsutil.Prettify(s)
11407}
11408
11409// GoString returns the string representation
11410func (s RunJobFlowInput) GoString() string {
11411	return s.String()
11412}
11413
11414// Validate inspects the fields of the type to determine if they are valid.
11415func (s *RunJobFlowInput) Validate() error {
11416	invalidParams := request.ErrInvalidParams{Context: "RunJobFlowInput"}
11417	if s.Instances == nil {
11418		invalidParams.Add(request.NewErrParamRequired("Instances"))
11419	}
11420	if s.Name == nil {
11421		invalidParams.Add(request.NewErrParamRequired("Name"))
11422	}
11423	if s.BootstrapActions != nil {
11424		for i, v := range s.BootstrapActions {
11425			if v == nil {
11426				continue
11427			}
11428			if err := v.Validate(); err != nil {
11429				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BootstrapActions", i), err.(request.ErrInvalidParams))
11430			}
11431		}
11432	}
11433	if s.Instances != nil {
11434		if err := s.Instances.Validate(); err != nil {
11435			invalidParams.AddNested("Instances", err.(request.ErrInvalidParams))
11436		}
11437	}
11438	if s.KerberosAttributes != nil {
11439		if err := s.KerberosAttributes.Validate(); err != nil {
11440			invalidParams.AddNested("KerberosAttributes", err.(request.ErrInvalidParams))
11441		}
11442	}
11443	if s.ManagedScalingPolicy != nil {
11444		if err := s.ManagedScalingPolicy.Validate(); err != nil {
11445			invalidParams.AddNested("ManagedScalingPolicy", err.(request.ErrInvalidParams))
11446		}
11447	}
11448	if s.PlacementGroupConfigs != nil {
11449		for i, v := range s.PlacementGroupConfigs {
11450			if v == nil {
11451				continue
11452			}
11453			if err := v.Validate(); err != nil {
11454				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlacementGroupConfigs", i), err.(request.ErrInvalidParams))
11455			}
11456		}
11457	}
11458	if s.Steps != nil {
11459		for i, v := range s.Steps {
11460			if v == nil {
11461				continue
11462			}
11463			if err := v.Validate(); err != nil {
11464				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Steps", i), err.(request.ErrInvalidParams))
11465			}
11466		}
11467	}
11468
11469	if invalidParams.Len() > 0 {
11470		return invalidParams
11471	}
11472	return nil
11473}
11474
11475// SetAdditionalInfo sets the AdditionalInfo field's value.
11476func (s *RunJobFlowInput) SetAdditionalInfo(v string) *RunJobFlowInput {
11477	s.AdditionalInfo = &v
11478	return s
11479}
11480
11481// SetAmiVersion sets the AmiVersion field's value.
11482func (s *RunJobFlowInput) SetAmiVersion(v string) *RunJobFlowInput {
11483	s.AmiVersion = &v
11484	return s
11485}
11486
11487// SetApplications sets the Applications field's value.
11488func (s *RunJobFlowInput) SetApplications(v []*Application) *RunJobFlowInput {
11489	s.Applications = v
11490	return s
11491}
11492
11493// SetAutoScalingRole sets the AutoScalingRole field's value.
11494func (s *RunJobFlowInput) SetAutoScalingRole(v string) *RunJobFlowInput {
11495	s.AutoScalingRole = &v
11496	return s
11497}
11498
11499// SetBootstrapActions sets the BootstrapActions field's value.
11500func (s *RunJobFlowInput) SetBootstrapActions(v []*BootstrapActionConfig) *RunJobFlowInput {
11501	s.BootstrapActions = v
11502	return s
11503}
11504
11505// SetConfigurations sets the Configurations field's value.
11506func (s *RunJobFlowInput) SetConfigurations(v []*Configuration) *RunJobFlowInput {
11507	s.Configurations = v
11508	return s
11509}
11510
11511// SetCustomAmiId sets the CustomAmiId field's value.
11512func (s *RunJobFlowInput) SetCustomAmiId(v string) *RunJobFlowInput {
11513	s.CustomAmiId = &v
11514	return s
11515}
11516
11517// SetEbsRootVolumeSize sets the EbsRootVolumeSize field's value.
11518func (s *RunJobFlowInput) SetEbsRootVolumeSize(v int64) *RunJobFlowInput {
11519	s.EbsRootVolumeSize = &v
11520	return s
11521}
11522
11523// SetInstances sets the Instances field's value.
11524func (s *RunJobFlowInput) SetInstances(v *JobFlowInstancesConfig) *RunJobFlowInput {
11525	s.Instances = v
11526	return s
11527}
11528
11529// SetJobFlowRole sets the JobFlowRole field's value.
11530func (s *RunJobFlowInput) SetJobFlowRole(v string) *RunJobFlowInput {
11531	s.JobFlowRole = &v
11532	return s
11533}
11534
11535// SetKerberosAttributes sets the KerberosAttributes field's value.
11536func (s *RunJobFlowInput) SetKerberosAttributes(v *KerberosAttributes) *RunJobFlowInput {
11537	s.KerberosAttributes = v
11538	return s
11539}
11540
11541// SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
11542func (s *RunJobFlowInput) SetLogEncryptionKmsKeyId(v string) *RunJobFlowInput {
11543	s.LogEncryptionKmsKeyId = &v
11544	return s
11545}
11546
11547// SetLogUri sets the LogUri field's value.
11548func (s *RunJobFlowInput) SetLogUri(v string) *RunJobFlowInput {
11549	s.LogUri = &v
11550	return s
11551}
11552
11553// SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
11554func (s *RunJobFlowInput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *RunJobFlowInput {
11555	s.ManagedScalingPolicy = v
11556	return s
11557}
11558
11559// SetName sets the Name field's value.
11560func (s *RunJobFlowInput) SetName(v string) *RunJobFlowInput {
11561	s.Name = &v
11562	return s
11563}
11564
11565// SetNewSupportedProducts sets the NewSupportedProducts field's value.
11566func (s *RunJobFlowInput) SetNewSupportedProducts(v []*SupportedProductConfig) *RunJobFlowInput {
11567	s.NewSupportedProducts = v
11568	return s
11569}
11570
11571// SetPlacementGroupConfigs sets the PlacementGroupConfigs field's value.
11572func (s *RunJobFlowInput) SetPlacementGroupConfigs(v []*PlacementGroupConfig) *RunJobFlowInput {
11573	s.PlacementGroupConfigs = v
11574	return s
11575}
11576
11577// SetReleaseLabel sets the ReleaseLabel field's value.
11578func (s *RunJobFlowInput) SetReleaseLabel(v string) *RunJobFlowInput {
11579	s.ReleaseLabel = &v
11580	return s
11581}
11582
11583// SetRepoUpgradeOnBoot sets the RepoUpgradeOnBoot field's value.
11584func (s *RunJobFlowInput) SetRepoUpgradeOnBoot(v string) *RunJobFlowInput {
11585	s.RepoUpgradeOnBoot = &v
11586	return s
11587}
11588
11589// SetScaleDownBehavior sets the ScaleDownBehavior field's value.
11590func (s *RunJobFlowInput) SetScaleDownBehavior(v string) *RunJobFlowInput {
11591	s.ScaleDownBehavior = &v
11592	return s
11593}
11594
11595// SetSecurityConfiguration sets the SecurityConfiguration field's value.
11596func (s *RunJobFlowInput) SetSecurityConfiguration(v string) *RunJobFlowInput {
11597	s.SecurityConfiguration = &v
11598	return s
11599}
11600
11601// SetServiceRole sets the ServiceRole field's value.
11602func (s *RunJobFlowInput) SetServiceRole(v string) *RunJobFlowInput {
11603	s.ServiceRole = &v
11604	return s
11605}
11606
11607// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
11608func (s *RunJobFlowInput) SetStepConcurrencyLevel(v int64) *RunJobFlowInput {
11609	s.StepConcurrencyLevel = &v
11610	return s
11611}
11612
11613// SetSteps sets the Steps field's value.
11614func (s *RunJobFlowInput) SetSteps(v []*StepConfig) *RunJobFlowInput {
11615	s.Steps = v
11616	return s
11617}
11618
11619// SetSupportedProducts sets the SupportedProducts field's value.
11620func (s *RunJobFlowInput) SetSupportedProducts(v []*string) *RunJobFlowInput {
11621	s.SupportedProducts = v
11622	return s
11623}
11624
11625// SetTags sets the Tags field's value.
11626func (s *RunJobFlowInput) SetTags(v []*Tag) *RunJobFlowInput {
11627	s.Tags = v
11628	return s
11629}
11630
11631// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
11632func (s *RunJobFlowInput) SetVisibleToAllUsers(v bool) *RunJobFlowInput {
11633	s.VisibleToAllUsers = &v
11634	return s
11635}
11636
11637// The result of the RunJobFlow operation.
11638type RunJobFlowOutput struct {
11639	_ struct{} `type:"structure"`
11640
11641	// The Amazon Resource Name of the cluster.
11642	ClusterArn *string `min:"20" type:"string"`
11643
11644	// An unique identifier for the job flow.
11645	JobFlowId *string `type:"string"`
11646}
11647
11648// String returns the string representation
11649func (s RunJobFlowOutput) String() string {
11650	return awsutil.Prettify(s)
11651}
11652
11653// GoString returns the string representation
11654func (s RunJobFlowOutput) GoString() string {
11655	return s.String()
11656}
11657
11658// SetClusterArn sets the ClusterArn field's value.
11659func (s *RunJobFlowOutput) SetClusterArn(v string) *RunJobFlowOutput {
11660	s.ClusterArn = &v
11661	return s
11662}
11663
11664// SetJobFlowId sets the JobFlowId field's value.
11665func (s *RunJobFlowOutput) SetJobFlowId(v string) *RunJobFlowOutput {
11666	s.JobFlowId = &v
11667	return s
11668}
11669
11670// The type of adjustment the automatic scaling activity makes when triggered,
11671// and the periodicity of the adjustment.
11672type ScalingAction struct {
11673	_ struct{} `type:"structure"`
11674
11675	// Not available for instance groups. Instance groups use the market type specified
11676	// for the group.
11677	Market *string `type:"string" enum:"MarketType"`
11678
11679	// The type of adjustment the automatic scaling activity makes when triggered,
11680	// and the periodicity of the adjustment.
11681	//
11682	// SimpleScalingPolicyConfiguration is a required field
11683	SimpleScalingPolicyConfiguration *SimpleScalingPolicyConfiguration `type:"structure" required:"true"`
11684}
11685
11686// String returns the string representation
11687func (s ScalingAction) String() string {
11688	return awsutil.Prettify(s)
11689}
11690
11691// GoString returns the string representation
11692func (s ScalingAction) GoString() string {
11693	return s.String()
11694}
11695
11696// Validate inspects the fields of the type to determine if they are valid.
11697func (s *ScalingAction) Validate() error {
11698	invalidParams := request.ErrInvalidParams{Context: "ScalingAction"}
11699	if s.SimpleScalingPolicyConfiguration == nil {
11700		invalidParams.Add(request.NewErrParamRequired("SimpleScalingPolicyConfiguration"))
11701	}
11702	if s.SimpleScalingPolicyConfiguration != nil {
11703		if err := s.SimpleScalingPolicyConfiguration.Validate(); err != nil {
11704			invalidParams.AddNested("SimpleScalingPolicyConfiguration", err.(request.ErrInvalidParams))
11705		}
11706	}
11707
11708	if invalidParams.Len() > 0 {
11709		return invalidParams
11710	}
11711	return nil
11712}
11713
11714// SetMarket sets the Market field's value.
11715func (s *ScalingAction) SetMarket(v string) *ScalingAction {
11716	s.Market = &v
11717	return s
11718}
11719
11720// SetSimpleScalingPolicyConfiguration sets the SimpleScalingPolicyConfiguration field's value.
11721func (s *ScalingAction) SetSimpleScalingPolicyConfiguration(v *SimpleScalingPolicyConfiguration) *ScalingAction {
11722	s.SimpleScalingPolicyConfiguration = v
11723	return s
11724}
11725
11726// The upper and lower EC2 instance limits for an automatic scaling policy.
11727// Automatic scaling activities triggered by automatic scaling rules will not
11728// cause an instance group to grow above or below these limits.
11729type ScalingConstraints struct {
11730	_ struct{} `type:"structure"`
11731
11732	// The upper boundary of EC2 instances in an instance group beyond which scaling
11733	// activities are not allowed to grow. Scale-out activities will not add instances
11734	// beyond this boundary.
11735	//
11736	// MaxCapacity is a required field
11737	MaxCapacity *int64 `type:"integer" required:"true"`
11738
11739	// The lower boundary of EC2 instances in an instance group below which scaling
11740	// activities are not allowed to shrink. Scale-in activities will not terminate
11741	// instances below this boundary.
11742	//
11743	// MinCapacity is a required field
11744	MinCapacity *int64 `type:"integer" required:"true"`
11745}
11746
11747// String returns the string representation
11748func (s ScalingConstraints) String() string {
11749	return awsutil.Prettify(s)
11750}
11751
11752// GoString returns the string representation
11753func (s ScalingConstraints) GoString() string {
11754	return s.String()
11755}
11756
11757// Validate inspects the fields of the type to determine if they are valid.
11758func (s *ScalingConstraints) Validate() error {
11759	invalidParams := request.ErrInvalidParams{Context: "ScalingConstraints"}
11760	if s.MaxCapacity == nil {
11761		invalidParams.Add(request.NewErrParamRequired("MaxCapacity"))
11762	}
11763	if s.MinCapacity == nil {
11764		invalidParams.Add(request.NewErrParamRequired("MinCapacity"))
11765	}
11766
11767	if invalidParams.Len() > 0 {
11768		return invalidParams
11769	}
11770	return nil
11771}
11772
11773// SetMaxCapacity sets the MaxCapacity field's value.
11774func (s *ScalingConstraints) SetMaxCapacity(v int64) *ScalingConstraints {
11775	s.MaxCapacity = &v
11776	return s
11777}
11778
11779// SetMinCapacity sets the MinCapacity field's value.
11780func (s *ScalingConstraints) SetMinCapacity(v int64) *ScalingConstraints {
11781	s.MinCapacity = &v
11782	return s
11783}
11784
11785// A scale-in or scale-out rule that defines scaling activity, including the
11786// CloudWatch metric alarm that triggers activity, how EC2 instances are added
11787// or removed, and the periodicity of adjustments. The automatic scaling policy
11788// for an instance group can comprise one or more automatic scaling rules.
11789type ScalingRule struct {
11790	_ struct{} `type:"structure"`
11791
11792	// The conditions that trigger an automatic scaling activity.
11793	//
11794	// Action is a required field
11795	Action *ScalingAction `type:"structure" required:"true"`
11796
11797	// A friendly, more verbose description of the automatic scaling rule.
11798	Description *string `type:"string"`
11799
11800	// The name used to identify an automatic scaling rule. Rule names must be unique
11801	// within a scaling policy.
11802	//
11803	// Name is a required field
11804	Name *string `type:"string" required:"true"`
11805
11806	// The CloudWatch alarm definition that determines when automatic scaling activity
11807	// is triggered.
11808	//
11809	// Trigger is a required field
11810	Trigger *ScalingTrigger `type:"structure" required:"true"`
11811}
11812
11813// String returns the string representation
11814func (s ScalingRule) String() string {
11815	return awsutil.Prettify(s)
11816}
11817
11818// GoString returns the string representation
11819func (s ScalingRule) GoString() string {
11820	return s.String()
11821}
11822
11823// Validate inspects the fields of the type to determine if they are valid.
11824func (s *ScalingRule) Validate() error {
11825	invalidParams := request.ErrInvalidParams{Context: "ScalingRule"}
11826	if s.Action == nil {
11827		invalidParams.Add(request.NewErrParamRequired("Action"))
11828	}
11829	if s.Name == nil {
11830		invalidParams.Add(request.NewErrParamRequired("Name"))
11831	}
11832	if s.Trigger == nil {
11833		invalidParams.Add(request.NewErrParamRequired("Trigger"))
11834	}
11835	if s.Action != nil {
11836		if err := s.Action.Validate(); err != nil {
11837			invalidParams.AddNested("Action", err.(request.ErrInvalidParams))
11838		}
11839	}
11840	if s.Trigger != nil {
11841		if err := s.Trigger.Validate(); err != nil {
11842			invalidParams.AddNested("Trigger", err.(request.ErrInvalidParams))
11843		}
11844	}
11845
11846	if invalidParams.Len() > 0 {
11847		return invalidParams
11848	}
11849	return nil
11850}
11851
11852// SetAction sets the Action field's value.
11853func (s *ScalingRule) SetAction(v *ScalingAction) *ScalingRule {
11854	s.Action = v
11855	return s
11856}
11857
11858// SetDescription sets the Description field's value.
11859func (s *ScalingRule) SetDescription(v string) *ScalingRule {
11860	s.Description = &v
11861	return s
11862}
11863
11864// SetName sets the Name field's value.
11865func (s *ScalingRule) SetName(v string) *ScalingRule {
11866	s.Name = &v
11867	return s
11868}
11869
11870// SetTrigger sets the Trigger field's value.
11871func (s *ScalingRule) SetTrigger(v *ScalingTrigger) *ScalingRule {
11872	s.Trigger = v
11873	return s
11874}
11875
11876// The conditions that trigger an automatic scaling activity.
11877type ScalingTrigger struct {
11878	_ struct{} `type:"structure"`
11879
11880	// The definition of a CloudWatch metric alarm. When the defined alarm conditions
11881	// are met along with other trigger parameters, scaling activity begins.
11882	//
11883	// CloudWatchAlarmDefinition is a required field
11884	CloudWatchAlarmDefinition *CloudWatchAlarmDefinition `type:"structure" required:"true"`
11885}
11886
11887// String returns the string representation
11888func (s ScalingTrigger) String() string {
11889	return awsutil.Prettify(s)
11890}
11891
11892// GoString returns the string representation
11893func (s ScalingTrigger) GoString() string {
11894	return s.String()
11895}
11896
11897// Validate inspects the fields of the type to determine if they are valid.
11898func (s *ScalingTrigger) Validate() error {
11899	invalidParams := request.ErrInvalidParams{Context: "ScalingTrigger"}
11900	if s.CloudWatchAlarmDefinition == nil {
11901		invalidParams.Add(request.NewErrParamRequired("CloudWatchAlarmDefinition"))
11902	}
11903	if s.CloudWatchAlarmDefinition != nil {
11904		if err := s.CloudWatchAlarmDefinition.Validate(); err != nil {
11905			invalidParams.AddNested("CloudWatchAlarmDefinition", err.(request.ErrInvalidParams))
11906		}
11907	}
11908
11909	if invalidParams.Len() > 0 {
11910		return invalidParams
11911	}
11912	return nil
11913}
11914
11915// SetCloudWatchAlarmDefinition sets the CloudWatchAlarmDefinition field's value.
11916func (s *ScalingTrigger) SetCloudWatchAlarmDefinition(v *CloudWatchAlarmDefinition) *ScalingTrigger {
11917	s.CloudWatchAlarmDefinition = v
11918	return s
11919}
11920
11921// Configuration of the script to run during a bootstrap action.
11922type ScriptBootstrapActionConfig struct {
11923	_ struct{} `type:"structure"`
11924
11925	// A list of command line arguments to pass to the bootstrap action script.
11926	Args []*string `type:"list"`
11927
11928	// Location of the script to run during a bootstrap action. Can be either a
11929	// location in Amazon S3 or on a local file system.
11930	//
11931	// Path is a required field
11932	Path *string `type:"string" required:"true"`
11933}
11934
11935// String returns the string representation
11936func (s ScriptBootstrapActionConfig) String() string {
11937	return awsutil.Prettify(s)
11938}
11939
11940// GoString returns the string representation
11941func (s ScriptBootstrapActionConfig) GoString() string {
11942	return s.String()
11943}
11944
11945// Validate inspects the fields of the type to determine if they are valid.
11946func (s *ScriptBootstrapActionConfig) Validate() error {
11947	invalidParams := request.ErrInvalidParams{Context: "ScriptBootstrapActionConfig"}
11948	if s.Path == nil {
11949		invalidParams.Add(request.NewErrParamRequired("Path"))
11950	}
11951
11952	if invalidParams.Len() > 0 {
11953		return invalidParams
11954	}
11955	return nil
11956}
11957
11958// SetArgs sets the Args field's value.
11959func (s *ScriptBootstrapActionConfig) SetArgs(v []*string) *ScriptBootstrapActionConfig {
11960	s.Args = v
11961	return s
11962}
11963
11964// SetPath sets the Path field's value.
11965func (s *ScriptBootstrapActionConfig) SetPath(v string) *ScriptBootstrapActionConfig {
11966	s.Path = &v
11967	return s
11968}
11969
11970// The creation date and time, and name, of a security configuration.
11971type SecurityConfigurationSummary struct {
11972	_ struct{} `type:"structure"`
11973
11974	// The date and time the security configuration was created.
11975	CreationDateTime *time.Time `type:"timestamp"`
11976
11977	// The name of the security configuration.
11978	Name *string `type:"string"`
11979}
11980
11981// String returns the string representation
11982func (s SecurityConfigurationSummary) String() string {
11983	return awsutil.Prettify(s)
11984}
11985
11986// GoString returns the string representation
11987func (s SecurityConfigurationSummary) GoString() string {
11988	return s.String()
11989}
11990
11991// SetCreationDateTime sets the CreationDateTime field's value.
11992func (s *SecurityConfigurationSummary) SetCreationDateTime(v time.Time) *SecurityConfigurationSummary {
11993	s.CreationDateTime = &v
11994	return s
11995}
11996
11997// SetName sets the Name field's value.
11998func (s *SecurityConfigurationSummary) SetName(v string) *SecurityConfigurationSummary {
11999	s.Name = &v
12000	return s
12001}
12002
12003// The input argument to the TerminationProtection operation.
12004type SetTerminationProtectionInput struct {
12005	_ struct{} `type:"structure"`
12006
12007	// A list of strings that uniquely identify the clusters to protect. This identifier
12008	// is returned by RunJobFlow and can also be obtained from DescribeJobFlows .
12009	//
12010	// JobFlowIds is a required field
12011	JobFlowIds []*string `type:"list" required:"true"`
12012
12013	// A Boolean that indicates whether to protect the cluster and prevent the Amazon
12014	// EC2 instances in the cluster from shutting down due to API calls, user intervention,
12015	// or job-flow error.
12016	//
12017	// TerminationProtected is a required field
12018	TerminationProtected *bool `type:"boolean" required:"true"`
12019}
12020
12021// String returns the string representation
12022func (s SetTerminationProtectionInput) String() string {
12023	return awsutil.Prettify(s)
12024}
12025
12026// GoString returns the string representation
12027func (s SetTerminationProtectionInput) GoString() string {
12028	return s.String()
12029}
12030
12031// Validate inspects the fields of the type to determine if they are valid.
12032func (s *SetTerminationProtectionInput) Validate() error {
12033	invalidParams := request.ErrInvalidParams{Context: "SetTerminationProtectionInput"}
12034	if s.JobFlowIds == nil {
12035		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
12036	}
12037	if s.TerminationProtected == nil {
12038		invalidParams.Add(request.NewErrParamRequired("TerminationProtected"))
12039	}
12040
12041	if invalidParams.Len() > 0 {
12042		return invalidParams
12043	}
12044	return nil
12045}
12046
12047// SetJobFlowIds sets the JobFlowIds field's value.
12048func (s *SetTerminationProtectionInput) SetJobFlowIds(v []*string) *SetTerminationProtectionInput {
12049	s.JobFlowIds = v
12050	return s
12051}
12052
12053// SetTerminationProtected sets the TerminationProtected field's value.
12054func (s *SetTerminationProtectionInput) SetTerminationProtected(v bool) *SetTerminationProtectionInput {
12055	s.TerminationProtected = &v
12056	return s
12057}
12058
12059type SetTerminationProtectionOutput struct {
12060	_ struct{} `type:"structure"`
12061}
12062
12063// String returns the string representation
12064func (s SetTerminationProtectionOutput) String() string {
12065	return awsutil.Prettify(s)
12066}
12067
12068// GoString returns the string representation
12069func (s SetTerminationProtectionOutput) GoString() string {
12070	return s.String()
12071}
12072
12073// The input to the SetVisibleToAllUsers action.
12074type SetVisibleToAllUsersInput struct {
12075	_ struct{} `type:"structure"`
12076
12077	// The unique identifier of the job flow (cluster).
12078	//
12079	// JobFlowIds is a required field
12080	JobFlowIds []*string `type:"list" required:"true"`
12081
12082	// A value of true indicates that all IAM users in the AWS account can perform
12083	// cluster actions if they have the proper IAM policy permissions. This is the
12084	// default. A value of false indicates that only the IAM user who created the
12085	// cluster can perform actions.
12086	//
12087	// VisibleToAllUsers is a required field
12088	VisibleToAllUsers *bool `type:"boolean" required:"true"`
12089}
12090
12091// String returns the string representation
12092func (s SetVisibleToAllUsersInput) String() string {
12093	return awsutil.Prettify(s)
12094}
12095
12096// GoString returns the string representation
12097func (s SetVisibleToAllUsersInput) GoString() string {
12098	return s.String()
12099}
12100
12101// Validate inspects the fields of the type to determine if they are valid.
12102func (s *SetVisibleToAllUsersInput) Validate() error {
12103	invalidParams := request.ErrInvalidParams{Context: "SetVisibleToAllUsersInput"}
12104	if s.JobFlowIds == nil {
12105		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
12106	}
12107	if s.VisibleToAllUsers == nil {
12108		invalidParams.Add(request.NewErrParamRequired("VisibleToAllUsers"))
12109	}
12110
12111	if invalidParams.Len() > 0 {
12112		return invalidParams
12113	}
12114	return nil
12115}
12116
12117// SetJobFlowIds sets the JobFlowIds field's value.
12118func (s *SetVisibleToAllUsersInput) SetJobFlowIds(v []*string) *SetVisibleToAllUsersInput {
12119	s.JobFlowIds = v
12120	return s
12121}
12122
12123// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
12124func (s *SetVisibleToAllUsersInput) SetVisibleToAllUsers(v bool) *SetVisibleToAllUsersInput {
12125	s.VisibleToAllUsers = &v
12126	return s
12127}
12128
12129type SetVisibleToAllUsersOutput struct {
12130	_ struct{} `type:"structure"`
12131}
12132
12133// String returns the string representation
12134func (s SetVisibleToAllUsersOutput) String() string {
12135	return awsutil.Prettify(s)
12136}
12137
12138// GoString returns the string representation
12139func (s SetVisibleToAllUsersOutput) GoString() string {
12140	return s.String()
12141}
12142
12143// Policy for customizing shrink operations. Allows configuration of decommissioning
12144// timeout and targeted instance shrinking.
12145type ShrinkPolicy struct {
12146	_ struct{} `type:"structure"`
12147
12148	// The desired timeout for decommissioning an instance. Overrides the default
12149	// YARN decommissioning timeout.
12150	DecommissionTimeout *int64 `type:"integer"`
12151
12152	// Custom policy for requesting termination protection or termination of specific
12153	// instances when shrinking an instance group.
12154	InstanceResizePolicy *InstanceResizePolicy `type:"structure"`
12155}
12156
12157// String returns the string representation
12158func (s ShrinkPolicy) String() string {
12159	return awsutil.Prettify(s)
12160}
12161
12162// GoString returns the string representation
12163func (s ShrinkPolicy) GoString() string {
12164	return s.String()
12165}
12166
12167// SetDecommissionTimeout sets the DecommissionTimeout field's value.
12168func (s *ShrinkPolicy) SetDecommissionTimeout(v int64) *ShrinkPolicy {
12169	s.DecommissionTimeout = &v
12170	return s
12171}
12172
12173// SetInstanceResizePolicy sets the InstanceResizePolicy field's value.
12174func (s *ShrinkPolicy) SetInstanceResizePolicy(v *InstanceResizePolicy) *ShrinkPolicy {
12175	s.InstanceResizePolicy = v
12176	return s
12177}
12178
12179// An automatic scaling configuration, which describes how the policy adds or
12180// removes instances, the cooldown period, and the number of EC2 instances that
12181// will be added each time the CloudWatch metric alarm condition is satisfied.
12182type SimpleScalingPolicyConfiguration struct {
12183	_ struct{} `type:"structure"`
12184
12185	// The way in which EC2 instances are added (if ScalingAdjustment is a positive
12186	// number) or terminated (if ScalingAdjustment is a negative number) each time
12187	// the scaling activity is triggered. CHANGE_IN_CAPACITY is the default. CHANGE_IN_CAPACITY
12188	// indicates that the EC2 instance count increments or decrements by ScalingAdjustment,
12189	// which should be expressed as an integer. PERCENT_CHANGE_IN_CAPACITY indicates
12190	// the instance count increments or decrements by the percentage specified by
12191	// ScalingAdjustment, which should be expressed as an integer. For example,
12192	// 20 indicates an increase in 20% increments of cluster capacity. EXACT_CAPACITY
12193	// indicates the scaling activity results in an instance group with the number
12194	// of EC2 instances specified by ScalingAdjustment, which should be expressed
12195	// as a positive integer.
12196	AdjustmentType *string `type:"string" enum:"AdjustmentType"`
12197
12198	// The amount of time, in seconds, after a scaling activity completes before
12199	// any further trigger-related scaling activities can start. The default value
12200	// is 0.
12201	CoolDown *int64 `type:"integer"`
12202
12203	// The amount by which to scale in or scale out, based on the specified AdjustmentType.
12204	// A positive value adds to the instance group's EC2 instance count while a
12205	// negative number removes instances. If AdjustmentType is set to EXACT_CAPACITY,
12206	// the number should only be a positive integer. If AdjustmentType is set to
12207	// PERCENT_CHANGE_IN_CAPACITY, the value should express the percentage as an
12208	// integer. For example, -20 indicates a decrease in 20% increments of cluster
12209	// capacity.
12210	//
12211	// ScalingAdjustment is a required field
12212	ScalingAdjustment *int64 `type:"integer" required:"true"`
12213}
12214
12215// String returns the string representation
12216func (s SimpleScalingPolicyConfiguration) String() string {
12217	return awsutil.Prettify(s)
12218}
12219
12220// GoString returns the string representation
12221func (s SimpleScalingPolicyConfiguration) GoString() string {
12222	return s.String()
12223}
12224
12225// Validate inspects the fields of the type to determine if they are valid.
12226func (s *SimpleScalingPolicyConfiguration) Validate() error {
12227	invalidParams := request.ErrInvalidParams{Context: "SimpleScalingPolicyConfiguration"}
12228	if s.ScalingAdjustment == nil {
12229		invalidParams.Add(request.NewErrParamRequired("ScalingAdjustment"))
12230	}
12231
12232	if invalidParams.Len() > 0 {
12233		return invalidParams
12234	}
12235	return nil
12236}
12237
12238// SetAdjustmentType sets the AdjustmentType field's value.
12239func (s *SimpleScalingPolicyConfiguration) SetAdjustmentType(v string) *SimpleScalingPolicyConfiguration {
12240	s.AdjustmentType = &v
12241	return s
12242}
12243
12244// SetCoolDown sets the CoolDown field's value.
12245func (s *SimpleScalingPolicyConfiguration) SetCoolDown(v int64) *SimpleScalingPolicyConfiguration {
12246	s.CoolDown = &v
12247	return s
12248}
12249
12250// SetScalingAdjustment sets the ScalingAdjustment field's value.
12251func (s *SimpleScalingPolicyConfiguration) SetScalingAdjustment(v int64) *SimpleScalingPolicyConfiguration {
12252	s.ScalingAdjustment = &v
12253	return s
12254}
12255
12256// The launch specification for Spot instances in the instance fleet, which
12257// determines the defined duration, provisioning timeout behavior, and allocation
12258// strategy.
12259//
12260// The instance fleet configuration is available only in Amazon EMR versions
12261// 4.8.0 and later, excluding 5.0.x versions. Spot instance allocation strategy
12262// is available in Amazon EMR version 5.12.1 and later.
12263type SpotProvisioningSpecification struct {
12264	_ struct{} `type:"structure"`
12265
12266	// Specifies the strategy to use in launching Spot instance fleets. Currently,
12267	// the only option is capacity-optimized (the default), which launches instances
12268	// from Spot instance pools with optimal capacity for the number of instances
12269	// that are launching.
12270	AllocationStrategy *string `type:"string" enum:"SpotProvisioningAllocationStrategy"`
12271
12272	// The defined duration for Spot instances (also known as Spot blocks) in minutes.
12273	// When specified, the Spot instance does not terminate before the defined duration
12274	// expires, and defined duration pricing for Spot instances applies. Valid values
12275	// are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as
12276	// a Spot instance receives its instance ID. At the end of the duration, Amazon
12277	// EC2 marks the Spot instance for termination and provides a Spot instance
12278	// termination notice, which gives the instance a two-minute warning before
12279	// it terminates.
12280	BlockDurationMinutes *int64 `type:"integer"`
12281
12282	// The action to take when TargetSpotCapacity has not been fulfilled when the
12283	// TimeoutDurationMinutes has expired; that is, when all Spot instances could
12284	// not be provisioned within the Spot provisioning timeout. Valid values are
12285	// TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies
12286	// that if no Spot instances are available, On-Demand Instances should be provisioned
12287	// to fulfill any remaining Spot capacity.
12288	//
12289	// TimeoutAction is a required field
12290	TimeoutAction *string `type:"string" required:"true" enum:"SpotProvisioningTimeoutAction"`
12291
12292	// The spot provisioning timeout period in minutes. If Spot instances are not
12293	// provisioned within this time period, the TimeOutAction is taken. Minimum
12294	// value is 5 and maximum value is 1440. The timeout applies only during initial
12295	// provisioning, when the cluster is first created.
12296	//
12297	// TimeoutDurationMinutes is a required field
12298	TimeoutDurationMinutes *int64 `type:"integer" required:"true"`
12299}
12300
12301// String returns the string representation
12302func (s SpotProvisioningSpecification) String() string {
12303	return awsutil.Prettify(s)
12304}
12305
12306// GoString returns the string representation
12307func (s SpotProvisioningSpecification) GoString() string {
12308	return s.String()
12309}
12310
12311// Validate inspects the fields of the type to determine if they are valid.
12312func (s *SpotProvisioningSpecification) Validate() error {
12313	invalidParams := request.ErrInvalidParams{Context: "SpotProvisioningSpecification"}
12314	if s.TimeoutAction == nil {
12315		invalidParams.Add(request.NewErrParamRequired("TimeoutAction"))
12316	}
12317	if s.TimeoutDurationMinutes == nil {
12318		invalidParams.Add(request.NewErrParamRequired("TimeoutDurationMinutes"))
12319	}
12320
12321	if invalidParams.Len() > 0 {
12322		return invalidParams
12323	}
12324	return nil
12325}
12326
12327// SetAllocationStrategy sets the AllocationStrategy field's value.
12328func (s *SpotProvisioningSpecification) SetAllocationStrategy(v string) *SpotProvisioningSpecification {
12329	s.AllocationStrategy = &v
12330	return s
12331}
12332
12333// SetBlockDurationMinutes sets the BlockDurationMinutes field's value.
12334func (s *SpotProvisioningSpecification) SetBlockDurationMinutes(v int64) *SpotProvisioningSpecification {
12335	s.BlockDurationMinutes = &v
12336	return s
12337}
12338
12339// SetTimeoutAction sets the TimeoutAction field's value.
12340func (s *SpotProvisioningSpecification) SetTimeoutAction(v string) *SpotProvisioningSpecification {
12341	s.TimeoutAction = &v
12342	return s
12343}
12344
12345// SetTimeoutDurationMinutes sets the TimeoutDurationMinutes field's value.
12346func (s *SpotProvisioningSpecification) SetTimeoutDurationMinutes(v int64) *SpotProvisioningSpecification {
12347	s.TimeoutDurationMinutes = &v
12348	return s
12349}
12350
12351type StartNotebookExecutionInput struct {
12352	_ struct{} `type:"structure"`
12353
12354	// The unique identifier of the EMR Notebook to use for notebook execution.
12355	//
12356	// EditorId is a required field
12357	EditorId *string `type:"string" required:"true"`
12358
12359	// Specifies the execution engine (cluster) that runs the notebook execution.
12360	//
12361	// ExecutionEngine is a required field
12362	ExecutionEngine *ExecutionEngineConfig `type:"structure" required:"true"`
12363
12364	// An optional name for the notebook execution.
12365	NotebookExecutionName *string `type:"string"`
12366
12367	// The unique identifier of the Amazon EC2 security group to associate with
12368	// the EMR Notebook for this notebook execution.
12369	NotebookInstanceSecurityGroupId *string `type:"string"`
12370
12371	// Input parameters in JSON format passed to the EMR Notebook at runtime for
12372	// execution.
12373	NotebookParams *string `type:"string"`
12374
12375	// The path and file name of the notebook file for this execution, relative
12376	// to the path specified for the EMR Notebook. For example, if you specify a
12377	// path of s3://MyBucket/MyNotebooks when you create an EMR Notebook for a notebook
12378	// with an ID of e-ABCDEFGHIJK1234567890ABCD (the EditorID of this request),
12379	// and you specify a RelativePath of my_notebook_executions/notebook_execution.ipynb,
12380	// the location of the file for the notebook execution is s3://MyBucket/MyNotebooks/e-ABCDEFGHIJK1234567890ABCD/my_notebook_executions/notebook_execution.ipynb.
12381	//
12382	// RelativePath is a required field
12383	RelativePath *string `type:"string" required:"true"`
12384
12385	// The name or ARN of the IAM role that is used as the service role for Amazon
12386	// EMR (the EMR role) for the notebook execution.
12387	//
12388	// ServiceRole is a required field
12389	ServiceRole *string `type:"string" required:"true"`
12390
12391	// A list of tags associated with a notebook execution. Tags are user-defined
12392	// key value pairs that consist of a required key string with a maximum of 128
12393	// characters and an optional value string with a maximum of 256 characters.
12394	Tags []*Tag `type:"list"`
12395}
12396
12397// String returns the string representation
12398func (s StartNotebookExecutionInput) String() string {
12399	return awsutil.Prettify(s)
12400}
12401
12402// GoString returns the string representation
12403func (s StartNotebookExecutionInput) GoString() string {
12404	return s.String()
12405}
12406
12407// Validate inspects the fields of the type to determine if they are valid.
12408func (s *StartNotebookExecutionInput) Validate() error {
12409	invalidParams := request.ErrInvalidParams{Context: "StartNotebookExecutionInput"}
12410	if s.EditorId == nil {
12411		invalidParams.Add(request.NewErrParamRequired("EditorId"))
12412	}
12413	if s.ExecutionEngine == nil {
12414		invalidParams.Add(request.NewErrParamRequired("ExecutionEngine"))
12415	}
12416	if s.RelativePath == nil {
12417		invalidParams.Add(request.NewErrParamRequired("RelativePath"))
12418	}
12419	if s.ServiceRole == nil {
12420		invalidParams.Add(request.NewErrParamRequired("ServiceRole"))
12421	}
12422	if s.ExecutionEngine != nil {
12423		if err := s.ExecutionEngine.Validate(); err != nil {
12424			invalidParams.AddNested("ExecutionEngine", err.(request.ErrInvalidParams))
12425		}
12426	}
12427
12428	if invalidParams.Len() > 0 {
12429		return invalidParams
12430	}
12431	return nil
12432}
12433
12434// SetEditorId sets the EditorId field's value.
12435func (s *StartNotebookExecutionInput) SetEditorId(v string) *StartNotebookExecutionInput {
12436	s.EditorId = &v
12437	return s
12438}
12439
12440// SetExecutionEngine sets the ExecutionEngine field's value.
12441func (s *StartNotebookExecutionInput) SetExecutionEngine(v *ExecutionEngineConfig) *StartNotebookExecutionInput {
12442	s.ExecutionEngine = v
12443	return s
12444}
12445
12446// SetNotebookExecutionName sets the NotebookExecutionName field's value.
12447func (s *StartNotebookExecutionInput) SetNotebookExecutionName(v string) *StartNotebookExecutionInput {
12448	s.NotebookExecutionName = &v
12449	return s
12450}
12451
12452// SetNotebookInstanceSecurityGroupId sets the NotebookInstanceSecurityGroupId field's value.
12453func (s *StartNotebookExecutionInput) SetNotebookInstanceSecurityGroupId(v string) *StartNotebookExecutionInput {
12454	s.NotebookInstanceSecurityGroupId = &v
12455	return s
12456}
12457
12458// SetNotebookParams sets the NotebookParams field's value.
12459func (s *StartNotebookExecutionInput) SetNotebookParams(v string) *StartNotebookExecutionInput {
12460	s.NotebookParams = &v
12461	return s
12462}
12463
12464// SetRelativePath sets the RelativePath field's value.
12465func (s *StartNotebookExecutionInput) SetRelativePath(v string) *StartNotebookExecutionInput {
12466	s.RelativePath = &v
12467	return s
12468}
12469
12470// SetServiceRole sets the ServiceRole field's value.
12471func (s *StartNotebookExecutionInput) SetServiceRole(v string) *StartNotebookExecutionInput {
12472	s.ServiceRole = &v
12473	return s
12474}
12475
12476// SetTags sets the Tags field's value.
12477func (s *StartNotebookExecutionInput) SetTags(v []*Tag) *StartNotebookExecutionInput {
12478	s.Tags = v
12479	return s
12480}
12481
12482type StartNotebookExecutionOutput struct {
12483	_ struct{} `type:"structure"`
12484
12485	// The unique identifier of the notebook execution.
12486	NotebookExecutionId *string `type:"string"`
12487}
12488
12489// String returns the string representation
12490func (s StartNotebookExecutionOutput) String() string {
12491	return awsutil.Prettify(s)
12492}
12493
12494// GoString returns the string representation
12495func (s StartNotebookExecutionOutput) GoString() string {
12496	return s.String()
12497}
12498
12499// SetNotebookExecutionId sets the NotebookExecutionId field's value.
12500func (s *StartNotebookExecutionOutput) SetNotebookExecutionId(v string) *StartNotebookExecutionOutput {
12501	s.NotebookExecutionId = &v
12502	return s
12503}
12504
12505// This represents a step in a cluster.
12506type Step struct {
12507	_ struct{} `type:"structure"`
12508
12509	// The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER,
12510	// CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is provided for backward
12511	// compatibility. We recommend using TERMINATE_CLUSTER instead.
12512	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
12513
12514	// The Hadoop job configuration of the cluster step.
12515	Config *HadoopStepConfig `type:"structure"`
12516
12517	// The identifier of the cluster step.
12518	Id *string `type:"string"`
12519
12520	// The name of the cluster step.
12521	Name *string `type:"string"`
12522
12523	// The current execution status details of the cluster step.
12524	Status *StepStatus `type:"structure"`
12525}
12526
12527// String returns the string representation
12528func (s Step) String() string {
12529	return awsutil.Prettify(s)
12530}
12531
12532// GoString returns the string representation
12533func (s Step) GoString() string {
12534	return s.String()
12535}
12536
12537// SetActionOnFailure sets the ActionOnFailure field's value.
12538func (s *Step) SetActionOnFailure(v string) *Step {
12539	s.ActionOnFailure = &v
12540	return s
12541}
12542
12543// SetConfig sets the Config field's value.
12544func (s *Step) SetConfig(v *HadoopStepConfig) *Step {
12545	s.Config = v
12546	return s
12547}
12548
12549// SetId sets the Id field's value.
12550func (s *Step) SetId(v string) *Step {
12551	s.Id = &v
12552	return s
12553}
12554
12555// SetName sets the Name field's value.
12556func (s *Step) SetName(v string) *Step {
12557	s.Name = &v
12558	return s
12559}
12560
12561// SetStatus sets the Status field's value.
12562func (s *Step) SetStatus(v *StepStatus) *Step {
12563	s.Status = v
12564	return s
12565}
12566
12567// Specification of a cluster (job flow) step.
12568type StepConfig struct {
12569	_ struct{} `type:"structure"`
12570
12571	// The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER,
12572	// CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is provided for backward
12573	// compatibility. We recommend using TERMINATE_CLUSTER instead.
12574	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
12575
12576	// The JAR file used for the step.
12577	//
12578	// HadoopJarStep is a required field
12579	HadoopJarStep *HadoopJarStepConfig `type:"structure" required:"true"`
12580
12581	// The name of the step.
12582	//
12583	// Name is a required field
12584	Name *string `type:"string" required:"true"`
12585}
12586
12587// String returns the string representation
12588func (s StepConfig) String() string {
12589	return awsutil.Prettify(s)
12590}
12591
12592// GoString returns the string representation
12593func (s StepConfig) GoString() string {
12594	return s.String()
12595}
12596
12597// Validate inspects the fields of the type to determine if they are valid.
12598func (s *StepConfig) Validate() error {
12599	invalidParams := request.ErrInvalidParams{Context: "StepConfig"}
12600	if s.HadoopJarStep == nil {
12601		invalidParams.Add(request.NewErrParamRequired("HadoopJarStep"))
12602	}
12603	if s.Name == nil {
12604		invalidParams.Add(request.NewErrParamRequired("Name"))
12605	}
12606	if s.HadoopJarStep != nil {
12607		if err := s.HadoopJarStep.Validate(); err != nil {
12608			invalidParams.AddNested("HadoopJarStep", err.(request.ErrInvalidParams))
12609		}
12610	}
12611
12612	if invalidParams.Len() > 0 {
12613		return invalidParams
12614	}
12615	return nil
12616}
12617
12618// SetActionOnFailure sets the ActionOnFailure field's value.
12619func (s *StepConfig) SetActionOnFailure(v string) *StepConfig {
12620	s.ActionOnFailure = &v
12621	return s
12622}
12623
12624// SetHadoopJarStep sets the HadoopJarStep field's value.
12625func (s *StepConfig) SetHadoopJarStep(v *HadoopJarStepConfig) *StepConfig {
12626	s.HadoopJarStep = v
12627	return s
12628}
12629
12630// SetName sets the Name field's value.
12631func (s *StepConfig) SetName(v string) *StepConfig {
12632	s.Name = &v
12633	return s
12634}
12635
12636// Combines the execution state and configuration of a step.
12637type StepDetail struct {
12638	_ struct{} `type:"structure"`
12639
12640	// The description of the step status.
12641	//
12642	// ExecutionStatusDetail is a required field
12643	ExecutionStatusDetail *StepExecutionStatusDetail `type:"structure" required:"true"`
12644
12645	// The step configuration.
12646	//
12647	// StepConfig is a required field
12648	StepConfig *StepConfig `type:"structure" required:"true"`
12649}
12650
12651// String returns the string representation
12652func (s StepDetail) String() string {
12653	return awsutil.Prettify(s)
12654}
12655
12656// GoString returns the string representation
12657func (s StepDetail) GoString() string {
12658	return s.String()
12659}
12660
12661// SetExecutionStatusDetail sets the ExecutionStatusDetail field's value.
12662func (s *StepDetail) SetExecutionStatusDetail(v *StepExecutionStatusDetail) *StepDetail {
12663	s.ExecutionStatusDetail = v
12664	return s
12665}
12666
12667// SetStepConfig sets the StepConfig field's value.
12668func (s *StepDetail) SetStepConfig(v *StepConfig) *StepDetail {
12669	s.StepConfig = v
12670	return s
12671}
12672
12673// The execution state of a step.
12674type StepExecutionStatusDetail struct {
12675	_ struct{} `type:"structure"`
12676
12677	// The creation date and time of the step.
12678	//
12679	// CreationDateTime is a required field
12680	CreationDateTime *time.Time `type:"timestamp" required:"true"`
12681
12682	// The completion date and time of the step.
12683	EndDateTime *time.Time `type:"timestamp"`
12684
12685	// A description of the step's current state.
12686	LastStateChangeReason *string `type:"string"`
12687
12688	// The start date and time of the step.
12689	StartDateTime *time.Time `type:"timestamp"`
12690
12691	// The state of the step.
12692	//
12693	// State is a required field
12694	State *string `type:"string" required:"true" enum:"StepExecutionState"`
12695}
12696
12697// String returns the string representation
12698func (s StepExecutionStatusDetail) String() string {
12699	return awsutil.Prettify(s)
12700}
12701
12702// GoString returns the string representation
12703func (s StepExecutionStatusDetail) GoString() string {
12704	return s.String()
12705}
12706
12707// SetCreationDateTime sets the CreationDateTime field's value.
12708func (s *StepExecutionStatusDetail) SetCreationDateTime(v time.Time) *StepExecutionStatusDetail {
12709	s.CreationDateTime = &v
12710	return s
12711}
12712
12713// SetEndDateTime sets the EndDateTime field's value.
12714func (s *StepExecutionStatusDetail) SetEndDateTime(v time.Time) *StepExecutionStatusDetail {
12715	s.EndDateTime = &v
12716	return s
12717}
12718
12719// SetLastStateChangeReason sets the LastStateChangeReason field's value.
12720func (s *StepExecutionStatusDetail) SetLastStateChangeReason(v string) *StepExecutionStatusDetail {
12721	s.LastStateChangeReason = &v
12722	return s
12723}
12724
12725// SetStartDateTime sets the StartDateTime field's value.
12726func (s *StepExecutionStatusDetail) SetStartDateTime(v time.Time) *StepExecutionStatusDetail {
12727	s.StartDateTime = &v
12728	return s
12729}
12730
12731// SetState sets the State field's value.
12732func (s *StepExecutionStatusDetail) SetState(v string) *StepExecutionStatusDetail {
12733	s.State = &v
12734	return s
12735}
12736
12737// The details of the step state change reason.
12738type StepStateChangeReason struct {
12739	_ struct{} `type:"structure"`
12740
12741	// The programmable code for the state change reason. Note: Currently, the service
12742	// provides no code for the state change.
12743	Code *string `type:"string" enum:"StepStateChangeReasonCode"`
12744
12745	// The descriptive message for the state change reason.
12746	Message *string `type:"string"`
12747}
12748
12749// String returns the string representation
12750func (s StepStateChangeReason) String() string {
12751	return awsutil.Prettify(s)
12752}
12753
12754// GoString returns the string representation
12755func (s StepStateChangeReason) GoString() string {
12756	return s.String()
12757}
12758
12759// SetCode sets the Code field's value.
12760func (s *StepStateChangeReason) SetCode(v string) *StepStateChangeReason {
12761	s.Code = &v
12762	return s
12763}
12764
12765// SetMessage sets the Message field's value.
12766func (s *StepStateChangeReason) SetMessage(v string) *StepStateChangeReason {
12767	s.Message = &v
12768	return s
12769}
12770
12771// The execution status details of the cluster step.
12772type StepStatus struct {
12773	_ struct{} `type:"structure"`
12774
12775	// The details for the step failure including reason, message, and log file
12776	// path where the root cause was identified.
12777	FailureDetails *FailureDetails `type:"structure"`
12778
12779	// The execution state of the cluster step.
12780	State *string `type:"string" enum:"StepState"`
12781
12782	// The reason for the step execution status change.
12783	StateChangeReason *StepStateChangeReason `type:"structure"`
12784
12785	// The timeline of the cluster step status over time.
12786	Timeline *StepTimeline `type:"structure"`
12787}
12788
12789// String returns the string representation
12790func (s StepStatus) String() string {
12791	return awsutil.Prettify(s)
12792}
12793
12794// GoString returns the string representation
12795func (s StepStatus) GoString() string {
12796	return s.String()
12797}
12798
12799// SetFailureDetails sets the FailureDetails field's value.
12800func (s *StepStatus) SetFailureDetails(v *FailureDetails) *StepStatus {
12801	s.FailureDetails = v
12802	return s
12803}
12804
12805// SetState sets the State field's value.
12806func (s *StepStatus) SetState(v string) *StepStatus {
12807	s.State = &v
12808	return s
12809}
12810
12811// SetStateChangeReason sets the StateChangeReason field's value.
12812func (s *StepStatus) SetStateChangeReason(v *StepStateChangeReason) *StepStatus {
12813	s.StateChangeReason = v
12814	return s
12815}
12816
12817// SetTimeline sets the Timeline field's value.
12818func (s *StepStatus) SetTimeline(v *StepTimeline) *StepStatus {
12819	s.Timeline = v
12820	return s
12821}
12822
12823// The summary of the cluster step.
12824type StepSummary struct {
12825	_ struct{} `type:"structure"`
12826
12827	// The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER,
12828	// CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is available for backward
12829	// compatibility. We recommend using TERMINATE_CLUSTER instead.
12830	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
12831
12832	// The Hadoop job configuration of the cluster step.
12833	Config *HadoopStepConfig `type:"structure"`
12834
12835	// The identifier of the cluster step.
12836	Id *string `type:"string"`
12837
12838	// The name of the cluster step.
12839	Name *string `type:"string"`
12840
12841	// The current execution status details of the cluster step.
12842	Status *StepStatus `type:"structure"`
12843}
12844
12845// String returns the string representation
12846func (s StepSummary) String() string {
12847	return awsutil.Prettify(s)
12848}
12849
12850// GoString returns the string representation
12851func (s StepSummary) GoString() string {
12852	return s.String()
12853}
12854
12855// SetActionOnFailure sets the ActionOnFailure field's value.
12856func (s *StepSummary) SetActionOnFailure(v string) *StepSummary {
12857	s.ActionOnFailure = &v
12858	return s
12859}
12860
12861// SetConfig sets the Config field's value.
12862func (s *StepSummary) SetConfig(v *HadoopStepConfig) *StepSummary {
12863	s.Config = v
12864	return s
12865}
12866
12867// SetId sets the Id field's value.
12868func (s *StepSummary) SetId(v string) *StepSummary {
12869	s.Id = &v
12870	return s
12871}
12872
12873// SetName sets the Name field's value.
12874func (s *StepSummary) SetName(v string) *StepSummary {
12875	s.Name = &v
12876	return s
12877}
12878
12879// SetStatus sets the Status field's value.
12880func (s *StepSummary) SetStatus(v *StepStatus) *StepSummary {
12881	s.Status = v
12882	return s
12883}
12884
12885// The timeline of the cluster step lifecycle.
12886type StepTimeline struct {
12887	_ struct{} `type:"structure"`
12888
12889	// The date and time when the cluster step was created.
12890	CreationDateTime *time.Time `type:"timestamp"`
12891
12892	// The date and time when the cluster step execution completed or failed.
12893	EndDateTime *time.Time `type:"timestamp"`
12894
12895	// The date and time when the cluster step execution started.
12896	StartDateTime *time.Time `type:"timestamp"`
12897}
12898
12899// String returns the string representation
12900func (s StepTimeline) String() string {
12901	return awsutil.Prettify(s)
12902}
12903
12904// GoString returns the string representation
12905func (s StepTimeline) GoString() string {
12906	return s.String()
12907}
12908
12909// SetCreationDateTime sets the CreationDateTime field's value.
12910func (s *StepTimeline) SetCreationDateTime(v time.Time) *StepTimeline {
12911	s.CreationDateTime = &v
12912	return s
12913}
12914
12915// SetEndDateTime sets the EndDateTime field's value.
12916func (s *StepTimeline) SetEndDateTime(v time.Time) *StepTimeline {
12917	s.EndDateTime = &v
12918	return s
12919}
12920
12921// SetStartDateTime sets the StartDateTime field's value.
12922func (s *StepTimeline) SetStartDateTime(v time.Time) *StepTimeline {
12923	s.StartDateTime = &v
12924	return s
12925}
12926
12927type StopNotebookExecutionInput struct {
12928	_ struct{} `type:"structure"`
12929
12930	// The unique identifier of the notebook execution.
12931	//
12932	// NotebookExecutionId is a required field
12933	NotebookExecutionId *string `type:"string" required:"true"`
12934}
12935
12936// String returns the string representation
12937func (s StopNotebookExecutionInput) String() string {
12938	return awsutil.Prettify(s)
12939}
12940
12941// GoString returns the string representation
12942func (s StopNotebookExecutionInput) GoString() string {
12943	return s.String()
12944}
12945
12946// Validate inspects the fields of the type to determine if they are valid.
12947func (s *StopNotebookExecutionInput) Validate() error {
12948	invalidParams := request.ErrInvalidParams{Context: "StopNotebookExecutionInput"}
12949	if s.NotebookExecutionId == nil {
12950		invalidParams.Add(request.NewErrParamRequired("NotebookExecutionId"))
12951	}
12952
12953	if invalidParams.Len() > 0 {
12954		return invalidParams
12955	}
12956	return nil
12957}
12958
12959// SetNotebookExecutionId sets the NotebookExecutionId field's value.
12960func (s *StopNotebookExecutionInput) SetNotebookExecutionId(v string) *StopNotebookExecutionInput {
12961	s.NotebookExecutionId = &v
12962	return s
12963}
12964
12965type StopNotebookExecutionOutput struct {
12966	_ struct{} `type:"structure"`
12967}
12968
12969// String returns the string representation
12970func (s StopNotebookExecutionOutput) String() string {
12971	return awsutil.Prettify(s)
12972}
12973
12974// GoString returns the string representation
12975func (s StopNotebookExecutionOutput) GoString() string {
12976	return s.String()
12977}
12978
12979// The list of supported product configurations which allow user-supplied arguments.
12980// EMR accepts these arguments and forwards them to the corresponding installation
12981// script as bootstrap action arguments.
12982type SupportedProductConfig struct {
12983	_ struct{} `type:"structure"`
12984
12985	// The list of user-supplied arguments.
12986	Args []*string `type:"list"`
12987
12988	// The name of the product configuration.
12989	Name *string `type:"string"`
12990}
12991
12992// String returns the string representation
12993func (s SupportedProductConfig) String() string {
12994	return awsutil.Prettify(s)
12995}
12996
12997// GoString returns the string representation
12998func (s SupportedProductConfig) GoString() string {
12999	return s.String()
13000}
13001
13002// SetArgs sets the Args field's value.
13003func (s *SupportedProductConfig) SetArgs(v []*string) *SupportedProductConfig {
13004	s.Args = v
13005	return s
13006}
13007
13008// SetName sets the Name field's value.
13009func (s *SupportedProductConfig) SetName(v string) *SupportedProductConfig {
13010	s.Name = &v
13011	return s
13012}
13013
13014// A key/value pair containing user-defined metadata that you can associate
13015// with an Amazon EMR resource. Tags make it easier to associate clusters in
13016// various ways, such as grouping clusters to track your Amazon EMR resource
13017// allocation costs. For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
13018type Tag struct {
13019	_ struct{} `type:"structure"`
13020
13021	// A user-defined key, which is the minimum required information for a valid
13022	// tag. For more information, see Tag (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
13023	Key *string `type:"string"`
13024
13025	// A user-defined value, which is optional in a tag. For more information, see
13026	// Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
13027	Value *string `type:"string"`
13028}
13029
13030// String returns the string representation
13031func (s Tag) String() string {
13032	return awsutil.Prettify(s)
13033}
13034
13035// GoString returns the string representation
13036func (s Tag) GoString() string {
13037	return s.String()
13038}
13039
13040// SetKey sets the Key field's value.
13041func (s *Tag) SetKey(v string) *Tag {
13042	s.Key = &v
13043	return s
13044}
13045
13046// SetValue sets the Value field's value.
13047func (s *Tag) SetValue(v string) *Tag {
13048	s.Value = &v
13049	return s
13050}
13051
13052// Input to the TerminateJobFlows operation.
13053type TerminateJobFlowsInput struct {
13054	_ struct{} `type:"structure"`
13055
13056	// A list of job flows to be shutdown.
13057	//
13058	// JobFlowIds is a required field
13059	JobFlowIds []*string `type:"list" required:"true"`
13060}
13061
13062// String returns the string representation
13063func (s TerminateJobFlowsInput) String() string {
13064	return awsutil.Prettify(s)
13065}
13066
13067// GoString returns the string representation
13068func (s TerminateJobFlowsInput) GoString() string {
13069	return s.String()
13070}
13071
13072// Validate inspects the fields of the type to determine if they are valid.
13073func (s *TerminateJobFlowsInput) Validate() error {
13074	invalidParams := request.ErrInvalidParams{Context: "TerminateJobFlowsInput"}
13075	if s.JobFlowIds == nil {
13076		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
13077	}
13078
13079	if invalidParams.Len() > 0 {
13080		return invalidParams
13081	}
13082	return nil
13083}
13084
13085// SetJobFlowIds sets the JobFlowIds field's value.
13086func (s *TerminateJobFlowsInput) SetJobFlowIds(v []*string) *TerminateJobFlowsInput {
13087	s.JobFlowIds = v
13088	return s
13089}
13090
13091type TerminateJobFlowsOutput struct {
13092	_ struct{} `type:"structure"`
13093}
13094
13095// String returns the string representation
13096func (s TerminateJobFlowsOutput) String() string {
13097	return awsutil.Prettify(s)
13098}
13099
13100// GoString returns the string representation
13101func (s TerminateJobFlowsOutput) GoString() string {
13102	return s.String()
13103}
13104
13105// EBS volume specifications such as volume type, IOPS, and size (GiB) that
13106// will be requested for the EBS volume attached to an EC2 instance in the cluster.
13107type VolumeSpecification struct {
13108	_ struct{} `type:"structure"`
13109
13110	// The number of I/O operations per second (IOPS) that the volume supports.
13111	Iops *int64 `type:"integer"`
13112
13113	// The volume size, in gibibytes (GiB). This can be a number from 1 - 1024.
13114	// If the volume type is EBS-optimized, the minimum value is 10.
13115	//
13116	// SizeInGB is a required field
13117	SizeInGB *int64 `type:"integer" required:"true"`
13118
13119	// The volume type. Volume types supported are gp2, io1, standard.
13120	//
13121	// VolumeType is a required field
13122	VolumeType *string `type:"string" required:"true"`
13123}
13124
13125// String returns the string representation
13126func (s VolumeSpecification) String() string {
13127	return awsutil.Prettify(s)
13128}
13129
13130// GoString returns the string representation
13131func (s VolumeSpecification) GoString() string {
13132	return s.String()
13133}
13134
13135// Validate inspects the fields of the type to determine if they are valid.
13136func (s *VolumeSpecification) Validate() error {
13137	invalidParams := request.ErrInvalidParams{Context: "VolumeSpecification"}
13138	if s.SizeInGB == nil {
13139		invalidParams.Add(request.NewErrParamRequired("SizeInGB"))
13140	}
13141	if s.VolumeType == nil {
13142		invalidParams.Add(request.NewErrParamRequired("VolumeType"))
13143	}
13144
13145	if invalidParams.Len() > 0 {
13146		return invalidParams
13147	}
13148	return nil
13149}
13150
13151// SetIops sets the Iops field's value.
13152func (s *VolumeSpecification) SetIops(v int64) *VolumeSpecification {
13153	s.Iops = &v
13154	return s
13155}
13156
13157// SetSizeInGB sets the SizeInGB field's value.
13158func (s *VolumeSpecification) SetSizeInGB(v int64) *VolumeSpecification {
13159	s.SizeInGB = &v
13160	return s
13161}
13162
13163// SetVolumeType sets the VolumeType field's value.
13164func (s *VolumeSpecification) SetVolumeType(v string) *VolumeSpecification {
13165	s.VolumeType = &v
13166	return s
13167}
13168
13169const (
13170	// ActionOnFailureTerminateJobFlow is a ActionOnFailure enum value
13171	ActionOnFailureTerminateJobFlow = "TERMINATE_JOB_FLOW"
13172
13173	// ActionOnFailureTerminateCluster is a ActionOnFailure enum value
13174	ActionOnFailureTerminateCluster = "TERMINATE_CLUSTER"
13175
13176	// ActionOnFailureCancelAndWait is a ActionOnFailure enum value
13177	ActionOnFailureCancelAndWait = "CANCEL_AND_WAIT"
13178
13179	// ActionOnFailureContinue is a ActionOnFailure enum value
13180	ActionOnFailureContinue = "CONTINUE"
13181)
13182
13183// ActionOnFailure_Values returns all elements of the ActionOnFailure enum
13184func ActionOnFailure_Values() []string {
13185	return []string{
13186		ActionOnFailureTerminateJobFlow,
13187		ActionOnFailureTerminateCluster,
13188		ActionOnFailureCancelAndWait,
13189		ActionOnFailureContinue,
13190	}
13191}
13192
13193const (
13194	// AdjustmentTypeChangeInCapacity is a AdjustmentType enum value
13195	AdjustmentTypeChangeInCapacity = "CHANGE_IN_CAPACITY"
13196
13197	// AdjustmentTypePercentChangeInCapacity is a AdjustmentType enum value
13198	AdjustmentTypePercentChangeInCapacity = "PERCENT_CHANGE_IN_CAPACITY"
13199
13200	// AdjustmentTypeExactCapacity is a AdjustmentType enum value
13201	AdjustmentTypeExactCapacity = "EXACT_CAPACITY"
13202)
13203
13204// AdjustmentType_Values returns all elements of the AdjustmentType enum
13205func AdjustmentType_Values() []string {
13206	return []string{
13207		AdjustmentTypeChangeInCapacity,
13208		AdjustmentTypePercentChangeInCapacity,
13209		AdjustmentTypeExactCapacity,
13210	}
13211}
13212
13213const (
13214	// AutoScalingPolicyStatePending is a AutoScalingPolicyState enum value
13215	AutoScalingPolicyStatePending = "PENDING"
13216
13217	// AutoScalingPolicyStateAttaching is a AutoScalingPolicyState enum value
13218	AutoScalingPolicyStateAttaching = "ATTACHING"
13219
13220	// AutoScalingPolicyStateAttached is a AutoScalingPolicyState enum value
13221	AutoScalingPolicyStateAttached = "ATTACHED"
13222
13223	// AutoScalingPolicyStateDetaching is a AutoScalingPolicyState enum value
13224	AutoScalingPolicyStateDetaching = "DETACHING"
13225
13226	// AutoScalingPolicyStateDetached is a AutoScalingPolicyState enum value
13227	AutoScalingPolicyStateDetached = "DETACHED"
13228
13229	// AutoScalingPolicyStateFailed is a AutoScalingPolicyState enum value
13230	AutoScalingPolicyStateFailed = "FAILED"
13231)
13232
13233// AutoScalingPolicyState_Values returns all elements of the AutoScalingPolicyState enum
13234func AutoScalingPolicyState_Values() []string {
13235	return []string{
13236		AutoScalingPolicyStatePending,
13237		AutoScalingPolicyStateAttaching,
13238		AutoScalingPolicyStateAttached,
13239		AutoScalingPolicyStateDetaching,
13240		AutoScalingPolicyStateDetached,
13241		AutoScalingPolicyStateFailed,
13242	}
13243}
13244
13245const (
13246	// AutoScalingPolicyStateChangeReasonCodeUserRequest is a AutoScalingPolicyStateChangeReasonCode enum value
13247	AutoScalingPolicyStateChangeReasonCodeUserRequest = "USER_REQUEST"
13248
13249	// AutoScalingPolicyStateChangeReasonCodeProvisionFailure is a AutoScalingPolicyStateChangeReasonCode enum value
13250	AutoScalingPolicyStateChangeReasonCodeProvisionFailure = "PROVISION_FAILURE"
13251
13252	// AutoScalingPolicyStateChangeReasonCodeCleanupFailure is a AutoScalingPolicyStateChangeReasonCode enum value
13253	AutoScalingPolicyStateChangeReasonCodeCleanupFailure = "CLEANUP_FAILURE"
13254)
13255
13256// AutoScalingPolicyStateChangeReasonCode_Values returns all elements of the AutoScalingPolicyStateChangeReasonCode enum
13257func AutoScalingPolicyStateChangeReasonCode_Values() []string {
13258	return []string{
13259		AutoScalingPolicyStateChangeReasonCodeUserRequest,
13260		AutoScalingPolicyStateChangeReasonCodeProvisionFailure,
13261		AutoScalingPolicyStateChangeReasonCodeCleanupFailure,
13262	}
13263}
13264
13265const (
13266	// CancelStepsRequestStatusSubmitted is a CancelStepsRequestStatus enum value
13267	CancelStepsRequestStatusSubmitted = "SUBMITTED"
13268
13269	// CancelStepsRequestStatusFailed is a CancelStepsRequestStatus enum value
13270	CancelStepsRequestStatusFailed = "FAILED"
13271)
13272
13273// CancelStepsRequestStatus_Values returns all elements of the CancelStepsRequestStatus enum
13274func CancelStepsRequestStatus_Values() []string {
13275	return []string{
13276		CancelStepsRequestStatusSubmitted,
13277		CancelStepsRequestStatusFailed,
13278	}
13279}
13280
13281const (
13282	// ClusterStateStarting is a ClusterState enum value
13283	ClusterStateStarting = "STARTING"
13284
13285	// ClusterStateBootstrapping is a ClusterState enum value
13286	ClusterStateBootstrapping = "BOOTSTRAPPING"
13287
13288	// ClusterStateRunning is a ClusterState enum value
13289	ClusterStateRunning = "RUNNING"
13290
13291	// ClusterStateWaiting is a ClusterState enum value
13292	ClusterStateWaiting = "WAITING"
13293
13294	// ClusterStateTerminating is a ClusterState enum value
13295	ClusterStateTerminating = "TERMINATING"
13296
13297	// ClusterStateTerminated is a ClusterState enum value
13298	ClusterStateTerminated = "TERMINATED"
13299
13300	// ClusterStateTerminatedWithErrors is a ClusterState enum value
13301	ClusterStateTerminatedWithErrors = "TERMINATED_WITH_ERRORS"
13302)
13303
13304// ClusterState_Values returns all elements of the ClusterState enum
13305func ClusterState_Values() []string {
13306	return []string{
13307		ClusterStateStarting,
13308		ClusterStateBootstrapping,
13309		ClusterStateRunning,
13310		ClusterStateWaiting,
13311		ClusterStateTerminating,
13312		ClusterStateTerminated,
13313		ClusterStateTerminatedWithErrors,
13314	}
13315}
13316
13317const (
13318	// ClusterStateChangeReasonCodeInternalError is a ClusterStateChangeReasonCode enum value
13319	ClusterStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
13320
13321	// ClusterStateChangeReasonCodeValidationError is a ClusterStateChangeReasonCode enum value
13322	ClusterStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
13323
13324	// ClusterStateChangeReasonCodeInstanceFailure is a ClusterStateChangeReasonCode enum value
13325	ClusterStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
13326
13327	// ClusterStateChangeReasonCodeInstanceFleetTimeout is a ClusterStateChangeReasonCode enum value
13328	ClusterStateChangeReasonCodeInstanceFleetTimeout = "INSTANCE_FLEET_TIMEOUT"
13329
13330	// ClusterStateChangeReasonCodeBootstrapFailure is a ClusterStateChangeReasonCode enum value
13331	ClusterStateChangeReasonCodeBootstrapFailure = "BOOTSTRAP_FAILURE"
13332
13333	// ClusterStateChangeReasonCodeUserRequest is a ClusterStateChangeReasonCode enum value
13334	ClusterStateChangeReasonCodeUserRequest = "USER_REQUEST"
13335
13336	// ClusterStateChangeReasonCodeStepFailure is a ClusterStateChangeReasonCode enum value
13337	ClusterStateChangeReasonCodeStepFailure = "STEP_FAILURE"
13338
13339	// ClusterStateChangeReasonCodeAllStepsCompleted is a ClusterStateChangeReasonCode enum value
13340	ClusterStateChangeReasonCodeAllStepsCompleted = "ALL_STEPS_COMPLETED"
13341)
13342
13343// ClusterStateChangeReasonCode_Values returns all elements of the ClusterStateChangeReasonCode enum
13344func ClusterStateChangeReasonCode_Values() []string {
13345	return []string{
13346		ClusterStateChangeReasonCodeInternalError,
13347		ClusterStateChangeReasonCodeValidationError,
13348		ClusterStateChangeReasonCodeInstanceFailure,
13349		ClusterStateChangeReasonCodeInstanceFleetTimeout,
13350		ClusterStateChangeReasonCodeBootstrapFailure,
13351		ClusterStateChangeReasonCodeUserRequest,
13352		ClusterStateChangeReasonCodeStepFailure,
13353		ClusterStateChangeReasonCodeAllStepsCompleted,
13354	}
13355}
13356
13357const (
13358	// ComparisonOperatorGreaterThanOrEqual is a ComparisonOperator enum value
13359	ComparisonOperatorGreaterThanOrEqual = "GREATER_THAN_OR_EQUAL"
13360
13361	// ComparisonOperatorGreaterThan is a ComparisonOperator enum value
13362	ComparisonOperatorGreaterThan = "GREATER_THAN"
13363
13364	// ComparisonOperatorLessThan is a ComparisonOperator enum value
13365	ComparisonOperatorLessThan = "LESS_THAN"
13366
13367	// ComparisonOperatorLessThanOrEqual is a ComparisonOperator enum value
13368	ComparisonOperatorLessThanOrEqual = "LESS_THAN_OR_EQUAL"
13369)
13370
13371// ComparisonOperator_Values returns all elements of the ComparisonOperator enum
13372func ComparisonOperator_Values() []string {
13373	return []string{
13374		ComparisonOperatorGreaterThanOrEqual,
13375		ComparisonOperatorGreaterThan,
13376		ComparisonOperatorLessThan,
13377		ComparisonOperatorLessThanOrEqual,
13378	}
13379}
13380
13381const (
13382	// ComputeLimitsUnitTypeInstanceFleetUnits is a ComputeLimitsUnitType enum value
13383	ComputeLimitsUnitTypeInstanceFleetUnits = "InstanceFleetUnits"
13384
13385	// ComputeLimitsUnitTypeInstances is a ComputeLimitsUnitType enum value
13386	ComputeLimitsUnitTypeInstances = "Instances"
13387
13388	// ComputeLimitsUnitTypeVcpu is a ComputeLimitsUnitType enum value
13389	ComputeLimitsUnitTypeVcpu = "VCPU"
13390)
13391
13392// ComputeLimitsUnitType_Values returns all elements of the ComputeLimitsUnitType enum
13393func ComputeLimitsUnitType_Values() []string {
13394	return []string{
13395		ComputeLimitsUnitTypeInstanceFleetUnits,
13396		ComputeLimitsUnitTypeInstances,
13397		ComputeLimitsUnitTypeVcpu,
13398	}
13399}
13400
13401const (
13402	// ExecutionEngineTypeEmr is a ExecutionEngineType enum value
13403	ExecutionEngineTypeEmr = "EMR"
13404)
13405
13406// ExecutionEngineType_Values returns all elements of the ExecutionEngineType enum
13407func ExecutionEngineType_Values() []string {
13408	return []string{
13409		ExecutionEngineTypeEmr,
13410	}
13411}
13412
13413const (
13414	// InstanceCollectionTypeInstanceFleet is a InstanceCollectionType enum value
13415	InstanceCollectionTypeInstanceFleet = "INSTANCE_FLEET"
13416
13417	// InstanceCollectionTypeInstanceGroup is a InstanceCollectionType enum value
13418	InstanceCollectionTypeInstanceGroup = "INSTANCE_GROUP"
13419)
13420
13421// InstanceCollectionType_Values returns all elements of the InstanceCollectionType enum
13422func InstanceCollectionType_Values() []string {
13423	return []string{
13424		InstanceCollectionTypeInstanceFleet,
13425		InstanceCollectionTypeInstanceGroup,
13426	}
13427}
13428
13429const (
13430	// InstanceFleetStateProvisioning is a InstanceFleetState enum value
13431	InstanceFleetStateProvisioning = "PROVISIONING"
13432
13433	// InstanceFleetStateBootstrapping is a InstanceFleetState enum value
13434	InstanceFleetStateBootstrapping = "BOOTSTRAPPING"
13435
13436	// InstanceFleetStateRunning is a InstanceFleetState enum value
13437	InstanceFleetStateRunning = "RUNNING"
13438
13439	// InstanceFleetStateResizing is a InstanceFleetState enum value
13440	InstanceFleetStateResizing = "RESIZING"
13441
13442	// InstanceFleetStateSuspended is a InstanceFleetState enum value
13443	InstanceFleetStateSuspended = "SUSPENDED"
13444
13445	// InstanceFleetStateTerminating is a InstanceFleetState enum value
13446	InstanceFleetStateTerminating = "TERMINATING"
13447
13448	// InstanceFleetStateTerminated is a InstanceFleetState enum value
13449	InstanceFleetStateTerminated = "TERMINATED"
13450)
13451
13452// InstanceFleetState_Values returns all elements of the InstanceFleetState enum
13453func InstanceFleetState_Values() []string {
13454	return []string{
13455		InstanceFleetStateProvisioning,
13456		InstanceFleetStateBootstrapping,
13457		InstanceFleetStateRunning,
13458		InstanceFleetStateResizing,
13459		InstanceFleetStateSuspended,
13460		InstanceFleetStateTerminating,
13461		InstanceFleetStateTerminated,
13462	}
13463}
13464
13465const (
13466	// InstanceFleetStateChangeReasonCodeInternalError is a InstanceFleetStateChangeReasonCode enum value
13467	InstanceFleetStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
13468
13469	// InstanceFleetStateChangeReasonCodeValidationError is a InstanceFleetStateChangeReasonCode enum value
13470	InstanceFleetStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
13471
13472	// InstanceFleetStateChangeReasonCodeInstanceFailure is a InstanceFleetStateChangeReasonCode enum value
13473	InstanceFleetStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
13474
13475	// InstanceFleetStateChangeReasonCodeClusterTerminated is a InstanceFleetStateChangeReasonCode enum value
13476	InstanceFleetStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
13477)
13478
13479// InstanceFleetStateChangeReasonCode_Values returns all elements of the InstanceFleetStateChangeReasonCode enum
13480func InstanceFleetStateChangeReasonCode_Values() []string {
13481	return []string{
13482		InstanceFleetStateChangeReasonCodeInternalError,
13483		InstanceFleetStateChangeReasonCodeValidationError,
13484		InstanceFleetStateChangeReasonCodeInstanceFailure,
13485		InstanceFleetStateChangeReasonCodeClusterTerminated,
13486	}
13487}
13488
13489const (
13490	// InstanceFleetTypeMaster is a InstanceFleetType enum value
13491	InstanceFleetTypeMaster = "MASTER"
13492
13493	// InstanceFleetTypeCore is a InstanceFleetType enum value
13494	InstanceFleetTypeCore = "CORE"
13495
13496	// InstanceFleetTypeTask is a InstanceFleetType enum value
13497	InstanceFleetTypeTask = "TASK"
13498)
13499
13500// InstanceFleetType_Values returns all elements of the InstanceFleetType enum
13501func InstanceFleetType_Values() []string {
13502	return []string{
13503		InstanceFleetTypeMaster,
13504		InstanceFleetTypeCore,
13505		InstanceFleetTypeTask,
13506	}
13507}
13508
13509const (
13510	// InstanceGroupStateProvisioning is a InstanceGroupState enum value
13511	InstanceGroupStateProvisioning = "PROVISIONING"
13512
13513	// InstanceGroupStateBootstrapping is a InstanceGroupState enum value
13514	InstanceGroupStateBootstrapping = "BOOTSTRAPPING"
13515
13516	// InstanceGroupStateRunning is a InstanceGroupState enum value
13517	InstanceGroupStateRunning = "RUNNING"
13518
13519	// InstanceGroupStateReconfiguring is a InstanceGroupState enum value
13520	InstanceGroupStateReconfiguring = "RECONFIGURING"
13521
13522	// InstanceGroupStateResizing is a InstanceGroupState enum value
13523	InstanceGroupStateResizing = "RESIZING"
13524
13525	// InstanceGroupStateSuspended is a InstanceGroupState enum value
13526	InstanceGroupStateSuspended = "SUSPENDED"
13527
13528	// InstanceGroupStateTerminating is a InstanceGroupState enum value
13529	InstanceGroupStateTerminating = "TERMINATING"
13530
13531	// InstanceGroupStateTerminated is a InstanceGroupState enum value
13532	InstanceGroupStateTerminated = "TERMINATED"
13533
13534	// InstanceGroupStateArrested is a InstanceGroupState enum value
13535	InstanceGroupStateArrested = "ARRESTED"
13536
13537	// InstanceGroupStateShuttingDown is a InstanceGroupState enum value
13538	InstanceGroupStateShuttingDown = "SHUTTING_DOWN"
13539
13540	// InstanceGroupStateEnded is a InstanceGroupState enum value
13541	InstanceGroupStateEnded = "ENDED"
13542)
13543
13544// InstanceGroupState_Values returns all elements of the InstanceGroupState enum
13545func InstanceGroupState_Values() []string {
13546	return []string{
13547		InstanceGroupStateProvisioning,
13548		InstanceGroupStateBootstrapping,
13549		InstanceGroupStateRunning,
13550		InstanceGroupStateReconfiguring,
13551		InstanceGroupStateResizing,
13552		InstanceGroupStateSuspended,
13553		InstanceGroupStateTerminating,
13554		InstanceGroupStateTerminated,
13555		InstanceGroupStateArrested,
13556		InstanceGroupStateShuttingDown,
13557		InstanceGroupStateEnded,
13558	}
13559}
13560
13561const (
13562	// InstanceGroupStateChangeReasonCodeInternalError is a InstanceGroupStateChangeReasonCode enum value
13563	InstanceGroupStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
13564
13565	// InstanceGroupStateChangeReasonCodeValidationError is a InstanceGroupStateChangeReasonCode enum value
13566	InstanceGroupStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
13567
13568	// InstanceGroupStateChangeReasonCodeInstanceFailure is a InstanceGroupStateChangeReasonCode enum value
13569	InstanceGroupStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
13570
13571	// InstanceGroupStateChangeReasonCodeClusterTerminated is a InstanceGroupStateChangeReasonCode enum value
13572	InstanceGroupStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
13573)
13574
13575// InstanceGroupStateChangeReasonCode_Values returns all elements of the InstanceGroupStateChangeReasonCode enum
13576func InstanceGroupStateChangeReasonCode_Values() []string {
13577	return []string{
13578		InstanceGroupStateChangeReasonCodeInternalError,
13579		InstanceGroupStateChangeReasonCodeValidationError,
13580		InstanceGroupStateChangeReasonCodeInstanceFailure,
13581		InstanceGroupStateChangeReasonCodeClusterTerminated,
13582	}
13583}
13584
13585const (
13586	// InstanceGroupTypeMaster is a InstanceGroupType enum value
13587	InstanceGroupTypeMaster = "MASTER"
13588
13589	// InstanceGroupTypeCore is a InstanceGroupType enum value
13590	InstanceGroupTypeCore = "CORE"
13591
13592	// InstanceGroupTypeTask is a InstanceGroupType enum value
13593	InstanceGroupTypeTask = "TASK"
13594)
13595
13596// InstanceGroupType_Values returns all elements of the InstanceGroupType enum
13597func InstanceGroupType_Values() []string {
13598	return []string{
13599		InstanceGroupTypeMaster,
13600		InstanceGroupTypeCore,
13601		InstanceGroupTypeTask,
13602	}
13603}
13604
13605const (
13606	// InstanceRoleTypeMaster is a InstanceRoleType enum value
13607	InstanceRoleTypeMaster = "MASTER"
13608
13609	// InstanceRoleTypeCore is a InstanceRoleType enum value
13610	InstanceRoleTypeCore = "CORE"
13611
13612	// InstanceRoleTypeTask is a InstanceRoleType enum value
13613	InstanceRoleTypeTask = "TASK"
13614)
13615
13616// InstanceRoleType_Values returns all elements of the InstanceRoleType enum
13617func InstanceRoleType_Values() []string {
13618	return []string{
13619		InstanceRoleTypeMaster,
13620		InstanceRoleTypeCore,
13621		InstanceRoleTypeTask,
13622	}
13623}
13624
13625const (
13626	// InstanceStateAwaitingFulfillment is a InstanceState enum value
13627	InstanceStateAwaitingFulfillment = "AWAITING_FULFILLMENT"
13628
13629	// InstanceStateProvisioning is a InstanceState enum value
13630	InstanceStateProvisioning = "PROVISIONING"
13631
13632	// InstanceStateBootstrapping is a InstanceState enum value
13633	InstanceStateBootstrapping = "BOOTSTRAPPING"
13634
13635	// InstanceStateRunning is a InstanceState enum value
13636	InstanceStateRunning = "RUNNING"
13637
13638	// InstanceStateTerminated is a InstanceState enum value
13639	InstanceStateTerminated = "TERMINATED"
13640)
13641
13642// InstanceState_Values returns all elements of the InstanceState enum
13643func InstanceState_Values() []string {
13644	return []string{
13645		InstanceStateAwaitingFulfillment,
13646		InstanceStateProvisioning,
13647		InstanceStateBootstrapping,
13648		InstanceStateRunning,
13649		InstanceStateTerminated,
13650	}
13651}
13652
13653const (
13654	// InstanceStateChangeReasonCodeInternalError is a InstanceStateChangeReasonCode enum value
13655	InstanceStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
13656
13657	// InstanceStateChangeReasonCodeValidationError is a InstanceStateChangeReasonCode enum value
13658	InstanceStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
13659
13660	// InstanceStateChangeReasonCodeInstanceFailure is a InstanceStateChangeReasonCode enum value
13661	InstanceStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
13662
13663	// InstanceStateChangeReasonCodeBootstrapFailure is a InstanceStateChangeReasonCode enum value
13664	InstanceStateChangeReasonCodeBootstrapFailure = "BOOTSTRAP_FAILURE"
13665
13666	// InstanceStateChangeReasonCodeClusterTerminated is a InstanceStateChangeReasonCode enum value
13667	InstanceStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
13668)
13669
13670// InstanceStateChangeReasonCode_Values returns all elements of the InstanceStateChangeReasonCode enum
13671func InstanceStateChangeReasonCode_Values() []string {
13672	return []string{
13673		InstanceStateChangeReasonCodeInternalError,
13674		InstanceStateChangeReasonCodeValidationError,
13675		InstanceStateChangeReasonCodeInstanceFailure,
13676		InstanceStateChangeReasonCodeBootstrapFailure,
13677		InstanceStateChangeReasonCodeClusterTerminated,
13678	}
13679}
13680
13681// The type of instance.
13682const (
13683	// JobFlowExecutionStateStarting is a JobFlowExecutionState enum value
13684	JobFlowExecutionStateStarting = "STARTING"
13685
13686	// JobFlowExecutionStateBootstrapping is a JobFlowExecutionState enum value
13687	JobFlowExecutionStateBootstrapping = "BOOTSTRAPPING"
13688
13689	// JobFlowExecutionStateRunning is a JobFlowExecutionState enum value
13690	JobFlowExecutionStateRunning = "RUNNING"
13691
13692	// JobFlowExecutionStateWaiting is a JobFlowExecutionState enum value
13693	JobFlowExecutionStateWaiting = "WAITING"
13694
13695	// JobFlowExecutionStateShuttingDown is a JobFlowExecutionState enum value
13696	JobFlowExecutionStateShuttingDown = "SHUTTING_DOWN"
13697
13698	// JobFlowExecutionStateTerminated is a JobFlowExecutionState enum value
13699	JobFlowExecutionStateTerminated = "TERMINATED"
13700
13701	// JobFlowExecutionStateCompleted is a JobFlowExecutionState enum value
13702	JobFlowExecutionStateCompleted = "COMPLETED"
13703
13704	// JobFlowExecutionStateFailed is a JobFlowExecutionState enum value
13705	JobFlowExecutionStateFailed = "FAILED"
13706)
13707
13708// JobFlowExecutionState_Values returns all elements of the JobFlowExecutionState enum
13709func JobFlowExecutionState_Values() []string {
13710	return []string{
13711		JobFlowExecutionStateStarting,
13712		JobFlowExecutionStateBootstrapping,
13713		JobFlowExecutionStateRunning,
13714		JobFlowExecutionStateWaiting,
13715		JobFlowExecutionStateShuttingDown,
13716		JobFlowExecutionStateTerminated,
13717		JobFlowExecutionStateCompleted,
13718		JobFlowExecutionStateFailed,
13719	}
13720}
13721
13722const (
13723	// MarketTypeOnDemand is a MarketType enum value
13724	MarketTypeOnDemand = "ON_DEMAND"
13725
13726	// MarketTypeSpot is a MarketType enum value
13727	MarketTypeSpot = "SPOT"
13728)
13729
13730// MarketType_Values returns all elements of the MarketType enum
13731func MarketType_Values() []string {
13732	return []string{
13733		MarketTypeOnDemand,
13734		MarketTypeSpot,
13735	}
13736}
13737
13738const (
13739	// NotebookExecutionStatusStartPending is a NotebookExecutionStatus enum value
13740	NotebookExecutionStatusStartPending = "START_PENDING"
13741
13742	// NotebookExecutionStatusStarting is a NotebookExecutionStatus enum value
13743	NotebookExecutionStatusStarting = "STARTING"
13744
13745	// NotebookExecutionStatusRunning is a NotebookExecutionStatus enum value
13746	NotebookExecutionStatusRunning = "RUNNING"
13747
13748	// NotebookExecutionStatusFinishing is a NotebookExecutionStatus enum value
13749	NotebookExecutionStatusFinishing = "FINISHING"
13750
13751	// NotebookExecutionStatusFinished is a NotebookExecutionStatus enum value
13752	NotebookExecutionStatusFinished = "FINISHED"
13753
13754	// NotebookExecutionStatusFailing is a NotebookExecutionStatus enum value
13755	NotebookExecutionStatusFailing = "FAILING"
13756
13757	// NotebookExecutionStatusFailed is a NotebookExecutionStatus enum value
13758	NotebookExecutionStatusFailed = "FAILED"
13759
13760	// NotebookExecutionStatusStopPending is a NotebookExecutionStatus enum value
13761	NotebookExecutionStatusStopPending = "STOP_PENDING"
13762
13763	// NotebookExecutionStatusStopping is a NotebookExecutionStatus enum value
13764	NotebookExecutionStatusStopping = "STOPPING"
13765
13766	// NotebookExecutionStatusStopped is a NotebookExecutionStatus enum value
13767	NotebookExecutionStatusStopped = "STOPPED"
13768)
13769
13770// NotebookExecutionStatus_Values returns all elements of the NotebookExecutionStatus enum
13771func NotebookExecutionStatus_Values() []string {
13772	return []string{
13773		NotebookExecutionStatusStartPending,
13774		NotebookExecutionStatusStarting,
13775		NotebookExecutionStatusRunning,
13776		NotebookExecutionStatusFinishing,
13777		NotebookExecutionStatusFinished,
13778		NotebookExecutionStatusFailing,
13779		NotebookExecutionStatusFailed,
13780		NotebookExecutionStatusStopPending,
13781		NotebookExecutionStatusStopping,
13782		NotebookExecutionStatusStopped,
13783	}
13784}
13785
13786const (
13787	// OnDemandProvisioningAllocationStrategyLowestPrice is a OnDemandProvisioningAllocationStrategy enum value
13788	OnDemandProvisioningAllocationStrategyLowestPrice = "lowest-price"
13789)
13790
13791// OnDemandProvisioningAllocationStrategy_Values returns all elements of the OnDemandProvisioningAllocationStrategy enum
13792func OnDemandProvisioningAllocationStrategy_Values() []string {
13793	return []string{
13794		OnDemandProvisioningAllocationStrategyLowestPrice,
13795	}
13796}
13797
13798const (
13799	// PlacementGroupStrategySpread is a PlacementGroupStrategy enum value
13800	PlacementGroupStrategySpread = "SPREAD"
13801
13802	// PlacementGroupStrategyPartition is a PlacementGroupStrategy enum value
13803	PlacementGroupStrategyPartition = "PARTITION"
13804
13805	// PlacementGroupStrategyCluster is a PlacementGroupStrategy enum value
13806	PlacementGroupStrategyCluster = "CLUSTER"
13807
13808	// PlacementGroupStrategyNone is a PlacementGroupStrategy enum value
13809	PlacementGroupStrategyNone = "NONE"
13810)
13811
13812// PlacementGroupStrategy_Values returns all elements of the PlacementGroupStrategy enum
13813func PlacementGroupStrategy_Values() []string {
13814	return []string{
13815		PlacementGroupStrategySpread,
13816		PlacementGroupStrategyPartition,
13817		PlacementGroupStrategyCluster,
13818		PlacementGroupStrategyNone,
13819	}
13820}
13821
13822const (
13823	// RepoUpgradeOnBootSecurity is a RepoUpgradeOnBoot enum value
13824	RepoUpgradeOnBootSecurity = "SECURITY"
13825
13826	// RepoUpgradeOnBootNone is a RepoUpgradeOnBoot enum value
13827	RepoUpgradeOnBootNone = "NONE"
13828)
13829
13830// RepoUpgradeOnBoot_Values returns all elements of the RepoUpgradeOnBoot enum
13831func RepoUpgradeOnBoot_Values() []string {
13832	return []string{
13833		RepoUpgradeOnBootSecurity,
13834		RepoUpgradeOnBootNone,
13835	}
13836}
13837
13838const (
13839	// ScaleDownBehaviorTerminateAtInstanceHour is a ScaleDownBehavior enum value
13840	ScaleDownBehaviorTerminateAtInstanceHour = "TERMINATE_AT_INSTANCE_HOUR"
13841
13842	// ScaleDownBehaviorTerminateAtTaskCompletion is a ScaleDownBehavior enum value
13843	ScaleDownBehaviorTerminateAtTaskCompletion = "TERMINATE_AT_TASK_COMPLETION"
13844)
13845
13846// ScaleDownBehavior_Values returns all elements of the ScaleDownBehavior enum
13847func ScaleDownBehavior_Values() []string {
13848	return []string{
13849		ScaleDownBehaviorTerminateAtInstanceHour,
13850		ScaleDownBehaviorTerminateAtTaskCompletion,
13851	}
13852}
13853
13854const (
13855	// SpotProvisioningAllocationStrategyCapacityOptimized is a SpotProvisioningAllocationStrategy enum value
13856	SpotProvisioningAllocationStrategyCapacityOptimized = "capacity-optimized"
13857)
13858
13859// SpotProvisioningAllocationStrategy_Values returns all elements of the SpotProvisioningAllocationStrategy enum
13860func SpotProvisioningAllocationStrategy_Values() []string {
13861	return []string{
13862		SpotProvisioningAllocationStrategyCapacityOptimized,
13863	}
13864}
13865
13866const (
13867	// SpotProvisioningTimeoutActionSwitchToOnDemand is a SpotProvisioningTimeoutAction enum value
13868	SpotProvisioningTimeoutActionSwitchToOnDemand = "SWITCH_TO_ON_DEMAND"
13869
13870	// SpotProvisioningTimeoutActionTerminateCluster is a SpotProvisioningTimeoutAction enum value
13871	SpotProvisioningTimeoutActionTerminateCluster = "TERMINATE_CLUSTER"
13872)
13873
13874// SpotProvisioningTimeoutAction_Values returns all elements of the SpotProvisioningTimeoutAction enum
13875func SpotProvisioningTimeoutAction_Values() []string {
13876	return []string{
13877		SpotProvisioningTimeoutActionSwitchToOnDemand,
13878		SpotProvisioningTimeoutActionTerminateCluster,
13879	}
13880}
13881
13882const (
13883	// StatisticSampleCount is a Statistic enum value
13884	StatisticSampleCount = "SAMPLE_COUNT"
13885
13886	// StatisticAverage is a Statistic enum value
13887	StatisticAverage = "AVERAGE"
13888
13889	// StatisticSum is a Statistic enum value
13890	StatisticSum = "SUM"
13891
13892	// StatisticMinimum is a Statistic enum value
13893	StatisticMinimum = "MINIMUM"
13894
13895	// StatisticMaximum is a Statistic enum value
13896	StatisticMaximum = "MAXIMUM"
13897)
13898
13899// Statistic_Values returns all elements of the Statistic enum
13900func Statistic_Values() []string {
13901	return []string{
13902		StatisticSampleCount,
13903		StatisticAverage,
13904		StatisticSum,
13905		StatisticMinimum,
13906		StatisticMaximum,
13907	}
13908}
13909
13910const (
13911	// StepCancellationOptionSendInterrupt is a StepCancellationOption enum value
13912	StepCancellationOptionSendInterrupt = "SEND_INTERRUPT"
13913
13914	// StepCancellationOptionTerminateProcess is a StepCancellationOption enum value
13915	StepCancellationOptionTerminateProcess = "TERMINATE_PROCESS"
13916)
13917
13918// StepCancellationOption_Values returns all elements of the StepCancellationOption enum
13919func StepCancellationOption_Values() []string {
13920	return []string{
13921		StepCancellationOptionSendInterrupt,
13922		StepCancellationOptionTerminateProcess,
13923	}
13924}
13925
13926const (
13927	// StepExecutionStatePending is a StepExecutionState enum value
13928	StepExecutionStatePending = "PENDING"
13929
13930	// StepExecutionStateRunning is a StepExecutionState enum value
13931	StepExecutionStateRunning = "RUNNING"
13932
13933	// StepExecutionStateContinue is a StepExecutionState enum value
13934	StepExecutionStateContinue = "CONTINUE"
13935
13936	// StepExecutionStateCompleted is a StepExecutionState enum value
13937	StepExecutionStateCompleted = "COMPLETED"
13938
13939	// StepExecutionStateCancelled is a StepExecutionState enum value
13940	StepExecutionStateCancelled = "CANCELLED"
13941
13942	// StepExecutionStateFailed is a StepExecutionState enum value
13943	StepExecutionStateFailed = "FAILED"
13944
13945	// StepExecutionStateInterrupted is a StepExecutionState enum value
13946	StepExecutionStateInterrupted = "INTERRUPTED"
13947)
13948
13949// StepExecutionState_Values returns all elements of the StepExecutionState enum
13950func StepExecutionState_Values() []string {
13951	return []string{
13952		StepExecutionStatePending,
13953		StepExecutionStateRunning,
13954		StepExecutionStateContinue,
13955		StepExecutionStateCompleted,
13956		StepExecutionStateCancelled,
13957		StepExecutionStateFailed,
13958		StepExecutionStateInterrupted,
13959	}
13960}
13961
13962const (
13963	// StepStatePending is a StepState enum value
13964	StepStatePending = "PENDING"
13965
13966	// StepStateCancelPending is a StepState enum value
13967	StepStateCancelPending = "CANCEL_PENDING"
13968
13969	// StepStateRunning is a StepState enum value
13970	StepStateRunning = "RUNNING"
13971
13972	// StepStateCompleted is a StepState enum value
13973	StepStateCompleted = "COMPLETED"
13974
13975	// StepStateCancelled is a StepState enum value
13976	StepStateCancelled = "CANCELLED"
13977
13978	// StepStateFailed is a StepState enum value
13979	StepStateFailed = "FAILED"
13980
13981	// StepStateInterrupted is a StepState enum value
13982	StepStateInterrupted = "INTERRUPTED"
13983)
13984
13985// StepState_Values returns all elements of the StepState enum
13986func StepState_Values() []string {
13987	return []string{
13988		StepStatePending,
13989		StepStateCancelPending,
13990		StepStateRunning,
13991		StepStateCompleted,
13992		StepStateCancelled,
13993		StepStateFailed,
13994		StepStateInterrupted,
13995	}
13996}
13997
13998const (
13999	// StepStateChangeReasonCodeNone is a StepStateChangeReasonCode enum value
14000	StepStateChangeReasonCodeNone = "NONE"
14001)
14002
14003// StepStateChangeReasonCode_Values returns all elements of the StepStateChangeReasonCode enum
14004func StepStateChangeReasonCode_Values() []string {
14005	return []string{
14006		StepStateChangeReasonCodeNone,
14007	}
14008}
14009
14010const (
14011	// UnitNone is a Unit enum value
14012	UnitNone = "NONE"
14013
14014	// UnitSeconds is a Unit enum value
14015	UnitSeconds = "SECONDS"
14016
14017	// UnitMicroSeconds is a Unit enum value
14018	UnitMicroSeconds = "MICRO_SECONDS"
14019
14020	// UnitMilliSeconds is a Unit enum value
14021	UnitMilliSeconds = "MILLI_SECONDS"
14022
14023	// UnitBytes is a Unit enum value
14024	UnitBytes = "BYTES"
14025
14026	// UnitKiloBytes is a Unit enum value
14027	UnitKiloBytes = "KILO_BYTES"
14028
14029	// UnitMegaBytes is a Unit enum value
14030	UnitMegaBytes = "MEGA_BYTES"
14031
14032	// UnitGigaBytes is a Unit enum value
14033	UnitGigaBytes = "GIGA_BYTES"
14034
14035	// UnitTeraBytes is a Unit enum value
14036	UnitTeraBytes = "TERA_BYTES"
14037
14038	// UnitBits is a Unit enum value
14039	UnitBits = "BITS"
14040
14041	// UnitKiloBits is a Unit enum value
14042	UnitKiloBits = "KILO_BITS"
14043
14044	// UnitMegaBits is a Unit enum value
14045	UnitMegaBits = "MEGA_BITS"
14046
14047	// UnitGigaBits is a Unit enum value
14048	UnitGigaBits = "GIGA_BITS"
14049
14050	// UnitTeraBits is a Unit enum value
14051	UnitTeraBits = "TERA_BITS"
14052
14053	// UnitPercent is a Unit enum value
14054	UnitPercent = "PERCENT"
14055
14056	// UnitCount is a Unit enum value
14057	UnitCount = "COUNT"
14058
14059	// UnitBytesPerSecond is a Unit enum value
14060	UnitBytesPerSecond = "BYTES_PER_SECOND"
14061
14062	// UnitKiloBytesPerSecond is a Unit enum value
14063	UnitKiloBytesPerSecond = "KILO_BYTES_PER_SECOND"
14064
14065	// UnitMegaBytesPerSecond is a Unit enum value
14066	UnitMegaBytesPerSecond = "MEGA_BYTES_PER_SECOND"
14067
14068	// UnitGigaBytesPerSecond is a Unit enum value
14069	UnitGigaBytesPerSecond = "GIGA_BYTES_PER_SECOND"
14070
14071	// UnitTeraBytesPerSecond is a Unit enum value
14072	UnitTeraBytesPerSecond = "TERA_BYTES_PER_SECOND"
14073
14074	// UnitBitsPerSecond is a Unit enum value
14075	UnitBitsPerSecond = "BITS_PER_SECOND"
14076
14077	// UnitKiloBitsPerSecond is a Unit enum value
14078	UnitKiloBitsPerSecond = "KILO_BITS_PER_SECOND"
14079
14080	// UnitMegaBitsPerSecond is a Unit enum value
14081	UnitMegaBitsPerSecond = "MEGA_BITS_PER_SECOND"
14082
14083	// UnitGigaBitsPerSecond is a Unit enum value
14084	UnitGigaBitsPerSecond = "GIGA_BITS_PER_SECOND"
14085
14086	// UnitTeraBitsPerSecond is a Unit enum value
14087	UnitTeraBitsPerSecond = "TERA_BITS_PER_SECOND"
14088
14089	// UnitCountPerSecond is a Unit enum value
14090	UnitCountPerSecond = "COUNT_PER_SECOND"
14091)
14092
14093// Unit_Values returns all elements of the Unit enum
14094func Unit_Values() []string {
14095	return []string{
14096		UnitNone,
14097		UnitSeconds,
14098		UnitMicroSeconds,
14099		UnitMilliSeconds,
14100		UnitBytes,
14101		UnitKiloBytes,
14102		UnitMegaBytes,
14103		UnitGigaBytes,
14104		UnitTeraBytes,
14105		UnitBits,
14106		UnitKiloBits,
14107		UnitMegaBits,
14108		UnitGigaBits,
14109		UnitTeraBits,
14110		UnitPercent,
14111		UnitCount,
14112		UnitBytesPerSecond,
14113		UnitKiloBytesPerSecond,
14114		UnitMegaBytesPerSecond,
14115		UnitGigaBytesPerSecond,
14116		UnitTeraBytesPerSecond,
14117		UnitBitsPerSecond,
14118		UnitKiloBitsPerSecond,
14119		UnitMegaBitsPerSecond,
14120		UnitGigaBitsPerSecond,
14121		UnitTeraBitsPerSecond,
14122		UnitCountPerSecond,
14123	}
14124}
14125