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 EMR.
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 EMR'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 Amazon EMR
75//   service.
76//
77//   * InvalidRequestException
78//   This exception occurs when there is something wrong with user input.
79//
80// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceFleet
81func (c *EMR) AddInstanceFleet(input *AddInstanceFleetInput) (*AddInstanceFleetOutput, error) {
82	req, out := c.AddInstanceFleetRequest(input)
83	return out, req.Send()
84}
85
86// AddInstanceFleetWithContext is the same as AddInstanceFleet with the addition of
87// the ability to pass a context and additional request options.
88//
89// See AddInstanceFleet for details on how to use this API operation.
90//
91// The context must be non-nil and will be used for request cancellation. If
92// the context is nil a panic will occur. In the future the SDK may create
93// sub-contexts for http.Requests. See https://golang.org/pkg/context/
94// for more information on using Contexts.
95func (c *EMR) AddInstanceFleetWithContext(ctx aws.Context, input *AddInstanceFleetInput, opts ...request.Option) (*AddInstanceFleetOutput, error) {
96	req, out := c.AddInstanceFleetRequest(input)
97	req.SetContext(ctx)
98	req.ApplyOptions(opts...)
99	return out, req.Send()
100}
101
102const opAddInstanceGroups = "AddInstanceGroups"
103
104// AddInstanceGroupsRequest generates a "aws/request.Request" representing the
105// client's request for the AddInstanceGroups operation. The "output" return
106// value will be populated with the request's response once the request completes
107// successfully.
108//
109// Use "Send" method on the returned Request to send the API call to the service.
110// the "output" return value is not valid until after Send returns without error.
111//
112// See AddInstanceGroups for more information on using the AddInstanceGroups
113// API call, and error handling.
114//
115// This method is useful when you want to inject custom logic or configuration
116// into the SDK's request lifecycle. Such as custom headers, or retry logic.
117//
118//
119//    // Example sending a request using the AddInstanceGroupsRequest method.
120//    req, resp := client.AddInstanceGroupsRequest(params)
121//
122//    err := req.Send()
123//    if err == nil { // resp is now filled
124//        fmt.Println(resp)
125//    }
126//
127// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceGroups
128func (c *EMR) AddInstanceGroupsRequest(input *AddInstanceGroupsInput) (req *request.Request, output *AddInstanceGroupsOutput) {
129	op := &request.Operation{
130		Name:       opAddInstanceGroups,
131		HTTPMethod: "POST",
132		HTTPPath:   "/",
133	}
134
135	if input == nil {
136		input = &AddInstanceGroupsInput{}
137	}
138
139	output = &AddInstanceGroupsOutput{}
140	req = c.newRequest(op, input, output)
141	return
142}
143
144// AddInstanceGroups API operation for Amazon EMR.
145//
146// Adds one or more instance groups to a running cluster.
147//
148// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
149// with awserr.Error's Code and Message methods to get detailed information about
150// the error.
151//
152// See the AWS API reference guide for Amazon EMR's
153// API operation AddInstanceGroups for usage and error information.
154//
155// Returned Error Types:
156//   * InternalServerError
157//   Indicates that an error occurred while processing the request and that the
158//   request was not completed.
159//
160// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceGroups
161func (c *EMR) AddInstanceGroups(input *AddInstanceGroupsInput) (*AddInstanceGroupsOutput, error) {
162	req, out := c.AddInstanceGroupsRequest(input)
163	return out, req.Send()
164}
165
166// AddInstanceGroupsWithContext is the same as AddInstanceGroups with the addition of
167// the ability to pass a context and additional request options.
168//
169// See AddInstanceGroups for details on how to use this API operation.
170//
171// The context must be non-nil and will be used for request cancellation. If
172// the context is nil a panic will occur. In the future the SDK may create
173// sub-contexts for http.Requests. See https://golang.org/pkg/context/
174// for more information on using Contexts.
175func (c *EMR) AddInstanceGroupsWithContext(ctx aws.Context, input *AddInstanceGroupsInput, opts ...request.Option) (*AddInstanceGroupsOutput, error) {
176	req, out := c.AddInstanceGroupsRequest(input)
177	req.SetContext(ctx)
178	req.ApplyOptions(opts...)
179	return out, req.Send()
180}
181
182const opAddJobFlowSteps = "AddJobFlowSteps"
183
184// AddJobFlowStepsRequest generates a "aws/request.Request" representing the
185// client's request for the AddJobFlowSteps operation. The "output" return
186// value will be populated with the request's response once the request completes
187// successfully.
188//
189// Use "Send" method on the returned Request to send the API call to the service.
190// the "output" return value is not valid until after Send returns without error.
191//
192// See AddJobFlowSteps for more information on using the AddJobFlowSteps
193// API call, and error handling.
194//
195// This method is useful when you want to inject custom logic or configuration
196// into the SDK's request lifecycle. Such as custom headers, or retry logic.
197//
198//
199//    // Example sending a request using the AddJobFlowStepsRequest method.
200//    req, resp := client.AddJobFlowStepsRequest(params)
201//
202//    err := req.Send()
203//    if err == nil { // resp is now filled
204//        fmt.Println(resp)
205//    }
206//
207// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddJobFlowSteps
208func (c *EMR) AddJobFlowStepsRequest(input *AddJobFlowStepsInput) (req *request.Request, output *AddJobFlowStepsOutput) {
209	op := &request.Operation{
210		Name:       opAddJobFlowSteps,
211		HTTPMethod: "POST",
212		HTTPPath:   "/",
213	}
214
215	if input == nil {
216		input = &AddJobFlowStepsInput{}
217	}
218
219	output = &AddJobFlowStepsOutput{}
220	req = c.newRequest(op, input, output)
221	return
222}
223
224// AddJobFlowSteps API operation for Amazon EMR.
225//
226// AddJobFlowSteps adds new steps to a running cluster. A maximum of 256 steps
227// are allowed in each job flow.
228//
229// If your cluster is long-running (such as a Hive data warehouse) or complex,
230// you may require more than 256 steps to process your data. You can bypass
231// the 256-step limitation in various ways, including using SSH to connect to
232// the master node and submitting queries directly to the software running on
233// the master node, such as Hive and Hadoop. For more information on how to
234// do this, see Add More than 256 Steps to a Cluster (https://docs.aws.amazon.com/emr/latest/ManagementGuide/AddMoreThan256Steps.html)
235// in the Amazon EMR Management Guide.
236//
237// A step specifies the location of a JAR file stored either on the master node
238// of the cluster or in Amazon S3. Each step is performed by the main function
239// of the main class of the JAR file. The main class can be specified either
240// in the manifest of the JAR or by using the MainFunction parameter of the
241// step.
242//
243// Amazon EMR executes each step in the order listed. For a step to be considered
244// complete, the main function must exit with a zero exit code and all Hadoop
245// jobs started while the step was running must have completed and run successfully.
246//
247// You can only add steps to a cluster that is in one of the following states:
248// STARTING, BOOTSTRAPPING, RUNNING, or WAITING.
249//
250// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
251// with awserr.Error's Code and Message methods to get detailed information about
252// the error.
253//
254// See the AWS API reference guide for Amazon EMR's
255// API operation AddJobFlowSteps for usage and error information.
256//
257// Returned Error Types:
258//   * InternalServerError
259//   Indicates that an error occurred while processing the request and that the
260//   request was not completed.
261//
262// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddJobFlowSteps
263func (c *EMR) AddJobFlowSteps(input *AddJobFlowStepsInput) (*AddJobFlowStepsOutput, error) {
264	req, out := c.AddJobFlowStepsRequest(input)
265	return out, req.Send()
266}
267
268// AddJobFlowStepsWithContext is the same as AddJobFlowSteps with the addition of
269// the ability to pass a context and additional request options.
270//
271// See AddJobFlowSteps for details on how to use this API operation.
272//
273// The context must be non-nil and will be used for request cancellation. If
274// the context is nil a panic will occur. In the future the SDK may create
275// sub-contexts for http.Requests. See https://golang.org/pkg/context/
276// for more information on using Contexts.
277func (c *EMR) AddJobFlowStepsWithContext(ctx aws.Context, input *AddJobFlowStepsInput, opts ...request.Option) (*AddJobFlowStepsOutput, error) {
278	req, out := c.AddJobFlowStepsRequest(input)
279	req.SetContext(ctx)
280	req.ApplyOptions(opts...)
281	return out, req.Send()
282}
283
284const opAddTags = "AddTags"
285
286// AddTagsRequest generates a "aws/request.Request" representing the
287// client's request for the AddTags operation. The "output" return
288// value will be populated with the request's response once the request completes
289// successfully.
290//
291// Use "Send" method on the returned Request to send the API call to the service.
292// the "output" return value is not valid until after Send returns without error.
293//
294// See AddTags for more information on using the AddTags
295// API call, and error handling.
296//
297// This method is useful when you want to inject custom logic or configuration
298// into the SDK's request lifecycle. Such as custom headers, or retry logic.
299//
300//
301//    // Example sending a request using the AddTagsRequest method.
302//    req, resp := client.AddTagsRequest(params)
303//
304//    err := req.Send()
305//    if err == nil { // resp is now filled
306//        fmt.Println(resp)
307//    }
308//
309// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddTags
310func (c *EMR) AddTagsRequest(input *AddTagsInput) (req *request.Request, output *AddTagsOutput) {
311	op := &request.Operation{
312		Name:       opAddTags,
313		HTTPMethod: "POST",
314		HTTPPath:   "/",
315	}
316
317	if input == nil {
318		input = &AddTagsInput{}
319	}
320
321	output = &AddTagsOutput{}
322	req = c.newRequest(op, input, output)
323	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
324	return
325}
326
327// AddTags API operation for Amazon EMR.
328//
329// Adds tags to an Amazon EMR resource. Tags make it easier to associate clusters
330// in various ways, such as grouping clusters to track your Amazon EMR resource
331// allocation costs. For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
332//
333// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
334// with awserr.Error's Code and Message methods to get detailed information about
335// the error.
336//
337// See the AWS API reference guide for Amazon EMR's
338// API operation AddTags for usage and error information.
339//
340// Returned Error Types:
341//   * InternalServerException
342//   This exception occurs when there is an internal failure in the Amazon EMR
343//   service.
344//
345//   * InvalidRequestException
346//   This exception occurs when there is something wrong with user input.
347//
348// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddTags
349func (c *EMR) AddTags(input *AddTagsInput) (*AddTagsOutput, error) {
350	req, out := c.AddTagsRequest(input)
351	return out, req.Send()
352}
353
354// AddTagsWithContext is the same as AddTags with the addition of
355// the ability to pass a context and additional request options.
356//
357// See AddTags for details on how to use this API operation.
358//
359// The context must be non-nil and will be used for request cancellation. If
360// the context is nil a panic will occur. In the future the SDK may create
361// sub-contexts for http.Requests. See https://golang.org/pkg/context/
362// for more information on using Contexts.
363func (c *EMR) AddTagsWithContext(ctx aws.Context, input *AddTagsInput, opts ...request.Option) (*AddTagsOutput, error) {
364	req, out := c.AddTagsRequest(input)
365	req.SetContext(ctx)
366	req.ApplyOptions(opts...)
367	return out, req.Send()
368}
369
370const opCancelSteps = "CancelSteps"
371
372// CancelStepsRequest generates a "aws/request.Request" representing the
373// client's request for the CancelSteps operation. The "output" return
374// value will be populated with the request's response once the request completes
375// successfully.
376//
377// Use "Send" method on the returned Request to send the API call to the service.
378// the "output" return value is not valid until after Send returns without error.
379//
380// See CancelSteps for more information on using the CancelSteps
381// API call, and error handling.
382//
383// This method is useful when you want to inject custom logic or configuration
384// into the SDK's request lifecycle. Such as custom headers, or retry logic.
385//
386//
387//    // Example sending a request using the CancelStepsRequest method.
388//    req, resp := client.CancelStepsRequest(params)
389//
390//    err := req.Send()
391//    if err == nil { // resp is now filled
392//        fmt.Println(resp)
393//    }
394//
395// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelSteps
396func (c *EMR) CancelStepsRequest(input *CancelStepsInput) (req *request.Request, output *CancelStepsOutput) {
397	op := &request.Operation{
398		Name:       opCancelSteps,
399		HTTPMethod: "POST",
400		HTTPPath:   "/",
401	}
402
403	if input == nil {
404		input = &CancelStepsInput{}
405	}
406
407	output = &CancelStepsOutput{}
408	req = c.newRequest(op, input, output)
409	return
410}
411
412// CancelSteps API operation for Amazon EMR.
413//
414// Cancels a pending step or steps in a running cluster. Available only in Amazon
415// EMR versions 4.8.0 and later, excluding version 5.0.0. A maximum of 256 steps
416// are allowed in each CancelSteps request. CancelSteps is idempotent but asynchronous;
417// it does not guarantee that a step will be canceled, even if the request is
418// successfully submitted. When you use Amazon EMR versions 5.28.0 and later,
419// you can cancel steps that are in a PENDING or RUNNING state. In earlier versions
420// of Amazon EMR, you can only cancel steps that are in a PENDING state.
421//
422// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
423// with awserr.Error's Code and Message methods to get detailed information about
424// the error.
425//
426// See the AWS API reference guide for Amazon EMR's
427// API operation CancelSteps for usage and error information.
428//
429// Returned Error Types:
430//   * InternalServerError
431//   Indicates that an error occurred while processing the request and that the
432//   request was not completed.
433//
434//   * InvalidRequestException
435//   This exception occurs when there is something wrong with user input.
436//
437// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelSteps
438func (c *EMR) CancelSteps(input *CancelStepsInput) (*CancelStepsOutput, error) {
439	req, out := c.CancelStepsRequest(input)
440	return out, req.Send()
441}
442
443// CancelStepsWithContext is the same as CancelSteps with the addition of
444// the ability to pass a context and additional request options.
445//
446// See CancelSteps for details on how to use this API operation.
447//
448// The context must be non-nil and will be used for request cancellation. If
449// the context is nil a panic will occur. In the future the SDK may create
450// sub-contexts for http.Requests. See https://golang.org/pkg/context/
451// for more information on using Contexts.
452func (c *EMR) CancelStepsWithContext(ctx aws.Context, input *CancelStepsInput, opts ...request.Option) (*CancelStepsOutput, error) {
453	req, out := c.CancelStepsRequest(input)
454	req.SetContext(ctx)
455	req.ApplyOptions(opts...)
456	return out, req.Send()
457}
458
459const opCreateSecurityConfiguration = "CreateSecurityConfiguration"
460
461// CreateSecurityConfigurationRequest generates a "aws/request.Request" representing the
462// client's request for the CreateSecurityConfiguration operation. The "output" return
463// value will be populated with the request's response once the request completes
464// successfully.
465//
466// Use "Send" method on the returned Request to send the API call to the service.
467// the "output" return value is not valid until after Send returns without error.
468//
469// See CreateSecurityConfiguration for more information on using the CreateSecurityConfiguration
470// API call, and error handling.
471//
472// This method is useful when you want to inject custom logic or configuration
473// into the SDK's request lifecycle. Such as custom headers, or retry logic.
474//
475//
476//    // Example sending a request using the CreateSecurityConfigurationRequest method.
477//    req, resp := client.CreateSecurityConfigurationRequest(params)
478//
479//    err := req.Send()
480//    if err == nil { // resp is now filled
481//        fmt.Println(resp)
482//    }
483//
484// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfiguration
485func (c *EMR) CreateSecurityConfigurationRequest(input *CreateSecurityConfigurationInput) (req *request.Request, output *CreateSecurityConfigurationOutput) {
486	op := &request.Operation{
487		Name:       opCreateSecurityConfiguration,
488		HTTPMethod: "POST",
489		HTTPPath:   "/",
490	}
491
492	if input == nil {
493		input = &CreateSecurityConfigurationInput{}
494	}
495
496	output = &CreateSecurityConfigurationOutput{}
497	req = c.newRequest(op, input, output)
498	return
499}
500
501// CreateSecurityConfiguration API operation for Amazon EMR.
502//
503// Creates a security configuration, which is stored in the service and can
504// be specified when a cluster is created.
505//
506// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
507// with awserr.Error's Code and Message methods to get detailed information about
508// the error.
509//
510// See the AWS API reference guide for Amazon EMR's
511// API operation CreateSecurityConfiguration for usage and error information.
512//
513// Returned Error Types:
514//   * InternalServerException
515//   This exception occurs when there is an internal failure in the Amazon EMR
516//   service.
517//
518//   * InvalidRequestException
519//   This exception occurs when there is something wrong with user input.
520//
521// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfiguration
522func (c *EMR) CreateSecurityConfiguration(input *CreateSecurityConfigurationInput) (*CreateSecurityConfigurationOutput, error) {
523	req, out := c.CreateSecurityConfigurationRequest(input)
524	return out, req.Send()
525}
526
527// CreateSecurityConfigurationWithContext is the same as CreateSecurityConfiguration with the addition of
528// the ability to pass a context and additional request options.
529//
530// See CreateSecurityConfiguration for details on how to use this API operation.
531//
532// The context must be non-nil and will be used for request cancellation. If
533// the context is nil a panic will occur. In the future the SDK may create
534// sub-contexts for http.Requests. See https://golang.org/pkg/context/
535// for more information on using Contexts.
536func (c *EMR) CreateSecurityConfigurationWithContext(ctx aws.Context, input *CreateSecurityConfigurationInput, opts ...request.Option) (*CreateSecurityConfigurationOutput, error) {
537	req, out := c.CreateSecurityConfigurationRequest(input)
538	req.SetContext(ctx)
539	req.ApplyOptions(opts...)
540	return out, req.Send()
541}
542
543const opCreateStudio = "CreateStudio"
544
545// CreateStudioRequest generates a "aws/request.Request" representing the
546// client's request for the CreateStudio operation. The "output" return
547// value will be populated with the request's response once the request completes
548// successfully.
549//
550// Use "Send" method on the returned Request to send the API call to the service.
551// the "output" return value is not valid until after Send returns without error.
552//
553// See CreateStudio for more information on using the CreateStudio
554// API call, and error handling.
555//
556// This method is useful when you want to inject custom logic or configuration
557// into the SDK's request lifecycle. Such as custom headers, or retry logic.
558//
559//
560//    // Example sending a request using the CreateStudioRequest method.
561//    req, resp := client.CreateStudioRequest(params)
562//
563//    err := req.Send()
564//    if err == nil { // resp is now filled
565//        fmt.Println(resp)
566//    }
567//
568// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudio
569func (c *EMR) CreateStudioRequest(input *CreateStudioInput) (req *request.Request, output *CreateStudioOutput) {
570	op := &request.Operation{
571		Name:       opCreateStudio,
572		HTTPMethod: "POST",
573		HTTPPath:   "/",
574	}
575
576	if input == nil {
577		input = &CreateStudioInput{}
578	}
579
580	output = &CreateStudioOutput{}
581	req = c.newRequest(op, input, output)
582	return
583}
584
585// CreateStudio API operation for Amazon EMR.
586//
587// Creates a new Amazon EMR Studio.
588//
589// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
590// with awserr.Error's Code and Message methods to get detailed information about
591// the error.
592//
593// See the AWS API reference guide for Amazon EMR's
594// API operation CreateStudio for usage and error information.
595//
596// Returned Error Types:
597//   * InternalServerException
598//   This exception occurs when there is an internal failure in the Amazon EMR
599//   service.
600//
601//   * InvalidRequestException
602//   This exception occurs when there is something wrong with user input.
603//
604// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudio
605func (c *EMR) CreateStudio(input *CreateStudioInput) (*CreateStudioOutput, error) {
606	req, out := c.CreateStudioRequest(input)
607	return out, req.Send()
608}
609
610// CreateStudioWithContext is the same as CreateStudio with the addition of
611// the ability to pass a context and additional request options.
612//
613// See CreateStudio for details on how to use this API operation.
614//
615// The context must be non-nil and will be used for request cancellation. If
616// the context is nil a panic will occur. In the future the SDK may create
617// sub-contexts for http.Requests. See https://golang.org/pkg/context/
618// for more information on using Contexts.
619func (c *EMR) CreateStudioWithContext(ctx aws.Context, input *CreateStudioInput, opts ...request.Option) (*CreateStudioOutput, error) {
620	req, out := c.CreateStudioRequest(input)
621	req.SetContext(ctx)
622	req.ApplyOptions(opts...)
623	return out, req.Send()
624}
625
626const opCreateStudioSessionMapping = "CreateStudioSessionMapping"
627
628// CreateStudioSessionMappingRequest generates a "aws/request.Request" representing the
629// client's request for the CreateStudioSessionMapping operation. The "output" return
630// value will be populated with the request's response once the request completes
631// successfully.
632//
633// Use "Send" method on the returned Request to send the API call to the service.
634// the "output" return value is not valid until after Send returns without error.
635//
636// See CreateStudioSessionMapping for more information on using the CreateStudioSessionMapping
637// API call, and error handling.
638//
639// This method is useful when you want to inject custom logic or configuration
640// into the SDK's request lifecycle. Such as custom headers, or retry logic.
641//
642//
643//    // Example sending a request using the CreateStudioSessionMappingRequest method.
644//    req, resp := client.CreateStudioSessionMappingRequest(params)
645//
646//    err := req.Send()
647//    if err == nil { // resp is now filled
648//        fmt.Println(resp)
649//    }
650//
651// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudioSessionMapping
652func (c *EMR) CreateStudioSessionMappingRequest(input *CreateStudioSessionMappingInput) (req *request.Request, output *CreateStudioSessionMappingOutput) {
653	op := &request.Operation{
654		Name:       opCreateStudioSessionMapping,
655		HTTPMethod: "POST",
656		HTTPPath:   "/",
657	}
658
659	if input == nil {
660		input = &CreateStudioSessionMappingInput{}
661	}
662
663	output = &CreateStudioSessionMappingOutput{}
664	req = c.newRequest(op, input, output)
665	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
666	return
667}
668
669// CreateStudioSessionMapping API operation for Amazon EMR.
670//
671// Maps a user or group to the Amazon EMR Studio specified by StudioId, and
672// applies a session policy to refine Studio permissions for that user or group.
673//
674// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
675// with awserr.Error's Code and Message methods to get detailed information about
676// the error.
677//
678// See the AWS API reference guide for Amazon EMR's
679// API operation CreateStudioSessionMapping for usage and error information.
680//
681// Returned Error Types:
682//   * InternalServerError
683//   Indicates that an error occurred while processing the request and that the
684//   request was not completed.
685//
686//   * InvalidRequestException
687//   This exception occurs when there is something wrong with user input.
688//
689// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudioSessionMapping
690func (c *EMR) CreateStudioSessionMapping(input *CreateStudioSessionMappingInput) (*CreateStudioSessionMappingOutput, error) {
691	req, out := c.CreateStudioSessionMappingRequest(input)
692	return out, req.Send()
693}
694
695// CreateStudioSessionMappingWithContext is the same as CreateStudioSessionMapping with the addition of
696// the ability to pass a context and additional request options.
697//
698// See CreateStudioSessionMapping for details on how to use this API operation.
699//
700// The context must be non-nil and will be used for request cancellation. If
701// the context is nil a panic will occur. In the future the SDK may create
702// sub-contexts for http.Requests. See https://golang.org/pkg/context/
703// for more information on using Contexts.
704func (c *EMR) CreateStudioSessionMappingWithContext(ctx aws.Context, input *CreateStudioSessionMappingInput, opts ...request.Option) (*CreateStudioSessionMappingOutput, error) {
705	req, out := c.CreateStudioSessionMappingRequest(input)
706	req.SetContext(ctx)
707	req.ApplyOptions(opts...)
708	return out, req.Send()
709}
710
711const opDeleteSecurityConfiguration = "DeleteSecurityConfiguration"
712
713// DeleteSecurityConfigurationRequest generates a "aws/request.Request" representing the
714// client's request for the DeleteSecurityConfiguration operation. The "output" return
715// value will be populated with the request's response once the request completes
716// successfully.
717//
718// Use "Send" method on the returned Request to send the API call to the service.
719// the "output" return value is not valid until after Send returns without error.
720//
721// See DeleteSecurityConfiguration for more information on using the DeleteSecurityConfiguration
722// API call, and error handling.
723//
724// This method is useful when you want to inject custom logic or configuration
725// into the SDK's request lifecycle. Such as custom headers, or retry logic.
726//
727//
728//    // Example sending a request using the DeleteSecurityConfigurationRequest method.
729//    req, resp := client.DeleteSecurityConfigurationRequest(params)
730//
731//    err := req.Send()
732//    if err == nil { // resp is now filled
733//        fmt.Println(resp)
734//    }
735//
736// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfiguration
737func (c *EMR) DeleteSecurityConfigurationRequest(input *DeleteSecurityConfigurationInput) (req *request.Request, output *DeleteSecurityConfigurationOutput) {
738	op := &request.Operation{
739		Name:       opDeleteSecurityConfiguration,
740		HTTPMethod: "POST",
741		HTTPPath:   "/",
742	}
743
744	if input == nil {
745		input = &DeleteSecurityConfigurationInput{}
746	}
747
748	output = &DeleteSecurityConfigurationOutput{}
749	req = c.newRequest(op, input, output)
750	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
751	return
752}
753
754// DeleteSecurityConfiguration API operation for Amazon EMR.
755//
756// Deletes a security configuration.
757//
758// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
759// with awserr.Error's Code and Message methods to get detailed information about
760// the error.
761//
762// See the AWS API reference guide for Amazon EMR's
763// API operation DeleteSecurityConfiguration for usage and error information.
764//
765// Returned Error Types:
766//   * InternalServerException
767//   This exception occurs when there is an internal failure in the Amazon EMR
768//   service.
769//
770//   * InvalidRequestException
771//   This exception occurs when there is something wrong with user input.
772//
773// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfiguration
774func (c *EMR) DeleteSecurityConfiguration(input *DeleteSecurityConfigurationInput) (*DeleteSecurityConfigurationOutput, error) {
775	req, out := c.DeleteSecurityConfigurationRequest(input)
776	return out, req.Send()
777}
778
779// DeleteSecurityConfigurationWithContext is the same as DeleteSecurityConfiguration with the addition of
780// the ability to pass a context and additional request options.
781//
782// See DeleteSecurityConfiguration for details on how to use this API operation.
783//
784// The context must be non-nil and will be used for request cancellation. If
785// the context is nil a panic will occur. In the future the SDK may create
786// sub-contexts for http.Requests. See https://golang.org/pkg/context/
787// for more information on using Contexts.
788func (c *EMR) DeleteSecurityConfigurationWithContext(ctx aws.Context, input *DeleteSecurityConfigurationInput, opts ...request.Option) (*DeleteSecurityConfigurationOutput, error) {
789	req, out := c.DeleteSecurityConfigurationRequest(input)
790	req.SetContext(ctx)
791	req.ApplyOptions(opts...)
792	return out, req.Send()
793}
794
795const opDeleteStudio = "DeleteStudio"
796
797// DeleteStudioRequest generates a "aws/request.Request" representing the
798// client's request for the DeleteStudio operation. The "output" return
799// value will be populated with the request's response once the request completes
800// successfully.
801//
802// Use "Send" method on the returned Request to send the API call to the service.
803// the "output" return value is not valid until after Send returns without error.
804//
805// See DeleteStudio for more information on using the DeleteStudio
806// API call, and error handling.
807//
808// This method is useful when you want to inject custom logic or configuration
809// into the SDK's request lifecycle. Such as custom headers, or retry logic.
810//
811//
812//    // Example sending a request using the DeleteStudioRequest method.
813//    req, resp := client.DeleteStudioRequest(params)
814//
815//    err := req.Send()
816//    if err == nil { // resp is now filled
817//        fmt.Println(resp)
818//    }
819//
820// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudio
821func (c *EMR) DeleteStudioRequest(input *DeleteStudioInput) (req *request.Request, output *DeleteStudioOutput) {
822	op := &request.Operation{
823		Name:       opDeleteStudio,
824		HTTPMethod: "POST",
825		HTTPPath:   "/",
826	}
827
828	if input == nil {
829		input = &DeleteStudioInput{}
830	}
831
832	output = &DeleteStudioOutput{}
833	req = c.newRequest(op, input, output)
834	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
835	return
836}
837
838// DeleteStudio API operation for Amazon EMR.
839//
840// Removes an Amazon EMR Studio from the Studio metadata store.
841//
842// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
843// with awserr.Error's Code and Message methods to get detailed information about
844// the error.
845//
846// See the AWS API reference guide for Amazon EMR's
847// API operation DeleteStudio for usage and error information.
848//
849// Returned Error Types:
850//   * InternalServerException
851//   This exception occurs when there is an internal failure in the Amazon EMR
852//   service.
853//
854//   * InvalidRequestException
855//   This exception occurs when there is something wrong with user input.
856//
857// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudio
858func (c *EMR) DeleteStudio(input *DeleteStudioInput) (*DeleteStudioOutput, error) {
859	req, out := c.DeleteStudioRequest(input)
860	return out, req.Send()
861}
862
863// DeleteStudioWithContext is the same as DeleteStudio with the addition of
864// the ability to pass a context and additional request options.
865//
866// See DeleteStudio for details on how to use this API operation.
867//
868// The context must be non-nil and will be used for request cancellation. If
869// the context is nil a panic will occur. In the future the SDK may create
870// sub-contexts for http.Requests. See https://golang.org/pkg/context/
871// for more information on using Contexts.
872func (c *EMR) DeleteStudioWithContext(ctx aws.Context, input *DeleteStudioInput, opts ...request.Option) (*DeleteStudioOutput, error) {
873	req, out := c.DeleteStudioRequest(input)
874	req.SetContext(ctx)
875	req.ApplyOptions(opts...)
876	return out, req.Send()
877}
878
879const opDeleteStudioSessionMapping = "DeleteStudioSessionMapping"
880
881// DeleteStudioSessionMappingRequest generates a "aws/request.Request" representing the
882// client's request for the DeleteStudioSessionMapping operation. The "output" return
883// value will be populated with the request's response once the request completes
884// successfully.
885//
886// Use "Send" method on the returned Request to send the API call to the service.
887// the "output" return value is not valid until after Send returns without error.
888//
889// See DeleteStudioSessionMapping for more information on using the DeleteStudioSessionMapping
890// API call, and error handling.
891//
892// This method is useful when you want to inject custom logic or configuration
893// into the SDK's request lifecycle. Such as custom headers, or retry logic.
894//
895//
896//    // Example sending a request using the DeleteStudioSessionMappingRequest method.
897//    req, resp := client.DeleteStudioSessionMappingRequest(params)
898//
899//    err := req.Send()
900//    if err == nil { // resp is now filled
901//        fmt.Println(resp)
902//    }
903//
904// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudioSessionMapping
905func (c *EMR) DeleteStudioSessionMappingRequest(input *DeleteStudioSessionMappingInput) (req *request.Request, output *DeleteStudioSessionMappingOutput) {
906	op := &request.Operation{
907		Name:       opDeleteStudioSessionMapping,
908		HTTPMethod: "POST",
909		HTTPPath:   "/",
910	}
911
912	if input == nil {
913		input = &DeleteStudioSessionMappingInput{}
914	}
915
916	output = &DeleteStudioSessionMappingOutput{}
917	req = c.newRequest(op, input, output)
918	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
919	return
920}
921
922// DeleteStudioSessionMapping API operation for Amazon EMR.
923//
924// Removes a user or group from an Amazon EMR Studio.
925//
926// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
927// with awserr.Error's Code and Message methods to get detailed information about
928// the error.
929//
930// See the AWS API reference guide for Amazon EMR's
931// API operation DeleteStudioSessionMapping for usage and error information.
932//
933// Returned Error Types:
934//   * InternalServerError
935//   Indicates that an error occurred while processing the request and that the
936//   request was not completed.
937//
938//   * InvalidRequestException
939//   This exception occurs when there is something wrong with user input.
940//
941// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudioSessionMapping
942func (c *EMR) DeleteStudioSessionMapping(input *DeleteStudioSessionMappingInput) (*DeleteStudioSessionMappingOutput, error) {
943	req, out := c.DeleteStudioSessionMappingRequest(input)
944	return out, req.Send()
945}
946
947// DeleteStudioSessionMappingWithContext is the same as DeleteStudioSessionMapping with the addition of
948// the ability to pass a context and additional request options.
949//
950// See DeleteStudioSessionMapping for details on how to use this API operation.
951//
952// The context must be non-nil and will be used for request cancellation. If
953// the context is nil a panic will occur. In the future the SDK may create
954// sub-contexts for http.Requests. See https://golang.org/pkg/context/
955// for more information on using Contexts.
956func (c *EMR) DeleteStudioSessionMappingWithContext(ctx aws.Context, input *DeleteStudioSessionMappingInput, opts ...request.Option) (*DeleteStudioSessionMappingOutput, error) {
957	req, out := c.DeleteStudioSessionMappingRequest(input)
958	req.SetContext(ctx)
959	req.ApplyOptions(opts...)
960	return out, req.Send()
961}
962
963const opDescribeCluster = "DescribeCluster"
964
965// DescribeClusterRequest generates a "aws/request.Request" representing the
966// client's request for the DescribeCluster operation. The "output" return
967// value will be populated with the request's response once the request completes
968// successfully.
969//
970// Use "Send" method on the returned Request to send the API call to the service.
971// the "output" return value is not valid until after Send returns without error.
972//
973// See DescribeCluster for more information on using the DescribeCluster
974// API call, and error handling.
975//
976// This method is useful when you want to inject custom logic or configuration
977// into the SDK's request lifecycle. Such as custom headers, or retry logic.
978//
979//
980//    // Example sending a request using the DescribeClusterRequest method.
981//    req, resp := client.DescribeClusterRequest(params)
982//
983//    err := req.Send()
984//    if err == nil { // resp is now filled
985//        fmt.Println(resp)
986//    }
987//
988// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeCluster
989func (c *EMR) DescribeClusterRequest(input *DescribeClusterInput) (req *request.Request, output *DescribeClusterOutput) {
990	op := &request.Operation{
991		Name:       opDescribeCluster,
992		HTTPMethod: "POST",
993		HTTPPath:   "/",
994	}
995
996	if input == nil {
997		input = &DescribeClusterInput{}
998	}
999
1000	output = &DescribeClusterOutput{}
1001	req = c.newRequest(op, input, output)
1002	return
1003}
1004
1005// DescribeCluster API operation for Amazon EMR.
1006//
1007// Provides cluster-level details including status, hardware and software configuration,
1008// VPC settings, and so on.
1009//
1010// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1011// with awserr.Error's Code and Message methods to get detailed information about
1012// the error.
1013//
1014// See the AWS API reference guide for Amazon EMR's
1015// API operation DescribeCluster for usage and error information.
1016//
1017// Returned Error Types:
1018//   * InternalServerException
1019//   This exception occurs when there is an internal failure in the Amazon EMR
1020//   service.
1021//
1022//   * InvalidRequestException
1023//   This exception occurs when there is something wrong with user input.
1024//
1025// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeCluster
1026func (c *EMR) DescribeCluster(input *DescribeClusterInput) (*DescribeClusterOutput, error) {
1027	req, out := c.DescribeClusterRequest(input)
1028	return out, req.Send()
1029}
1030
1031// DescribeClusterWithContext is the same as DescribeCluster with the addition of
1032// the ability to pass a context and additional request options.
1033//
1034// See DescribeCluster for details on how to use this API operation.
1035//
1036// The context must be non-nil and will be used for request cancellation. If
1037// the context is nil a panic will occur. In the future the SDK may create
1038// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1039// for more information on using Contexts.
1040func (c *EMR) DescribeClusterWithContext(ctx aws.Context, input *DescribeClusterInput, opts ...request.Option) (*DescribeClusterOutput, error) {
1041	req, out := c.DescribeClusterRequest(input)
1042	req.SetContext(ctx)
1043	req.ApplyOptions(opts...)
1044	return out, req.Send()
1045}
1046
1047const opDescribeJobFlows = "DescribeJobFlows"
1048
1049// DescribeJobFlowsRequest generates a "aws/request.Request" representing the
1050// client's request for the DescribeJobFlows operation. The "output" return
1051// value will be populated with the request's response once the request completes
1052// successfully.
1053//
1054// Use "Send" method on the returned Request to send the API call to the service.
1055// the "output" return value is not valid until after Send returns without error.
1056//
1057// See DescribeJobFlows for more information on using the DescribeJobFlows
1058// API call, and error handling.
1059//
1060// This method is useful when you want to inject custom logic or configuration
1061// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1062//
1063//
1064//    // Example sending a request using the DescribeJobFlowsRequest method.
1065//    req, resp := client.DescribeJobFlowsRequest(params)
1066//
1067//    err := req.Send()
1068//    if err == nil { // resp is now filled
1069//        fmt.Println(resp)
1070//    }
1071//
1072// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlows
1073//
1074// Deprecated: DescribeJobFlows has been deprecated
1075func (c *EMR) DescribeJobFlowsRequest(input *DescribeJobFlowsInput) (req *request.Request, output *DescribeJobFlowsOutput) {
1076	if c.Client.Config.Logger != nil {
1077		c.Client.Config.Logger.Log("This operation, DescribeJobFlows, has been deprecated")
1078	}
1079	op := &request.Operation{
1080		Name:       opDescribeJobFlows,
1081		HTTPMethod: "POST",
1082		HTTPPath:   "/",
1083	}
1084
1085	if input == nil {
1086		input = &DescribeJobFlowsInput{}
1087	}
1088
1089	output = &DescribeJobFlowsOutput{}
1090	req = c.newRequest(op, input, output)
1091	return
1092}
1093
1094// DescribeJobFlows API operation for Amazon EMR.
1095//
1096// This API is no longer supported and will eventually be removed. We recommend
1097// you use ListClusters, DescribeCluster, ListSteps, ListInstanceGroups and
1098// ListBootstrapActions instead.
1099//
1100// DescribeJobFlows returns a list of job flows that match all of the supplied
1101// parameters. The parameters can include a list of job flow IDs, job flow states,
1102// and restrictions on job flow creation date and time.
1103//
1104// Regardless of supplied parameters, only job flows created within the last
1105// two months are returned.
1106//
1107// If no parameters are supplied, then job flows matching either of the following
1108// criteria are returned:
1109//
1110//    * Job flows created and completed in the last two weeks
1111//
1112//    * Job flows created within the last two months that are in one of the
1113//    following states: RUNNING, WAITING, SHUTTING_DOWN, STARTING
1114//
1115// Amazon EMR can return a maximum of 512 job flow descriptions.
1116//
1117// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1118// with awserr.Error's Code and Message methods to get detailed information about
1119// the error.
1120//
1121// See the AWS API reference guide for Amazon EMR's
1122// API operation DescribeJobFlows for usage and error information.
1123//
1124// Returned Error Types:
1125//   * InternalServerError
1126//   Indicates that an error occurred while processing the request and that the
1127//   request was not completed.
1128//
1129// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlows
1130//
1131// Deprecated: DescribeJobFlows has been deprecated
1132func (c *EMR) DescribeJobFlows(input *DescribeJobFlowsInput) (*DescribeJobFlowsOutput, error) {
1133	req, out := c.DescribeJobFlowsRequest(input)
1134	return out, req.Send()
1135}
1136
1137// DescribeJobFlowsWithContext is the same as DescribeJobFlows with the addition of
1138// the ability to pass a context and additional request options.
1139//
1140// See DescribeJobFlows for details on how to use this API operation.
1141//
1142// The context must be non-nil and will be used for request cancellation. If
1143// the context is nil a panic will occur. In the future the SDK may create
1144// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1145// for more information on using Contexts.
1146//
1147// Deprecated: DescribeJobFlowsWithContext has been deprecated
1148func (c *EMR) DescribeJobFlowsWithContext(ctx aws.Context, input *DescribeJobFlowsInput, opts ...request.Option) (*DescribeJobFlowsOutput, error) {
1149	req, out := c.DescribeJobFlowsRequest(input)
1150	req.SetContext(ctx)
1151	req.ApplyOptions(opts...)
1152	return out, req.Send()
1153}
1154
1155const opDescribeNotebookExecution = "DescribeNotebookExecution"
1156
1157// DescribeNotebookExecutionRequest generates a "aws/request.Request" representing the
1158// client's request for the DescribeNotebookExecution operation. The "output" return
1159// value will be populated with the request's response once the request completes
1160// successfully.
1161//
1162// Use "Send" method on the returned Request to send the API call to the service.
1163// the "output" return value is not valid until after Send returns without error.
1164//
1165// See DescribeNotebookExecution for more information on using the DescribeNotebookExecution
1166// API call, and error handling.
1167//
1168// This method is useful when you want to inject custom logic or configuration
1169// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1170//
1171//
1172//    // Example sending a request using the DescribeNotebookExecutionRequest method.
1173//    req, resp := client.DescribeNotebookExecutionRequest(params)
1174//
1175//    err := req.Send()
1176//    if err == nil { // resp is now filled
1177//        fmt.Println(resp)
1178//    }
1179//
1180// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeNotebookExecution
1181func (c *EMR) DescribeNotebookExecutionRequest(input *DescribeNotebookExecutionInput) (req *request.Request, output *DescribeNotebookExecutionOutput) {
1182	op := &request.Operation{
1183		Name:       opDescribeNotebookExecution,
1184		HTTPMethod: "POST",
1185		HTTPPath:   "/",
1186	}
1187
1188	if input == nil {
1189		input = &DescribeNotebookExecutionInput{}
1190	}
1191
1192	output = &DescribeNotebookExecutionOutput{}
1193	req = c.newRequest(op, input, output)
1194	return
1195}
1196
1197// DescribeNotebookExecution API operation for Amazon EMR.
1198//
1199// Provides details of a notebook execution.
1200//
1201// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1202// with awserr.Error's Code and Message methods to get detailed information about
1203// the error.
1204//
1205// See the AWS API reference guide for Amazon EMR's
1206// API operation DescribeNotebookExecution for usage and error information.
1207//
1208// Returned Error Types:
1209//   * InternalServerError
1210//   Indicates that an error occurred while processing the request and that the
1211//   request was not completed.
1212//
1213//   * InvalidRequestException
1214//   This exception occurs when there is something wrong with user input.
1215//
1216// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeNotebookExecution
1217func (c *EMR) DescribeNotebookExecution(input *DescribeNotebookExecutionInput) (*DescribeNotebookExecutionOutput, error) {
1218	req, out := c.DescribeNotebookExecutionRequest(input)
1219	return out, req.Send()
1220}
1221
1222// DescribeNotebookExecutionWithContext is the same as DescribeNotebookExecution with the addition of
1223// the ability to pass a context and additional request options.
1224//
1225// See DescribeNotebookExecution for details on how to use this API operation.
1226//
1227// The context must be non-nil and will be used for request cancellation. If
1228// the context is nil a panic will occur. In the future the SDK may create
1229// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1230// for more information on using Contexts.
1231func (c *EMR) DescribeNotebookExecutionWithContext(ctx aws.Context, input *DescribeNotebookExecutionInput, opts ...request.Option) (*DescribeNotebookExecutionOutput, error) {
1232	req, out := c.DescribeNotebookExecutionRequest(input)
1233	req.SetContext(ctx)
1234	req.ApplyOptions(opts...)
1235	return out, req.Send()
1236}
1237
1238const opDescribeReleaseLabel = "DescribeReleaseLabel"
1239
1240// DescribeReleaseLabelRequest generates a "aws/request.Request" representing the
1241// client's request for the DescribeReleaseLabel operation. The "output" return
1242// value will be populated with the request's response once the request completes
1243// successfully.
1244//
1245// Use "Send" method on the returned Request to send the API call to the service.
1246// the "output" return value is not valid until after Send returns without error.
1247//
1248// See DescribeReleaseLabel for more information on using the DescribeReleaseLabel
1249// API call, and error handling.
1250//
1251// This method is useful when you want to inject custom logic or configuration
1252// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1253//
1254//
1255//    // Example sending a request using the DescribeReleaseLabelRequest method.
1256//    req, resp := client.DescribeReleaseLabelRequest(params)
1257//
1258//    err := req.Send()
1259//    if err == nil { // resp is now filled
1260//        fmt.Println(resp)
1261//    }
1262//
1263// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeReleaseLabel
1264func (c *EMR) DescribeReleaseLabelRequest(input *DescribeReleaseLabelInput) (req *request.Request, output *DescribeReleaseLabelOutput) {
1265	op := &request.Operation{
1266		Name:       opDescribeReleaseLabel,
1267		HTTPMethod: "POST",
1268		HTTPPath:   "/",
1269	}
1270
1271	if input == nil {
1272		input = &DescribeReleaseLabelInput{}
1273	}
1274
1275	output = &DescribeReleaseLabelOutput{}
1276	req = c.newRequest(op, input, output)
1277	return
1278}
1279
1280// DescribeReleaseLabel API operation for Amazon EMR.
1281//
1282// Provides EMR release label details, such as releases available the region
1283// where the API request is run, and the available applications for a specific
1284// EMR release label. Can also list EMR release versions that support a specified
1285// version of Spark.
1286//
1287// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1288// with awserr.Error's Code and Message methods to get detailed information about
1289// the error.
1290//
1291// See the AWS API reference guide for Amazon EMR's
1292// API operation DescribeReleaseLabel for usage and error information.
1293//
1294// Returned Error Types:
1295//   * InternalServerException
1296//   This exception occurs when there is an internal failure in the Amazon EMR
1297//   service.
1298//
1299//   * InvalidRequestException
1300//   This exception occurs when there is something wrong with user input.
1301//
1302// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeReleaseLabel
1303func (c *EMR) DescribeReleaseLabel(input *DescribeReleaseLabelInput) (*DescribeReleaseLabelOutput, error) {
1304	req, out := c.DescribeReleaseLabelRequest(input)
1305	return out, req.Send()
1306}
1307
1308// DescribeReleaseLabelWithContext is the same as DescribeReleaseLabel with the addition of
1309// the ability to pass a context and additional request options.
1310//
1311// See DescribeReleaseLabel for details on how to use this API operation.
1312//
1313// The context must be non-nil and will be used for request cancellation. If
1314// the context is nil a panic will occur. In the future the SDK may create
1315// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1316// for more information on using Contexts.
1317func (c *EMR) DescribeReleaseLabelWithContext(ctx aws.Context, input *DescribeReleaseLabelInput, opts ...request.Option) (*DescribeReleaseLabelOutput, error) {
1318	req, out := c.DescribeReleaseLabelRequest(input)
1319	req.SetContext(ctx)
1320	req.ApplyOptions(opts...)
1321	return out, req.Send()
1322}
1323
1324const opDescribeSecurityConfiguration = "DescribeSecurityConfiguration"
1325
1326// DescribeSecurityConfigurationRequest generates a "aws/request.Request" representing the
1327// client's request for the DescribeSecurityConfiguration operation. The "output" return
1328// value will be populated with the request's response once the request completes
1329// successfully.
1330//
1331// Use "Send" method on the returned Request to send the API call to the service.
1332// the "output" return value is not valid until after Send returns without error.
1333//
1334// See DescribeSecurityConfiguration for more information on using the DescribeSecurityConfiguration
1335// API call, and error handling.
1336//
1337// This method is useful when you want to inject custom logic or configuration
1338// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1339//
1340//
1341//    // Example sending a request using the DescribeSecurityConfigurationRequest method.
1342//    req, resp := client.DescribeSecurityConfigurationRequest(params)
1343//
1344//    err := req.Send()
1345//    if err == nil { // resp is now filled
1346//        fmt.Println(resp)
1347//    }
1348//
1349// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfiguration
1350func (c *EMR) DescribeSecurityConfigurationRequest(input *DescribeSecurityConfigurationInput) (req *request.Request, output *DescribeSecurityConfigurationOutput) {
1351	op := &request.Operation{
1352		Name:       opDescribeSecurityConfiguration,
1353		HTTPMethod: "POST",
1354		HTTPPath:   "/",
1355	}
1356
1357	if input == nil {
1358		input = &DescribeSecurityConfigurationInput{}
1359	}
1360
1361	output = &DescribeSecurityConfigurationOutput{}
1362	req = c.newRequest(op, input, output)
1363	return
1364}
1365
1366// DescribeSecurityConfiguration API operation for Amazon EMR.
1367//
1368// Provides the details of a security configuration by returning the configuration
1369// JSON.
1370//
1371// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1372// with awserr.Error's Code and Message methods to get detailed information about
1373// the error.
1374//
1375// See the AWS API reference guide for Amazon EMR's
1376// API operation DescribeSecurityConfiguration for usage and error information.
1377//
1378// Returned Error Types:
1379//   * InternalServerException
1380//   This exception occurs when there is an internal failure in the Amazon EMR
1381//   service.
1382//
1383//   * InvalidRequestException
1384//   This exception occurs when there is something wrong with user input.
1385//
1386// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfiguration
1387func (c *EMR) DescribeSecurityConfiguration(input *DescribeSecurityConfigurationInput) (*DescribeSecurityConfigurationOutput, error) {
1388	req, out := c.DescribeSecurityConfigurationRequest(input)
1389	return out, req.Send()
1390}
1391
1392// DescribeSecurityConfigurationWithContext is the same as DescribeSecurityConfiguration with the addition of
1393// the ability to pass a context and additional request options.
1394//
1395// See DescribeSecurityConfiguration for details on how to use this API operation.
1396//
1397// The context must be non-nil and will be used for request cancellation. If
1398// the context is nil a panic will occur. In the future the SDK may create
1399// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1400// for more information on using Contexts.
1401func (c *EMR) DescribeSecurityConfigurationWithContext(ctx aws.Context, input *DescribeSecurityConfigurationInput, opts ...request.Option) (*DescribeSecurityConfigurationOutput, error) {
1402	req, out := c.DescribeSecurityConfigurationRequest(input)
1403	req.SetContext(ctx)
1404	req.ApplyOptions(opts...)
1405	return out, req.Send()
1406}
1407
1408const opDescribeStep = "DescribeStep"
1409
1410// DescribeStepRequest generates a "aws/request.Request" representing the
1411// client's request for the DescribeStep operation. The "output" return
1412// value will be populated with the request's response once the request completes
1413// successfully.
1414//
1415// Use "Send" method on the returned Request to send the API call to the service.
1416// the "output" return value is not valid until after Send returns without error.
1417//
1418// See DescribeStep for more information on using the DescribeStep
1419// API call, and error handling.
1420//
1421// This method is useful when you want to inject custom logic or configuration
1422// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1423//
1424//
1425//    // Example sending a request using the DescribeStepRequest method.
1426//    req, resp := client.DescribeStepRequest(params)
1427//
1428//    err := req.Send()
1429//    if err == nil { // resp is now filled
1430//        fmt.Println(resp)
1431//    }
1432//
1433// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStep
1434func (c *EMR) DescribeStepRequest(input *DescribeStepInput) (req *request.Request, output *DescribeStepOutput) {
1435	op := &request.Operation{
1436		Name:       opDescribeStep,
1437		HTTPMethod: "POST",
1438		HTTPPath:   "/",
1439	}
1440
1441	if input == nil {
1442		input = &DescribeStepInput{}
1443	}
1444
1445	output = &DescribeStepOutput{}
1446	req = c.newRequest(op, input, output)
1447	return
1448}
1449
1450// DescribeStep API operation for Amazon EMR.
1451//
1452// Provides more detail about the cluster step.
1453//
1454// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1455// with awserr.Error's Code and Message methods to get detailed information about
1456// the error.
1457//
1458// See the AWS API reference guide for Amazon EMR's
1459// API operation DescribeStep for usage and error information.
1460//
1461// Returned Error Types:
1462//   * InternalServerException
1463//   This exception occurs when there is an internal failure in the Amazon EMR
1464//   service.
1465//
1466//   * InvalidRequestException
1467//   This exception occurs when there is something wrong with user input.
1468//
1469// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStep
1470func (c *EMR) DescribeStep(input *DescribeStepInput) (*DescribeStepOutput, error) {
1471	req, out := c.DescribeStepRequest(input)
1472	return out, req.Send()
1473}
1474
1475// DescribeStepWithContext is the same as DescribeStep with the addition of
1476// the ability to pass a context and additional request options.
1477//
1478// See DescribeStep for details on how to use this API operation.
1479//
1480// The context must be non-nil and will be used for request cancellation. If
1481// the context is nil a panic will occur. In the future the SDK may create
1482// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1483// for more information on using Contexts.
1484func (c *EMR) DescribeStepWithContext(ctx aws.Context, input *DescribeStepInput, opts ...request.Option) (*DescribeStepOutput, error) {
1485	req, out := c.DescribeStepRequest(input)
1486	req.SetContext(ctx)
1487	req.ApplyOptions(opts...)
1488	return out, req.Send()
1489}
1490
1491const opDescribeStudio = "DescribeStudio"
1492
1493// DescribeStudioRequest generates a "aws/request.Request" representing the
1494// client's request for the DescribeStudio operation. The "output" return
1495// value will be populated with the request's response once the request completes
1496// successfully.
1497//
1498// Use "Send" method on the returned Request to send the API call to the service.
1499// the "output" return value is not valid until after Send returns without error.
1500//
1501// See DescribeStudio for more information on using the DescribeStudio
1502// API call, and error handling.
1503//
1504// This method is useful when you want to inject custom logic or configuration
1505// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1506//
1507//
1508//    // Example sending a request using the DescribeStudioRequest method.
1509//    req, resp := client.DescribeStudioRequest(params)
1510//
1511//    err := req.Send()
1512//    if err == nil { // resp is now filled
1513//        fmt.Println(resp)
1514//    }
1515//
1516// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStudio
1517func (c *EMR) DescribeStudioRequest(input *DescribeStudioInput) (req *request.Request, output *DescribeStudioOutput) {
1518	op := &request.Operation{
1519		Name:       opDescribeStudio,
1520		HTTPMethod: "POST",
1521		HTTPPath:   "/",
1522	}
1523
1524	if input == nil {
1525		input = &DescribeStudioInput{}
1526	}
1527
1528	output = &DescribeStudioOutput{}
1529	req = c.newRequest(op, input, output)
1530	return
1531}
1532
1533// DescribeStudio API operation for Amazon EMR.
1534//
1535// Returns details for the specified Amazon EMR Studio including ID, Name, VPC,
1536// Studio access URL, and so on.
1537//
1538// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1539// with awserr.Error's Code and Message methods to get detailed information about
1540// the error.
1541//
1542// See the AWS API reference guide for Amazon EMR's
1543// API operation DescribeStudio for usage and error information.
1544//
1545// Returned Error Types:
1546//   * InternalServerException
1547//   This exception occurs when there is an internal failure in the Amazon EMR
1548//   service.
1549//
1550//   * InvalidRequestException
1551//   This exception occurs when there is something wrong with user input.
1552//
1553// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStudio
1554func (c *EMR) DescribeStudio(input *DescribeStudioInput) (*DescribeStudioOutput, error) {
1555	req, out := c.DescribeStudioRequest(input)
1556	return out, req.Send()
1557}
1558
1559// DescribeStudioWithContext is the same as DescribeStudio with the addition of
1560// the ability to pass a context and additional request options.
1561//
1562// See DescribeStudio for details on how to use this API operation.
1563//
1564// The context must be non-nil and will be used for request cancellation. If
1565// the context is nil a panic will occur. In the future the SDK may create
1566// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1567// for more information on using Contexts.
1568func (c *EMR) DescribeStudioWithContext(ctx aws.Context, input *DescribeStudioInput, opts ...request.Option) (*DescribeStudioOutput, error) {
1569	req, out := c.DescribeStudioRequest(input)
1570	req.SetContext(ctx)
1571	req.ApplyOptions(opts...)
1572	return out, req.Send()
1573}
1574
1575const opGetBlockPublicAccessConfiguration = "GetBlockPublicAccessConfiguration"
1576
1577// GetBlockPublicAccessConfigurationRequest generates a "aws/request.Request" representing the
1578// client's request for the GetBlockPublicAccessConfiguration operation. The "output" return
1579// value will be populated with the request's response once the request completes
1580// successfully.
1581//
1582// Use "Send" method on the returned Request to send the API call to the service.
1583// the "output" return value is not valid until after Send returns without error.
1584//
1585// See GetBlockPublicAccessConfiguration for more information on using the GetBlockPublicAccessConfiguration
1586// API call, and error handling.
1587//
1588// This method is useful when you want to inject custom logic or configuration
1589// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1590//
1591//
1592//    // Example sending a request using the GetBlockPublicAccessConfigurationRequest method.
1593//    req, resp := client.GetBlockPublicAccessConfigurationRequest(params)
1594//
1595//    err := req.Send()
1596//    if err == nil { // resp is now filled
1597//        fmt.Println(resp)
1598//    }
1599//
1600// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetBlockPublicAccessConfiguration
1601func (c *EMR) GetBlockPublicAccessConfigurationRequest(input *GetBlockPublicAccessConfigurationInput) (req *request.Request, output *GetBlockPublicAccessConfigurationOutput) {
1602	op := &request.Operation{
1603		Name:       opGetBlockPublicAccessConfiguration,
1604		HTTPMethod: "POST",
1605		HTTPPath:   "/",
1606	}
1607
1608	if input == nil {
1609		input = &GetBlockPublicAccessConfigurationInput{}
1610	}
1611
1612	output = &GetBlockPublicAccessConfigurationOutput{}
1613	req = c.newRequest(op, input, output)
1614	return
1615}
1616
1617// GetBlockPublicAccessConfiguration API operation for Amazon EMR.
1618//
1619// Returns the Amazon EMR block public access configuration for your account
1620// in the current Region. For more information see Configure Block Public Access
1621// for Amazon EMR (https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html)
1622// in the Amazon EMR Management Guide.
1623//
1624// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1625// with awserr.Error's Code and Message methods to get detailed information about
1626// the error.
1627//
1628// See the AWS API reference guide for Amazon EMR's
1629// API operation GetBlockPublicAccessConfiguration for usage and error information.
1630//
1631// Returned Error Types:
1632//   * InternalServerException
1633//   This exception occurs when there is an internal failure in the Amazon EMR
1634//   service.
1635//
1636//   * InvalidRequestException
1637//   This exception occurs when there is something wrong with user input.
1638//
1639// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetBlockPublicAccessConfiguration
1640func (c *EMR) GetBlockPublicAccessConfiguration(input *GetBlockPublicAccessConfigurationInput) (*GetBlockPublicAccessConfigurationOutput, error) {
1641	req, out := c.GetBlockPublicAccessConfigurationRequest(input)
1642	return out, req.Send()
1643}
1644
1645// GetBlockPublicAccessConfigurationWithContext is the same as GetBlockPublicAccessConfiguration with the addition of
1646// the ability to pass a context and additional request options.
1647//
1648// See GetBlockPublicAccessConfiguration for details on how to use this API operation.
1649//
1650// The context must be non-nil and will be used for request cancellation. If
1651// the context is nil a panic will occur. In the future the SDK may create
1652// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1653// for more information on using Contexts.
1654func (c *EMR) GetBlockPublicAccessConfigurationWithContext(ctx aws.Context, input *GetBlockPublicAccessConfigurationInput, opts ...request.Option) (*GetBlockPublicAccessConfigurationOutput, error) {
1655	req, out := c.GetBlockPublicAccessConfigurationRequest(input)
1656	req.SetContext(ctx)
1657	req.ApplyOptions(opts...)
1658	return out, req.Send()
1659}
1660
1661const opGetManagedScalingPolicy = "GetManagedScalingPolicy"
1662
1663// GetManagedScalingPolicyRequest generates a "aws/request.Request" representing the
1664// client's request for the GetManagedScalingPolicy operation. The "output" return
1665// value will be populated with the request's response once the request completes
1666// successfully.
1667//
1668// Use "Send" method on the returned Request to send the API call to the service.
1669// the "output" return value is not valid until after Send returns without error.
1670//
1671// See GetManagedScalingPolicy for more information on using the GetManagedScalingPolicy
1672// API call, and error handling.
1673//
1674// This method is useful when you want to inject custom logic or configuration
1675// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1676//
1677//
1678//    // Example sending a request using the GetManagedScalingPolicyRequest method.
1679//    req, resp := client.GetManagedScalingPolicyRequest(params)
1680//
1681//    err := req.Send()
1682//    if err == nil { // resp is now filled
1683//        fmt.Println(resp)
1684//    }
1685//
1686// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicy
1687func (c *EMR) GetManagedScalingPolicyRequest(input *GetManagedScalingPolicyInput) (req *request.Request, output *GetManagedScalingPolicyOutput) {
1688	op := &request.Operation{
1689		Name:       opGetManagedScalingPolicy,
1690		HTTPMethod: "POST",
1691		HTTPPath:   "/",
1692	}
1693
1694	if input == nil {
1695		input = &GetManagedScalingPolicyInput{}
1696	}
1697
1698	output = &GetManagedScalingPolicyOutput{}
1699	req = c.newRequest(op, input, output)
1700	return
1701}
1702
1703// GetManagedScalingPolicy API operation for Amazon EMR.
1704//
1705// Fetches the attached managed scaling policy for an Amazon EMR cluster.
1706//
1707// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1708// with awserr.Error's Code and Message methods to get detailed information about
1709// the error.
1710//
1711// See the AWS API reference guide for Amazon EMR's
1712// API operation GetManagedScalingPolicy for usage and error information.
1713// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicy
1714func (c *EMR) GetManagedScalingPolicy(input *GetManagedScalingPolicyInput) (*GetManagedScalingPolicyOutput, error) {
1715	req, out := c.GetManagedScalingPolicyRequest(input)
1716	return out, req.Send()
1717}
1718
1719// GetManagedScalingPolicyWithContext is the same as GetManagedScalingPolicy with the addition of
1720// the ability to pass a context and additional request options.
1721//
1722// See GetManagedScalingPolicy for details on how to use this API operation.
1723//
1724// The context must be non-nil and will be used for request cancellation. If
1725// the context is nil a panic will occur. In the future the SDK may create
1726// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1727// for more information on using Contexts.
1728func (c *EMR) GetManagedScalingPolicyWithContext(ctx aws.Context, input *GetManagedScalingPolicyInput, opts ...request.Option) (*GetManagedScalingPolicyOutput, error) {
1729	req, out := c.GetManagedScalingPolicyRequest(input)
1730	req.SetContext(ctx)
1731	req.ApplyOptions(opts...)
1732	return out, req.Send()
1733}
1734
1735const opGetStudioSessionMapping = "GetStudioSessionMapping"
1736
1737// GetStudioSessionMappingRequest generates a "aws/request.Request" representing the
1738// client's request for the GetStudioSessionMapping operation. The "output" return
1739// value will be populated with the request's response once the request completes
1740// successfully.
1741//
1742// Use "Send" method on the returned Request to send the API call to the service.
1743// the "output" return value is not valid until after Send returns without error.
1744//
1745// See GetStudioSessionMapping for more information on using the GetStudioSessionMapping
1746// API call, and error handling.
1747//
1748// This method is useful when you want to inject custom logic or configuration
1749// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1750//
1751//
1752//    // Example sending a request using the GetStudioSessionMappingRequest method.
1753//    req, resp := client.GetStudioSessionMappingRequest(params)
1754//
1755//    err := req.Send()
1756//    if err == nil { // resp is now filled
1757//        fmt.Println(resp)
1758//    }
1759//
1760// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetStudioSessionMapping
1761func (c *EMR) GetStudioSessionMappingRequest(input *GetStudioSessionMappingInput) (req *request.Request, output *GetStudioSessionMappingOutput) {
1762	op := &request.Operation{
1763		Name:       opGetStudioSessionMapping,
1764		HTTPMethod: "POST",
1765		HTTPPath:   "/",
1766	}
1767
1768	if input == nil {
1769		input = &GetStudioSessionMappingInput{}
1770	}
1771
1772	output = &GetStudioSessionMappingOutput{}
1773	req = c.newRequest(op, input, output)
1774	return
1775}
1776
1777// GetStudioSessionMapping API operation for Amazon EMR.
1778//
1779// Fetches mapping details for the specified Amazon EMR Studio and identity
1780// (user or group).
1781//
1782// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1783// with awserr.Error's Code and Message methods to get detailed information about
1784// the error.
1785//
1786// See the AWS API reference guide for Amazon EMR's
1787// API operation GetStudioSessionMapping for usage and error information.
1788//
1789// Returned Error Types:
1790//   * InternalServerError
1791//   Indicates that an error occurred while processing the request and that the
1792//   request was not completed.
1793//
1794//   * InvalidRequestException
1795//   This exception occurs when there is something wrong with user input.
1796//
1797// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetStudioSessionMapping
1798func (c *EMR) GetStudioSessionMapping(input *GetStudioSessionMappingInput) (*GetStudioSessionMappingOutput, error) {
1799	req, out := c.GetStudioSessionMappingRequest(input)
1800	return out, req.Send()
1801}
1802
1803// GetStudioSessionMappingWithContext is the same as GetStudioSessionMapping with the addition of
1804// the ability to pass a context and additional request options.
1805//
1806// See GetStudioSessionMapping for details on how to use this API operation.
1807//
1808// The context must be non-nil and will be used for request cancellation. If
1809// the context is nil a panic will occur. In the future the SDK may create
1810// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1811// for more information on using Contexts.
1812func (c *EMR) GetStudioSessionMappingWithContext(ctx aws.Context, input *GetStudioSessionMappingInput, opts ...request.Option) (*GetStudioSessionMappingOutput, error) {
1813	req, out := c.GetStudioSessionMappingRequest(input)
1814	req.SetContext(ctx)
1815	req.ApplyOptions(opts...)
1816	return out, req.Send()
1817}
1818
1819const opListBootstrapActions = "ListBootstrapActions"
1820
1821// ListBootstrapActionsRequest generates a "aws/request.Request" representing the
1822// client's request for the ListBootstrapActions operation. The "output" return
1823// value will be populated with the request's response once the request completes
1824// successfully.
1825//
1826// Use "Send" method on the returned Request to send the API call to the service.
1827// the "output" return value is not valid until after Send returns without error.
1828//
1829// See ListBootstrapActions for more information on using the ListBootstrapActions
1830// API call, and error handling.
1831//
1832// This method is useful when you want to inject custom logic or configuration
1833// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1834//
1835//
1836//    // Example sending a request using the ListBootstrapActionsRequest method.
1837//    req, resp := client.ListBootstrapActionsRequest(params)
1838//
1839//    err := req.Send()
1840//    if err == nil { // resp is now filled
1841//        fmt.Println(resp)
1842//    }
1843//
1844// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActions
1845func (c *EMR) ListBootstrapActionsRequest(input *ListBootstrapActionsInput) (req *request.Request, output *ListBootstrapActionsOutput) {
1846	op := &request.Operation{
1847		Name:       opListBootstrapActions,
1848		HTTPMethod: "POST",
1849		HTTPPath:   "/",
1850		Paginator: &request.Paginator{
1851			InputTokens:     []string{"Marker"},
1852			OutputTokens:    []string{"Marker"},
1853			LimitToken:      "",
1854			TruncationToken: "",
1855		},
1856	}
1857
1858	if input == nil {
1859		input = &ListBootstrapActionsInput{}
1860	}
1861
1862	output = &ListBootstrapActionsOutput{}
1863	req = c.newRequest(op, input, output)
1864	return
1865}
1866
1867// ListBootstrapActions API operation for Amazon EMR.
1868//
1869// Provides information about the bootstrap actions associated with a cluster.
1870//
1871// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1872// with awserr.Error's Code and Message methods to get detailed information about
1873// the error.
1874//
1875// See the AWS API reference guide for Amazon EMR's
1876// API operation ListBootstrapActions for usage and error information.
1877//
1878// Returned Error Types:
1879//   * InternalServerException
1880//   This exception occurs when there is an internal failure in the Amazon EMR
1881//   service.
1882//
1883//   * InvalidRequestException
1884//   This exception occurs when there is something wrong with user input.
1885//
1886// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActions
1887func (c *EMR) ListBootstrapActions(input *ListBootstrapActionsInput) (*ListBootstrapActionsOutput, error) {
1888	req, out := c.ListBootstrapActionsRequest(input)
1889	return out, req.Send()
1890}
1891
1892// ListBootstrapActionsWithContext is the same as ListBootstrapActions with the addition of
1893// the ability to pass a context and additional request options.
1894//
1895// See ListBootstrapActions for details on how to use this API operation.
1896//
1897// The context must be non-nil and will be used for request cancellation. If
1898// the context is nil a panic will occur. In the future the SDK may create
1899// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1900// for more information on using Contexts.
1901func (c *EMR) ListBootstrapActionsWithContext(ctx aws.Context, input *ListBootstrapActionsInput, opts ...request.Option) (*ListBootstrapActionsOutput, error) {
1902	req, out := c.ListBootstrapActionsRequest(input)
1903	req.SetContext(ctx)
1904	req.ApplyOptions(opts...)
1905	return out, req.Send()
1906}
1907
1908// ListBootstrapActionsPages iterates over the pages of a ListBootstrapActions operation,
1909// calling the "fn" function with the response data for each page. To stop
1910// iterating, return false from the fn function.
1911//
1912// See ListBootstrapActions method for more information on how to use this operation.
1913//
1914// Note: This operation can generate multiple requests to a service.
1915//
1916//    // Example iterating over at most 3 pages of a ListBootstrapActions operation.
1917//    pageNum := 0
1918//    err := client.ListBootstrapActionsPages(params,
1919//        func(page *emr.ListBootstrapActionsOutput, lastPage bool) bool {
1920//            pageNum++
1921//            fmt.Println(page)
1922//            return pageNum <= 3
1923//        })
1924//
1925func (c *EMR) ListBootstrapActionsPages(input *ListBootstrapActionsInput, fn func(*ListBootstrapActionsOutput, bool) bool) error {
1926	return c.ListBootstrapActionsPagesWithContext(aws.BackgroundContext(), input, fn)
1927}
1928
1929// ListBootstrapActionsPagesWithContext same as ListBootstrapActionsPages except
1930// it takes a Context and allows setting request options on the pages.
1931//
1932// The context must be non-nil and will be used for request cancellation. If
1933// the context is nil a panic will occur. In the future the SDK may create
1934// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1935// for more information on using Contexts.
1936func (c *EMR) ListBootstrapActionsPagesWithContext(ctx aws.Context, input *ListBootstrapActionsInput, fn func(*ListBootstrapActionsOutput, bool) bool, opts ...request.Option) error {
1937	p := request.Pagination{
1938		NewRequest: func() (*request.Request, error) {
1939			var inCpy *ListBootstrapActionsInput
1940			if input != nil {
1941				tmp := *input
1942				inCpy = &tmp
1943			}
1944			req, _ := c.ListBootstrapActionsRequest(inCpy)
1945			req.SetContext(ctx)
1946			req.ApplyOptions(opts...)
1947			return req, nil
1948		},
1949	}
1950
1951	for p.Next() {
1952		if !fn(p.Page().(*ListBootstrapActionsOutput), !p.HasNextPage()) {
1953			break
1954		}
1955	}
1956
1957	return p.Err()
1958}
1959
1960const opListClusters = "ListClusters"
1961
1962// ListClustersRequest generates a "aws/request.Request" representing the
1963// client's request for the ListClusters operation. The "output" return
1964// value will be populated with the request's response once the request completes
1965// successfully.
1966//
1967// Use "Send" method on the returned Request to send the API call to the service.
1968// the "output" return value is not valid until after Send returns without error.
1969//
1970// See ListClusters for more information on using the ListClusters
1971// API call, and error handling.
1972//
1973// This method is useful when you want to inject custom logic or configuration
1974// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1975//
1976//
1977//    // Example sending a request using the ListClustersRequest method.
1978//    req, resp := client.ListClustersRequest(params)
1979//
1980//    err := req.Send()
1981//    if err == nil { // resp is now filled
1982//        fmt.Println(resp)
1983//    }
1984//
1985// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClusters
1986func (c *EMR) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
1987	op := &request.Operation{
1988		Name:       opListClusters,
1989		HTTPMethod: "POST",
1990		HTTPPath:   "/",
1991		Paginator: &request.Paginator{
1992			InputTokens:     []string{"Marker"},
1993			OutputTokens:    []string{"Marker"},
1994			LimitToken:      "",
1995			TruncationToken: "",
1996		},
1997	}
1998
1999	if input == nil {
2000		input = &ListClustersInput{}
2001	}
2002
2003	output = &ListClustersOutput{}
2004	req = c.newRequest(op, input, output)
2005	return
2006}
2007
2008// ListClusters API operation for Amazon EMR.
2009//
2010// Provides the status of all clusters visible to this account. Allows you to
2011// filter the list of clusters based on certain criteria; for example, filtering
2012// by cluster creation date and time or by status. This call returns a maximum
2013// of 50 clusters in unsorted order per call, but returns a marker to track
2014// the paging of the cluster list across multiple ListClusters calls.
2015//
2016// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2017// with awserr.Error's Code and Message methods to get detailed information about
2018// the error.
2019//
2020// See the AWS API reference guide for Amazon EMR's
2021// API operation ListClusters for usage and error information.
2022//
2023// Returned Error Types:
2024//   * InternalServerException
2025//   This exception occurs when there is an internal failure in the Amazon EMR
2026//   service.
2027//
2028//   * InvalidRequestException
2029//   This exception occurs when there is something wrong with user input.
2030//
2031// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClusters
2032func (c *EMR) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
2033	req, out := c.ListClustersRequest(input)
2034	return out, req.Send()
2035}
2036
2037// ListClustersWithContext is the same as ListClusters with the addition of
2038// the ability to pass a context and additional request options.
2039//
2040// See ListClusters for details on how to use this API operation.
2041//
2042// The context must be non-nil and will be used for request cancellation. If
2043// the context is nil a panic will occur. In the future the SDK may create
2044// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2045// for more information on using Contexts.
2046func (c *EMR) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
2047	req, out := c.ListClustersRequest(input)
2048	req.SetContext(ctx)
2049	req.ApplyOptions(opts...)
2050	return out, req.Send()
2051}
2052
2053// ListClustersPages iterates over the pages of a ListClusters operation,
2054// calling the "fn" function with the response data for each page. To stop
2055// iterating, return false from the fn function.
2056//
2057// See ListClusters method for more information on how to use this operation.
2058//
2059// Note: This operation can generate multiple requests to a service.
2060//
2061//    // Example iterating over at most 3 pages of a ListClusters operation.
2062//    pageNum := 0
2063//    err := client.ListClustersPages(params,
2064//        func(page *emr.ListClustersOutput, lastPage bool) bool {
2065//            pageNum++
2066//            fmt.Println(page)
2067//            return pageNum <= 3
2068//        })
2069//
2070func (c *EMR) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
2071	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
2072}
2073
2074// ListClustersPagesWithContext same as ListClustersPages except
2075// it takes a Context and allows setting request options on the pages.
2076//
2077// The context must be non-nil and will be used for request cancellation. If
2078// the context is nil a panic will occur. In the future the SDK may create
2079// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2080// for more information on using Contexts.
2081func (c *EMR) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
2082	p := request.Pagination{
2083		NewRequest: func() (*request.Request, error) {
2084			var inCpy *ListClustersInput
2085			if input != nil {
2086				tmp := *input
2087				inCpy = &tmp
2088			}
2089			req, _ := c.ListClustersRequest(inCpy)
2090			req.SetContext(ctx)
2091			req.ApplyOptions(opts...)
2092			return req, nil
2093		},
2094	}
2095
2096	for p.Next() {
2097		if !fn(p.Page().(*ListClustersOutput), !p.HasNextPage()) {
2098			break
2099		}
2100	}
2101
2102	return p.Err()
2103}
2104
2105const opListInstanceFleets = "ListInstanceFleets"
2106
2107// ListInstanceFleetsRequest generates a "aws/request.Request" representing the
2108// client's request for the ListInstanceFleets operation. The "output" return
2109// value will be populated with the request's response once the request completes
2110// successfully.
2111//
2112// Use "Send" method on the returned Request to send the API call to the service.
2113// the "output" return value is not valid until after Send returns without error.
2114//
2115// See ListInstanceFleets for more information on using the ListInstanceFleets
2116// API call, and error handling.
2117//
2118// This method is useful when you want to inject custom logic or configuration
2119// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2120//
2121//
2122//    // Example sending a request using the ListInstanceFleetsRequest method.
2123//    req, resp := client.ListInstanceFleetsRequest(params)
2124//
2125//    err := req.Send()
2126//    if err == nil { // resp is now filled
2127//        fmt.Println(resp)
2128//    }
2129//
2130// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleets
2131func (c *EMR) ListInstanceFleetsRequest(input *ListInstanceFleetsInput) (req *request.Request, output *ListInstanceFleetsOutput) {
2132	op := &request.Operation{
2133		Name:       opListInstanceFleets,
2134		HTTPMethod: "POST",
2135		HTTPPath:   "/",
2136		Paginator: &request.Paginator{
2137			InputTokens:     []string{"Marker"},
2138			OutputTokens:    []string{"Marker"},
2139			LimitToken:      "",
2140			TruncationToken: "",
2141		},
2142	}
2143
2144	if input == nil {
2145		input = &ListInstanceFleetsInput{}
2146	}
2147
2148	output = &ListInstanceFleetsOutput{}
2149	req = c.newRequest(op, input, output)
2150	return
2151}
2152
2153// ListInstanceFleets API operation for Amazon EMR.
2154//
2155// Lists all available details about the instance fleets in a cluster.
2156//
2157// The instance fleet configuration is available only in Amazon EMR versions
2158// 4.8.0 and later, excluding 5.0.x versions.
2159//
2160// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2161// with awserr.Error's Code and Message methods to get detailed information about
2162// the error.
2163//
2164// See the AWS API reference guide for Amazon EMR's
2165// API operation ListInstanceFleets for usage and error information.
2166//
2167// Returned Error Types:
2168//   * InternalServerException
2169//   This exception occurs when there is an internal failure in the Amazon EMR
2170//   service.
2171//
2172//   * InvalidRequestException
2173//   This exception occurs when there is something wrong with user input.
2174//
2175// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleets
2176func (c *EMR) ListInstanceFleets(input *ListInstanceFleetsInput) (*ListInstanceFleetsOutput, error) {
2177	req, out := c.ListInstanceFleetsRequest(input)
2178	return out, req.Send()
2179}
2180
2181// ListInstanceFleetsWithContext is the same as ListInstanceFleets with the addition of
2182// the ability to pass a context and additional request options.
2183//
2184// See ListInstanceFleets for details on how to use this API operation.
2185//
2186// The context must be non-nil and will be used for request cancellation. If
2187// the context is nil a panic will occur. In the future the SDK may create
2188// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2189// for more information on using Contexts.
2190func (c *EMR) ListInstanceFleetsWithContext(ctx aws.Context, input *ListInstanceFleetsInput, opts ...request.Option) (*ListInstanceFleetsOutput, error) {
2191	req, out := c.ListInstanceFleetsRequest(input)
2192	req.SetContext(ctx)
2193	req.ApplyOptions(opts...)
2194	return out, req.Send()
2195}
2196
2197// ListInstanceFleetsPages iterates over the pages of a ListInstanceFleets operation,
2198// calling the "fn" function with the response data for each page. To stop
2199// iterating, return false from the fn function.
2200//
2201// See ListInstanceFleets method for more information on how to use this operation.
2202//
2203// Note: This operation can generate multiple requests to a service.
2204//
2205//    // Example iterating over at most 3 pages of a ListInstanceFleets operation.
2206//    pageNum := 0
2207//    err := client.ListInstanceFleetsPages(params,
2208//        func(page *emr.ListInstanceFleetsOutput, lastPage bool) bool {
2209//            pageNum++
2210//            fmt.Println(page)
2211//            return pageNum <= 3
2212//        })
2213//
2214func (c *EMR) ListInstanceFleetsPages(input *ListInstanceFleetsInput, fn func(*ListInstanceFleetsOutput, bool) bool) error {
2215	return c.ListInstanceFleetsPagesWithContext(aws.BackgroundContext(), input, fn)
2216}
2217
2218// ListInstanceFleetsPagesWithContext same as ListInstanceFleetsPages except
2219// it takes a Context and allows setting request options on the pages.
2220//
2221// The context must be non-nil and will be used for request cancellation. If
2222// the context is nil a panic will occur. In the future the SDK may create
2223// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2224// for more information on using Contexts.
2225func (c *EMR) ListInstanceFleetsPagesWithContext(ctx aws.Context, input *ListInstanceFleetsInput, fn func(*ListInstanceFleetsOutput, bool) bool, opts ...request.Option) error {
2226	p := request.Pagination{
2227		NewRequest: func() (*request.Request, error) {
2228			var inCpy *ListInstanceFleetsInput
2229			if input != nil {
2230				tmp := *input
2231				inCpy = &tmp
2232			}
2233			req, _ := c.ListInstanceFleetsRequest(inCpy)
2234			req.SetContext(ctx)
2235			req.ApplyOptions(opts...)
2236			return req, nil
2237		},
2238	}
2239
2240	for p.Next() {
2241		if !fn(p.Page().(*ListInstanceFleetsOutput), !p.HasNextPage()) {
2242			break
2243		}
2244	}
2245
2246	return p.Err()
2247}
2248
2249const opListInstanceGroups = "ListInstanceGroups"
2250
2251// ListInstanceGroupsRequest generates a "aws/request.Request" representing the
2252// client's request for the ListInstanceGroups operation. The "output" return
2253// value will be populated with the request's response once the request completes
2254// successfully.
2255//
2256// Use "Send" method on the returned Request to send the API call to the service.
2257// the "output" return value is not valid until after Send returns without error.
2258//
2259// See ListInstanceGroups for more information on using the ListInstanceGroups
2260// API call, and error handling.
2261//
2262// This method is useful when you want to inject custom logic or configuration
2263// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2264//
2265//
2266//    // Example sending a request using the ListInstanceGroupsRequest method.
2267//    req, resp := client.ListInstanceGroupsRequest(params)
2268//
2269//    err := req.Send()
2270//    if err == nil { // resp is now filled
2271//        fmt.Println(resp)
2272//    }
2273//
2274// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroups
2275func (c *EMR) ListInstanceGroupsRequest(input *ListInstanceGroupsInput) (req *request.Request, output *ListInstanceGroupsOutput) {
2276	op := &request.Operation{
2277		Name:       opListInstanceGroups,
2278		HTTPMethod: "POST",
2279		HTTPPath:   "/",
2280		Paginator: &request.Paginator{
2281			InputTokens:     []string{"Marker"},
2282			OutputTokens:    []string{"Marker"},
2283			LimitToken:      "",
2284			TruncationToken: "",
2285		},
2286	}
2287
2288	if input == nil {
2289		input = &ListInstanceGroupsInput{}
2290	}
2291
2292	output = &ListInstanceGroupsOutput{}
2293	req = c.newRequest(op, input, output)
2294	return
2295}
2296
2297// ListInstanceGroups API operation for Amazon EMR.
2298//
2299// Provides all available details about the instance groups in a cluster.
2300//
2301// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2302// with awserr.Error's Code and Message methods to get detailed information about
2303// the error.
2304//
2305// See the AWS API reference guide for Amazon EMR's
2306// API operation ListInstanceGroups for usage and error information.
2307//
2308// Returned Error Types:
2309//   * InternalServerException
2310//   This exception occurs when there is an internal failure in the Amazon EMR
2311//   service.
2312//
2313//   * InvalidRequestException
2314//   This exception occurs when there is something wrong with user input.
2315//
2316// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroups
2317func (c *EMR) ListInstanceGroups(input *ListInstanceGroupsInput) (*ListInstanceGroupsOutput, error) {
2318	req, out := c.ListInstanceGroupsRequest(input)
2319	return out, req.Send()
2320}
2321
2322// ListInstanceGroupsWithContext is the same as ListInstanceGroups with the addition of
2323// the ability to pass a context and additional request options.
2324//
2325// See ListInstanceGroups for details on how to use this API operation.
2326//
2327// The context must be non-nil and will be used for request cancellation. If
2328// the context is nil a panic will occur. In the future the SDK may create
2329// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2330// for more information on using Contexts.
2331func (c *EMR) ListInstanceGroupsWithContext(ctx aws.Context, input *ListInstanceGroupsInput, opts ...request.Option) (*ListInstanceGroupsOutput, error) {
2332	req, out := c.ListInstanceGroupsRequest(input)
2333	req.SetContext(ctx)
2334	req.ApplyOptions(opts...)
2335	return out, req.Send()
2336}
2337
2338// ListInstanceGroupsPages iterates over the pages of a ListInstanceGroups operation,
2339// calling the "fn" function with the response data for each page. To stop
2340// iterating, return false from the fn function.
2341//
2342// See ListInstanceGroups method for more information on how to use this operation.
2343//
2344// Note: This operation can generate multiple requests to a service.
2345//
2346//    // Example iterating over at most 3 pages of a ListInstanceGroups operation.
2347//    pageNum := 0
2348//    err := client.ListInstanceGroupsPages(params,
2349//        func(page *emr.ListInstanceGroupsOutput, lastPage bool) bool {
2350//            pageNum++
2351//            fmt.Println(page)
2352//            return pageNum <= 3
2353//        })
2354//
2355func (c *EMR) ListInstanceGroupsPages(input *ListInstanceGroupsInput, fn func(*ListInstanceGroupsOutput, bool) bool) error {
2356	return c.ListInstanceGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
2357}
2358
2359// ListInstanceGroupsPagesWithContext same as ListInstanceGroupsPages except
2360// it takes a Context and allows setting request options on the pages.
2361//
2362// The context must be non-nil and will be used for request cancellation. If
2363// the context is nil a panic will occur. In the future the SDK may create
2364// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2365// for more information on using Contexts.
2366func (c *EMR) ListInstanceGroupsPagesWithContext(ctx aws.Context, input *ListInstanceGroupsInput, fn func(*ListInstanceGroupsOutput, bool) bool, opts ...request.Option) error {
2367	p := request.Pagination{
2368		NewRequest: func() (*request.Request, error) {
2369			var inCpy *ListInstanceGroupsInput
2370			if input != nil {
2371				tmp := *input
2372				inCpy = &tmp
2373			}
2374			req, _ := c.ListInstanceGroupsRequest(inCpy)
2375			req.SetContext(ctx)
2376			req.ApplyOptions(opts...)
2377			return req, nil
2378		},
2379	}
2380
2381	for p.Next() {
2382		if !fn(p.Page().(*ListInstanceGroupsOutput), !p.HasNextPage()) {
2383			break
2384		}
2385	}
2386
2387	return p.Err()
2388}
2389
2390const opListInstances = "ListInstances"
2391
2392// ListInstancesRequest generates a "aws/request.Request" representing the
2393// client's request for the ListInstances operation. The "output" return
2394// value will be populated with the request's response once the request completes
2395// successfully.
2396//
2397// Use "Send" method on the returned Request to send the API call to the service.
2398// the "output" return value is not valid until after Send returns without error.
2399//
2400// See ListInstances for more information on using the ListInstances
2401// API call, and error handling.
2402//
2403// This method is useful when you want to inject custom logic or configuration
2404// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2405//
2406//
2407//    // Example sending a request using the ListInstancesRequest method.
2408//    req, resp := client.ListInstancesRequest(params)
2409//
2410//    err := req.Send()
2411//    if err == nil { // resp is now filled
2412//        fmt.Println(resp)
2413//    }
2414//
2415// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstances
2416func (c *EMR) ListInstancesRequest(input *ListInstancesInput) (req *request.Request, output *ListInstancesOutput) {
2417	op := &request.Operation{
2418		Name:       opListInstances,
2419		HTTPMethod: "POST",
2420		HTTPPath:   "/",
2421		Paginator: &request.Paginator{
2422			InputTokens:     []string{"Marker"},
2423			OutputTokens:    []string{"Marker"},
2424			LimitToken:      "",
2425			TruncationToken: "",
2426		},
2427	}
2428
2429	if input == nil {
2430		input = &ListInstancesInput{}
2431	}
2432
2433	output = &ListInstancesOutput{}
2434	req = c.newRequest(op, input, output)
2435	return
2436}
2437
2438// ListInstances API operation for Amazon EMR.
2439//
2440// Provides information for all active EC2 instances and EC2 instances terminated
2441// in the last 30 days, up to a maximum of 2,000. EC2 instances in any of the
2442// following states are considered active: AWAITING_FULFILLMENT, PROVISIONING,
2443// BOOTSTRAPPING, RUNNING.
2444//
2445// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2446// with awserr.Error's Code and Message methods to get detailed information about
2447// the error.
2448//
2449// See the AWS API reference guide for Amazon EMR's
2450// API operation ListInstances for usage and error information.
2451//
2452// Returned Error Types:
2453//   * InternalServerException
2454//   This exception occurs when there is an internal failure in the Amazon EMR
2455//   service.
2456//
2457//   * InvalidRequestException
2458//   This exception occurs when there is something wrong with user input.
2459//
2460// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstances
2461func (c *EMR) ListInstances(input *ListInstancesInput) (*ListInstancesOutput, error) {
2462	req, out := c.ListInstancesRequest(input)
2463	return out, req.Send()
2464}
2465
2466// ListInstancesWithContext is the same as ListInstances with the addition of
2467// the ability to pass a context and additional request options.
2468//
2469// See ListInstances for details on how to use this API operation.
2470//
2471// The context must be non-nil and will be used for request cancellation. If
2472// the context is nil a panic will occur. In the future the SDK may create
2473// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2474// for more information on using Contexts.
2475func (c *EMR) ListInstancesWithContext(ctx aws.Context, input *ListInstancesInput, opts ...request.Option) (*ListInstancesOutput, error) {
2476	req, out := c.ListInstancesRequest(input)
2477	req.SetContext(ctx)
2478	req.ApplyOptions(opts...)
2479	return out, req.Send()
2480}
2481
2482// ListInstancesPages iterates over the pages of a ListInstances operation,
2483// calling the "fn" function with the response data for each page. To stop
2484// iterating, return false from the fn function.
2485//
2486// See ListInstances method for more information on how to use this operation.
2487//
2488// Note: This operation can generate multiple requests to a service.
2489//
2490//    // Example iterating over at most 3 pages of a ListInstances operation.
2491//    pageNum := 0
2492//    err := client.ListInstancesPages(params,
2493//        func(page *emr.ListInstancesOutput, lastPage bool) bool {
2494//            pageNum++
2495//            fmt.Println(page)
2496//            return pageNum <= 3
2497//        })
2498//
2499func (c *EMR) ListInstancesPages(input *ListInstancesInput, fn func(*ListInstancesOutput, bool) bool) error {
2500	return c.ListInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
2501}
2502
2503// ListInstancesPagesWithContext same as ListInstancesPages except
2504// it takes a Context and allows setting request options on the pages.
2505//
2506// The context must be non-nil and will be used for request cancellation. If
2507// the context is nil a panic will occur. In the future the SDK may create
2508// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2509// for more information on using Contexts.
2510func (c *EMR) ListInstancesPagesWithContext(ctx aws.Context, input *ListInstancesInput, fn func(*ListInstancesOutput, bool) bool, opts ...request.Option) error {
2511	p := request.Pagination{
2512		NewRequest: func() (*request.Request, error) {
2513			var inCpy *ListInstancesInput
2514			if input != nil {
2515				tmp := *input
2516				inCpy = &tmp
2517			}
2518			req, _ := c.ListInstancesRequest(inCpy)
2519			req.SetContext(ctx)
2520			req.ApplyOptions(opts...)
2521			return req, nil
2522		},
2523	}
2524
2525	for p.Next() {
2526		if !fn(p.Page().(*ListInstancesOutput), !p.HasNextPage()) {
2527			break
2528		}
2529	}
2530
2531	return p.Err()
2532}
2533
2534const opListNotebookExecutions = "ListNotebookExecutions"
2535
2536// ListNotebookExecutionsRequest generates a "aws/request.Request" representing the
2537// client's request for the ListNotebookExecutions operation. The "output" return
2538// value will be populated with the request's response once the request completes
2539// successfully.
2540//
2541// Use "Send" method on the returned Request to send the API call to the service.
2542// the "output" return value is not valid until after Send returns without error.
2543//
2544// See ListNotebookExecutions for more information on using the ListNotebookExecutions
2545// API call, and error handling.
2546//
2547// This method is useful when you want to inject custom logic or configuration
2548// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2549//
2550//
2551//    // Example sending a request using the ListNotebookExecutionsRequest method.
2552//    req, resp := client.ListNotebookExecutionsRequest(params)
2553//
2554//    err := req.Send()
2555//    if err == nil { // resp is now filled
2556//        fmt.Println(resp)
2557//    }
2558//
2559// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListNotebookExecutions
2560func (c *EMR) ListNotebookExecutionsRequest(input *ListNotebookExecutionsInput) (req *request.Request, output *ListNotebookExecutionsOutput) {
2561	op := &request.Operation{
2562		Name:       opListNotebookExecutions,
2563		HTTPMethod: "POST",
2564		HTTPPath:   "/",
2565		Paginator: &request.Paginator{
2566			InputTokens:     []string{"Marker"},
2567			OutputTokens:    []string{"Marker"},
2568			LimitToken:      "",
2569			TruncationToken: "",
2570		},
2571	}
2572
2573	if input == nil {
2574		input = &ListNotebookExecutionsInput{}
2575	}
2576
2577	output = &ListNotebookExecutionsOutput{}
2578	req = c.newRequest(op, input, output)
2579	return
2580}
2581
2582// ListNotebookExecutions API operation for Amazon EMR.
2583//
2584// Provides summaries of all notebook executions. You can filter the list based
2585// on multiple criteria such as status, time range, and editor id. Returns a
2586// maximum of 50 notebook executions and a marker to track the paging of a longer
2587// notebook execution list across multiple ListNotebookExecution calls.
2588//
2589// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2590// with awserr.Error's Code and Message methods to get detailed information about
2591// the error.
2592//
2593// See the AWS API reference guide for Amazon EMR's
2594// API operation ListNotebookExecutions for usage and error information.
2595//
2596// Returned Error Types:
2597//   * InternalServerError
2598//   Indicates that an error occurred while processing the request and that the
2599//   request was not completed.
2600//
2601//   * InvalidRequestException
2602//   This exception occurs when there is something wrong with user input.
2603//
2604// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListNotebookExecutions
2605func (c *EMR) ListNotebookExecutions(input *ListNotebookExecutionsInput) (*ListNotebookExecutionsOutput, error) {
2606	req, out := c.ListNotebookExecutionsRequest(input)
2607	return out, req.Send()
2608}
2609
2610// ListNotebookExecutionsWithContext is the same as ListNotebookExecutions with the addition of
2611// the ability to pass a context and additional request options.
2612//
2613// See ListNotebookExecutions for details on how to use this API operation.
2614//
2615// The context must be non-nil and will be used for request cancellation. If
2616// the context is nil a panic will occur. In the future the SDK may create
2617// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2618// for more information on using Contexts.
2619func (c *EMR) ListNotebookExecutionsWithContext(ctx aws.Context, input *ListNotebookExecutionsInput, opts ...request.Option) (*ListNotebookExecutionsOutput, error) {
2620	req, out := c.ListNotebookExecutionsRequest(input)
2621	req.SetContext(ctx)
2622	req.ApplyOptions(opts...)
2623	return out, req.Send()
2624}
2625
2626// ListNotebookExecutionsPages iterates over the pages of a ListNotebookExecutions operation,
2627// calling the "fn" function with the response data for each page. To stop
2628// iterating, return false from the fn function.
2629//
2630// See ListNotebookExecutions method for more information on how to use this operation.
2631//
2632// Note: This operation can generate multiple requests to a service.
2633//
2634//    // Example iterating over at most 3 pages of a ListNotebookExecutions operation.
2635//    pageNum := 0
2636//    err := client.ListNotebookExecutionsPages(params,
2637//        func(page *emr.ListNotebookExecutionsOutput, lastPage bool) bool {
2638//            pageNum++
2639//            fmt.Println(page)
2640//            return pageNum <= 3
2641//        })
2642//
2643func (c *EMR) ListNotebookExecutionsPages(input *ListNotebookExecutionsInput, fn func(*ListNotebookExecutionsOutput, bool) bool) error {
2644	return c.ListNotebookExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
2645}
2646
2647// ListNotebookExecutionsPagesWithContext same as ListNotebookExecutionsPages except
2648// it takes a Context and allows setting request options on the pages.
2649//
2650// The context must be non-nil and will be used for request cancellation. If
2651// the context is nil a panic will occur. In the future the SDK may create
2652// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2653// for more information on using Contexts.
2654func (c *EMR) ListNotebookExecutionsPagesWithContext(ctx aws.Context, input *ListNotebookExecutionsInput, fn func(*ListNotebookExecutionsOutput, bool) bool, opts ...request.Option) error {
2655	p := request.Pagination{
2656		NewRequest: func() (*request.Request, error) {
2657			var inCpy *ListNotebookExecutionsInput
2658			if input != nil {
2659				tmp := *input
2660				inCpy = &tmp
2661			}
2662			req, _ := c.ListNotebookExecutionsRequest(inCpy)
2663			req.SetContext(ctx)
2664			req.ApplyOptions(opts...)
2665			return req, nil
2666		},
2667	}
2668
2669	for p.Next() {
2670		if !fn(p.Page().(*ListNotebookExecutionsOutput), !p.HasNextPage()) {
2671			break
2672		}
2673	}
2674
2675	return p.Err()
2676}
2677
2678const opListReleaseLabels = "ListReleaseLabels"
2679
2680// ListReleaseLabelsRequest generates a "aws/request.Request" representing the
2681// client's request for the ListReleaseLabels operation. The "output" return
2682// value will be populated with the request's response once the request completes
2683// successfully.
2684//
2685// Use "Send" method on the returned Request to send the API call to the service.
2686// the "output" return value is not valid until after Send returns without error.
2687//
2688// See ListReleaseLabels for more information on using the ListReleaseLabels
2689// API call, and error handling.
2690//
2691// This method is useful when you want to inject custom logic or configuration
2692// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2693//
2694//
2695//    // Example sending a request using the ListReleaseLabelsRequest method.
2696//    req, resp := client.ListReleaseLabelsRequest(params)
2697//
2698//    err := req.Send()
2699//    if err == nil { // resp is now filled
2700//        fmt.Println(resp)
2701//    }
2702//
2703// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListReleaseLabels
2704func (c *EMR) ListReleaseLabelsRequest(input *ListReleaseLabelsInput) (req *request.Request, output *ListReleaseLabelsOutput) {
2705	op := &request.Operation{
2706		Name:       opListReleaseLabels,
2707		HTTPMethod: "POST",
2708		HTTPPath:   "/",
2709		Paginator: &request.Paginator{
2710			InputTokens:     []string{"NextToken"},
2711			OutputTokens:    []string{"NextToken"},
2712			LimitToken:      "MaxResults",
2713			TruncationToken: "",
2714		},
2715	}
2716
2717	if input == nil {
2718		input = &ListReleaseLabelsInput{}
2719	}
2720
2721	output = &ListReleaseLabelsOutput{}
2722	req = c.newRequest(op, input, output)
2723	return
2724}
2725
2726// ListReleaseLabels API operation for Amazon EMR.
2727//
2728// Retrieves release labels of EMR services in the region where the API is called.
2729//
2730// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2731// with awserr.Error's Code and Message methods to get detailed information about
2732// the error.
2733//
2734// See the AWS API reference guide for Amazon EMR's
2735// API operation ListReleaseLabels for usage and error information.
2736//
2737// Returned Error Types:
2738//   * InternalServerException
2739//   This exception occurs when there is an internal failure in the Amazon EMR
2740//   service.
2741//
2742//   * InvalidRequestException
2743//   This exception occurs when there is something wrong with user input.
2744//
2745// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListReleaseLabels
2746func (c *EMR) ListReleaseLabels(input *ListReleaseLabelsInput) (*ListReleaseLabelsOutput, error) {
2747	req, out := c.ListReleaseLabelsRequest(input)
2748	return out, req.Send()
2749}
2750
2751// ListReleaseLabelsWithContext is the same as ListReleaseLabels with the addition of
2752// the ability to pass a context and additional request options.
2753//
2754// See ListReleaseLabels for details on how to use this API operation.
2755//
2756// The context must be non-nil and will be used for request cancellation. If
2757// the context is nil a panic will occur. In the future the SDK may create
2758// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2759// for more information on using Contexts.
2760func (c *EMR) ListReleaseLabelsWithContext(ctx aws.Context, input *ListReleaseLabelsInput, opts ...request.Option) (*ListReleaseLabelsOutput, error) {
2761	req, out := c.ListReleaseLabelsRequest(input)
2762	req.SetContext(ctx)
2763	req.ApplyOptions(opts...)
2764	return out, req.Send()
2765}
2766
2767// ListReleaseLabelsPages iterates over the pages of a ListReleaseLabels operation,
2768// calling the "fn" function with the response data for each page. To stop
2769// iterating, return false from the fn function.
2770//
2771// See ListReleaseLabels method for more information on how to use this operation.
2772//
2773// Note: This operation can generate multiple requests to a service.
2774//
2775//    // Example iterating over at most 3 pages of a ListReleaseLabels operation.
2776//    pageNum := 0
2777//    err := client.ListReleaseLabelsPages(params,
2778//        func(page *emr.ListReleaseLabelsOutput, lastPage bool) bool {
2779//            pageNum++
2780//            fmt.Println(page)
2781//            return pageNum <= 3
2782//        })
2783//
2784func (c *EMR) ListReleaseLabelsPages(input *ListReleaseLabelsInput, fn func(*ListReleaseLabelsOutput, bool) bool) error {
2785	return c.ListReleaseLabelsPagesWithContext(aws.BackgroundContext(), input, fn)
2786}
2787
2788// ListReleaseLabelsPagesWithContext same as ListReleaseLabelsPages except
2789// it takes a Context and allows setting request options on the pages.
2790//
2791// The context must be non-nil and will be used for request cancellation. If
2792// the context is nil a panic will occur. In the future the SDK may create
2793// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2794// for more information on using Contexts.
2795func (c *EMR) ListReleaseLabelsPagesWithContext(ctx aws.Context, input *ListReleaseLabelsInput, fn func(*ListReleaseLabelsOutput, bool) bool, opts ...request.Option) error {
2796	p := request.Pagination{
2797		NewRequest: func() (*request.Request, error) {
2798			var inCpy *ListReleaseLabelsInput
2799			if input != nil {
2800				tmp := *input
2801				inCpy = &tmp
2802			}
2803			req, _ := c.ListReleaseLabelsRequest(inCpy)
2804			req.SetContext(ctx)
2805			req.ApplyOptions(opts...)
2806			return req, nil
2807		},
2808	}
2809
2810	for p.Next() {
2811		if !fn(p.Page().(*ListReleaseLabelsOutput), !p.HasNextPage()) {
2812			break
2813		}
2814	}
2815
2816	return p.Err()
2817}
2818
2819const opListSecurityConfigurations = "ListSecurityConfigurations"
2820
2821// ListSecurityConfigurationsRequest generates a "aws/request.Request" representing the
2822// client's request for the ListSecurityConfigurations operation. The "output" return
2823// value will be populated with the request's response once the request completes
2824// successfully.
2825//
2826// Use "Send" method on the returned Request to send the API call to the service.
2827// the "output" return value is not valid until after Send returns without error.
2828//
2829// See ListSecurityConfigurations for more information on using the ListSecurityConfigurations
2830// API call, and error handling.
2831//
2832// This method is useful when you want to inject custom logic or configuration
2833// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2834//
2835//
2836//    // Example sending a request using the ListSecurityConfigurationsRequest method.
2837//    req, resp := client.ListSecurityConfigurationsRequest(params)
2838//
2839//    err := req.Send()
2840//    if err == nil { // resp is now filled
2841//        fmt.Println(resp)
2842//    }
2843//
2844// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurations
2845func (c *EMR) ListSecurityConfigurationsRequest(input *ListSecurityConfigurationsInput) (req *request.Request, output *ListSecurityConfigurationsOutput) {
2846	op := &request.Operation{
2847		Name:       opListSecurityConfigurations,
2848		HTTPMethod: "POST",
2849		HTTPPath:   "/",
2850		Paginator: &request.Paginator{
2851			InputTokens:     []string{"Marker"},
2852			OutputTokens:    []string{"Marker"},
2853			LimitToken:      "",
2854			TruncationToken: "",
2855		},
2856	}
2857
2858	if input == nil {
2859		input = &ListSecurityConfigurationsInput{}
2860	}
2861
2862	output = &ListSecurityConfigurationsOutput{}
2863	req = c.newRequest(op, input, output)
2864	return
2865}
2866
2867// ListSecurityConfigurations API operation for Amazon EMR.
2868//
2869// Lists all the security configurations visible to this account, providing
2870// their creation dates and times, and their names. This call returns a maximum
2871// of 50 clusters per call, but returns a marker to track the paging of the
2872// cluster list across multiple ListSecurityConfigurations calls.
2873//
2874// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2875// with awserr.Error's Code and Message methods to get detailed information about
2876// the error.
2877//
2878// See the AWS API reference guide for Amazon EMR's
2879// API operation ListSecurityConfigurations for usage and error information.
2880//
2881// Returned Error Types:
2882//   * InternalServerException
2883//   This exception occurs when there is an internal failure in the Amazon EMR
2884//   service.
2885//
2886//   * InvalidRequestException
2887//   This exception occurs when there is something wrong with user input.
2888//
2889// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurations
2890func (c *EMR) ListSecurityConfigurations(input *ListSecurityConfigurationsInput) (*ListSecurityConfigurationsOutput, error) {
2891	req, out := c.ListSecurityConfigurationsRequest(input)
2892	return out, req.Send()
2893}
2894
2895// ListSecurityConfigurationsWithContext is the same as ListSecurityConfigurations with the addition of
2896// the ability to pass a context and additional request options.
2897//
2898// See ListSecurityConfigurations for details on how to use this API operation.
2899//
2900// The context must be non-nil and will be used for request cancellation. If
2901// the context is nil a panic will occur. In the future the SDK may create
2902// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2903// for more information on using Contexts.
2904func (c *EMR) ListSecurityConfigurationsWithContext(ctx aws.Context, input *ListSecurityConfigurationsInput, opts ...request.Option) (*ListSecurityConfigurationsOutput, error) {
2905	req, out := c.ListSecurityConfigurationsRequest(input)
2906	req.SetContext(ctx)
2907	req.ApplyOptions(opts...)
2908	return out, req.Send()
2909}
2910
2911// ListSecurityConfigurationsPages iterates over the pages of a ListSecurityConfigurations operation,
2912// calling the "fn" function with the response data for each page. To stop
2913// iterating, return false from the fn function.
2914//
2915// See ListSecurityConfigurations method for more information on how to use this operation.
2916//
2917// Note: This operation can generate multiple requests to a service.
2918//
2919//    // Example iterating over at most 3 pages of a ListSecurityConfigurations operation.
2920//    pageNum := 0
2921//    err := client.ListSecurityConfigurationsPages(params,
2922//        func(page *emr.ListSecurityConfigurationsOutput, lastPage bool) bool {
2923//            pageNum++
2924//            fmt.Println(page)
2925//            return pageNum <= 3
2926//        })
2927//
2928func (c *EMR) ListSecurityConfigurationsPages(input *ListSecurityConfigurationsInput, fn func(*ListSecurityConfigurationsOutput, bool) bool) error {
2929	return c.ListSecurityConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
2930}
2931
2932// ListSecurityConfigurationsPagesWithContext same as ListSecurityConfigurationsPages except
2933// it takes a Context and allows setting request options on the pages.
2934//
2935// The context must be non-nil and will be used for request cancellation. If
2936// the context is nil a panic will occur. In the future the SDK may create
2937// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2938// for more information on using Contexts.
2939func (c *EMR) ListSecurityConfigurationsPagesWithContext(ctx aws.Context, input *ListSecurityConfigurationsInput, fn func(*ListSecurityConfigurationsOutput, bool) bool, opts ...request.Option) error {
2940	p := request.Pagination{
2941		NewRequest: func() (*request.Request, error) {
2942			var inCpy *ListSecurityConfigurationsInput
2943			if input != nil {
2944				tmp := *input
2945				inCpy = &tmp
2946			}
2947			req, _ := c.ListSecurityConfigurationsRequest(inCpy)
2948			req.SetContext(ctx)
2949			req.ApplyOptions(opts...)
2950			return req, nil
2951		},
2952	}
2953
2954	for p.Next() {
2955		if !fn(p.Page().(*ListSecurityConfigurationsOutput), !p.HasNextPage()) {
2956			break
2957		}
2958	}
2959
2960	return p.Err()
2961}
2962
2963const opListSteps = "ListSteps"
2964
2965// ListStepsRequest generates a "aws/request.Request" representing the
2966// client's request for the ListSteps operation. The "output" return
2967// value will be populated with the request's response once the request completes
2968// successfully.
2969//
2970// Use "Send" method on the returned Request to send the API call to the service.
2971// the "output" return value is not valid until after Send returns without error.
2972//
2973// See ListSteps for more information on using the ListSteps
2974// API call, and error handling.
2975//
2976// This method is useful when you want to inject custom logic or configuration
2977// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2978//
2979//
2980//    // Example sending a request using the ListStepsRequest method.
2981//    req, resp := client.ListStepsRequest(params)
2982//
2983//    err := req.Send()
2984//    if err == nil { // resp is now filled
2985//        fmt.Println(resp)
2986//    }
2987//
2988// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSteps
2989func (c *EMR) ListStepsRequest(input *ListStepsInput) (req *request.Request, output *ListStepsOutput) {
2990	op := &request.Operation{
2991		Name:       opListSteps,
2992		HTTPMethod: "POST",
2993		HTTPPath:   "/",
2994		Paginator: &request.Paginator{
2995			InputTokens:     []string{"Marker"},
2996			OutputTokens:    []string{"Marker"},
2997			LimitToken:      "",
2998			TruncationToken: "",
2999		},
3000	}
3001
3002	if input == nil {
3003		input = &ListStepsInput{}
3004	}
3005
3006	output = &ListStepsOutput{}
3007	req = c.newRequest(op, input, output)
3008	return
3009}
3010
3011// ListSteps API operation for Amazon EMR.
3012//
3013// Provides a list of steps for the cluster in reverse order unless you specify
3014// stepIds with the request or filter by StepStates. You can specify a maximum
3015// of 10 stepIDs. The CLI automatically paginates results to return a list greater
3016// than 50 steps. To return more than 50 steps using the CLI, specify a Marker,
3017// which is a pagination token that indicates the next set of steps to retrieve.
3018//
3019// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3020// with awserr.Error's Code and Message methods to get detailed information about
3021// the error.
3022//
3023// See the AWS API reference guide for Amazon EMR's
3024// API operation ListSteps for usage and error information.
3025//
3026// Returned Error Types:
3027//   * InternalServerException
3028//   This exception occurs when there is an internal failure in the Amazon EMR
3029//   service.
3030//
3031//   * InvalidRequestException
3032//   This exception occurs when there is something wrong with user input.
3033//
3034// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSteps
3035func (c *EMR) ListSteps(input *ListStepsInput) (*ListStepsOutput, error) {
3036	req, out := c.ListStepsRequest(input)
3037	return out, req.Send()
3038}
3039
3040// ListStepsWithContext is the same as ListSteps with the addition of
3041// the ability to pass a context and additional request options.
3042//
3043// See ListSteps for details on how to use this API operation.
3044//
3045// The context must be non-nil and will be used for request cancellation. If
3046// the context is nil a panic will occur. In the future the SDK may create
3047// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3048// for more information on using Contexts.
3049func (c *EMR) ListStepsWithContext(ctx aws.Context, input *ListStepsInput, opts ...request.Option) (*ListStepsOutput, error) {
3050	req, out := c.ListStepsRequest(input)
3051	req.SetContext(ctx)
3052	req.ApplyOptions(opts...)
3053	return out, req.Send()
3054}
3055
3056// ListStepsPages iterates over the pages of a ListSteps operation,
3057// calling the "fn" function with the response data for each page. To stop
3058// iterating, return false from the fn function.
3059//
3060// See ListSteps method for more information on how to use this operation.
3061//
3062// Note: This operation can generate multiple requests to a service.
3063//
3064//    // Example iterating over at most 3 pages of a ListSteps operation.
3065//    pageNum := 0
3066//    err := client.ListStepsPages(params,
3067//        func(page *emr.ListStepsOutput, lastPage bool) bool {
3068//            pageNum++
3069//            fmt.Println(page)
3070//            return pageNum <= 3
3071//        })
3072//
3073func (c *EMR) ListStepsPages(input *ListStepsInput, fn func(*ListStepsOutput, bool) bool) error {
3074	return c.ListStepsPagesWithContext(aws.BackgroundContext(), input, fn)
3075}
3076
3077// ListStepsPagesWithContext same as ListStepsPages except
3078// it takes a Context and allows setting request options on the pages.
3079//
3080// The context must be non-nil and will be used for request cancellation. If
3081// the context is nil a panic will occur. In the future the SDK may create
3082// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3083// for more information on using Contexts.
3084func (c *EMR) ListStepsPagesWithContext(ctx aws.Context, input *ListStepsInput, fn func(*ListStepsOutput, bool) bool, opts ...request.Option) error {
3085	p := request.Pagination{
3086		NewRequest: func() (*request.Request, error) {
3087			var inCpy *ListStepsInput
3088			if input != nil {
3089				tmp := *input
3090				inCpy = &tmp
3091			}
3092			req, _ := c.ListStepsRequest(inCpy)
3093			req.SetContext(ctx)
3094			req.ApplyOptions(opts...)
3095			return req, nil
3096		},
3097	}
3098
3099	for p.Next() {
3100		if !fn(p.Page().(*ListStepsOutput), !p.HasNextPage()) {
3101			break
3102		}
3103	}
3104
3105	return p.Err()
3106}
3107
3108const opListStudioSessionMappings = "ListStudioSessionMappings"
3109
3110// ListStudioSessionMappingsRequest generates a "aws/request.Request" representing the
3111// client's request for the ListStudioSessionMappings operation. The "output" return
3112// value will be populated with the request's response once the request completes
3113// successfully.
3114//
3115// Use "Send" method on the returned Request to send the API call to the service.
3116// the "output" return value is not valid until after Send returns without error.
3117//
3118// See ListStudioSessionMappings for more information on using the ListStudioSessionMappings
3119// API call, and error handling.
3120//
3121// This method is useful when you want to inject custom logic or configuration
3122// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3123//
3124//
3125//    // Example sending a request using the ListStudioSessionMappingsRequest method.
3126//    req, resp := client.ListStudioSessionMappingsRequest(params)
3127//
3128//    err := req.Send()
3129//    if err == nil { // resp is now filled
3130//        fmt.Println(resp)
3131//    }
3132//
3133// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudioSessionMappings
3134func (c *EMR) ListStudioSessionMappingsRequest(input *ListStudioSessionMappingsInput) (req *request.Request, output *ListStudioSessionMappingsOutput) {
3135	op := &request.Operation{
3136		Name:       opListStudioSessionMappings,
3137		HTTPMethod: "POST",
3138		HTTPPath:   "/",
3139		Paginator: &request.Paginator{
3140			InputTokens:     []string{"Marker"},
3141			OutputTokens:    []string{"Marker"},
3142			LimitToken:      "",
3143			TruncationToken: "",
3144		},
3145	}
3146
3147	if input == nil {
3148		input = &ListStudioSessionMappingsInput{}
3149	}
3150
3151	output = &ListStudioSessionMappingsOutput{}
3152	req = c.newRequest(op, input, output)
3153	return
3154}
3155
3156// ListStudioSessionMappings API operation for Amazon EMR.
3157//
3158// Returns a list of all user or group session mappings for the Amazon EMR Studio
3159// specified by StudioId.
3160//
3161// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3162// with awserr.Error's Code and Message methods to get detailed information about
3163// the error.
3164//
3165// See the AWS API reference guide for Amazon EMR's
3166// API operation ListStudioSessionMappings for usage and error information.
3167//
3168// Returned Error Types:
3169//   * InternalServerError
3170//   Indicates that an error occurred while processing the request and that the
3171//   request was not completed.
3172//
3173//   * InvalidRequestException
3174//   This exception occurs when there is something wrong with user input.
3175//
3176// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudioSessionMappings
3177func (c *EMR) ListStudioSessionMappings(input *ListStudioSessionMappingsInput) (*ListStudioSessionMappingsOutput, error) {
3178	req, out := c.ListStudioSessionMappingsRequest(input)
3179	return out, req.Send()
3180}
3181
3182// ListStudioSessionMappingsWithContext is the same as ListStudioSessionMappings with the addition of
3183// the ability to pass a context and additional request options.
3184//
3185// See ListStudioSessionMappings for details on how to use this API operation.
3186//
3187// The context must be non-nil and will be used for request cancellation. If
3188// the context is nil a panic will occur. In the future the SDK may create
3189// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3190// for more information on using Contexts.
3191func (c *EMR) ListStudioSessionMappingsWithContext(ctx aws.Context, input *ListStudioSessionMappingsInput, opts ...request.Option) (*ListStudioSessionMappingsOutput, error) {
3192	req, out := c.ListStudioSessionMappingsRequest(input)
3193	req.SetContext(ctx)
3194	req.ApplyOptions(opts...)
3195	return out, req.Send()
3196}
3197
3198// ListStudioSessionMappingsPages iterates over the pages of a ListStudioSessionMappings operation,
3199// calling the "fn" function with the response data for each page. To stop
3200// iterating, return false from the fn function.
3201//
3202// See ListStudioSessionMappings method for more information on how to use this operation.
3203//
3204// Note: This operation can generate multiple requests to a service.
3205//
3206//    // Example iterating over at most 3 pages of a ListStudioSessionMappings operation.
3207//    pageNum := 0
3208//    err := client.ListStudioSessionMappingsPages(params,
3209//        func(page *emr.ListStudioSessionMappingsOutput, lastPage bool) bool {
3210//            pageNum++
3211//            fmt.Println(page)
3212//            return pageNum <= 3
3213//        })
3214//
3215func (c *EMR) ListStudioSessionMappingsPages(input *ListStudioSessionMappingsInput, fn func(*ListStudioSessionMappingsOutput, bool) bool) error {
3216	return c.ListStudioSessionMappingsPagesWithContext(aws.BackgroundContext(), input, fn)
3217}
3218
3219// ListStudioSessionMappingsPagesWithContext same as ListStudioSessionMappingsPages except
3220// it takes a Context and allows setting request options on the pages.
3221//
3222// The context must be non-nil and will be used for request cancellation. If
3223// the context is nil a panic will occur. In the future the SDK may create
3224// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3225// for more information on using Contexts.
3226func (c *EMR) ListStudioSessionMappingsPagesWithContext(ctx aws.Context, input *ListStudioSessionMappingsInput, fn func(*ListStudioSessionMappingsOutput, bool) bool, opts ...request.Option) error {
3227	p := request.Pagination{
3228		NewRequest: func() (*request.Request, error) {
3229			var inCpy *ListStudioSessionMappingsInput
3230			if input != nil {
3231				tmp := *input
3232				inCpy = &tmp
3233			}
3234			req, _ := c.ListStudioSessionMappingsRequest(inCpy)
3235			req.SetContext(ctx)
3236			req.ApplyOptions(opts...)
3237			return req, nil
3238		},
3239	}
3240
3241	for p.Next() {
3242		if !fn(p.Page().(*ListStudioSessionMappingsOutput), !p.HasNextPage()) {
3243			break
3244		}
3245	}
3246
3247	return p.Err()
3248}
3249
3250const opListStudios = "ListStudios"
3251
3252// ListStudiosRequest generates a "aws/request.Request" representing the
3253// client's request for the ListStudios operation. The "output" return
3254// value will be populated with the request's response once the request completes
3255// successfully.
3256//
3257// Use "Send" method on the returned Request to send the API call to the service.
3258// the "output" return value is not valid until after Send returns without error.
3259//
3260// See ListStudios for more information on using the ListStudios
3261// API call, and error handling.
3262//
3263// This method is useful when you want to inject custom logic or configuration
3264// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3265//
3266//
3267//    // Example sending a request using the ListStudiosRequest method.
3268//    req, resp := client.ListStudiosRequest(params)
3269//
3270//    err := req.Send()
3271//    if err == nil { // resp is now filled
3272//        fmt.Println(resp)
3273//    }
3274//
3275// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudios
3276func (c *EMR) ListStudiosRequest(input *ListStudiosInput) (req *request.Request, output *ListStudiosOutput) {
3277	op := &request.Operation{
3278		Name:       opListStudios,
3279		HTTPMethod: "POST",
3280		HTTPPath:   "/",
3281		Paginator: &request.Paginator{
3282			InputTokens:     []string{"Marker"},
3283			OutputTokens:    []string{"Marker"},
3284			LimitToken:      "",
3285			TruncationToken: "",
3286		},
3287	}
3288
3289	if input == nil {
3290		input = &ListStudiosInput{}
3291	}
3292
3293	output = &ListStudiosOutput{}
3294	req = c.newRequest(op, input, output)
3295	return
3296}
3297
3298// ListStudios API operation for Amazon EMR.
3299//
3300// Returns a list of all Amazon EMR Studios associated with the account. The
3301// list includes details such as ID, Studio Access URL, and creation time for
3302// each Studio.
3303//
3304// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3305// with awserr.Error's Code and Message methods to get detailed information about
3306// the error.
3307//
3308// See the AWS API reference guide for Amazon EMR's
3309// API operation ListStudios for usage and error information.
3310//
3311// Returned Error Types:
3312//   * InternalServerException
3313//   This exception occurs when there is an internal failure in the Amazon EMR
3314//   service.
3315//
3316//   * InvalidRequestException
3317//   This exception occurs when there is something wrong with user input.
3318//
3319// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudios
3320func (c *EMR) ListStudios(input *ListStudiosInput) (*ListStudiosOutput, error) {
3321	req, out := c.ListStudiosRequest(input)
3322	return out, req.Send()
3323}
3324
3325// ListStudiosWithContext is the same as ListStudios with the addition of
3326// the ability to pass a context and additional request options.
3327//
3328// See ListStudios for details on how to use this API operation.
3329//
3330// The context must be non-nil and will be used for request cancellation. If
3331// the context is nil a panic will occur. In the future the SDK may create
3332// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3333// for more information on using Contexts.
3334func (c *EMR) ListStudiosWithContext(ctx aws.Context, input *ListStudiosInput, opts ...request.Option) (*ListStudiosOutput, error) {
3335	req, out := c.ListStudiosRequest(input)
3336	req.SetContext(ctx)
3337	req.ApplyOptions(opts...)
3338	return out, req.Send()
3339}
3340
3341// ListStudiosPages iterates over the pages of a ListStudios operation,
3342// calling the "fn" function with the response data for each page. To stop
3343// iterating, return false from the fn function.
3344//
3345// See ListStudios method for more information on how to use this operation.
3346//
3347// Note: This operation can generate multiple requests to a service.
3348//
3349//    // Example iterating over at most 3 pages of a ListStudios operation.
3350//    pageNum := 0
3351//    err := client.ListStudiosPages(params,
3352//        func(page *emr.ListStudiosOutput, lastPage bool) bool {
3353//            pageNum++
3354//            fmt.Println(page)
3355//            return pageNum <= 3
3356//        })
3357//
3358func (c *EMR) ListStudiosPages(input *ListStudiosInput, fn func(*ListStudiosOutput, bool) bool) error {
3359	return c.ListStudiosPagesWithContext(aws.BackgroundContext(), input, fn)
3360}
3361
3362// ListStudiosPagesWithContext same as ListStudiosPages except
3363// it takes a Context and allows setting request options on the pages.
3364//
3365// The context must be non-nil and will be used for request cancellation. If
3366// the context is nil a panic will occur. In the future the SDK may create
3367// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3368// for more information on using Contexts.
3369func (c *EMR) ListStudiosPagesWithContext(ctx aws.Context, input *ListStudiosInput, fn func(*ListStudiosOutput, bool) bool, opts ...request.Option) error {
3370	p := request.Pagination{
3371		NewRequest: func() (*request.Request, error) {
3372			var inCpy *ListStudiosInput
3373			if input != nil {
3374				tmp := *input
3375				inCpy = &tmp
3376			}
3377			req, _ := c.ListStudiosRequest(inCpy)
3378			req.SetContext(ctx)
3379			req.ApplyOptions(opts...)
3380			return req, nil
3381		},
3382	}
3383
3384	for p.Next() {
3385		if !fn(p.Page().(*ListStudiosOutput), !p.HasNextPage()) {
3386			break
3387		}
3388	}
3389
3390	return p.Err()
3391}
3392
3393const opModifyCluster = "ModifyCluster"
3394
3395// ModifyClusterRequest generates a "aws/request.Request" representing the
3396// client's request for the ModifyCluster operation. The "output" return
3397// value will be populated with the request's response once the request completes
3398// successfully.
3399//
3400// Use "Send" method on the returned Request to send the API call to the service.
3401// the "output" return value is not valid until after Send returns without error.
3402//
3403// See ModifyCluster for more information on using the ModifyCluster
3404// API call, and error handling.
3405//
3406// This method is useful when you want to inject custom logic or configuration
3407// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3408//
3409//
3410//    // Example sending a request using the ModifyClusterRequest method.
3411//    req, resp := client.ModifyClusterRequest(params)
3412//
3413//    err := req.Send()
3414//    if err == nil { // resp is now filled
3415//        fmt.Println(resp)
3416//    }
3417//
3418// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyCluster
3419func (c *EMR) ModifyClusterRequest(input *ModifyClusterInput) (req *request.Request, output *ModifyClusterOutput) {
3420	op := &request.Operation{
3421		Name:       opModifyCluster,
3422		HTTPMethod: "POST",
3423		HTTPPath:   "/",
3424	}
3425
3426	if input == nil {
3427		input = &ModifyClusterInput{}
3428	}
3429
3430	output = &ModifyClusterOutput{}
3431	req = c.newRequest(op, input, output)
3432	return
3433}
3434
3435// ModifyCluster API operation for Amazon EMR.
3436//
3437// Modifies the number of steps that can be executed concurrently for the cluster
3438// specified using ClusterID.
3439//
3440// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3441// with awserr.Error's Code and Message methods to get detailed information about
3442// the error.
3443//
3444// See the AWS API reference guide for Amazon EMR's
3445// API operation ModifyCluster for usage and error information.
3446//
3447// Returned Error Types:
3448//   * InternalServerError
3449//   Indicates that an error occurred while processing the request and that the
3450//   request was not completed.
3451//
3452//   * InvalidRequestException
3453//   This exception occurs when there is something wrong with user input.
3454//
3455// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyCluster
3456func (c *EMR) ModifyCluster(input *ModifyClusterInput) (*ModifyClusterOutput, error) {
3457	req, out := c.ModifyClusterRequest(input)
3458	return out, req.Send()
3459}
3460
3461// ModifyClusterWithContext is the same as ModifyCluster with the addition of
3462// the ability to pass a context and additional request options.
3463//
3464// See ModifyCluster for details on how to use this API operation.
3465//
3466// The context must be non-nil and will be used for request cancellation. If
3467// the context is nil a panic will occur. In the future the SDK may create
3468// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3469// for more information on using Contexts.
3470func (c *EMR) ModifyClusterWithContext(ctx aws.Context, input *ModifyClusterInput, opts ...request.Option) (*ModifyClusterOutput, error) {
3471	req, out := c.ModifyClusterRequest(input)
3472	req.SetContext(ctx)
3473	req.ApplyOptions(opts...)
3474	return out, req.Send()
3475}
3476
3477const opModifyInstanceFleet = "ModifyInstanceFleet"
3478
3479// ModifyInstanceFleetRequest generates a "aws/request.Request" representing the
3480// client's request for the ModifyInstanceFleet operation. The "output" return
3481// value will be populated with the request's response once the request completes
3482// successfully.
3483//
3484// Use "Send" method on the returned Request to send the API call to the service.
3485// the "output" return value is not valid until after Send returns without error.
3486//
3487// See ModifyInstanceFleet for more information on using the ModifyInstanceFleet
3488// API call, and error handling.
3489//
3490// This method is useful when you want to inject custom logic or configuration
3491// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3492//
3493//
3494//    // Example sending a request using the ModifyInstanceFleetRequest method.
3495//    req, resp := client.ModifyInstanceFleetRequest(params)
3496//
3497//    err := req.Send()
3498//    if err == nil { // resp is now filled
3499//        fmt.Println(resp)
3500//    }
3501//
3502// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleet
3503func (c *EMR) ModifyInstanceFleetRequest(input *ModifyInstanceFleetInput) (req *request.Request, output *ModifyInstanceFleetOutput) {
3504	op := &request.Operation{
3505		Name:       opModifyInstanceFleet,
3506		HTTPMethod: "POST",
3507		HTTPPath:   "/",
3508	}
3509
3510	if input == nil {
3511		input = &ModifyInstanceFleetInput{}
3512	}
3513
3514	output = &ModifyInstanceFleetOutput{}
3515	req = c.newRequest(op, input, output)
3516	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3517	return
3518}
3519
3520// ModifyInstanceFleet API operation for Amazon EMR.
3521//
3522// Modifies the target On-Demand and target Spot capacities for the instance
3523// fleet with the specified InstanceFleetID within the cluster specified using
3524// ClusterID. The call either succeeds or fails atomically.
3525//
3526// The instance fleet configuration is available only in Amazon EMR versions
3527// 4.8.0 and later, excluding 5.0.x versions.
3528//
3529// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3530// with awserr.Error's Code and Message methods to get detailed information about
3531// the error.
3532//
3533// See the AWS API reference guide for Amazon EMR's
3534// API operation ModifyInstanceFleet for usage and error information.
3535//
3536// Returned Error Types:
3537//   * InternalServerException
3538//   This exception occurs when there is an internal failure in the Amazon EMR
3539//   service.
3540//
3541//   * InvalidRequestException
3542//   This exception occurs when there is something wrong with user input.
3543//
3544// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleet
3545func (c *EMR) ModifyInstanceFleet(input *ModifyInstanceFleetInput) (*ModifyInstanceFleetOutput, error) {
3546	req, out := c.ModifyInstanceFleetRequest(input)
3547	return out, req.Send()
3548}
3549
3550// ModifyInstanceFleetWithContext is the same as ModifyInstanceFleet with the addition of
3551// the ability to pass a context and additional request options.
3552//
3553// See ModifyInstanceFleet for details on how to use this API operation.
3554//
3555// The context must be non-nil and will be used for request cancellation. If
3556// the context is nil a panic will occur. In the future the SDK may create
3557// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3558// for more information on using Contexts.
3559func (c *EMR) ModifyInstanceFleetWithContext(ctx aws.Context, input *ModifyInstanceFleetInput, opts ...request.Option) (*ModifyInstanceFleetOutput, error) {
3560	req, out := c.ModifyInstanceFleetRequest(input)
3561	req.SetContext(ctx)
3562	req.ApplyOptions(opts...)
3563	return out, req.Send()
3564}
3565
3566const opModifyInstanceGroups = "ModifyInstanceGroups"
3567
3568// ModifyInstanceGroupsRequest generates a "aws/request.Request" representing the
3569// client's request for the ModifyInstanceGroups operation. The "output" return
3570// value will be populated with the request's response once the request completes
3571// successfully.
3572//
3573// Use "Send" method on the returned Request to send the API call to the service.
3574// the "output" return value is not valid until after Send returns without error.
3575//
3576// See ModifyInstanceGroups for more information on using the ModifyInstanceGroups
3577// API call, and error handling.
3578//
3579// This method is useful when you want to inject custom logic or configuration
3580// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3581//
3582//
3583//    // Example sending a request using the ModifyInstanceGroupsRequest method.
3584//    req, resp := client.ModifyInstanceGroupsRequest(params)
3585//
3586//    err := req.Send()
3587//    if err == nil { // resp is now filled
3588//        fmt.Println(resp)
3589//    }
3590//
3591// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroups
3592func (c *EMR) ModifyInstanceGroupsRequest(input *ModifyInstanceGroupsInput) (req *request.Request, output *ModifyInstanceGroupsOutput) {
3593	op := &request.Operation{
3594		Name:       opModifyInstanceGroups,
3595		HTTPMethod: "POST",
3596		HTTPPath:   "/",
3597	}
3598
3599	if input == nil {
3600		input = &ModifyInstanceGroupsInput{}
3601	}
3602
3603	output = &ModifyInstanceGroupsOutput{}
3604	req = c.newRequest(op, input, output)
3605	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3606	return
3607}
3608
3609// ModifyInstanceGroups API operation for Amazon EMR.
3610//
3611// ModifyInstanceGroups modifies the number of nodes and configuration settings
3612// of an instance group. The input parameters include the new target instance
3613// count for the group and the instance group ID. The call will either succeed
3614// or fail atomically.
3615//
3616// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3617// with awserr.Error's Code and Message methods to get detailed information about
3618// the error.
3619//
3620// See the AWS API reference guide for Amazon EMR's
3621// API operation ModifyInstanceGroups for usage and error information.
3622//
3623// Returned Error Types:
3624//   * InternalServerError
3625//   Indicates that an error occurred while processing the request and that the
3626//   request was not completed.
3627//
3628// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroups
3629func (c *EMR) ModifyInstanceGroups(input *ModifyInstanceGroupsInput) (*ModifyInstanceGroupsOutput, error) {
3630	req, out := c.ModifyInstanceGroupsRequest(input)
3631	return out, req.Send()
3632}
3633
3634// ModifyInstanceGroupsWithContext is the same as ModifyInstanceGroups with the addition of
3635// the ability to pass a context and additional request options.
3636//
3637// See ModifyInstanceGroups for details on how to use this API operation.
3638//
3639// The context must be non-nil and will be used for request cancellation. If
3640// the context is nil a panic will occur. In the future the SDK may create
3641// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3642// for more information on using Contexts.
3643func (c *EMR) ModifyInstanceGroupsWithContext(ctx aws.Context, input *ModifyInstanceGroupsInput, opts ...request.Option) (*ModifyInstanceGroupsOutput, error) {
3644	req, out := c.ModifyInstanceGroupsRequest(input)
3645	req.SetContext(ctx)
3646	req.ApplyOptions(opts...)
3647	return out, req.Send()
3648}
3649
3650const opPutAutoScalingPolicy = "PutAutoScalingPolicy"
3651
3652// PutAutoScalingPolicyRequest generates a "aws/request.Request" representing the
3653// client's request for the PutAutoScalingPolicy operation. The "output" return
3654// value will be populated with the request's response once the request completes
3655// successfully.
3656//
3657// Use "Send" method on the returned Request to send the API call to the service.
3658// the "output" return value is not valid until after Send returns without error.
3659//
3660// See PutAutoScalingPolicy for more information on using the PutAutoScalingPolicy
3661// API call, and error handling.
3662//
3663// This method is useful when you want to inject custom logic or configuration
3664// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3665//
3666//
3667//    // Example sending a request using the PutAutoScalingPolicyRequest method.
3668//    req, resp := client.PutAutoScalingPolicyRequest(params)
3669//
3670//    err := req.Send()
3671//    if err == nil { // resp is now filled
3672//        fmt.Println(resp)
3673//    }
3674//
3675// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicy
3676func (c *EMR) PutAutoScalingPolicyRequest(input *PutAutoScalingPolicyInput) (req *request.Request, output *PutAutoScalingPolicyOutput) {
3677	op := &request.Operation{
3678		Name:       opPutAutoScalingPolicy,
3679		HTTPMethod: "POST",
3680		HTTPPath:   "/",
3681	}
3682
3683	if input == nil {
3684		input = &PutAutoScalingPolicyInput{}
3685	}
3686
3687	output = &PutAutoScalingPolicyOutput{}
3688	req = c.newRequest(op, input, output)
3689	return
3690}
3691
3692// PutAutoScalingPolicy API operation for Amazon EMR.
3693//
3694// Creates or updates an automatic scaling policy for a core instance group
3695// or task instance group in an Amazon EMR cluster. The automatic scaling policy
3696// defines how an instance group dynamically adds and terminates EC2 instances
3697// in response to the value of a CloudWatch metric.
3698//
3699// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3700// with awserr.Error's Code and Message methods to get detailed information about
3701// the error.
3702//
3703// See the AWS API reference guide for Amazon EMR's
3704// API operation PutAutoScalingPolicy for usage and error information.
3705// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicy
3706func (c *EMR) PutAutoScalingPolicy(input *PutAutoScalingPolicyInput) (*PutAutoScalingPolicyOutput, error) {
3707	req, out := c.PutAutoScalingPolicyRequest(input)
3708	return out, req.Send()
3709}
3710
3711// PutAutoScalingPolicyWithContext is the same as PutAutoScalingPolicy with the addition of
3712// the ability to pass a context and additional request options.
3713//
3714// See PutAutoScalingPolicy for details on how to use this API operation.
3715//
3716// The context must be non-nil and will be used for request cancellation. If
3717// the context is nil a panic will occur. In the future the SDK may create
3718// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3719// for more information on using Contexts.
3720func (c *EMR) PutAutoScalingPolicyWithContext(ctx aws.Context, input *PutAutoScalingPolicyInput, opts ...request.Option) (*PutAutoScalingPolicyOutput, error) {
3721	req, out := c.PutAutoScalingPolicyRequest(input)
3722	req.SetContext(ctx)
3723	req.ApplyOptions(opts...)
3724	return out, req.Send()
3725}
3726
3727const opPutBlockPublicAccessConfiguration = "PutBlockPublicAccessConfiguration"
3728
3729// PutBlockPublicAccessConfigurationRequest generates a "aws/request.Request" representing the
3730// client's request for the PutBlockPublicAccessConfiguration operation. The "output" return
3731// value will be populated with the request's response once the request completes
3732// successfully.
3733//
3734// Use "Send" method on the returned Request to send the API call to the service.
3735// the "output" return value is not valid until after Send returns without error.
3736//
3737// See PutBlockPublicAccessConfiguration for more information on using the PutBlockPublicAccessConfiguration
3738// API call, and error handling.
3739//
3740// This method is useful when you want to inject custom logic or configuration
3741// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3742//
3743//
3744//    // Example sending a request using the PutBlockPublicAccessConfigurationRequest method.
3745//    req, resp := client.PutBlockPublicAccessConfigurationRequest(params)
3746//
3747//    err := req.Send()
3748//    if err == nil { // resp is now filled
3749//        fmt.Println(resp)
3750//    }
3751//
3752// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutBlockPublicAccessConfiguration
3753func (c *EMR) PutBlockPublicAccessConfigurationRequest(input *PutBlockPublicAccessConfigurationInput) (req *request.Request, output *PutBlockPublicAccessConfigurationOutput) {
3754	op := &request.Operation{
3755		Name:       opPutBlockPublicAccessConfiguration,
3756		HTTPMethod: "POST",
3757		HTTPPath:   "/",
3758	}
3759
3760	if input == nil {
3761		input = &PutBlockPublicAccessConfigurationInput{}
3762	}
3763
3764	output = &PutBlockPublicAccessConfigurationOutput{}
3765	req = c.newRequest(op, input, output)
3766	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3767	return
3768}
3769
3770// PutBlockPublicAccessConfiguration API operation for Amazon EMR.
3771//
3772// Creates or updates an Amazon EMR block public access configuration for your
3773// account in the current Region. For more information see Configure Block Public
3774// Access for Amazon EMR (https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html)
3775// in the Amazon EMR Management Guide.
3776//
3777// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3778// with awserr.Error's Code and Message methods to get detailed information about
3779// the error.
3780//
3781// See the AWS API reference guide for Amazon EMR's
3782// API operation PutBlockPublicAccessConfiguration for usage and error information.
3783//
3784// Returned Error Types:
3785//   * InternalServerException
3786//   This exception occurs when there is an internal failure in the Amazon EMR
3787//   service.
3788//
3789//   * InvalidRequestException
3790//   This exception occurs when there is something wrong with user input.
3791//
3792// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutBlockPublicAccessConfiguration
3793func (c *EMR) PutBlockPublicAccessConfiguration(input *PutBlockPublicAccessConfigurationInput) (*PutBlockPublicAccessConfigurationOutput, error) {
3794	req, out := c.PutBlockPublicAccessConfigurationRequest(input)
3795	return out, req.Send()
3796}
3797
3798// PutBlockPublicAccessConfigurationWithContext is the same as PutBlockPublicAccessConfiguration with the addition of
3799// the ability to pass a context and additional request options.
3800//
3801// See PutBlockPublicAccessConfiguration for details on how to use this API operation.
3802//
3803// The context must be non-nil and will be used for request cancellation. If
3804// the context is nil a panic will occur. In the future the SDK may create
3805// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3806// for more information on using Contexts.
3807func (c *EMR) PutBlockPublicAccessConfigurationWithContext(ctx aws.Context, input *PutBlockPublicAccessConfigurationInput, opts ...request.Option) (*PutBlockPublicAccessConfigurationOutput, error) {
3808	req, out := c.PutBlockPublicAccessConfigurationRequest(input)
3809	req.SetContext(ctx)
3810	req.ApplyOptions(opts...)
3811	return out, req.Send()
3812}
3813
3814const opPutManagedScalingPolicy = "PutManagedScalingPolicy"
3815
3816// PutManagedScalingPolicyRequest generates a "aws/request.Request" representing the
3817// client's request for the PutManagedScalingPolicy operation. The "output" return
3818// value will be populated with the request's response once the request completes
3819// successfully.
3820//
3821// Use "Send" method on the returned Request to send the API call to the service.
3822// the "output" return value is not valid until after Send returns without error.
3823//
3824// See PutManagedScalingPolicy for more information on using the PutManagedScalingPolicy
3825// API call, and error handling.
3826//
3827// This method is useful when you want to inject custom logic or configuration
3828// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3829//
3830//
3831//    // Example sending a request using the PutManagedScalingPolicyRequest method.
3832//    req, resp := client.PutManagedScalingPolicyRequest(params)
3833//
3834//    err := req.Send()
3835//    if err == nil { // resp is now filled
3836//        fmt.Println(resp)
3837//    }
3838//
3839// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicy
3840func (c *EMR) PutManagedScalingPolicyRequest(input *PutManagedScalingPolicyInput) (req *request.Request, output *PutManagedScalingPolicyOutput) {
3841	op := &request.Operation{
3842		Name:       opPutManagedScalingPolicy,
3843		HTTPMethod: "POST",
3844		HTTPPath:   "/",
3845	}
3846
3847	if input == nil {
3848		input = &PutManagedScalingPolicyInput{}
3849	}
3850
3851	output = &PutManagedScalingPolicyOutput{}
3852	req = c.newRequest(op, input, output)
3853	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3854	return
3855}
3856
3857// PutManagedScalingPolicy API operation for Amazon EMR.
3858//
3859// Creates or updates a managed scaling policy for an Amazon EMR cluster. The
3860// managed scaling policy defines the limits for resources, such as EC2 instances
3861// that can be added or terminated from a cluster. The policy only applies to
3862// the core and task nodes. The master node cannot be scaled after initial configuration.
3863//
3864// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3865// with awserr.Error's Code and Message methods to get detailed information about
3866// the error.
3867//
3868// See the AWS API reference guide for Amazon EMR's
3869// API operation PutManagedScalingPolicy for usage and error information.
3870// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicy
3871func (c *EMR) PutManagedScalingPolicy(input *PutManagedScalingPolicyInput) (*PutManagedScalingPolicyOutput, error) {
3872	req, out := c.PutManagedScalingPolicyRequest(input)
3873	return out, req.Send()
3874}
3875
3876// PutManagedScalingPolicyWithContext is the same as PutManagedScalingPolicy with the addition of
3877// the ability to pass a context and additional request options.
3878//
3879// See PutManagedScalingPolicy for details on how to use this API operation.
3880//
3881// The context must be non-nil and will be used for request cancellation. If
3882// the context is nil a panic will occur. In the future the SDK may create
3883// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3884// for more information on using Contexts.
3885func (c *EMR) PutManagedScalingPolicyWithContext(ctx aws.Context, input *PutManagedScalingPolicyInput, opts ...request.Option) (*PutManagedScalingPolicyOutput, error) {
3886	req, out := c.PutManagedScalingPolicyRequest(input)
3887	req.SetContext(ctx)
3888	req.ApplyOptions(opts...)
3889	return out, req.Send()
3890}
3891
3892const opRemoveAutoScalingPolicy = "RemoveAutoScalingPolicy"
3893
3894// RemoveAutoScalingPolicyRequest generates a "aws/request.Request" representing the
3895// client's request for the RemoveAutoScalingPolicy operation. The "output" return
3896// value will be populated with the request's response once the request completes
3897// successfully.
3898//
3899// Use "Send" method on the returned Request to send the API call to the service.
3900// the "output" return value is not valid until after Send returns without error.
3901//
3902// See RemoveAutoScalingPolicy for more information on using the RemoveAutoScalingPolicy
3903// API call, and error handling.
3904//
3905// This method is useful when you want to inject custom logic or configuration
3906// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3907//
3908//
3909//    // Example sending a request using the RemoveAutoScalingPolicyRequest method.
3910//    req, resp := client.RemoveAutoScalingPolicyRequest(params)
3911//
3912//    err := req.Send()
3913//    if err == nil { // resp is now filled
3914//        fmt.Println(resp)
3915//    }
3916//
3917// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicy
3918func (c *EMR) RemoveAutoScalingPolicyRequest(input *RemoveAutoScalingPolicyInput) (req *request.Request, output *RemoveAutoScalingPolicyOutput) {
3919	op := &request.Operation{
3920		Name:       opRemoveAutoScalingPolicy,
3921		HTTPMethod: "POST",
3922		HTTPPath:   "/",
3923	}
3924
3925	if input == nil {
3926		input = &RemoveAutoScalingPolicyInput{}
3927	}
3928
3929	output = &RemoveAutoScalingPolicyOutput{}
3930	req = c.newRequest(op, input, output)
3931	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3932	return
3933}
3934
3935// RemoveAutoScalingPolicy API operation for Amazon EMR.
3936//
3937// Removes an automatic scaling policy from a specified instance group within
3938// an EMR cluster.
3939//
3940// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3941// with awserr.Error's Code and Message methods to get detailed information about
3942// the error.
3943//
3944// See the AWS API reference guide for Amazon EMR's
3945// API operation RemoveAutoScalingPolicy for usage and error information.
3946// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicy
3947func (c *EMR) RemoveAutoScalingPolicy(input *RemoveAutoScalingPolicyInput) (*RemoveAutoScalingPolicyOutput, error) {
3948	req, out := c.RemoveAutoScalingPolicyRequest(input)
3949	return out, req.Send()
3950}
3951
3952// RemoveAutoScalingPolicyWithContext is the same as RemoveAutoScalingPolicy with the addition of
3953// the ability to pass a context and additional request options.
3954//
3955// See RemoveAutoScalingPolicy for details on how to use this API operation.
3956//
3957// The context must be non-nil and will be used for request cancellation. If
3958// the context is nil a panic will occur. In the future the SDK may create
3959// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3960// for more information on using Contexts.
3961func (c *EMR) RemoveAutoScalingPolicyWithContext(ctx aws.Context, input *RemoveAutoScalingPolicyInput, opts ...request.Option) (*RemoveAutoScalingPolicyOutput, error) {
3962	req, out := c.RemoveAutoScalingPolicyRequest(input)
3963	req.SetContext(ctx)
3964	req.ApplyOptions(opts...)
3965	return out, req.Send()
3966}
3967
3968const opRemoveManagedScalingPolicy = "RemoveManagedScalingPolicy"
3969
3970// RemoveManagedScalingPolicyRequest generates a "aws/request.Request" representing the
3971// client's request for the RemoveManagedScalingPolicy operation. The "output" return
3972// value will be populated with the request's response once the request completes
3973// successfully.
3974//
3975// Use "Send" method on the returned Request to send the API call to the service.
3976// the "output" return value is not valid until after Send returns without error.
3977//
3978// See RemoveManagedScalingPolicy for more information on using the RemoveManagedScalingPolicy
3979// API call, and error handling.
3980//
3981// This method is useful when you want to inject custom logic or configuration
3982// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3983//
3984//
3985//    // Example sending a request using the RemoveManagedScalingPolicyRequest method.
3986//    req, resp := client.RemoveManagedScalingPolicyRequest(params)
3987//
3988//    err := req.Send()
3989//    if err == nil { // resp is now filled
3990//        fmt.Println(resp)
3991//    }
3992//
3993// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicy
3994func (c *EMR) RemoveManagedScalingPolicyRequest(input *RemoveManagedScalingPolicyInput) (req *request.Request, output *RemoveManagedScalingPolicyOutput) {
3995	op := &request.Operation{
3996		Name:       opRemoveManagedScalingPolicy,
3997		HTTPMethod: "POST",
3998		HTTPPath:   "/",
3999	}
4000
4001	if input == nil {
4002		input = &RemoveManagedScalingPolicyInput{}
4003	}
4004
4005	output = &RemoveManagedScalingPolicyOutput{}
4006	req = c.newRequest(op, input, output)
4007	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4008	return
4009}
4010
4011// RemoveManagedScalingPolicy API operation for Amazon EMR.
4012//
4013// Removes a managed scaling policy from a specified EMR cluster.
4014//
4015// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4016// with awserr.Error's Code and Message methods to get detailed information about
4017// the error.
4018//
4019// See the AWS API reference guide for Amazon EMR's
4020// API operation RemoveManagedScalingPolicy for usage and error information.
4021// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicy
4022func (c *EMR) RemoveManagedScalingPolicy(input *RemoveManagedScalingPolicyInput) (*RemoveManagedScalingPolicyOutput, error) {
4023	req, out := c.RemoveManagedScalingPolicyRequest(input)
4024	return out, req.Send()
4025}
4026
4027// RemoveManagedScalingPolicyWithContext is the same as RemoveManagedScalingPolicy with the addition of
4028// the ability to pass a context and additional request options.
4029//
4030// See RemoveManagedScalingPolicy for details on how to use this API operation.
4031//
4032// The context must be non-nil and will be used for request cancellation. If
4033// the context is nil a panic will occur. In the future the SDK may create
4034// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4035// for more information on using Contexts.
4036func (c *EMR) RemoveManagedScalingPolicyWithContext(ctx aws.Context, input *RemoveManagedScalingPolicyInput, opts ...request.Option) (*RemoveManagedScalingPolicyOutput, error) {
4037	req, out := c.RemoveManagedScalingPolicyRequest(input)
4038	req.SetContext(ctx)
4039	req.ApplyOptions(opts...)
4040	return out, req.Send()
4041}
4042
4043const opRemoveTags = "RemoveTags"
4044
4045// RemoveTagsRequest generates a "aws/request.Request" representing the
4046// client's request for the RemoveTags operation. The "output" return
4047// value will be populated with the request's response once the request completes
4048// successfully.
4049//
4050// Use "Send" method on the returned Request to send the API call to the service.
4051// the "output" return value is not valid until after Send returns without error.
4052//
4053// See RemoveTags for more information on using the RemoveTags
4054// API call, and error handling.
4055//
4056// This method is useful when you want to inject custom logic or configuration
4057// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4058//
4059//
4060//    // Example sending a request using the RemoveTagsRequest method.
4061//    req, resp := client.RemoveTagsRequest(params)
4062//
4063//    err := req.Send()
4064//    if err == nil { // resp is now filled
4065//        fmt.Println(resp)
4066//    }
4067//
4068// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTags
4069func (c *EMR) RemoveTagsRequest(input *RemoveTagsInput) (req *request.Request, output *RemoveTagsOutput) {
4070	op := &request.Operation{
4071		Name:       opRemoveTags,
4072		HTTPMethod: "POST",
4073		HTTPPath:   "/",
4074	}
4075
4076	if input == nil {
4077		input = &RemoveTagsInput{}
4078	}
4079
4080	output = &RemoveTagsOutput{}
4081	req = c.newRequest(op, input, output)
4082	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4083	return
4084}
4085
4086// RemoveTags API operation for Amazon EMR.
4087//
4088// Removes tags from an Amazon EMR resource. Tags make it easier to associate
4089// clusters in various ways, such as grouping clusters to track your Amazon
4090// EMR resource allocation costs. For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
4091//
4092// The following example removes the stack tag with value Prod from a cluster:
4093//
4094// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4095// with awserr.Error's Code and Message methods to get detailed information about
4096// the error.
4097//
4098// See the AWS API reference guide for Amazon EMR's
4099// API operation RemoveTags for usage and error information.
4100//
4101// Returned Error Types:
4102//   * InternalServerException
4103//   This exception occurs when there is an internal failure in the Amazon EMR
4104//   service.
4105//
4106//   * InvalidRequestException
4107//   This exception occurs when there is something wrong with user input.
4108//
4109// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTags
4110func (c *EMR) RemoveTags(input *RemoveTagsInput) (*RemoveTagsOutput, error) {
4111	req, out := c.RemoveTagsRequest(input)
4112	return out, req.Send()
4113}
4114
4115// RemoveTagsWithContext is the same as RemoveTags with the addition of
4116// the ability to pass a context and additional request options.
4117//
4118// See RemoveTags for details on how to use this API operation.
4119//
4120// The context must be non-nil and will be used for request cancellation. If
4121// the context is nil a panic will occur. In the future the SDK may create
4122// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4123// for more information on using Contexts.
4124func (c *EMR) RemoveTagsWithContext(ctx aws.Context, input *RemoveTagsInput, opts ...request.Option) (*RemoveTagsOutput, error) {
4125	req, out := c.RemoveTagsRequest(input)
4126	req.SetContext(ctx)
4127	req.ApplyOptions(opts...)
4128	return out, req.Send()
4129}
4130
4131const opRunJobFlow = "RunJobFlow"
4132
4133// RunJobFlowRequest generates a "aws/request.Request" representing the
4134// client's request for the RunJobFlow operation. The "output" return
4135// value will be populated with the request's response once the request completes
4136// successfully.
4137//
4138// Use "Send" method on the returned Request to send the API call to the service.
4139// the "output" return value is not valid until after Send returns without error.
4140//
4141// See RunJobFlow for more information on using the RunJobFlow
4142// API call, and error handling.
4143//
4144// This method is useful when you want to inject custom logic or configuration
4145// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4146//
4147//
4148//    // Example sending a request using the RunJobFlowRequest method.
4149//    req, resp := client.RunJobFlowRequest(params)
4150//
4151//    err := req.Send()
4152//    if err == nil { // resp is now filled
4153//        fmt.Println(resp)
4154//    }
4155//
4156// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlow
4157func (c *EMR) RunJobFlowRequest(input *RunJobFlowInput) (req *request.Request, output *RunJobFlowOutput) {
4158	op := &request.Operation{
4159		Name:       opRunJobFlow,
4160		HTTPMethod: "POST",
4161		HTTPPath:   "/",
4162	}
4163
4164	if input == nil {
4165		input = &RunJobFlowInput{}
4166	}
4167
4168	output = &RunJobFlowOutput{}
4169	req = c.newRequest(op, input, output)
4170	return
4171}
4172
4173// RunJobFlow API operation for Amazon EMR.
4174//
4175// RunJobFlow creates and starts running a new cluster (job flow). The cluster
4176// runs the steps specified. After the steps complete, the cluster stops and
4177// the HDFS partition is lost. To prevent loss of data, configure the last step
4178// of the job flow to store results in Amazon S3. If the JobFlowInstancesConfig
4179// KeepJobFlowAliveWhenNoSteps parameter is set to TRUE, the cluster transitions
4180// to the WAITING state rather than shutting down after the steps have completed.
4181//
4182// For additional protection, you can set the JobFlowInstancesConfig TerminationProtected
4183// parameter to TRUE to lock the cluster and prevent it from being terminated
4184// by API call, user intervention, or in the event of a job flow error.
4185//
4186// A maximum of 256 steps are allowed in each job flow.
4187//
4188// If your cluster is long-running (such as a Hive data warehouse) or complex,
4189// you may require more than 256 steps to process your data. You can bypass
4190// the 256-step limitation in various ways, including using the SSH shell to
4191// connect to the master node and submitting queries directly to the software
4192// running on the master node, such as Hive and Hadoop. For more information
4193// on how to do this, see Add More than 256 Steps to a Cluster (https://docs.aws.amazon.com/emr/latest/ManagementGuide/AddMoreThan256Steps.html)
4194// in the Amazon EMR Management Guide.
4195//
4196// For long running clusters, we recommend that you periodically store your
4197// results.
4198//
4199// The instance fleets configuration is available only in Amazon EMR versions
4200// 4.8.0 and later, excluding 5.0.x versions. The RunJobFlow request can contain
4201// InstanceFleets parameters or InstanceGroups parameters, but not both.
4202//
4203// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4204// with awserr.Error's Code and Message methods to get detailed information about
4205// the error.
4206//
4207// See the AWS API reference guide for Amazon EMR's
4208// API operation RunJobFlow for usage and error information.
4209//
4210// Returned Error Types:
4211//   * InternalServerError
4212//   Indicates that an error occurred while processing the request and that the
4213//   request was not completed.
4214//
4215// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlow
4216func (c *EMR) RunJobFlow(input *RunJobFlowInput) (*RunJobFlowOutput, error) {
4217	req, out := c.RunJobFlowRequest(input)
4218	return out, req.Send()
4219}
4220
4221// RunJobFlowWithContext is the same as RunJobFlow with the addition of
4222// the ability to pass a context and additional request options.
4223//
4224// See RunJobFlow for details on how to use this API operation.
4225//
4226// The context must be non-nil and will be used for request cancellation. If
4227// the context is nil a panic will occur. In the future the SDK may create
4228// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4229// for more information on using Contexts.
4230func (c *EMR) RunJobFlowWithContext(ctx aws.Context, input *RunJobFlowInput, opts ...request.Option) (*RunJobFlowOutput, error) {
4231	req, out := c.RunJobFlowRequest(input)
4232	req.SetContext(ctx)
4233	req.ApplyOptions(opts...)
4234	return out, req.Send()
4235}
4236
4237const opSetTerminationProtection = "SetTerminationProtection"
4238
4239// SetTerminationProtectionRequest generates a "aws/request.Request" representing the
4240// client's request for the SetTerminationProtection operation. The "output" return
4241// value will be populated with the request's response once the request completes
4242// successfully.
4243//
4244// Use "Send" method on the returned Request to send the API call to the service.
4245// the "output" return value is not valid until after Send returns without error.
4246//
4247// See SetTerminationProtection for more information on using the SetTerminationProtection
4248// API call, and error handling.
4249//
4250// This method is useful when you want to inject custom logic or configuration
4251// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4252//
4253//
4254//    // Example sending a request using the SetTerminationProtectionRequest method.
4255//    req, resp := client.SetTerminationProtectionRequest(params)
4256//
4257//    err := req.Send()
4258//    if err == nil { // resp is now filled
4259//        fmt.Println(resp)
4260//    }
4261//
4262// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtection
4263func (c *EMR) SetTerminationProtectionRequest(input *SetTerminationProtectionInput) (req *request.Request, output *SetTerminationProtectionOutput) {
4264	op := &request.Operation{
4265		Name:       opSetTerminationProtection,
4266		HTTPMethod: "POST",
4267		HTTPPath:   "/",
4268	}
4269
4270	if input == nil {
4271		input = &SetTerminationProtectionInput{}
4272	}
4273
4274	output = &SetTerminationProtectionOutput{}
4275	req = c.newRequest(op, input, output)
4276	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4277	return
4278}
4279
4280// SetTerminationProtection API operation for Amazon EMR.
4281//
4282// SetTerminationProtection locks a cluster (job flow) so the EC2 instances
4283// in the cluster cannot be terminated by user intervention, an API call, or
4284// in the event of a job-flow error. The cluster still terminates upon successful
4285// completion of the job flow. Calling SetTerminationProtection on a cluster
4286// is similar to calling the Amazon EC2 DisableAPITermination API on all EC2
4287// instances in a cluster.
4288//
4289// SetTerminationProtection is used to prevent accidental termination of a cluster
4290// and to ensure that in the event of an error, the instances persist so that
4291// you can recover any data stored in their ephemeral instance storage.
4292//
4293// To terminate a cluster that has been locked by setting SetTerminationProtection
4294// to true, you must first unlock the job flow by a subsequent call to SetTerminationProtection
4295// in which you set the value to false.
4296//
4297// For more information, seeManaging Cluster Termination (https://docs.aws.amazon.com/emr/latest/ManagementGuide/UsingEMR_TerminationProtection.html)
4298// in the Amazon EMR Management Guide.
4299//
4300// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4301// with awserr.Error's Code and Message methods to get detailed information about
4302// the error.
4303//
4304// See the AWS API reference guide for Amazon EMR's
4305// API operation SetTerminationProtection for usage and error information.
4306//
4307// Returned Error Types:
4308//   * InternalServerError
4309//   Indicates that an error occurred while processing the request and that the
4310//   request was not completed.
4311//
4312// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtection
4313func (c *EMR) SetTerminationProtection(input *SetTerminationProtectionInput) (*SetTerminationProtectionOutput, error) {
4314	req, out := c.SetTerminationProtectionRequest(input)
4315	return out, req.Send()
4316}
4317
4318// SetTerminationProtectionWithContext is the same as SetTerminationProtection with the addition of
4319// the ability to pass a context and additional request options.
4320//
4321// See SetTerminationProtection for details on how to use this API operation.
4322//
4323// The context must be non-nil and will be used for request cancellation. If
4324// the context is nil a panic will occur. In the future the SDK may create
4325// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4326// for more information on using Contexts.
4327func (c *EMR) SetTerminationProtectionWithContext(ctx aws.Context, input *SetTerminationProtectionInput, opts ...request.Option) (*SetTerminationProtectionOutput, error) {
4328	req, out := c.SetTerminationProtectionRequest(input)
4329	req.SetContext(ctx)
4330	req.ApplyOptions(opts...)
4331	return out, req.Send()
4332}
4333
4334const opSetVisibleToAllUsers = "SetVisibleToAllUsers"
4335
4336// SetVisibleToAllUsersRequest generates a "aws/request.Request" representing the
4337// client's request for the SetVisibleToAllUsers operation. The "output" return
4338// value will be populated with the request's response once the request completes
4339// successfully.
4340//
4341// Use "Send" method on the returned Request to send the API call to the service.
4342// the "output" return value is not valid until after Send returns without error.
4343//
4344// See SetVisibleToAllUsers for more information on using the SetVisibleToAllUsers
4345// API call, and error handling.
4346//
4347// This method is useful when you want to inject custom logic or configuration
4348// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4349//
4350//
4351//    // Example sending a request using the SetVisibleToAllUsersRequest method.
4352//    req, resp := client.SetVisibleToAllUsersRequest(params)
4353//
4354//    err := req.Send()
4355//    if err == nil { // resp is now filled
4356//        fmt.Println(resp)
4357//    }
4358//
4359// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsers
4360func (c *EMR) SetVisibleToAllUsersRequest(input *SetVisibleToAllUsersInput) (req *request.Request, output *SetVisibleToAllUsersOutput) {
4361	op := &request.Operation{
4362		Name:       opSetVisibleToAllUsers,
4363		HTTPMethod: "POST",
4364		HTTPPath:   "/",
4365	}
4366
4367	if input == nil {
4368		input = &SetVisibleToAllUsersInput{}
4369	}
4370
4371	output = &SetVisibleToAllUsersOutput{}
4372	req = c.newRequest(op, input, output)
4373	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4374	return
4375}
4376
4377// SetVisibleToAllUsers API operation for Amazon EMR.
4378//
4379// Sets the Cluster$VisibleToAllUsers value for an EMR cluster. When true, IAM
4380// principals in the account can perform EMR cluster actions that their IAM
4381// policies allow. When false, only the IAM principal that created the cluster
4382// and the account root user can perform EMR actions on the cluster, regardless
4383// of IAM permissions policies attached to other IAM principals.
4384//
4385// This action works on running clusters. When you create a cluster, use the
4386// RunJobFlowInput$VisibleToAllUsers parameter.
4387//
4388// For more information, see Understanding the EMR Cluster VisibleToAllUsers
4389// Setting (https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users)
4390// in the Amazon EMRManagement Guide.
4391//
4392// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4393// with awserr.Error's Code and Message methods to get detailed information about
4394// the error.
4395//
4396// See the AWS API reference guide for Amazon EMR's
4397// API operation SetVisibleToAllUsers for usage and error information.
4398//
4399// Returned Error Types:
4400//   * InternalServerError
4401//   Indicates that an error occurred while processing the request and that the
4402//   request was not completed.
4403//
4404// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsers
4405func (c *EMR) SetVisibleToAllUsers(input *SetVisibleToAllUsersInput) (*SetVisibleToAllUsersOutput, error) {
4406	req, out := c.SetVisibleToAllUsersRequest(input)
4407	return out, req.Send()
4408}
4409
4410// SetVisibleToAllUsersWithContext is the same as SetVisibleToAllUsers with the addition of
4411// the ability to pass a context and additional request options.
4412//
4413// See SetVisibleToAllUsers for details on how to use this API operation.
4414//
4415// The context must be non-nil and will be used for request cancellation. If
4416// the context is nil a panic will occur. In the future the SDK may create
4417// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4418// for more information on using Contexts.
4419func (c *EMR) SetVisibleToAllUsersWithContext(ctx aws.Context, input *SetVisibleToAllUsersInput, opts ...request.Option) (*SetVisibleToAllUsersOutput, error) {
4420	req, out := c.SetVisibleToAllUsersRequest(input)
4421	req.SetContext(ctx)
4422	req.ApplyOptions(opts...)
4423	return out, req.Send()
4424}
4425
4426const opStartNotebookExecution = "StartNotebookExecution"
4427
4428// StartNotebookExecutionRequest generates a "aws/request.Request" representing the
4429// client's request for the StartNotebookExecution operation. The "output" return
4430// value will be populated with the request's response once the request completes
4431// successfully.
4432//
4433// Use "Send" method on the returned Request to send the API call to the service.
4434// the "output" return value is not valid until after Send returns without error.
4435//
4436// See StartNotebookExecution for more information on using the StartNotebookExecution
4437// API call, and error handling.
4438//
4439// This method is useful when you want to inject custom logic or configuration
4440// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4441//
4442//
4443//    // Example sending a request using the StartNotebookExecutionRequest method.
4444//    req, resp := client.StartNotebookExecutionRequest(params)
4445//
4446//    err := req.Send()
4447//    if err == nil { // resp is now filled
4448//        fmt.Println(resp)
4449//    }
4450//
4451// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StartNotebookExecution
4452func (c *EMR) StartNotebookExecutionRequest(input *StartNotebookExecutionInput) (req *request.Request, output *StartNotebookExecutionOutput) {
4453	op := &request.Operation{
4454		Name:       opStartNotebookExecution,
4455		HTTPMethod: "POST",
4456		HTTPPath:   "/",
4457	}
4458
4459	if input == nil {
4460		input = &StartNotebookExecutionInput{}
4461	}
4462
4463	output = &StartNotebookExecutionOutput{}
4464	req = c.newRequest(op, input, output)
4465	return
4466}
4467
4468// StartNotebookExecution API operation for Amazon EMR.
4469//
4470// Starts a notebook execution.
4471//
4472// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4473// with awserr.Error's Code and Message methods to get detailed information about
4474// the error.
4475//
4476// See the AWS API reference guide for Amazon EMR's
4477// API operation StartNotebookExecution for usage and error information.
4478//
4479// Returned Error Types:
4480//   * InternalServerException
4481//   This exception occurs when there is an internal failure in the Amazon EMR
4482//   service.
4483//
4484//   * InvalidRequestException
4485//   This exception occurs when there is something wrong with user input.
4486//
4487// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StartNotebookExecution
4488func (c *EMR) StartNotebookExecution(input *StartNotebookExecutionInput) (*StartNotebookExecutionOutput, error) {
4489	req, out := c.StartNotebookExecutionRequest(input)
4490	return out, req.Send()
4491}
4492
4493// StartNotebookExecutionWithContext is the same as StartNotebookExecution with the addition of
4494// the ability to pass a context and additional request options.
4495//
4496// See StartNotebookExecution for details on how to use this API operation.
4497//
4498// The context must be non-nil and will be used for request cancellation. If
4499// the context is nil a panic will occur. In the future the SDK may create
4500// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4501// for more information on using Contexts.
4502func (c *EMR) StartNotebookExecutionWithContext(ctx aws.Context, input *StartNotebookExecutionInput, opts ...request.Option) (*StartNotebookExecutionOutput, error) {
4503	req, out := c.StartNotebookExecutionRequest(input)
4504	req.SetContext(ctx)
4505	req.ApplyOptions(opts...)
4506	return out, req.Send()
4507}
4508
4509const opStopNotebookExecution = "StopNotebookExecution"
4510
4511// StopNotebookExecutionRequest generates a "aws/request.Request" representing the
4512// client's request for the StopNotebookExecution operation. The "output" return
4513// value will be populated with the request's response once the request completes
4514// successfully.
4515//
4516// Use "Send" method on the returned Request to send the API call to the service.
4517// the "output" return value is not valid until after Send returns without error.
4518//
4519// See StopNotebookExecution for more information on using the StopNotebookExecution
4520// API call, and error handling.
4521//
4522// This method is useful when you want to inject custom logic or configuration
4523// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4524//
4525//
4526//    // Example sending a request using the StopNotebookExecutionRequest method.
4527//    req, resp := client.StopNotebookExecutionRequest(params)
4528//
4529//    err := req.Send()
4530//    if err == nil { // resp is now filled
4531//        fmt.Println(resp)
4532//    }
4533//
4534// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StopNotebookExecution
4535func (c *EMR) StopNotebookExecutionRequest(input *StopNotebookExecutionInput) (req *request.Request, output *StopNotebookExecutionOutput) {
4536	op := &request.Operation{
4537		Name:       opStopNotebookExecution,
4538		HTTPMethod: "POST",
4539		HTTPPath:   "/",
4540	}
4541
4542	if input == nil {
4543		input = &StopNotebookExecutionInput{}
4544	}
4545
4546	output = &StopNotebookExecutionOutput{}
4547	req = c.newRequest(op, input, output)
4548	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4549	return
4550}
4551
4552// StopNotebookExecution API operation for Amazon EMR.
4553//
4554// Stops a notebook execution.
4555//
4556// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4557// with awserr.Error's Code and Message methods to get detailed information about
4558// the error.
4559//
4560// See the AWS API reference guide for Amazon EMR's
4561// API operation StopNotebookExecution for usage and error information.
4562//
4563// Returned Error Types:
4564//   * InternalServerError
4565//   Indicates that an error occurred while processing the request and that the
4566//   request was not completed.
4567//
4568//   * InvalidRequestException
4569//   This exception occurs when there is something wrong with user input.
4570//
4571// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StopNotebookExecution
4572func (c *EMR) StopNotebookExecution(input *StopNotebookExecutionInput) (*StopNotebookExecutionOutput, error) {
4573	req, out := c.StopNotebookExecutionRequest(input)
4574	return out, req.Send()
4575}
4576
4577// StopNotebookExecutionWithContext is the same as StopNotebookExecution with the addition of
4578// the ability to pass a context and additional request options.
4579//
4580// See StopNotebookExecution for details on how to use this API operation.
4581//
4582// The context must be non-nil and will be used for request cancellation. If
4583// the context is nil a panic will occur. In the future the SDK may create
4584// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4585// for more information on using Contexts.
4586func (c *EMR) StopNotebookExecutionWithContext(ctx aws.Context, input *StopNotebookExecutionInput, opts ...request.Option) (*StopNotebookExecutionOutput, error) {
4587	req, out := c.StopNotebookExecutionRequest(input)
4588	req.SetContext(ctx)
4589	req.ApplyOptions(opts...)
4590	return out, req.Send()
4591}
4592
4593const opTerminateJobFlows = "TerminateJobFlows"
4594
4595// TerminateJobFlowsRequest generates a "aws/request.Request" representing the
4596// client's request for the TerminateJobFlows operation. The "output" return
4597// value will be populated with the request's response once the request completes
4598// successfully.
4599//
4600// Use "Send" method on the returned Request to send the API call to the service.
4601// the "output" return value is not valid until after Send returns without error.
4602//
4603// See TerminateJobFlows for more information on using the TerminateJobFlows
4604// API call, and error handling.
4605//
4606// This method is useful when you want to inject custom logic or configuration
4607// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4608//
4609//
4610//    // Example sending a request using the TerminateJobFlowsRequest method.
4611//    req, resp := client.TerminateJobFlowsRequest(params)
4612//
4613//    err := req.Send()
4614//    if err == nil { // resp is now filled
4615//        fmt.Println(resp)
4616//    }
4617//
4618// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlows
4619func (c *EMR) TerminateJobFlowsRequest(input *TerminateJobFlowsInput) (req *request.Request, output *TerminateJobFlowsOutput) {
4620	op := &request.Operation{
4621		Name:       opTerminateJobFlows,
4622		HTTPMethod: "POST",
4623		HTTPPath:   "/",
4624	}
4625
4626	if input == nil {
4627		input = &TerminateJobFlowsInput{}
4628	}
4629
4630	output = &TerminateJobFlowsOutput{}
4631	req = c.newRequest(op, input, output)
4632	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4633	return
4634}
4635
4636// TerminateJobFlows API operation for Amazon EMR.
4637//
4638// TerminateJobFlows shuts a list of clusters (job flows) down. When a job flow
4639// is shut down, any step not yet completed is canceled and the EC2 instances
4640// on which the cluster is running are stopped. Any log files not already saved
4641// are uploaded to Amazon S3 if a LogUri was specified when the cluster was
4642// created.
4643//
4644// The maximum number of clusters allowed is 10. The call to TerminateJobFlows
4645// is asynchronous. Depending on the configuration of the cluster, it may take
4646// up to 1-5 minutes for the cluster to completely terminate and release allocated
4647// resources, such as Amazon EC2 instances.
4648//
4649// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4650// with awserr.Error's Code and Message methods to get detailed information about
4651// the error.
4652//
4653// See the AWS API reference guide for Amazon EMR's
4654// API operation TerminateJobFlows for usage and error information.
4655//
4656// Returned Error Types:
4657//   * InternalServerError
4658//   Indicates that an error occurred while processing the request and that the
4659//   request was not completed.
4660//
4661// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlows
4662func (c *EMR) TerminateJobFlows(input *TerminateJobFlowsInput) (*TerminateJobFlowsOutput, error) {
4663	req, out := c.TerminateJobFlowsRequest(input)
4664	return out, req.Send()
4665}
4666
4667// TerminateJobFlowsWithContext is the same as TerminateJobFlows with the addition of
4668// the ability to pass a context and additional request options.
4669//
4670// See TerminateJobFlows for details on how to use this API operation.
4671//
4672// The context must be non-nil and will be used for request cancellation. If
4673// the context is nil a panic will occur. In the future the SDK may create
4674// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4675// for more information on using Contexts.
4676func (c *EMR) TerminateJobFlowsWithContext(ctx aws.Context, input *TerminateJobFlowsInput, opts ...request.Option) (*TerminateJobFlowsOutput, error) {
4677	req, out := c.TerminateJobFlowsRequest(input)
4678	req.SetContext(ctx)
4679	req.ApplyOptions(opts...)
4680	return out, req.Send()
4681}
4682
4683const opUpdateStudio = "UpdateStudio"
4684
4685// UpdateStudioRequest generates a "aws/request.Request" representing the
4686// client's request for the UpdateStudio operation. The "output" return
4687// value will be populated with the request's response once the request completes
4688// successfully.
4689//
4690// Use "Send" method on the returned Request to send the API call to the service.
4691// the "output" return value is not valid until after Send returns without error.
4692//
4693// See UpdateStudio for more information on using the UpdateStudio
4694// API call, and error handling.
4695//
4696// This method is useful when you want to inject custom logic or configuration
4697// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4698//
4699//
4700//    // Example sending a request using the UpdateStudioRequest method.
4701//    req, resp := client.UpdateStudioRequest(params)
4702//
4703//    err := req.Send()
4704//    if err == nil { // resp is now filled
4705//        fmt.Println(resp)
4706//    }
4707//
4708// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudio
4709func (c *EMR) UpdateStudioRequest(input *UpdateStudioInput) (req *request.Request, output *UpdateStudioOutput) {
4710	op := &request.Operation{
4711		Name:       opUpdateStudio,
4712		HTTPMethod: "POST",
4713		HTTPPath:   "/",
4714	}
4715
4716	if input == nil {
4717		input = &UpdateStudioInput{}
4718	}
4719
4720	output = &UpdateStudioOutput{}
4721	req = c.newRequest(op, input, output)
4722	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4723	return
4724}
4725
4726// UpdateStudio API operation for Amazon EMR.
4727//
4728// Updates an Amazon EMR Studio configuration, including attributes such as
4729// name, description, and subnets.
4730//
4731// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4732// with awserr.Error's Code and Message methods to get detailed information about
4733// the error.
4734//
4735// See the AWS API reference guide for Amazon EMR's
4736// API operation UpdateStudio for usage and error information.
4737//
4738// Returned Error Types:
4739//   * InternalServerException
4740//   This exception occurs when there is an internal failure in the Amazon EMR
4741//   service.
4742//
4743//   * InvalidRequestException
4744//   This exception occurs when there is something wrong with user input.
4745//
4746// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudio
4747func (c *EMR) UpdateStudio(input *UpdateStudioInput) (*UpdateStudioOutput, error) {
4748	req, out := c.UpdateStudioRequest(input)
4749	return out, req.Send()
4750}
4751
4752// UpdateStudioWithContext is the same as UpdateStudio with the addition of
4753// the ability to pass a context and additional request options.
4754//
4755// See UpdateStudio for details on how to use this API operation.
4756//
4757// The context must be non-nil and will be used for request cancellation. If
4758// the context is nil a panic will occur. In the future the SDK may create
4759// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4760// for more information on using Contexts.
4761func (c *EMR) UpdateStudioWithContext(ctx aws.Context, input *UpdateStudioInput, opts ...request.Option) (*UpdateStudioOutput, error) {
4762	req, out := c.UpdateStudioRequest(input)
4763	req.SetContext(ctx)
4764	req.ApplyOptions(opts...)
4765	return out, req.Send()
4766}
4767
4768const opUpdateStudioSessionMapping = "UpdateStudioSessionMapping"
4769
4770// UpdateStudioSessionMappingRequest generates a "aws/request.Request" representing the
4771// client's request for the UpdateStudioSessionMapping operation. The "output" return
4772// value will be populated with the request's response once the request completes
4773// successfully.
4774//
4775// Use "Send" method on the returned Request to send the API call to the service.
4776// the "output" return value is not valid until after Send returns without error.
4777//
4778// See UpdateStudioSessionMapping for more information on using the UpdateStudioSessionMapping
4779// API call, and error handling.
4780//
4781// This method is useful when you want to inject custom logic or configuration
4782// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4783//
4784//
4785//    // Example sending a request using the UpdateStudioSessionMappingRequest method.
4786//    req, resp := client.UpdateStudioSessionMappingRequest(params)
4787//
4788//    err := req.Send()
4789//    if err == nil { // resp is now filled
4790//        fmt.Println(resp)
4791//    }
4792//
4793// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudioSessionMapping
4794func (c *EMR) UpdateStudioSessionMappingRequest(input *UpdateStudioSessionMappingInput) (req *request.Request, output *UpdateStudioSessionMappingOutput) {
4795	op := &request.Operation{
4796		Name:       opUpdateStudioSessionMapping,
4797		HTTPMethod: "POST",
4798		HTTPPath:   "/",
4799	}
4800
4801	if input == nil {
4802		input = &UpdateStudioSessionMappingInput{}
4803	}
4804
4805	output = &UpdateStudioSessionMappingOutput{}
4806	req = c.newRequest(op, input, output)
4807	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4808	return
4809}
4810
4811// UpdateStudioSessionMapping API operation for Amazon EMR.
4812//
4813// Updates the session policy attached to the user or group for the specified
4814// Amazon EMR Studio.
4815//
4816// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4817// with awserr.Error's Code and Message methods to get detailed information about
4818// the error.
4819//
4820// See the AWS API reference guide for Amazon EMR's
4821// API operation UpdateStudioSessionMapping for usage and error information.
4822//
4823// Returned Error Types:
4824//   * InternalServerError
4825//   Indicates that an error occurred while processing the request and that the
4826//   request was not completed.
4827//
4828//   * InvalidRequestException
4829//   This exception occurs when there is something wrong with user input.
4830//
4831// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudioSessionMapping
4832func (c *EMR) UpdateStudioSessionMapping(input *UpdateStudioSessionMappingInput) (*UpdateStudioSessionMappingOutput, error) {
4833	req, out := c.UpdateStudioSessionMappingRequest(input)
4834	return out, req.Send()
4835}
4836
4837// UpdateStudioSessionMappingWithContext is the same as UpdateStudioSessionMapping with the addition of
4838// the ability to pass a context and additional request options.
4839//
4840// See UpdateStudioSessionMapping for details on how to use this API operation.
4841//
4842// The context must be non-nil and will be used for request cancellation. If
4843// the context is nil a panic will occur. In the future the SDK may create
4844// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4845// for more information on using Contexts.
4846func (c *EMR) UpdateStudioSessionMappingWithContext(ctx aws.Context, input *UpdateStudioSessionMappingInput, opts ...request.Option) (*UpdateStudioSessionMappingOutput, error) {
4847	req, out := c.UpdateStudioSessionMappingRequest(input)
4848	req.SetContext(ctx)
4849	req.ApplyOptions(opts...)
4850	return out, req.Send()
4851}
4852
4853type AddInstanceFleetInput struct {
4854	_ struct{} `type:"structure"`
4855
4856	// The unique identifier of the cluster.
4857	//
4858	// ClusterId is a required field
4859	ClusterId *string `type:"string" required:"true"`
4860
4861	// Specifies the configuration of the instance fleet.
4862	//
4863	// InstanceFleet is a required field
4864	InstanceFleet *InstanceFleetConfig `type:"structure" required:"true"`
4865}
4866
4867// String returns the string representation
4868func (s AddInstanceFleetInput) String() string {
4869	return awsutil.Prettify(s)
4870}
4871
4872// GoString returns the string representation
4873func (s AddInstanceFleetInput) GoString() string {
4874	return s.String()
4875}
4876
4877// Validate inspects the fields of the type to determine if they are valid.
4878func (s *AddInstanceFleetInput) Validate() error {
4879	invalidParams := request.ErrInvalidParams{Context: "AddInstanceFleetInput"}
4880	if s.ClusterId == nil {
4881		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
4882	}
4883	if s.InstanceFleet == nil {
4884		invalidParams.Add(request.NewErrParamRequired("InstanceFleet"))
4885	}
4886	if s.InstanceFleet != nil {
4887		if err := s.InstanceFleet.Validate(); err != nil {
4888			invalidParams.AddNested("InstanceFleet", err.(request.ErrInvalidParams))
4889		}
4890	}
4891
4892	if invalidParams.Len() > 0 {
4893		return invalidParams
4894	}
4895	return nil
4896}
4897
4898// SetClusterId sets the ClusterId field's value.
4899func (s *AddInstanceFleetInput) SetClusterId(v string) *AddInstanceFleetInput {
4900	s.ClusterId = &v
4901	return s
4902}
4903
4904// SetInstanceFleet sets the InstanceFleet field's value.
4905func (s *AddInstanceFleetInput) SetInstanceFleet(v *InstanceFleetConfig) *AddInstanceFleetInput {
4906	s.InstanceFleet = v
4907	return s
4908}
4909
4910type AddInstanceFleetOutput struct {
4911	_ struct{} `type:"structure"`
4912
4913	// The Amazon Resource Name of the cluster.
4914	ClusterArn *string `min:"20" type:"string"`
4915
4916	// The unique identifier of the cluster.
4917	ClusterId *string `type:"string"`
4918
4919	// The unique identifier of the instance fleet.
4920	InstanceFleetId *string `type:"string"`
4921}
4922
4923// String returns the string representation
4924func (s AddInstanceFleetOutput) String() string {
4925	return awsutil.Prettify(s)
4926}
4927
4928// GoString returns the string representation
4929func (s AddInstanceFleetOutput) GoString() string {
4930	return s.String()
4931}
4932
4933// SetClusterArn sets the ClusterArn field's value.
4934func (s *AddInstanceFleetOutput) SetClusterArn(v string) *AddInstanceFleetOutput {
4935	s.ClusterArn = &v
4936	return s
4937}
4938
4939// SetClusterId sets the ClusterId field's value.
4940func (s *AddInstanceFleetOutput) SetClusterId(v string) *AddInstanceFleetOutput {
4941	s.ClusterId = &v
4942	return s
4943}
4944
4945// SetInstanceFleetId sets the InstanceFleetId field's value.
4946func (s *AddInstanceFleetOutput) SetInstanceFleetId(v string) *AddInstanceFleetOutput {
4947	s.InstanceFleetId = &v
4948	return s
4949}
4950
4951// Input to an AddInstanceGroups call.
4952type AddInstanceGroupsInput struct {
4953	_ struct{} `type:"structure"`
4954
4955	// Instance groups to add.
4956	//
4957	// InstanceGroups is a required field
4958	InstanceGroups []*InstanceGroupConfig `type:"list" required:"true"`
4959
4960	// Job flow in which to add the instance groups.
4961	//
4962	// JobFlowId is a required field
4963	JobFlowId *string `type:"string" required:"true"`
4964}
4965
4966// String returns the string representation
4967func (s AddInstanceGroupsInput) String() string {
4968	return awsutil.Prettify(s)
4969}
4970
4971// GoString returns the string representation
4972func (s AddInstanceGroupsInput) GoString() string {
4973	return s.String()
4974}
4975
4976// Validate inspects the fields of the type to determine if they are valid.
4977func (s *AddInstanceGroupsInput) Validate() error {
4978	invalidParams := request.ErrInvalidParams{Context: "AddInstanceGroupsInput"}
4979	if s.InstanceGroups == nil {
4980		invalidParams.Add(request.NewErrParamRequired("InstanceGroups"))
4981	}
4982	if s.JobFlowId == nil {
4983		invalidParams.Add(request.NewErrParamRequired("JobFlowId"))
4984	}
4985	if s.InstanceGroups != nil {
4986		for i, v := range s.InstanceGroups {
4987			if v == nil {
4988				continue
4989			}
4990			if err := v.Validate(); err != nil {
4991				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
4992			}
4993		}
4994	}
4995
4996	if invalidParams.Len() > 0 {
4997		return invalidParams
4998	}
4999	return nil
5000}
5001
5002// SetInstanceGroups sets the InstanceGroups field's value.
5003func (s *AddInstanceGroupsInput) SetInstanceGroups(v []*InstanceGroupConfig) *AddInstanceGroupsInput {
5004	s.InstanceGroups = v
5005	return s
5006}
5007
5008// SetJobFlowId sets the JobFlowId field's value.
5009func (s *AddInstanceGroupsInput) SetJobFlowId(v string) *AddInstanceGroupsInput {
5010	s.JobFlowId = &v
5011	return s
5012}
5013
5014// Output from an AddInstanceGroups call.
5015type AddInstanceGroupsOutput struct {
5016	_ struct{} `type:"structure"`
5017
5018	// The Amazon Resource Name of the cluster.
5019	ClusterArn *string `min:"20" type:"string"`
5020
5021	// Instance group IDs of the newly created instance groups.
5022	InstanceGroupIds []*string `type:"list"`
5023
5024	// The job flow ID in which the instance groups are added.
5025	JobFlowId *string `type:"string"`
5026}
5027
5028// String returns the string representation
5029func (s AddInstanceGroupsOutput) String() string {
5030	return awsutil.Prettify(s)
5031}
5032
5033// GoString returns the string representation
5034func (s AddInstanceGroupsOutput) GoString() string {
5035	return s.String()
5036}
5037
5038// SetClusterArn sets the ClusterArn field's value.
5039func (s *AddInstanceGroupsOutput) SetClusterArn(v string) *AddInstanceGroupsOutput {
5040	s.ClusterArn = &v
5041	return s
5042}
5043
5044// SetInstanceGroupIds sets the InstanceGroupIds field's value.
5045func (s *AddInstanceGroupsOutput) SetInstanceGroupIds(v []*string) *AddInstanceGroupsOutput {
5046	s.InstanceGroupIds = v
5047	return s
5048}
5049
5050// SetJobFlowId sets the JobFlowId field's value.
5051func (s *AddInstanceGroupsOutput) SetJobFlowId(v string) *AddInstanceGroupsOutput {
5052	s.JobFlowId = &v
5053	return s
5054}
5055
5056// The input argument to the AddJobFlowSteps operation.
5057type AddJobFlowStepsInput struct {
5058	_ struct{} `type:"structure"`
5059
5060	// A string that uniquely identifies the job flow. This identifier is returned
5061	// by RunJobFlow and can also be obtained from ListClusters.
5062	//
5063	// JobFlowId is a required field
5064	JobFlowId *string `type:"string" required:"true"`
5065
5066	// A list of StepConfig to be executed by the job flow.
5067	//
5068	// Steps is a required field
5069	Steps []*StepConfig `type:"list" required:"true"`
5070}
5071
5072// String returns the string representation
5073func (s AddJobFlowStepsInput) String() string {
5074	return awsutil.Prettify(s)
5075}
5076
5077// GoString returns the string representation
5078func (s AddJobFlowStepsInput) GoString() string {
5079	return s.String()
5080}
5081
5082// Validate inspects the fields of the type to determine if they are valid.
5083func (s *AddJobFlowStepsInput) Validate() error {
5084	invalidParams := request.ErrInvalidParams{Context: "AddJobFlowStepsInput"}
5085	if s.JobFlowId == nil {
5086		invalidParams.Add(request.NewErrParamRequired("JobFlowId"))
5087	}
5088	if s.Steps == nil {
5089		invalidParams.Add(request.NewErrParamRequired("Steps"))
5090	}
5091	if s.Steps != nil {
5092		for i, v := range s.Steps {
5093			if v == nil {
5094				continue
5095			}
5096			if err := v.Validate(); err != nil {
5097				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Steps", i), err.(request.ErrInvalidParams))
5098			}
5099		}
5100	}
5101
5102	if invalidParams.Len() > 0 {
5103		return invalidParams
5104	}
5105	return nil
5106}
5107
5108// SetJobFlowId sets the JobFlowId field's value.
5109func (s *AddJobFlowStepsInput) SetJobFlowId(v string) *AddJobFlowStepsInput {
5110	s.JobFlowId = &v
5111	return s
5112}
5113
5114// SetSteps sets the Steps field's value.
5115func (s *AddJobFlowStepsInput) SetSteps(v []*StepConfig) *AddJobFlowStepsInput {
5116	s.Steps = v
5117	return s
5118}
5119
5120// The output for the AddJobFlowSteps operation.
5121type AddJobFlowStepsOutput struct {
5122	_ struct{} `type:"structure"`
5123
5124	// The identifiers of the list of steps added to the job flow.
5125	StepIds []*string `type:"list"`
5126}
5127
5128// String returns the string representation
5129func (s AddJobFlowStepsOutput) String() string {
5130	return awsutil.Prettify(s)
5131}
5132
5133// GoString returns the string representation
5134func (s AddJobFlowStepsOutput) GoString() string {
5135	return s.String()
5136}
5137
5138// SetStepIds sets the StepIds field's value.
5139func (s *AddJobFlowStepsOutput) SetStepIds(v []*string) *AddJobFlowStepsOutput {
5140	s.StepIds = v
5141	return s
5142}
5143
5144// This input identifies a cluster and a list of tags to attach.
5145type AddTagsInput struct {
5146	_ struct{} `type:"structure"`
5147
5148	// The Amazon EMR resource identifier to which tags will be added. This value
5149	// must be a cluster identifier.
5150	//
5151	// ResourceId is a required field
5152	ResourceId *string `type:"string" required:"true"`
5153
5154	// A list of tags to associate with a cluster and propagate to EC2 instances.
5155	// Tags are user-defined key-value pairs that consist of a required key string
5156	// with a maximum of 128 characters, and an optional value string with a maximum
5157	// of 256 characters.
5158	//
5159	// Tags is a required field
5160	Tags []*Tag `type:"list" required:"true"`
5161}
5162
5163// String returns the string representation
5164func (s AddTagsInput) String() string {
5165	return awsutil.Prettify(s)
5166}
5167
5168// GoString returns the string representation
5169func (s AddTagsInput) GoString() string {
5170	return s.String()
5171}
5172
5173// Validate inspects the fields of the type to determine if they are valid.
5174func (s *AddTagsInput) Validate() error {
5175	invalidParams := request.ErrInvalidParams{Context: "AddTagsInput"}
5176	if s.ResourceId == nil {
5177		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
5178	}
5179	if s.Tags == nil {
5180		invalidParams.Add(request.NewErrParamRequired("Tags"))
5181	}
5182
5183	if invalidParams.Len() > 0 {
5184		return invalidParams
5185	}
5186	return nil
5187}
5188
5189// SetResourceId sets the ResourceId field's value.
5190func (s *AddTagsInput) SetResourceId(v string) *AddTagsInput {
5191	s.ResourceId = &v
5192	return s
5193}
5194
5195// SetTags sets the Tags field's value.
5196func (s *AddTagsInput) SetTags(v []*Tag) *AddTagsInput {
5197	s.Tags = v
5198	return s
5199}
5200
5201// This output indicates the result of adding tags to a resource.
5202type AddTagsOutput struct {
5203	_ struct{} `type:"structure"`
5204}
5205
5206// String returns the string representation
5207func (s AddTagsOutput) String() string {
5208	return awsutil.Prettify(s)
5209}
5210
5211// GoString returns the string representation
5212func (s AddTagsOutput) GoString() string {
5213	return s.String()
5214}
5215
5216// With Amazon EMR release version 4.0 and later, the only accepted parameter
5217// is the application name. To pass arguments to applications, you use configuration
5218// classifications specified using configuration JSON objects. For more information,
5219// see Configuring Applications (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html).
5220//
5221// With earlier Amazon EMR releases, the application is any Amazon or third-party
5222// software that you can add to the cluster. This structure contains a list
5223// of strings that indicates the software to use with the cluster and accepts
5224// a user argument list. Amazon EMR accepts and forwards the argument list to
5225// the corresponding installation script as bootstrap action argument.
5226type Application struct {
5227	_ struct{} `type:"structure"`
5228
5229	// This option is for advanced users only. This is meta information about third-party
5230	// applications that third-party vendors use for testing purposes.
5231	AdditionalInfo map[string]*string `type:"map"`
5232
5233	// Arguments for Amazon EMR to pass to the application.
5234	Args []*string `type:"list"`
5235
5236	// The name of the application.
5237	Name *string `type:"string"`
5238
5239	// The version of the application.
5240	Version *string `type:"string"`
5241}
5242
5243// String returns the string representation
5244func (s Application) String() string {
5245	return awsutil.Prettify(s)
5246}
5247
5248// GoString returns the string representation
5249func (s Application) GoString() string {
5250	return s.String()
5251}
5252
5253// SetAdditionalInfo sets the AdditionalInfo field's value.
5254func (s *Application) SetAdditionalInfo(v map[string]*string) *Application {
5255	s.AdditionalInfo = v
5256	return s
5257}
5258
5259// SetArgs sets the Args field's value.
5260func (s *Application) SetArgs(v []*string) *Application {
5261	s.Args = v
5262	return s
5263}
5264
5265// SetName sets the Name field's value.
5266func (s *Application) SetName(v string) *Application {
5267	s.Name = &v
5268	return s
5269}
5270
5271// SetVersion sets the Version field's value.
5272func (s *Application) SetVersion(v string) *Application {
5273	s.Version = &v
5274	return s
5275}
5276
5277// An automatic scaling policy for a core instance group or task instance group
5278// in an Amazon EMR cluster. An automatic scaling policy defines how an instance
5279// group dynamically adds and terminates EC2 instances in response to the value
5280// of a CloudWatch metric. See PutAutoScalingPolicy.
5281type AutoScalingPolicy struct {
5282	_ struct{} `type:"structure"`
5283
5284	// The upper and lower EC2 instance limits for an automatic scaling policy.
5285	// Automatic scaling activity will not cause an instance group to grow above
5286	// or below these limits.
5287	//
5288	// Constraints is a required field
5289	Constraints *ScalingConstraints `type:"structure" required:"true"`
5290
5291	// The scale-in and scale-out rules that comprise the automatic scaling policy.
5292	//
5293	// Rules is a required field
5294	Rules []*ScalingRule `type:"list" required:"true"`
5295}
5296
5297// String returns the string representation
5298func (s AutoScalingPolicy) String() string {
5299	return awsutil.Prettify(s)
5300}
5301
5302// GoString returns the string representation
5303func (s AutoScalingPolicy) GoString() string {
5304	return s.String()
5305}
5306
5307// Validate inspects the fields of the type to determine if they are valid.
5308func (s *AutoScalingPolicy) Validate() error {
5309	invalidParams := request.ErrInvalidParams{Context: "AutoScalingPolicy"}
5310	if s.Constraints == nil {
5311		invalidParams.Add(request.NewErrParamRequired("Constraints"))
5312	}
5313	if s.Rules == nil {
5314		invalidParams.Add(request.NewErrParamRequired("Rules"))
5315	}
5316	if s.Constraints != nil {
5317		if err := s.Constraints.Validate(); err != nil {
5318			invalidParams.AddNested("Constraints", err.(request.ErrInvalidParams))
5319		}
5320	}
5321	if s.Rules != nil {
5322		for i, v := range s.Rules {
5323			if v == nil {
5324				continue
5325			}
5326			if err := v.Validate(); err != nil {
5327				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams))
5328			}
5329		}
5330	}
5331
5332	if invalidParams.Len() > 0 {
5333		return invalidParams
5334	}
5335	return nil
5336}
5337
5338// SetConstraints sets the Constraints field's value.
5339func (s *AutoScalingPolicy) SetConstraints(v *ScalingConstraints) *AutoScalingPolicy {
5340	s.Constraints = v
5341	return s
5342}
5343
5344// SetRules sets the Rules field's value.
5345func (s *AutoScalingPolicy) SetRules(v []*ScalingRule) *AutoScalingPolicy {
5346	s.Rules = v
5347	return s
5348}
5349
5350// An automatic scaling policy for a core instance group or task instance group
5351// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
5352// group dynamically adds and terminates EC2 instances in response to the value
5353// of a CloudWatch metric. See PutAutoScalingPolicy.
5354type AutoScalingPolicyDescription struct {
5355	_ struct{} `type:"structure"`
5356
5357	// The upper and lower EC2 instance limits for an automatic scaling policy.
5358	// Automatic scaling activity will not cause an instance group to grow above
5359	// or below these limits.
5360	Constraints *ScalingConstraints `type:"structure"`
5361
5362	// The scale-in and scale-out rules that comprise the automatic scaling policy.
5363	Rules []*ScalingRule `type:"list"`
5364
5365	// The status of an automatic scaling policy.
5366	Status *AutoScalingPolicyStatus `type:"structure"`
5367}
5368
5369// String returns the string representation
5370func (s AutoScalingPolicyDescription) String() string {
5371	return awsutil.Prettify(s)
5372}
5373
5374// GoString returns the string representation
5375func (s AutoScalingPolicyDescription) GoString() string {
5376	return s.String()
5377}
5378
5379// SetConstraints sets the Constraints field's value.
5380func (s *AutoScalingPolicyDescription) SetConstraints(v *ScalingConstraints) *AutoScalingPolicyDescription {
5381	s.Constraints = v
5382	return s
5383}
5384
5385// SetRules sets the Rules field's value.
5386func (s *AutoScalingPolicyDescription) SetRules(v []*ScalingRule) *AutoScalingPolicyDescription {
5387	s.Rules = v
5388	return s
5389}
5390
5391// SetStatus sets the Status field's value.
5392func (s *AutoScalingPolicyDescription) SetStatus(v *AutoScalingPolicyStatus) *AutoScalingPolicyDescription {
5393	s.Status = v
5394	return s
5395}
5396
5397// The reason for an AutoScalingPolicyStatus change.
5398type AutoScalingPolicyStateChangeReason struct {
5399	_ struct{} `type:"structure"`
5400
5401	// The code indicating the reason for the change in status.USER_REQUEST indicates
5402	// that the scaling policy status was changed by a user. PROVISION_FAILURE indicates
5403	// that the status change was because the policy failed to provision. CLEANUP_FAILURE
5404	// indicates an error.
5405	Code *string `type:"string" enum:"AutoScalingPolicyStateChangeReasonCode"`
5406
5407	// A friendly, more verbose message that accompanies an automatic scaling policy
5408	// state change.
5409	Message *string `type:"string"`
5410}
5411
5412// String returns the string representation
5413func (s AutoScalingPolicyStateChangeReason) String() string {
5414	return awsutil.Prettify(s)
5415}
5416
5417// GoString returns the string representation
5418func (s AutoScalingPolicyStateChangeReason) GoString() string {
5419	return s.String()
5420}
5421
5422// SetCode sets the Code field's value.
5423func (s *AutoScalingPolicyStateChangeReason) SetCode(v string) *AutoScalingPolicyStateChangeReason {
5424	s.Code = &v
5425	return s
5426}
5427
5428// SetMessage sets the Message field's value.
5429func (s *AutoScalingPolicyStateChangeReason) SetMessage(v string) *AutoScalingPolicyStateChangeReason {
5430	s.Message = &v
5431	return s
5432}
5433
5434// The status of an automatic scaling policy.
5435type AutoScalingPolicyStatus struct {
5436	_ struct{} `type:"structure"`
5437
5438	// Indicates the status of the automatic scaling policy.
5439	State *string `type:"string" enum:"AutoScalingPolicyState"`
5440
5441	// The reason for a change in status.
5442	StateChangeReason *AutoScalingPolicyStateChangeReason `type:"structure"`
5443}
5444
5445// String returns the string representation
5446func (s AutoScalingPolicyStatus) String() string {
5447	return awsutil.Prettify(s)
5448}
5449
5450// GoString returns the string representation
5451func (s AutoScalingPolicyStatus) GoString() string {
5452	return s.String()
5453}
5454
5455// SetState sets the State field's value.
5456func (s *AutoScalingPolicyStatus) SetState(v string) *AutoScalingPolicyStatus {
5457	s.State = &v
5458	return s
5459}
5460
5461// SetStateChangeReason sets the StateChangeReason field's value.
5462func (s *AutoScalingPolicyStatus) SetStateChangeReason(v *AutoScalingPolicyStateChangeReason) *AutoScalingPolicyStatus {
5463	s.StateChangeReason = v
5464	return s
5465}
5466
5467// A configuration for Amazon EMR block public access. When BlockPublicSecurityGroupRules
5468// is set to true, Amazon EMR prevents cluster creation if one of the cluster's
5469// security groups has a rule that allows inbound traffic from 0.0.0.0/0 or
5470// ::/0 on a port, unless the port is specified as an exception using PermittedPublicSecurityGroupRuleRanges.
5471type BlockPublicAccessConfiguration struct {
5472	_ struct{} `type:"structure"`
5473
5474	// Indicates whether Amazon EMR block public access is enabled (true) or disabled
5475	// (false). By default, the value is false for accounts that have created EMR
5476	// clusters before July 2019. For accounts created after this, the default is
5477	// true.
5478	//
5479	// BlockPublicSecurityGroupRules is a required field
5480	BlockPublicSecurityGroupRules *bool `type:"boolean" required:"true"`
5481
5482	// Specifies ports and port ranges that are permitted to have security group
5483	// rules that allow inbound traffic from all public sources. For example, if
5484	// Port 23 (Telnet) is specified for PermittedPublicSecurityGroupRuleRanges,
5485	// Amazon EMR allows cluster creation if a security group associated with the
5486	// cluster has a rule that allows inbound traffic on Port 23 from IPv4 0.0.0.0/0
5487	// or IPv6 port ::/0 as the source.
5488	//
5489	// By default, Port 22, which is used for SSH access to the cluster EC2 instances,
5490	// is in the list of PermittedPublicSecurityGroupRuleRanges.
5491	PermittedPublicSecurityGroupRuleRanges []*PortRange `type:"list"`
5492}
5493
5494// String returns the string representation
5495func (s BlockPublicAccessConfiguration) String() string {
5496	return awsutil.Prettify(s)
5497}
5498
5499// GoString returns the string representation
5500func (s BlockPublicAccessConfiguration) GoString() string {
5501	return s.String()
5502}
5503
5504// Validate inspects the fields of the type to determine if they are valid.
5505func (s *BlockPublicAccessConfiguration) Validate() error {
5506	invalidParams := request.ErrInvalidParams{Context: "BlockPublicAccessConfiguration"}
5507	if s.BlockPublicSecurityGroupRules == nil {
5508		invalidParams.Add(request.NewErrParamRequired("BlockPublicSecurityGroupRules"))
5509	}
5510	if s.PermittedPublicSecurityGroupRuleRanges != nil {
5511		for i, v := range s.PermittedPublicSecurityGroupRuleRanges {
5512			if v == nil {
5513				continue
5514			}
5515			if err := v.Validate(); err != nil {
5516				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PermittedPublicSecurityGroupRuleRanges", i), err.(request.ErrInvalidParams))
5517			}
5518		}
5519	}
5520
5521	if invalidParams.Len() > 0 {
5522		return invalidParams
5523	}
5524	return nil
5525}
5526
5527// SetBlockPublicSecurityGroupRules sets the BlockPublicSecurityGroupRules field's value.
5528func (s *BlockPublicAccessConfiguration) SetBlockPublicSecurityGroupRules(v bool) *BlockPublicAccessConfiguration {
5529	s.BlockPublicSecurityGroupRules = &v
5530	return s
5531}
5532
5533// SetPermittedPublicSecurityGroupRuleRanges sets the PermittedPublicSecurityGroupRuleRanges field's value.
5534func (s *BlockPublicAccessConfiguration) SetPermittedPublicSecurityGroupRuleRanges(v []*PortRange) *BlockPublicAccessConfiguration {
5535	s.PermittedPublicSecurityGroupRuleRanges = v
5536	return s
5537}
5538
5539// Properties that describe the Amazon Web Services principal that created the
5540// BlockPublicAccessConfiguration using the PutBlockPublicAccessConfiguration
5541// action as well as the date and time that the configuration was created. Each
5542// time a configuration for block public access is updated, Amazon EMR updates
5543// this metadata.
5544type BlockPublicAccessConfigurationMetadata struct {
5545	_ struct{} `type:"structure"`
5546
5547	// The Amazon Resource Name that created or last modified the configuration.
5548	//
5549	// CreatedByArn is a required field
5550	CreatedByArn *string `min:"20" type:"string" required:"true"`
5551
5552	// The date and time that the configuration was created.
5553	//
5554	// CreationDateTime is a required field
5555	CreationDateTime *time.Time `type:"timestamp" required:"true"`
5556}
5557
5558// String returns the string representation
5559func (s BlockPublicAccessConfigurationMetadata) String() string {
5560	return awsutil.Prettify(s)
5561}
5562
5563// GoString returns the string representation
5564func (s BlockPublicAccessConfigurationMetadata) GoString() string {
5565	return s.String()
5566}
5567
5568// SetCreatedByArn sets the CreatedByArn field's value.
5569func (s *BlockPublicAccessConfigurationMetadata) SetCreatedByArn(v string) *BlockPublicAccessConfigurationMetadata {
5570	s.CreatedByArn = &v
5571	return s
5572}
5573
5574// SetCreationDateTime sets the CreationDateTime field's value.
5575func (s *BlockPublicAccessConfigurationMetadata) SetCreationDateTime(v time.Time) *BlockPublicAccessConfigurationMetadata {
5576	s.CreationDateTime = &v
5577	return s
5578}
5579
5580// Configuration of a bootstrap action.
5581type BootstrapActionConfig struct {
5582	_ struct{} `type:"structure"`
5583
5584	// The name of the bootstrap action.
5585	//
5586	// Name is a required field
5587	Name *string `type:"string" required:"true"`
5588
5589	// The script run by the bootstrap action.
5590	//
5591	// ScriptBootstrapAction is a required field
5592	ScriptBootstrapAction *ScriptBootstrapActionConfig `type:"structure" required:"true"`
5593}
5594
5595// String returns the string representation
5596func (s BootstrapActionConfig) String() string {
5597	return awsutil.Prettify(s)
5598}
5599
5600// GoString returns the string representation
5601func (s BootstrapActionConfig) GoString() string {
5602	return s.String()
5603}
5604
5605// Validate inspects the fields of the type to determine if they are valid.
5606func (s *BootstrapActionConfig) Validate() error {
5607	invalidParams := request.ErrInvalidParams{Context: "BootstrapActionConfig"}
5608	if s.Name == nil {
5609		invalidParams.Add(request.NewErrParamRequired("Name"))
5610	}
5611	if s.ScriptBootstrapAction == nil {
5612		invalidParams.Add(request.NewErrParamRequired("ScriptBootstrapAction"))
5613	}
5614	if s.ScriptBootstrapAction != nil {
5615		if err := s.ScriptBootstrapAction.Validate(); err != nil {
5616			invalidParams.AddNested("ScriptBootstrapAction", err.(request.ErrInvalidParams))
5617		}
5618	}
5619
5620	if invalidParams.Len() > 0 {
5621		return invalidParams
5622	}
5623	return nil
5624}
5625
5626// SetName sets the Name field's value.
5627func (s *BootstrapActionConfig) SetName(v string) *BootstrapActionConfig {
5628	s.Name = &v
5629	return s
5630}
5631
5632// SetScriptBootstrapAction sets the ScriptBootstrapAction field's value.
5633func (s *BootstrapActionConfig) SetScriptBootstrapAction(v *ScriptBootstrapActionConfig) *BootstrapActionConfig {
5634	s.ScriptBootstrapAction = v
5635	return s
5636}
5637
5638// Reports the configuration of a bootstrap action in a cluster (job flow).
5639type BootstrapActionDetail struct {
5640	_ struct{} `type:"structure"`
5641
5642	// A description of the bootstrap action.
5643	BootstrapActionConfig *BootstrapActionConfig `type:"structure"`
5644}
5645
5646// String returns the string representation
5647func (s BootstrapActionDetail) String() string {
5648	return awsutil.Prettify(s)
5649}
5650
5651// GoString returns the string representation
5652func (s BootstrapActionDetail) GoString() string {
5653	return s.String()
5654}
5655
5656// SetBootstrapActionConfig sets the BootstrapActionConfig field's value.
5657func (s *BootstrapActionDetail) SetBootstrapActionConfig(v *BootstrapActionConfig) *BootstrapActionDetail {
5658	s.BootstrapActionConfig = v
5659	return s
5660}
5661
5662// Specification of the status of a CancelSteps request. Available only in Amazon
5663// EMR version 4.8.0 and later, excluding version 5.0.0.
5664type CancelStepsInfo struct {
5665	_ struct{} `type:"structure"`
5666
5667	// The reason for the failure if the CancelSteps request fails.
5668	Reason *string `type:"string"`
5669
5670	// The status of a CancelSteps Request. The value may be SUBMITTED or FAILED.
5671	Status *string `type:"string" enum:"CancelStepsRequestStatus"`
5672
5673	// The encrypted StepId of a step.
5674	StepId *string `type:"string"`
5675}
5676
5677// String returns the string representation
5678func (s CancelStepsInfo) String() string {
5679	return awsutil.Prettify(s)
5680}
5681
5682// GoString returns the string representation
5683func (s CancelStepsInfo) GoString() string {
5684	return s.String()
5685}
5686
5687// SetReason sets the Reason field's value.
5688func (s *CancelStepsInfo) SetReason(v string) *CancelStepsInfo {
5689	s.Reason = &v
5690	return s
5691}
5692
5693// SetStatus sets the Status field's value.
5694func (s *CancelStepsInfo) SetStatus(v string) *CancelStepsInfo {
5695	s.Status = &v
5696	return s
5697}
5698
5699// SetStepId sets the StepId field's value.
5700func (s *CancelStepsInfo) SetStepId(v string) *CancelStepsInfo {
5701	s.StepId = &v
5702	return s
5703}
5704
5705// The input argument to the CancelSteps operation.
5706type CancelStepsInput struct {
5707	_ struct{} `type:"structure"`
5708
5709	// The ClusterID for the specified steps that will be canceled. Use RunJobFlow
5710	// and ListClusters to get ClusterIDs.
5711	//
5712	// ClusterId is a required field
5713	ClusterId *string `type:"string" required:"true"`
5714
5715	// The option to choose to cancel RUNNING steps. By default, the value is SEND_INTERRUPT.
5716	StepCancellationOption *string `type:"string" enum:"StepCancellationOption"`
5717
5718	// The list of StepIDs to cancel. Use ListSteps to get steps and their states
5719	// for the specified cluster.
5720	//
5721	// StepIds is a required field
5722	StepIds []*string `type:"list" required:"true"`
5723}
5724
5725// String returns the string representation
5726func (s CancelStepsInput) String() string {
5727	return awsutil.Prettify(s)
5728}
5729
5730// GoString returns the string representation
5731func (s CancelStepsInput) GoString() string {
5732	return s.String()
5733}
5734
5735// Validate inspects the fields of the type to determine if they are valid.
5736func (s *CancelStepsInput) Validate() error {
5737	invalidParams := request.ErrInvalidParams{Context: "CancelStepsInput"}
5738	if s.ClusterId == nil {
5739		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
5740	}
5741	if s.StepIds == nil {
5742		invalidParams.Add(request.NewErrParamRequired("StepIds"))
5743	}
5744
5745	if invalidParams.Len() > 0 {
5746		return invalidParams
5747	}
5748	return nil
5749}
5750
5751// SetClusterId sets the ClusterId field's value.
5752func (s *CancelStepsInput) SetClusterId(v string) *CancelStepsInput {
5753	s.ClusterId = &v
5754	return s
5755}
5756
5757// SetStepCancellationOption sets the StepCancellationOption field's value.
5758func (s *CancelStepsInput) SetStepCancellationOption(v string) *CancelStepsInput {
5759	s.StepCancellationOption = &v
5760	return s
5761}
5762
5763// SetStepIds sets the StepIds field's value.
5764func (s *CancelStepsInput) SetStepIds(v []*string) *CancelStepsInput {
5765	s.StepIds = v
5766	return s
5767}
5768
5769// The output for the CancelSteps operation.
5770type CancelStepsOutput struct {
5771	_ struct{} `type:"structure"`
5772
5773	// A list of CancelStepsInfo, which shows the status of specified cancel requests
5774	// for each StepID specified.
5775	CancelStepsInfoList []*CancelStepsInfo `type:"list"`
5776}
5777
5778// String returns the string representation
5779func (s CancelStepsOutput) String() string {
5780	return awsutil.Prettify(s)
5781}
5782
5783// GoString returns the string representation
5784func (s CancelStepsOutput) GoString() string {
5785	return s.String()
5786}
5787
5788// SetCancelStepsInfoList sets the CancelStepsInfoList field's value.
5789func (s *CancelStepsOutput) SetCancelStepsInfoList(v []*CancelStepsInfo) *CancelStepsOutput {
5790	s.CancelStepsInfoList = v
5791	return s
5792}
5793
5794// The definition of a CloudWatch metric alarm, which determines when an automatic
5795// scaling activity is triggered. When the defined alarm conditions are satisfied,
5796// scaling activity begins.
5797type CloudWatchAlarmDefinition struct {
5798	_ struct{} `type:"structure"`
5799
5800	// Determines how the metric specified by MetricName is compared to the value
5801	// specified by Threshold.
5802	//
5803	// ComparisonOperator is a required field
5804	ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"`
5805
5806	// A CloudWatch metric dimension.
5807	Dimensions []*MetricDimension `type:"list"`
5808
5809	// The number of periods, in five-minute increments, during which the alarm
5810	// condition must exist before the alarm triggers automatic scaling activity.
5811	// The default value is 1.
5812	EvaluationPeriods *int64 `type:"integer"`
5813
5814	// The name of the CloudWatch metric that is watched to determine an alarm condition.
5815	//
5816	// MetricName is a required field
5817	MetricName *string `type:"string" required:"true"`
5818
5819	// The namespace for the CloudWatch metric. The default is AWS/ElasticMapReduce.
5820	Namespace *string `type:"string"`
5821
5822	// The period, in seconds, over which the statistic is applied. EMR CloudWatch
5823	// metrics are emitted every five minutes (300 seconds), so if an EMR CloudWatch
5824	// metric is specified, specify 300.
5825	//
5826	// Period is a required field
5827	Period *int64 `type:"integer" required:"true"`
5828
5829	// The statistic to apply to the metric associated with the alarm. The default
5830	// is AVERAGE.
5831	Statistic *string `type:"string" enum:"Statistic"`
5832
5833	// The value against which the specified statistic is compared.
5834	//
5835	// Threshold is a required field
5836	Threshold *float64 `type:"double" required:"true"`
5837
5838	// The unit of measure associated with the CloudWatch metric being watched.
5839	// The value specified for Unit must correspond to the units specified in the
5840	// CloudWatch metric.
5841	Unit *string `type:"string" enum:"Unit"`
5842}
5843
5844// String returns the string representation
5845func (s CloudWatchAlarmDefinition) String() string {
5846	return awsutil.Prettify(s)
5847}
5848
5849// GoString returns the string representation
5850func (s CloudWatchAlarmDefinition) GoString() string {
5851	return s.String()
5852}
5853
5854// Validate inspects the fields of the type to determine if they are valid.
5855func (s *CloudWatchAlarmDefinition) Validate() error {
5856	invalidParams := request.ErrInvalidParams{Context: "CloudWatchAlarmDefinition"}
5857	if s.ComparisonOperator == nil {
5858		invalidParams.Add(request.NewErrParamRequired("ComparisonOperator"))
5859	}
5860	if s.MetricName == nil {
5861		invalidParams.Add(request.NewErrParamRequired("MetricName"))
5862	}
5863	if s.Period == nil {
5864		invalidParams.Add(request.NewErrParamRequired("Period"))
5865	}
5866	if s.Threshold == nil {
5867		invalidParams.Add(request.NewErrParamRequired("Threshold"))
5868	}
5869
5870	if invalidParams.Len() > 0 {
5871		return invalidParams
5872	}
5873	return nil
5874}
5875
5876// SetComparisonOperator sets the ComparisonOperator field's value.
5877func (s *CloudWatchAlarmDefinition) SetComparisonOperator(v string) *CloudWatchAlarmDefinition {
5878	s.ComparisonOperator = &v
5879	return s
5880}
5881
5882// SetDimensions sets the Dimensions field's value.
5883func (s *CloudWatchAlarmDefinition) SetDimensions(v []*MetricDimension) *CloudWatchAlarmDefinition {
5884	s.Dimensions = v
5885	return s
5886}
5887
5888// SetEvaluationPeriods sets the EvaluationPeriods field's value.
5889func (s *CloudWatchAlarmDefinition) SetEvaluationPeriods(v int64) *CloudWatchAlarmDefinition {
5890	s.EvaluationPeriods = &v
5891	return s
5892}
5893
5894// SetMetricName sets the MetricName field's value.
5895func (s *CloudWatchAlarmDefinition) SetMetricName(v string) *CloudWatchAlarmDefinition {
5896	s.MetricName = &v
5897	return s
5898}
5899
5900// SetNamespace sets the Namespace field's value.
5901func (s *CloudWatchAlarmDefinition) SetNamespace(v string) *CloudWatchAlarmDefinition {
5902	s.Namespace = &v
5903	return s
5904}
5905
5906// SetPeriod sets the Period field's value.
5907func (s *CloudWatchAlarmDefinition) SetPeriod(v int64) *CloudWatchAlarmDefinition {
5908	s.Period = &v
5909	return s
5910}
5911
5912// SetStatistic sets the Statistic field's value.
5913func (s *CloudWatchAlarmDefinition) SetStatistic(v string) *CloudWatchAlarmDefinition {
5914	s.Statistic = &v
5915	return s
5916}
5917
5918// SetThreshold sets the Threshold field's value.
5919func (s *CloudWatchAlarmDefinition) SetThreshold(v float64) *CloudWatchAlarmDefinition {
5920	s.Threshold = &v
5921	return s
5922}
5923
5924// SetUnit sets the Unit field's value.
5925func (s *CloudWatchAlarmDefinition) SetUnit(v string) *CloudWatchAlarmDefinition {
5926	s.Unit = &v
5927	return s
5928}
5929
5930// The detailed description of the cluster.
5931type Cluster struct {
5932	_ struct{} `type:"structure"`
5933
5934	// The applications installed on this cluster.
5935	Applications []*Application `type:"list"`
5936
5937	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
5938	// The IAM role provides permissions that the automatic scaling feature requires
5939	// to launch and terminate EC2 instances in an instance group.
5940	AutoScalingRole *string `type:"string"`
5941
5942	// Specifies whether the cluster should terminate after completing all steps.
5943	AutoTerminate *bool `type:"boolean"`
5944
5945	// The Amazon Resource Name of the cluster.
5946	ClusterArn *string `min:"20" type:"string"`
5947
5948	// Applies only to Amazon EMR releases 4.x and later. The list of Configurations
5949	// supplied to the EMR cluster.
5950	Configurations []*Configuration `type:"list"`
5951
5952	// Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
5953	// Amazon EBS-backed Linux AMI if the cluster uses a custom AMI.
5954	CustomAmiId *string `type:"string"`
5955
5956	// The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that
5957	// is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
5958	EbsRootVolumeSize *int64 `type:"integer"`
5959
5960	// Provides information about the EC2 instances in a cluster grouped by category.
5961	// For example, key name, subnet ID, IAM instance profile, and so on.
5962	Ec2InstanceAttributes *Ec2InstanceAttributes `type:"structure"`
5963
5964	// The unique identifier for the cluster.
5965	Id *string `type:"string"`
5966
5967	//
5968	// The instance fleet configuration is available only in Amazon EMR versions
5969	// 4.8.0 and later, excluding 5.0.x versions.
5970	//
5971	// The instance group configuration of the cluster. A value of INSTANCE_GROUP
5972	// indicates a uniform instance group configuration. A value of INSTANCE_FLEET
5973	// indicates an instance fleets configuration.
5974	InstanceCollectionType *string `type:"string" enum:"InstanceCollectionType"`
5975
5976	// Attributes for Kerberos configuration when Kerberos authentication is enabled
5977	// using a security configuration. For more information see Use Kerberos Authentication
5978	// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
5979	// in the Amazon EMR Management Guide.
5980	KerberosAttributes *KerberosAttributes `type:"structure"`
5981
5982	// The KMS key used for encrypting log files. This attribute is only available
5983	// with EMR version 5.30.0 and later, excluding EMR 6.0.0.
5984	LogEncryptionKmsKeyId *string `type:"string"`
5985
5986	// The path to the Amazon S3 location where logs for this cluster are stored.
5987	LogUri *string `type:"string"`
5988
5989	// The DNS name of the master node. If the cluster is on a private subnet, this
5990	// is the private DNS name. On a public subnet, this is the public DNS name.
5991	MasterPublicDnsName *string `type:"string"`
5992
5993	// The name of the cluster.
5994	Name *string `type:"string"`
5995
5996	// An approximation of the cost of the cluster, represented in m1.small/hours.
5997	// This value is incremented one time for every hour an m1.small instance runs.
5998	// Larger instances are weighted more, so an EC2 instance that is roughly four
5999	// times more expensive would result in the normalized instance hours being
6000	// incremented by four. This result is only an approximation and does not reflect
6001	// the actual billing rate.
6002	NormalizedInstanceHours *int64 `type:"integer"`
6003
6004	// The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
6005	OutpostArn *string `type:"string"`
6006
6007	// Placement group configured for an Amazon EMR cluster.
6008	PlacementGroups []*PlacementGroupConfig `type:"list"`
6009
6010	// The Amazon EMR release label, which determines the version of open-source
6011	// application packages installed on the cluster. Release labels are in the
6012	// form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0.
6013	// For more information about Amazon EMR release versions and included application
6014	// versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/
6015	// (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/). The release label
6016	// applies only to Amazon EMR releases version 4.0 and later. Earlier versions
6017	// use AmiVersion.
6018	ReleaseLabel *string `type:"string"`
6019
6020	// Applies only when CustomAmiID is used. Specifies the type of updates that
6021	// are applied from the Amazon Linux AMI package repositories when an instance
6022	// boots using the AMI.
6023	RepoUpgradeOnBoot *string `type:"string" enum:"RepoUpgradeOnBoot"`
6024
6025	// The AMI version requested for this cluster.
6026	RequestedAmiVersion *string `type:"string"`
6027
6028	// The AMI version running on this cluster.
6029	RunningAmiVersion *string `type:"string"`
6030
6031	// The way that individual Amazon EC2 instances terminate when an automatic
6032	// scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
6033	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
6034	// regardless of when the request to terminate the instance was submitted. This
6035	// option is only available with Amazon EMR 5.1.0 and later and is the default
6036	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
6037	// that Amazon EMR adds nodes to a deny list and drains tasks from nodes before
6038	// terminating the Amazon EC2 instances, regardless of the instance-hour boundary.
6039	// With either behavior, Amazon EMR removes the least active nodes first and
6040	// blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
6041	// is available only in Amazon EMR version 4.1.0 and later, and is the default
6042	// for versions of Amazon EMR earlier than 5.1.0.
6043	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
6044
6045	// The name of the security configuration applied to the cluster.
6046	SecurityConfiguration *string `type:"string"`
6047
6048	// The IAM role that will be assumed by the Amazon EMR service to access Amazon
6049	// Web Services resources on your behalf.
6050	ServiceRole *string `type:"string"`
6051
6052	// The current status details about the cluster.
6053	Status *ClusterStatus `type:"structure"`
6054
6055	// Specifies the number of steps that can be executed concurrently.
6056	StepConcurrencyLevel *int64 `type:"integer"`
6057
6058	// A list of tags associated with a cluster.
6059	Tags []*Tag `type:"list"`
6060
6061	// Indicates whether Amazon EMR will lock the cluster to prevent the EC2 instances
6062	// from being terminated by an API call or user intervention, or in the event
6063	// of a cluster error.
6064	TerminationProtected *bool `type:"boolean"`
6065
6066	// Indicates whether the cluster is visible to IAM principals in the account
6067	// associated with the cluster. When true, IAM principals in the account can
6068	// perform EMR cluster actions on the cluster that their IAM policies allow.
6069	// When false, only the IAM principal that created the cluster and the account
6070	// root user can perform EMR actions, regardless of IAM permissions policies
6071	// attached to other IAM principals.
6072	//
6073	// The default value is true if a value is not provided when creating a cluster
6074	// using the EMR API RunJobFlow command, the CLI create-cluster (https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html)
6075	// command, or the Management Console. IAM principals that are allowed to perform
6076	// actions on the cluster can use the SetVisibleToAllUsers action to change
6077	// the value on a running cluster. For more information, see Understanding the
6078	// EMR Cluster VisibleToAllUsers Setting (https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users)
6079	// in the Amazon EMRManagement Guide.
6080	VisibleToAllUsers *bool `type:"boolean"`
6081}
6082
6083// String returns the string representation
6084func (s Cluster) String() string {
6085	return awsutil.Prettify(s)
6086}
6087
6088// GoString returns the string representation
6089func (s Cluster) GoString() string {
6090	return s.String()
6091}
6092
6093// SetApplications sets the Applications field's value.
6094func (s *Cluster) SetApplications(v []*Application) *Cluster {
6095	s.Applications = v
6096	return s
6097}
6098
6099// SetAutoScalingRole sets the AutoScalingRole field's value.
6100func (s *Cluster) SetAutoScalingRole(v string) *Cluster {
6101	s.AutoScalingRole = &v
6102	return s
6103}
6104
6105// SetAutoTerminate sets the AutoTerminate field's value.
6106func (s *Cluster) SetAutoTerminate(v bool) *Cluster {
6107	s.AutoTerminate = &v
6108	return s
6109}
6110
6111// SetClusterArn sets the ClusterArn field's value.
6112func (s *Cluster) SetClusterArn(v string) *Cluster {
6113	s.ClusterArn = &v
6114	return s
6115}
6116
6117// SetConfigurations sets the Configurations field's value.
6118func (s *Cluster) SetConfigurations(v []*Configuration) *Cluster {
6119	s.Configurations = v
6120	return s
6121}
6122
6123// SetCustomAmiId sets the CustomAmiId field's value.
6124func (s *Cluster) SetCustomAmiId(v string) *Cluster {
6125	s.CustomAmiId = &v
6126	return s
6127}
6128
6129// SetEbsRootVolumeSize sets the EbsRootVolumeSize field's value.
6130func (s *Cluster) SetEbsRootVolumeSize(v int64) *Cluster {
6131	s.EbsRootVolumeSize = &v
6132	return s
6133}
6134
6135// SetEc2InstanceAttributes sets the Ec2InstanceAttributes field's value.
6136func (s *Cluster) SetEc2InstanceAttributes(v *Ec2InstanceAttributes) *Cluster {
6137	s.Ec2InstanceAttributes = v
6138	return s
6139}
6140
6141// SetId sets the Id field's value.
6142func (s *Cluster) SetId(v string) *Cluster {
6143	s.Id = &v
6144	return s
6145}
6146
6147// SetInstanceCollectionType sets the InstanceCollectionType field's value.
6148func (s *Cluster) SetInstanceCollectionType(v string) *Cluster {
6149	s.InstanceCollectionType = &v
6150	return s
6151}
6152
6153// SetKerberosAttributes sets the KerberosAttributes field's value.
6154func (s *Cluster) SetKerberosAttributes(v *KerberosAttributes) *Cluster {
6155	s.KerberosAttributes = v
6156	return s
6157}
6158
6159// SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
6160func (s *Cluster) SetLogEncryptionKmsKeyId(v string) *Cluster {
6161	s.LogEncryptionKmsKeyId = &v
6162	return s
6163}
6164
6165// SetLogUri sets the LogUri field's value.
6166func (s *Cluster) SetLogUri(v string) *Cluster {
6167	s.LogUri = &v
6168	return s
6169}
6170
6171// SetMasterPublicDnsName sets the MasterPublicDnsName field's value.
6172func (s *Cluster) SetMasterPublicDnsName(v string) *Cluster {
6173	s.MasterPublicDnsName = &v
6174	return s
6175}
6176
6177// SetName sets the Name field's value.
6178func (s *Cluster) SetName(v string) *Cluster {
6179	s.Name = &v
6180	return s
6181}
6182
6183// SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
6184func (s *Cluster) SetNormalizedInstanceHours(v int64) *Cluster {
6185	s.NormalizedInstanceHours = &v
6186	return s
6187}
6188
6189// SetOutpostArn sets the OutpostArn field's value.
6190func (s *Cluster) SetOutpostArn(v string) *Cluster {
6191	s.OutpostArn = &v
6192	return s
6193}
6194
6195// SetPlacementGroups sets the PlacementGroups field's value.
6196func (s *Cluster) SetPlacementGroups(v []*PlacementGroupConfig) *Cluster {
6197	s.PlacementGroups = v
6198	return s
6199}
6200
6201// SetReleaseLabel sets the ReleaseLabel field's value.
6202func (s *Cluster) SetReleaseLabel(v string) *Cluster {
6203	s.ReleaseLabel = &v
6204	return s
6205}
6206
6207// SetRepoUpgradeOnBoot sets the RepoUpgradeOnBoot field's value.
6208func (s *Cluster) SetRepoUpgradeOnBoot(v string) *Cluster {
6209	s.RepoUpgradeOnBoot = &v
6210	return s
6211}
6212
6213// SetRequestedAmiVersion sets the RequestedAmiVersion field's value.
6214func (s *Cluster) SetRequestedAmiVersion(v string) *Cluster {
6215	s.RequestedAmiVersion = &v
6216	return s
6217}
6218
6219// SetRunningAmiVersion sets the RunningAmiVersion field's value.
6220func (s *Cluster) SetRunningAmiVersion(v string) *Cluster {
6221	s.RunningAmiVersion = &v
6222	return s
6223}
6224
6225// SetScaleDownBehavior sets the ScaleDownBehavior field's value.
6226func (s *Cluster) SetScaleDownBehavior(v string) *Cluster {
6227	s.ScaleDownBehavior = &v
6228	return s
6229}
6230
6231// SetSecurityConfiguration sets the SecurityConfiguration field's value.
6232func (s *Cluster) SetSecurityConfiguration(v string) *Cluster {
6233	s.SecurityConfiguration = &v
6234	return s
6235}
6236
6237// SetServiceRole sets the ServiceRole field's value.
6238func (s *Cluster) SetServiceRole(v string) *Cluster {
6239	s.ServiceRole = &v
6240	return s
6241}
6242
6243// SetStatus sets the Status field's value.
6244func (s *Cluster) SetStatus(v *ClusterStatus) *Cluster {
6245	s.Status = v
6246	return s
6247}
6248
6249// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
6250func (s *Cluster) SetStepConcurrencyLevel(v int64) *Cluster {
6251	s.StepConcurrencyLevel = &v
6252	return s
6253}
6254
6255// SetTags sets the Tags field's value.
6256func (s *Cluster) SetTags(v []*Tag) *Cluster {
6257	s.Tags = v
6258	return s
6259}
6260
6261// SetTerminationProtected sets the TerminationProtected field's value.
6262func (s *Cluster) SetTerminationProtected(v bool) *Cluster {
6263	s.TerminationProtected = &v
6264	return s
6265}
6266
6267// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
6268func (s *Cluster) SetVisibleToAllUsers(v bool) *Cluster {
6269	s.VisibleToAllUsers = &v
6270	return s
6271}
6272
6273// The reason that the cluster changed to its current state.
6274type ClusterStateChangeReason struct {
6275	_ struct{} `type:"structure"`
6276
6277	// The programmatic code for the state change reason.
6278	Code *string `type:"string" enum:"ClusterStateChangeReasonCode"`
6279
6280	// The descriptive message for the state change reason.
6281	Message *string `type:"string"`
6282}
6283
6284// String returns the string representation
6285func (s ClusterStateChangeReason) String() string {
6286	return awsutil.Prettify(s)
6287}
6288
6289// GoString returns the string representation
6290func (s ClusterStateChangeReason) GoString() string {
6291	return s.String()
6292}
6293
6294// SetCode sets the Code field's value.
6295func (s *ClusterStateChangeReason) SetCode(v string) *ClusterStateChangeReason {
6296	s.Code = &v
6297	return s
6298}
6299
6300// SetMessage sets the Message field's value.
6301func (s *ClusterStateChangeReason) SetMessage(v string) *ClusterStateChangeReason {
6302	s.Message = &v
6303	return s
6304}
6305
6306// The detailed status of the cluster.
6307type ClusterStatus struct {
6308	_ struct{} `type:"structure"`
6309
6310	// The current state of the cluster.
6311	State *string `type:"string" enum:"ClusterState"`
6312
6313	// The reason for the cluster status change.
6314	StateChangeReason *ClusterStateChangeReason `type:"structure"`
6315
6316	// A timeline that represents the status of a cluster over the lifetime of the
6317	// cluster.
6318	Timeline *ClusterTimeline `type:"structure"`
6319}
6320
6321// String returns the string representation
6322func (s ClusterStatus) String() string {
6323	return awsutil.Prettify(s)
6324}
6325
6326// GoString returns the string representation
6327func (s ClusterStatus) GoString() string {
6328	return s.String()
6329}
6330
6331// SetState sets the State field's value.
6332func (s *ClusterStatus) SetState(v string) *ClusterStatus {
6333	s.State = &v
6334	return s
6335}
6336
6337// SetStateChangeReason sets the StateChangeReason field's value.
6338func (s *ClusterStatus) SetStateChangeReason(v *ClusterStateChangeReason) *ClusterStatus {
6339	s.StateChangeReason = v
6340	return s
6341}
6342
6343// SetTimeline sets the Timeline field's value.
6344func (s *ClusterStatus) SetTimeline(v *ClusterTimeline) *ClusterStatus {
6345	s.Timeline = v
6346	return s
6347}
6348
6349// The summary description of the cluster.
6350type ClusterSummary struct {
6351	_ struct{} `type:"structure"`
6352
6353	// The Amazon Resource Name of the cluster.
6354	ClusterArn *string `min:"20" type:"string"`
6355
6356	// The unique identifier for the cluster.
6357	Id *string `type:"string"`
6358
6359	// The name of the cluster.
6360	Name *string `type:"string"`
6361
6362	// An approximation of the cost of the cluster, represented in m1.small/hours.
6363	// This value is incremented one time for every hour an m1.small instance runs.
6364	// Larger instances are weighted more, so an EC2 instance that is roughly four
6365	// times more expensive would result in the normalized instance hours being
6366	// incremented by four. This result is only an approximation and does not reflect
6367	// the actual billing rate.
6368	NormalizedInstanceHours *int64 `type:"integer"`
6369
6370	// The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
6371	OutpostArn *string `type:"string"`
6372
6373	// The details about the current status of the cluster.
6374	Status *ClusterStatus `type:"structure"`
6375}
6376
6377// String returns the string representation
6378func (s ClusterSummary) String() string {
6379	return awsutil.Prettify(s)
6380}
6381
6382// GoString returns the string representation
6383func (s ClusterSummary) GoString() string {
6384	return s.String()
6385}
6386
6387// SetClusterArn sets the ClusterArn field's value.
6388func (s *ClusterSummary) SetClusterArn(v string) *ClusterSummary {
6389	s.ClusterArn = &v
6390	return s
6391}
6392
6393// SetId sets the Id field's value.
6394func (s *ClusterSummary) SetId(v string) *ClusterSummary {
6395	s.Id = &v
6396	return s
6397}
6398
6399// SetName sets the Name field's value.
6400func (s *ClusterSummary) SetName(v string) *ClusterSummary {
6401	s.Name = &v
6402	return s
6403}
6404
6405// SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
6406func (s *ClusterSummary) SetNormalizedInstanceHours(v int64) *ClusterSummary {
6407	s.NormalizedInstanceHours = &v
6408	return s
6409}
6410
6411// SetOutpostArn sets the OutpostArn field's value.
6412func (s *ClusterSummary) SetOutpostArn(v string) *ClusterSummary {
6413	s.OutpostArn = &v
6414	return s
6415}
6416
6417// SetStatus sets the Status field's value.
6418func (s *ClusterSummary) SetStatus(v *ClusterStatus) *ClusterSummary {
6419	s.Status = v
6420	return s
6421}
6422
6423// Represents the timeline of the cluster's lifecycle.
6424type ClusterTimeline struct {
6425	_ struct{} `type:"structure"`
6426
6427	// The creation date and time of the cluster.
6428	CreationDateTime *time.Time `type:"timestamp"`
6429
6430	// The date and time when the cluster was terminated.
6431	EndDateTime *time.Time `type:"timestamp"`
6432
6433	// The date and time when the cluster was ready to run steps.
6434	ReadyDateTime *time.Time `type:"timestamp"`
6435}
6436
6437// String returns the string representation
6438func (s ClusterTimeline) String() string {
6439	return awsutil.Prettify(s)
6440}
6441
6442// GoString returns the string representation
6443func (s ClusterTimeline) GoString() string {
6444	return s.String()
6445}
6446
6447// SetCreationDateTime sets the CreationDateTime field's value.
6448func (s *ClusterTimeline) SetCreationDateTime(v time.Time) *ClusterTimeline {
6449	s.CreationDateTime = &v
6450	return s
6451}
6452
6453// SetEndDateTime sets the EndDateTime field's value.
6454func (s *ClusterTimeline) SetEndDateTime(v time.Time) *ClusterTimeline {
6455	s.EndDateTime = &v
6456	return s
6457}
6458
6459// SetReadyDateTime sets the ReadyDateTime field's value.
6460func (s *ClusterTimeline) SetReadyDateTime(v time.Time) *ClusterTimeline {
6461	s.ReadyDateTime = &v
6462	return s
6463}
6464
6465// An entity describing an executable that runs on a cluster.
6466type Command struct {
6467	_ struct{} `type:"structure"`
6468
6469	// Arguments for Amazon EMR to pass to the command for execution.
6470	Args []*string `type:"list"`
6471
6472	// The name of the command.
6473	Name *string `type:"string"`
6474
6475	// The Amazon S3 location of the command script.
6476	ScriptPath *string `type:"string"`
6477}
6478
6479// String returns the string representation
6480func (s Command) String() string {
6481	return awsutil.Prettify(s)
6482}
6483
6484// GoString returns the string representation
6485func (s Command) GoString() string {
6486	return s.String()
6487}
6488
6489// SetArgs sets the Args field's value.
6490func (s *Command) SetArgs(v []*string) *Command {
6491	s.Args = v
6492	return s
6493}
6494
6495// SetName sets the Name field's value.
6496func (s *Command) SetName(v string) *Command {
6497	s.Name = &v
6498	return s
6499}
6500
6501// SetScriptPath sets the ScriptPath field's value.
6502func (s *Command) SetScriptPath(v string) *Command {
6503	s.ScriptPath = &v
6504	return s
6505}
6506
6507// The EC2 unit limits for a managed scaling policy. The managed scaling activity
6508// of a cluster can not be above or below these limits. The limit only applies
6509// to the core and task nodes. The master node cannot be scaled after initial
6510// configuration.
6511type ComputeLimits struct {
6512	_ struct{} `type:"structure"`
6513
6514	// The upper boundary of EC2 units. It is measured through vCPU cores or instances
6515	// for instance groups and measured through units for instance fleets. Managed
6516	// scaling activities are not allowed beyond this boundary. The limit only applies
6517	// to the core and task nodes. The master node cannot be scaled after initial
6518	// configuration.
6519	//
6520	// MaximumCapacityUnits is a required field
6521	MaximumCapacityUnits *int64 `type:"integer" required:"true"`
6522
6523	// The upper boundary of EC2 units for core node type in a cluster. It is measured
6524	// through vCPU cores or instances for instance groups and measured through
6525	// units for instance fleets. The core units are not allowed to scale beyond
6526	// this boundary. The parameter is used to split capacity allocation between
6527	// core and task nodes.
6528	MaximumCoreCapacityUnits *int64 `type:"integer"`
6529
6530	// The upper boundary of On-Demand EC2 units. It is measured through vCPU cores
6531	// or instances for instance groups and measured through units for instance
6532	// fleets. The On-Demand units are not allowed to scale beyond this boundary.
6533	// The parameter is used to split capacity allocation between On-Demand and
6534	// Spot Instances.
6535	MaximumOnDemandCapacityUnits *int64 `type:"integer"`
6536
6537	// The lower boundary of EC2 units. It is measured through vCPU cores or instances
6538	// for instance groups and measured through units for instance fleets. Managed
6539	// scaling activities are not allowed beyond this boundary. The limit only applies
6540	// to the core and task nodes. The master node cannot be scaled after initial
6541	// configuration.
6542	//
6543	// MinimumCapacityUnits is a required field
6544	MinimumCapacityUnits *int64 `type:"integer" required:"true"`
6545
6546	// The unit type used for specifying a managed scaling policy.
6547	//
6548	// UnitType is a required field
6549	UnitType *string `type:"string" required:"true" enum:"ComputeLimitsUnitType"`
6550}
6551
6552// String returns the string representation
6553func (s ComputeLimits) String() string {
6554	return awsutil.Prettify(s)
6555}
6556
6557// GoString returns the string representation
6558func (s ComputeLimits) GoString() string {
6559	return s.String()
6560}
6561
6562// Validate inspects the fields of the type to determine if they are valid.
6563func (s *ComputeLimits) Validate() error {
6564	invalidParams := request.ErrInvalidParams{Context: "ComputeLimits"}
6565	if s.MaximumCapacityUnits == nil {
6566		invalidParams.Add(request.NewErrParamRequired("MaximumCapacityUnits"))
6567	}
6568	if s.MinimumCapacityUnits == nil {
6569		invalidParams.Add(request.NewErrParamRequired("MinimumCapacityUnits"))
6570	}
6571	if s.UnitType == nil {
6572		invalidParams.Add(request.NewErrParamRequired("UnitType"))
6573	}
6574
6575	if invalidParams.Len() > 0 {
6576		return invalidParams
6577	}
6578	return nil
6579}
6580
6581// SetMaximumCapacityUnits sets the MaximumCapacityUnits field's value.
6582func (s *ComputeLimits) SetMaximumCapacityUnits(v int64) *ComputeLimits {
6583	s.MaximumCapacityUnits = &v
6584	return s
6585}
6586
6587// SetMaximumCoreCapacityUnits sets the MaximumCoreCapacityUnits field's value.
6588func (s *ComputeLimits) SetMaximumCoreCapacityUnits(v int64) *ComputeLimits {
6589	s.MaximumCoreCapacityUnits = &v
6590	return s
6591}
6592
6593// SetMaximumOnDemandCapacityUnits sets the MaximumOnDemandCapacityUnits field's value.
6594func (s *ComputeLimits) SetMaximumOnDemandCapacityUnits(v int64) *ComputeLimits {
6595	s.MaximumOnDemandCapacityUnits = &v
6596	return s
6597}
6598
6599// SetMinimumCapacityUnits sets the MinimumCapacityUnits field's value.
6600func (s *ComputeLimits) SetMinimumCapacityUnits(v int64) *ComputeLimits {
6601	s.MinimumCapacityUnits = &v
6602	return s
6603}
6604
6605// SetUnitType sets the UnitType field's value.
6606func (s *ComputeLimits) SetUnitType(v string) *ComputeLimits {
6607	s.UnitType = &v
6608	return s
6609}
6610
6611//
6612// Amazon EMR releases 4.x or later.
6613//
6614// An optional configuration specification to be used when provisioning cluster
6615// instances, which can include configurations for applications and software
6616// bundled with Amazon EMR. A configuration consists of a classification, properties,
6617// and optional nested configurations. A classification refers to an application-specific
6618// configuration file. Properties are the settings you want to change in that
6619// file. For more information, see Configuring Applications (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html).
6620type Configuration struct {
6621	_ struct{} `type:"structure"`
6622
6623	// The classification within a configuration.
6624	Classification *string `type:"string"`
6625
6626	// A list of additional configurations to apply within a configuration object.
6627	Configurations []*Configuration `type:"list"`
6628
6629	// A set of properties specified within a configuration classification.
6630	Properties map[string]*string `type:"map"`
6631}
6632
6633// String returns the string representation
6634func (s Configuration) String() string {
6635	return awsutil.Prettify(s)
6636}
6637
6638// GoString returns the string representation
6639func (s Configuration) GoString() string {
6640	return s.String()
6641}
6642
6643// SetClassification sets the Classification field's value.
6644func (s *Configuration) SetClassification(v string) *Configuration {
6645	s.Classification = &v
6646	return s
6647}
6648
6649// SetConfigurations sets the Configurations field's value.
6650func (s *Configuration) SetConfigurations(v []*Configuration) *Configuration {
6651	s.Configurations = v
6652	return s
6653}
6654
6655// SetProperties sets the Properties field's value.
6656func (s *Configuration) SetProperties(v map[string]*string) *Configuration {
6657	s.Properties = v
6658	return s
6659}
6660
6661type CreateSecurityConfigurationInput struct {
6662	_ struct{} `type:"structure"`
6663
6664	// The name of the security configuration.
6665	//
6666	// Name is a required field
6667	Name *string `type:"string" required:"true"`
6668
6669	// The security configuration details in JSON format. For JSON parameters and
6670	// examples, see Use Security Configurations to Set Up Cluster Security (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html)
6671	// in the Amazon EMR Management Guide.
6672	//
6673	// SecurityConfiguration is a required field
6674	SecurityConfiguration *string `type:"string" required:"true"`
6675}
6676
6677// String returns the string representation
6678func (s CreateSecurityConfigurationInput) String() string {
6679	return awsutil.Prettify(s)
6680}
6681
6682// GoString returns the string representation
6683func (s CreateSecurityConfigurationInput) GoString() string {
6684	return s.String()
6685}
6686
6687// Validate inspects the fields of the type to determine if they are valid.
6688func (s *CreateSecurityConfigurationInput) Validate() error {
6689	invalidParams := request.ErrInvalidParams{Context: "CreateSecurityConfigurationInput"}
6690	if s.Name == nil {
6691		invalidParams.Add(request.NewErrParamRequired("Name"))
6692	}
6693	if s.SecurityConfiguration == nil {
6694		invalidParams.Add(request.NewErrParamRequired("SecurityConfiguration"))
6695	}
6696
6697	if invalidParams.Len() > 0 {
6698		return invalidParams
6699	}
6700	return nil
6701}
6702
6703// SetName sets the Name field's value.
6704func (s *CreateSecurityConfigurationInput) SetName(v string) *CreateSecurityConfigurationInput {
6705	s.Name = &v
6706	return s
6707}
6708
6709// SetSecurityConfiguration sets the SecurityConfiguration field's value.
6710func (s *CreateSecurityConfigurationInput) SetSecurityConfiguration(v string) *CreateSecurityConfigurationInput {
6711	s.SecurityConfiguration = &v
6712	return s
6713}
6714
6715type CreateSecurityConfigurationOutput struct {
6716	_ struct{} `type:"structure"`
6717
6718	// The date and time the security configuration was created.
6719	//
6720	// CreationDateTime is a required field
6721	CreationDateTime *time.Time `type:"timestamp" required:"true"`
6722
6723	// The name of the security configuration.
6724	//
6725	// Name is a required field
6726	Name *string `type:"string" required:"true"`
6727}
6728
6729// String returns the string representation
6730func (s CreateSecurityConfigurationOutput) String() string {
6731	return awsutil.Prettify(s)
6732}
6733
6734// GoString returns the string representation
6735func (s CreateSecurityConfigurationOutput) GoString() string {
6736	return s.String()
6737}
6738
6739// SetCreationDateTime sets the CreationDateTime field's value.
6740func (s *CreateSecurityConfigurationOutput) SetCreationDateTime(v time.Time) *CreateSecurityConfigurationOutput {
6741	s.CreationDateTime = &v
6742	return s
6743}
6744
6745// SetName sets the Name field's value.
6746func (s *CreateSecurityConfigurationOutput) SetName(v string) *CreateSecurityConfigurationOutput {
6747	s.Name = &v
6748	return s
6749}
6750
6751type CreateStudioInput struct {
6752	_ struct{} `type:"structure"`
6753
6754	// Specifies whether the Studio authenticates users using single sign-on (SSO)
6755	// or IAM. Amazon EMR Studio currently only supports SSO authentication.
6756	//
6757	// AuthMode is a required field
6758	AuthMode *string `type:"string" required:"true" enum:"AuthMode"`
6759
6760	// The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook
6761	// files.
6762	//
6763	// DefaultS3Location is a required field
6764	DefaultS3Location *string `type:"string" required:"true"`
6765
6766	// A detailed description of the Amazon EMR Studio.
6767	Description *string `type:"string"`
6768
6769	// The ID of the Amazon EMR Studio Engine security group. The Engine security
6770	// group allows inbound network traffic from the Workspace security group, and
6771	// it must be in the same VPC specified by VpcId.
6772	//
6773	// EngineSecurityGroupId is a required field
6774	EngineSecurityGroupId *string `type:"string" required:"true"`
6775
6776	// A descriptive name for the Amazon EMR Studio.
6777	//
6778	// Name is a required field
6779	Name *string `type:"string" required:"true"`
6780
6781	// The IAM role that will be assumed by the Amazon EMR Studio. The service role
6782	// provides a way for Amazon EMR Studio to interoperate with other Amazon Web
6783	// Services services.
6784	//
6785	// ServiceRole is a required field
6786	ServiceRole *string `type:"string" required:"true"`
6787
6788	// A list of subnet IDs to associate with the Amazon EMR Studio. A Studio can
6789	// have a maximum of 5 subnets. The subnets must belong to the VPC specified
6790	// by VpcId. Studio users can create a Workspace in any of the specified subnets.
6791	//
6792	// SubnetIds is a required field
6793	SubnetIds []*string `type:"list" required:"true"`
6794
6795	// A list of tags to associate with the Amazon EMR Studio. Tags are user-defined
6796	// key-value pairs that consist of a required key string with a maximum of 128
6797	// characters, and an optional value string with a maximum of 256 characters.
6798	Tags []*Tag `type:"list"`
6799
6800	// The IAM user role that will be assumed by users and groups logged in to an
6801	// Amazon EMR Studio. The permissions attached to this IAM role can be scoped
6802	// down for each user or group using session policies.
6803	//
6804	// UserRole is a required field
6805	UserRole *string `type:"string" required:"true"`
6806
6807	// The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with
6808	// the Studio.
6809	//
6810	// VpcId is a required field
6811	VpcId *string `type:"string" required:"true"`
6812
6813	// The ID of the Amazon EMR Studio Workspace security group. The Workspace security
6814	// group allows outbound network traffic to resources in the Engine security
6815	// group, and it must be in the same VPC specified by VpcId.
6816	//
6817	// WorkspaceSecurityGroupId is a required field
6818	WorkspaceSecurityGroupId *string `type:"string" required:"true"`
6819}
6820
6821// String returns the string representation
6822func (s CreateStudioInput) String() string {
6823	return awsutil.Prettify(s)
6824}
6825
6826// GoString returns the string representation
6827func (s CreateStudioInput) GoString() string {
6828	return s.String()
6829}
6830
6831// Validate inspects the fields of the type to determine if they are valid.
6832func (s *CreateStudioInput) Validate() error {
6833	invalidParams := request.ErrInvalidParams{Context: "CreateStudioInput"}
6834	if s.AuthMode == nil {
6835		invalidParams.Add(request.NewErrParamRequired("AuthMode"))
6836	}
6837	if s.DefaultS3Location == nil {
6838		invalidParams.Add(request.NewErrParamRequired("DefaultS3Location"))
6839	}
6840	if s.EngineSecurityGroupId == nil {
6841		invalidParams.Add(request.NewErrParamRequired("EngineSecurityGroupId"))
6842	}
6843	if s.Name == nil {
6844		invalidParams.Add(request.NewErrParamRequired("Name"))
6845	}
6846	if s.ServiceRole == nil {
6847		invalidParams.Add(request.NewErrParamRequired("ServiceRole"))
6848	}
6849	if s.SubnetIds == nil {
6850		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
6851	}
6852	if s.UserRole == nil {
6853		invalidParams.Add(request.NewErrParamRequired("UserRole"))
6854	}
6855	if s.VpcId == nil {
6856		invalidParams.Add(request.NewErrParamRequired("VpcId"))
6857	}
6858	if s.WorkspaceSecurityGroupId == nil {
6859		invalidParams.Add(request.NewErrParamRequired("WorkspaceSecurityGroupId"))
6860	}
6861
6862	if invalidParams.Len() > 0 {
6863		return invalidParams
6864	}
6865	return nil
6866}
6867
6868// SetAuthMode sets the AuthMode field's value.
6869func (s *CreateStudioInput) SetAuthMode(v string) *CreateStudioInput {
6870	s.AuthMode = &v
6871	return s
6872}
6873
6874// SetDefaultS3Location sets the DefaultS3Location field's value.
6875func (s *CreateStudioInput) SetDefaultS3Location(v string) *CreateStudioInput {
6876	s.DefaultS3Location = &v
6877	return s
6878}
6879
6880// SetDescription sets the Description field's value.
6881func (s *CreateStudioInput) SetDescription(v string) *CreateStudioInput {
6882	s.Description = &v
6883	return s
6884}
6885
6886// SetEngineSecurityGroupId sets the EngineSecurityGroupId field's value.
6887func (s *CreateStudioInput) SetEngineSecurityGroupId(v string) *CreateStudioInput {
6888	s.EngineSecurityGroupId = &v
6889	return s
6890}
6891
6892// SetName sets the Name field's value.
6893func (s *CreateStudioInput) SetName(v string) *CreateStudioInput {
6894	s.Name = &v
6895	return s
6896}
6897
6898// SetServiceRole sets the ServiceRole field's value.
6899func (s *CreateStudioInput) SetServiceRole(v string) *CreateStudioInput {
6900	s.ServiceRole = &v
6901	return s
6902}
6903
6904// SetSubnetIds sets the SubnetIds field's value.
6905func (s *CreateStudioInput) SetSubnetIds(v []*string) *CreateStudioInput {
6906	s.SubnetIds = v
6907	return s
6908}
6909
6910// SetTags sets the Tags field's value.
6911func (s *CreateStudioInput) SetTags(v []*Tag) *CreateStudioInput {
6912	s.Tags = v
6913	return s
6914}
6915
6916// SetUserRole sets the UserRole field's value.
6917func (s *CreateStudioInput) SetUserRole(v string) *CreateStudioInput {
6918	s.UserRole = &v
6919	return s
6920}
6921
6922// SetVpcId sets the VpcId field's value.
6923func (s *CreateStudioInput) SetVpcId(v string) *CreateStudioInput {
6924	s.VpcId = &v
6925	return s
6926}
6927
6928// SetWorkspaceSecurityGroupId sets the WorkspaceSecurityGroupId field's value.
6929func (s *CreateStudioInput) SetWorkspaceSecurityGroupId(v string) *CreateStudioInput {
6930	s.WorkspaceSecurityGroupId = &v
6931	return s
6932}
6933
6934type CreateStudioOutput struct {
6935	_ struct{} `type:"structure"`
6936
6937	// The ID of the Amazon EMR Studio.
6938	StudioId *string `type:"string"`
6939
6940	// The unique Studio access URL.
6941	Url *string `type:"string"`
6942}
6943
6944// String returns the string representation
6945func (s CreateStudioOutput) String() string {
6946	return awsutil.Prettify(s)
6947}
6948
6949// GoString returns the string representation
6950func (s CreateStudioOutput) GoString() string {
6951	return s.String()
6952}
6953
6954// SetStudioId sets the StudioId field's value.
6955func (s *CreateStudioOutput) SetStudioId(v string) *CreateStudioOutput {
6956	s.StudioId = &v
6957	return s
6958}
6959
6960// SetUrl sets the Url field's value.
6961func (s *CreateStudioOutput) SetUrl(v string) *CreateStudioOutput {
6962	s.Url = &v
6963	return s
6964}
6965
6966type CreateStudioSessionMappingInput struct {
6967	_ struct{} `type:"structure"`
6968
6969	// The globally unique identifier (GUID) of the user or group from the Amazon
6970	// Web Services SSO Identity Store. For more information, see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
6971	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
6972	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
6973	// or IdentityId must be specified, but not both.
6974	IdentityId *string `type:"string"`
6975
6976	// The name of the user or group. For more information, see UserName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
6977	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
6978	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
6979	// or IdentityId must be specified, but not both.
6980	IdentityName *string `type:"string"`
6981
6982	// Specifies whether the identity to map to the Amazon EMR Studio is a user
6983	// or a group.
6984	//
6985	// IdentityType is a required field
6986	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
6987
6988	// The Amazon Resource Name (ARN) for the session policy that will be applied
6989	// to the user or group. You should specify the ARN for the session policy that
6990	// you want to apply, not the ARN of your user role. For more information, see
6991	// Create an EMR Studio User Role with Session Policies (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-user-role.html).
6992	//
6993	// SessionPolicyArn is a required field
6994	SessionPolicyArn *string `type:"string" required:"true"`
6995
6996	// The ID of the Amazon EMR Studio to which the user or group will be mapped.
6997	//
6998	// StudioId is a required field
6999	StudioId *string `type:"string" required:"true"`
7000}
7001
7002// String returns the string representation
7003func (s CreateStudioSessionMappingInput) String() string {
7004	return awsutil.Prettify(s)
7005}
7006
7007// GoString returns the string representation
7008func (s CreateStudioSessionMappingInput) GoString() string {
7009	return s.String()
7010}
7011
7012// Validate inspects the fields of the type to determine if they are valid.
7013func (s *CreateStudioSessionMappingInput) Validate() error {
7014	invalidParams := request.ErrInvalidParams{Context: "CreateStudioSessionMappingInput"}
7015	if s.IdentityType == nil {
7016		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
7017	}
7018	if s.SessionPolicyArn == nil {
7019		invalidParams.Add(request.NewErrParamRequired("SessionPolicyArn"))
7020	}
7021	if s.StudioId == nil {
7022		invalidParams.Add(request.NewErrParamRequired("StudioId"))
7023	}
7024
7025	if invalidParams.Len() > 0 {
7026		return invalidParams
7027	}
7028	return nil
7029}
7030
7031// SetIdentityId sets the IdentityId field's value.
7032func (s *CreateStudioSessionMappingInput) SetIdentityId(v string) *CreateStudioSessionMappingInput {
7033	s.IdentityId = &v
7034	return s
7035}
7036
7037// SetIdentityName sets the IdentityName field's value.
7038func (s *CreateStudioSessionMappingInput) SetIdentityName(v string) *CreateStudioSessionMappingInput {
7039	s.IdentityName = &v
7040	return s
7041}
7042
7043// SetIdentityType sets the IdentityType field's value.
7044func (s *CreateStudioSessionMappingInput) SetIdentityType(v string) *CreateStudioSessionMappingInput {
7045	s.IdentityType = &v
7046	return s
7047}
7048
7049// SetSessionPolicyArn sets the SessionPolicyArn field's value.
7050func (s *CreateStudioSessionMappingInput) SetSessionPolicyArn(v string) *CreateStudioSessionMappingInput {
7051	s.SessionPolicyArn = &v
7052	return s
7053}
7054
7055// SetStudioId sets the StudioId field's value.
7056func (s *CreateStudioSessionMappingInput) SetStudioId(v string) *CreateStudioSessionMappingInput {
7057	s.StudioId = &v
7058	return s
7059}
7060
7061type CreateStudioSessionMappingOutput struct {
7062	_ struct{} `type:"structure"`
7063}
7064
7065// String returns the string representation
7066func (s CreateStudioSessionMappingOutput) String() string {
7067	return awsutil.Prettify(s)
7068}
7069
7070// GoString returns the string representation
7071func (s CreateStudioSessionMappingOutput) GoString() string {
7072	return s.String()
7073}
7074
7075type DeleteSecurityConfigurationInput struct {
7076	_ struct{} `type:"structure"`
7077
7078	// The name of the security configuration.
7079	//
7080	// Name is a required field
7081	Name *string `type:"string" required:"true"`
7082}
7083
7084// String returns the string representation
7085func (s DeleteSecurityConfigurationInput) String() string {
7086	return awsutil.Prettify(s)
7087}
7088
7089// GoString returns the string representation
7090func (s DeleteSecurityConfigurationInput) GoString() string {
7091	return s.String()
7092}
7093
7094// Validate inspects the fields of the type to determine if they are valid.
7095func (s *DeleteSecurityConfigurationInput) Validate() error {
7096	invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityConfigurationInput"}
7097	if s.Name == nil {
7098		invalidParams.Add(request.NewErrParamRequired("Name"))
7099	}
7100
7101	if invalidParams.Len() > 0 {
7102		return invalidParams
7103	}
7104	return nil
7105}
7106
7107// SetName sets the Name field's value.
7108func (s *DeleteSecurityConfigurationInput) SetName(v string) *DeleteSecurityConfigurationInput {
7109	s.Name = &v
7110	return s
7111}
7112
7113type DeleteSecurityConfigurationOutput struct {
7114	_ struct{} `type:"structure"`
7115}
7116
7117// String returns the string representation
7118func (s DeleteSecurityConfigurationOutput) String() string {
7119	return awsutil.Prettify(s)
7120}
7121
7122// GoString returns the string representation
7123func (s DeleteSecurityConfigurationOutput) GoString() string {
7124	return s.String()
7125}
7126
7127type DeleteStudioInput struct {
7128	_ struct{} `type:"structure"`
7129
7130	// The ID of the Amazon EMR Studio.
7131	//
7132	// StudioId is a required field
7133	StudioId *string `type:"string" required:"true"`
7134}
7135
7136// String returns the string representation
7137func (s DeleteStudioInput) String() string {
7138	return awsutil.Prettify(s)
7139}
7140
7141// GoString returns the string representation
7142func (s DeleteStudioInput) GoString() string {
7143	return s.String()
7144}
7145
7146// Validate inspects the fields of the type to determine if they are valid.
7147func (s *DeleteStudioInput) Validate() error {
7148	invalidParams := request.ErrInvalidParams{Context: "DeleteStudioInput"}
7149	if s.StudioId == nil {
7150		invalidParams.Add(request.NewErrParamRequired("StudioId"))
7151	}
7152
7153	if invalidParams.Len() > 0 {
7154		return invalidParams
7155	}
7156	return nil
7157}
7158
7159// SetStudioId sets the StudioId field's value.
7160func (s *DeleteStudioInput) SetStudioId(v string) *DeleteStudioInput {
7161	s.StudioId = &v
7162	return s
7163}
7164
7165type DeleteStudioOutput struct {
7166	_ struct{} `type:"structure"`
7167}
7168
7169// String returns the string representation
7170func (s DeleteStudioOutput) String() string {
7171	return awsutil.Prettify(s)
7172}
7173
7174// GoString returns the string representation
7175func (s DeleteStudioOutput) GoString() string {
7176	return s.String()
7177}
7178
7179type DeleteStudioSessionMappingInput struct {
7180	_ struct{} `type:"structure"`
7181
7182	// The globally unique identifier (GUID) of the user or group to remove from
7183	// the Amazon EMR Studio. For more information, see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
7184	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
7185	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
7186	// or IdentityId must be specified.
7187	IdentityId *string `type:"string"`
7188
7189	// The name of the user name or group to remove from the Amazon EMR Studio.
7190	// For more information, see UserName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
7191	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
7192	// in the Amazon Web Services SSO Store API Reference. Either IdentityName or
7193	// IdentityId must be specified.
7194	IdentityName *string `type:"string"`
7195
7196	// Specifies whether the identity to delete from the Amazon EMR Studio is a
7197	// user or a group.
7198	//
7199	// IdentityType is a required field
7200	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
7201
7202	// The ID of the Amazon EMR Studio.
7203	//
7204	// StudioId is a required field
7205	StudioId *string `type:"string" required:"true"`
7206}
7207
7208// String returns the string representation
7209func (s DeleteStudioSessionMappingInput) String() string {
7210	return awsutil.Prettify(s)
7211}
7212
7213// GoString returns the string representation
7214func (s DeleteStudioSessionMappingInput) GoString() string {
7215	return s.String()
7216}
7217
7218// Validate inspects the fields of the type to determine if they are valid.
7219func (s *DeleteStudioSessionMappingInput) Validate() error {
7220	invalidParams := request.ErrInvalidParams{Context: "DeleteStudioSessionMappingInput"}
7221	if s.IdentityType == nil {
7222		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
7223	}
7224	if s.StudioId == nil {
7225		invalidParams.Add(request.NewErrParamRequired("StudioId"))
7226	}
7227
7228	if invalidParams.Len() > 0 {
7229		return invalidParams
7230	}
7231	return nil
7232}
7233
7234// SetIdentityId sets the IdentityId field's value.
7235func (s *DeleteStudioSessionMappingInput) SetIdentityId(v string) *DeleteStudioSessionMappingInput {
7236	s.IdentityId = &v
7237	return s
7238}
7239
7240// SetIdentityName sets the IdentityName field's value.
7241func (s *DeleteStudioSessionMappingInput) SetIdentityName(v string) *DeleteStudioSessionMappingInput {
7242	s.IdentityName = &v
7243	return s
7244}
7245
7246// SetIdentityType sets the IdentityType field's value.
7247func (s *DeleteStudioSessionMappingInput) SetIdentityType(v string) *DeleteStudioSessionMappingInput {
7248	s.IdentityType = &v
7249	return s
7250}
7251
7252// SetStudioId sets the StudioId field's value.
7253func (s *DeleteStudioSessionMappingInput) SetStudioId(v string) *DeleteStudioSessionMappingInput {
7254	s.StudioId = &v
7255	return s
7256}
7257
7258type DeleteStudioSessionMappingOutput struct {
7259	_ struct{} `type:"structure"`
7260}
7261
7262// String returns the string representation
7263func (s DeleteStudioSessionMappingOutput) String() string {
7264	return awsutil.Prettify(s)
7265}
7266
7267// GoString returns the string representation
7268func (s DeleteStudioSessionMappingOutput) GoString() string {
7269	return s.String()
7270}
7271
7272// This input determines which cluster to describe.
7273type DescribeClusterInput struct {
7274	_ struct{} `type:"structure"`
7275
7276	// The identifier of the cluster to describe.
7277	//
7278	// ClusterId is a required field
7279	ClusterId *string `type:"string" required:"true"`
7280}
7281
7282// String returns the string representation
7283func (s DescribeClusterInput) String() string {
7284	return awsutil.Prettify(s)
7285}
7286
7287// GoString returns the string representation
7288func (s DescribeClusterInput) GoString() string {
7289	return s.String()
7290}
7291
7292// Validate inspects the fields of the type to determine if they are valid.
7293func (s *DescribeClusterInput) Validate() error {
7294	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterInput"}
7295	if s.ClusterId == nil {
7296		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
7297	}
7298
7299	if invalidParams.Len() > 0 {
7300		return invalidParams
7301	}
7302	return nil
7303}
7304
7305// SetClusterId sets the ClusterId field's value.
7306func (s *DescribeClusterInput) SetClusterId(v string) *DescribeClusterInput {
7307	s.ClusterId = &v
7308	return s
7309}
7310
7311// This output contains the description of the cluster.
7312type DescribeClusterOutput struct {
7313	_ struct{} `type:"structure"`
7314
7315	// This output contains the details for the requested cluster.
7316	Cluster *Cluster `type:"structure"`
7317}
7318
7319// String returns the string representation
7320func (s DescribeClusterOutput) String() string {
7321	return awsutil.Prettify(s)
7322}
7323
7324// GoString returns the string representation
7325func (s DescribeClusterOutput) GoString() string {
7326	return s.String()
7327}
7328
7329// SetCluster sets the Cluster field's value.
7330func (s *DescribeClusterOutput) SetCluster(v *Cluster) *DescribeClusterOutput {
7331	s.Cluster = v
7332	return s
7333}
7334
7335// The input for the DescribeJobFlows operation.
7336type DescribeJobFlowsInput struct {
7337	_ struct{} `type:"structure"`
7338
7339	// Return only job flows created after this date and time.
7340	CreatedAfter *time.Time `type:"timestamp"`
7341
7342	// Return only job flows created before this date and time.
7343	CreatedBefore *time.Time `type:"timestamp"`
7344
7345	// Return only job flows whose job flow ID is contained in this list.
7346	JobFlowIds []*string `type:"list"`
7347
7348	// Return only job flows whose state is contained in this list.
7349	JobFlowStates []*string `type:"list"`
7350}
7351
7352// String returns the string representation
7353func (s DescribeJobFlowsInput) String() string {
7354	return awsutil.Prettify(s)
7355}
7356
7357// GoString returns the string representation
7358func (s DescribeJobFlowsInput) GoString() string {
7359	return s.String()
7360}
7361
7362// SetCreatedAfter sets the CreatedAfter field's value.
7363func (s *DescribeJobFlowsInput) SetCreatedAfter(v time.Time) *DescribeJobFlowsInput {
7364	s.CreatedAfter = &v
7365	return s
7366}
7367
7368// SetCreatedBefore sets the CreatedBefore field's value.
7369func (s *DescribeJobFlowsInput) SetCreatedBefore(v time.Time) *DescribeJobFlowsInput {
7370	s.CreatedBefore = &v
7371	return s
7372}
7373
7374// SetJobFlowIds sets the JobFlowIds field's value.
7375func (s *DescribeJobFlowsInput) SetJobFlowIds(v []*string) *DescribeJobFlowsInput {
7376	s.JobFlowIds = v
7377	return s
7378}
7379
7380// SetJobFlowStates sets the JobFlowStates field's value.
7381func (s *DescribeJobFlowsInput) SetJobFlowStates(v []*string) *DescribeJobFlowsInput {
7382	s.JobFlowStates = v
7383	return s
7384}
7385
7386// The output for the DescribeJobFlows operation.
7387type DescribeJobFlowsOutput struct {
7388	_ struct{} `type:"structure"`
7389
7390	// A list of job flows matching the parameters supplied.
7391	JobFlows []*JobFlowDetail `type:"list"`
7392}
7393
7394// String returns the string representation
7395func (s DescribeJobFlowsOutput) String() string {
7396	return awsutil.Prettify(s)
7397}
7398
7399// GoString returns the string representation
7400func (s DescribeJobFlowsOutput) GoString() string {
7401	return s.String()
7402}
7403
7404// SetJobFlows sets the JobFlows field's value.
7405func (s *DescribeJobFlowsOutput) SetJobFlows(v []*JobFlowDetail) *DescribeJobFlowsOutput {
7406	s.JobFlows = v
7407	return s
7408}
7409
7410type DescribeNotebookExecutionInput struct {
7411	_ struct{} `type:"structure"`
7412
7413	// The unique identifier of the notebook execution.
7414	//
7415	// NotebookExecutionId is a required field
7416	NotebookExecutionId *string `type:"string" required:"true"`
7417}
7418
7419// String returns the string representation
7420func (s DescribeNotebookExecutionInput) String() string {
7421	return awsutil.Prettify(s)
7422}
7423
7424// GoString returns the string representation
7425func (s DescribeNotebookExecutionInput) GoString() string {
7426	return s.String()
7427}
7428
7429// Validate inspects the fields of the type to determine if they are valid.
7430func (s *DescribeNotebookExecutionInput) Validate() error {
7431	invalidParams := request.ErrInvalidParams{Context: "DescribeNotebookExecutionInput"}
7432	if s.NotebookExecutionId == nil {
7433		invalidParams.Add(request.NewErrParamRequired("NotebookExecutionId"))
7434	}
7435
7436	if invalidParams.Len() > 0 {
7437		return invalidParams
7438	}
7439	return nil
7440}
7441
7442// SetNotebookExecutionId sets the NotebookExecutionId field's value.
7443func (s *DescribeNotebookExecutionInput) SetNotebookExecutionId(v string) *DescribeNotebookExecutionInput {
7444	s.NotebookExecutionId = &v
7445	return s
7446}
7447
7448type DescribeNotebookExecutionOutput struct {
7449	_ struct{} `type:"structure"`
7450
7451	// Properties of the notebook execution.
7452	NotebookExecution *NotebookExecution `type:"structure"`
7453}
7454
7455// String returns the string representation
7456func (s DescribeNotebookExecutionOutput) String() string {
7457	return awsutil.Prettify(s)
7458}
7459
7460// GoString returns the string representation
7461func (s DescribeNotebookExecutionOutput) GoString() string {
7462	return s.String()
7463}
7464
7465// SetNotebookExecution sets the NotebookExecution field's value.
7466func (s *DescribeNotebookExecutionOutput) SetNotebookExecution(v *NotebookExecution) *DescribeNotebookExecutionOutput {
7467	s.NotebookExecution = v
7468	return s
7469}
7470
7471type DescribeReleaseLabelInput struct {
7472	_ struct{} `type:"structure"`
7473
7474	// Reserved for future use. Currently set to null.
7475	MaxResults *int64 `min:"1" type:"integer"`
7476
7477	// The pagination token. Reserved for future use. Currently set to null.
7478	NextToken *string `type:"string"`
7479
7480	// The target release label to be described.
7481	ReleaseLabel *string `type:"string"`
7482}
7483
7484// String returns the string representation
7485func (s DescribeReleaseLabelInput) String() string {
7486	return awsutil.Prettify(s)
7487}
7488
7489// GoString returns the string representation
7490func (s DescribeReleaseLabelInput) GoString() string {
7491	return s.String()
7492}
7493
7494// Validate inspects the fields of the type to determine if they are valid.
7495func (s *DescribeReleaseLabelInput) Validate() error {
7496	invalidParams := request.ErrInvalidParams{Context: "DescribeReleaseLabelInput"}
7497	if s.MaxResults != nil && *s.MaxResults < 1 {
7498		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7499	}
7500
7501	if invalidParams.Len() > 0 {
7502		return invalidParams
7503	}
7504	return nil
7505}
7506
7507// SetMaxResults sets the MaxResults field's value.
7508func (s *DescribeReleaseLabelInput) SetMaxResults(v int64) *DescribeReleaseLabelInput {
7509	s.MaxResults = &v
7510	return s
7511}
7512
7513// SetNextToken sets the NextToken field's value.
7514func (s *DescribeReleaseLabelInput) SetNextToken(v string) *DescribeReleaseLabelInput {
7515	s.NextToken = &v
7516	return s
7517}
7518
7519// SetReleaseLabel sets the ReleaseLabel field's value.
7520func (s *DescribeReleaseLabelInput) SetReleaseLabel(v string) *DescribeReleaseLabelInput {
7521	s.ReleaseLabel = &v
7522	return s
7523}
7524
7525type DescribeReleaseLabelOutput struct {
7526	_ struct{} `type:"structure"`
7527
7528	// The list of applications available for the target release label. Name is
7529	// the name of the application. Version is the concise version of the application.
7530	Applications []*SimplifiedApplication `type:"list"`
7531
7532	// The pagination token. Reserved for future use. Currently set to null.
7533	NextToken *string `type:"string"`
7534
7535	// The target release label described in the response.
7536	ReleaseLabel *string `type:"string"`
7537}
7538
7539// String returns the string representation
7540func (s DescribeReleaseLabelOutput) String() string {
7541	return awsutil.Prettify(s)
7542}
7543
7544// GoString returns the string representation
7545func (s DescribeReleaseLabelOutput) GoString() string {
7546	return s.String()
7547}
7548
7549// SetApplications sets the Applications field's value.
7550func (s *DescribeReleaseLabelOutput) SetApplications(v []*SimplifiedApplication) *DescribeReleaseLabelOutput {
7551	s.Applications = v
7552	return s
7553}
7554
7555// SetNextToken sets the NextToken field's value.
7556func (s *DescribeReleaseLabelOutput) SetNextToken(v string) *DescribeReleaseLabelOutput {
7557	s.NextToken = &v
7558	return s
7559}
7560
7561// SetReleaseLabel sets the ReleaseLabel field's value.
7562func (s *DescribeReleaseLabelOutput) SetReleaseLabel(v string) *DescribeReleaseLabelOutput {
7563	s.ReleaseLabel = &v
7564	return s
7565}
7566
7567type DescribeSecurityConfigurationInput struct {
7568	_ struct{} `type:"structure"`
7569
7570	// The name of the security configuration.
7571	//
7572	// Name is a required field
7573	Name *string `type:"string" required:"true"`
7574}
7575
7576// String returns the string representation
7577func (s DescribeSecurityConfigurationInput) String() string {
7578	return awsutil.Prettify(s)
7579}
7580
7581// GoString returns the string representation
7582func (s DescribeSecurityConfigurationInput) GoString() string {
7583	return s.String()
7584}
7585
7586// Validate inspects the fields of the type to determine if they are valid.
7587func (s *DescribeSecurityConfigurationInput) Validate() error {
7588	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityConfigurationInput"}
7589	if s.Name == nil {
7590		invalidParams.Add(request.NewErrParamRequired("Name"))
7591	}
7592
7593	if invalidParams.Len() > 0 {
7594		return invalidParams
7595	}
7596	return nil
7597}
7598
7599// SetName sets the Name field's value.
7600func (s *DescribeSecurityConfigurationInput) SetName(v string) *DescribeSecurityConfigurationInput {
7601	s.Name = &v
7602	return s
7603}
7604
7605type DescribeSecurityConfigurationOutput struct {
7606	_ struct{} `type:"structure"`
7607
7608	// The date and time the security configuration was created
7609	CreationDateTime *time.Time `type:"timestamp"`
7610
7611	// The name of the security configuration.
7612	Name *string `type:"string"`
7613
7614	// The security configuration details in JSON format.
7615	SecurityConfiguration *string `type:"string"`
7616}
7617
7618// String returns the string representation
7619func (s DescribeSecurityConfigurationOutput) String() string {
7620	return awsutil.Prettify(s)
7621}
7622
7623// GoString returns the string representation
7624func (s DescribeSecurityConfigurationOutput) GoString() string {
7625	return s.String()
7626}
7627
7628// SetCreationDateTime sets the CreationDateTime field's value.
7629func (s *DescribeSecurityConfigurationOutput) SetCreationDateTime(v time.Time) *DescribeSecurityConfigurationOutput {
7630	s.CreationDateTime = &v
7631	return s
7632}
7633
7634// SetName sets the Name field's value.
7635func (s *DescribeSecurityConfigurationOutput) SetName(v string) *DescribeSecurityConfigurationOutput {
7636	s.Name = &v
7637	return s
7638}
7639
7640// SetSecurityConfiguration sets the SecurityConfiguration field's value.
7641func (s *DescribeSecurityConfigurationOutput) SetSecurityConfiguration(v string) *DescribeSecurityConfigurationOutput {
7642	s.SecurityConfiguration = &v
7643	return s
7644}
7645
7646// This input determines which step to describe.
7647type DescribeStepInput struct {
7648	_ struct{} `type:"structure"`
7649
7650	// The identifier of the cluster with steps to describe.
7651	//
7652	// ClusterId is a required field
7653	ClusterId *string `type:"string" required:"true"`
7654
7655	// The identifier of the step to describe.
7656	//
7657	// StepId is a required field
7658	StepId *string `type:"string" required:"true"`
7659}
7660
7661// String returns the string representation
7662func (s DescribeStepInput) String() string {
7663	return awsutil.Prettify(s)
7664}
7665
7666// GoString returns the string representation
7667func (s DescribeStepInput) GoString() string {
7668	return s.String()
7669}
7670
7671// Validate inspects the fields of the type to determine if they are valid.
7672func (s *DescribeStepInput) Validate() error {
7673	invalidParams := request.ErrInvalidParams{Context: "DescribeStepInput"}
7674	if s.ClusterId == nil {
7675		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
7676	}
7677	if s.StepId == nil {
7678		invalidParams.Add(request.NewErrParamRequired("StepId"))
7679	}
7680
7681	if invalidParams.Len() > 0 {
7682		return invalidParams
7683	}
7684	return nil
7685}
7686
7687// SetClusterId sets the ClusterId field's value.
7688func (s *DescribeStepInput) SetClusterId(v string) *DescribeStepInput {
7689	s.ClusterId = &v
7690	return s
7691}
7692
7693// SetStepId sets the StepId field's value.
7694func (s *DescribeStepInput) SetStepId(v string) *DescribeStepInput {
7695	s.StepId = &v
7696	return s
7697}
7698
7699// This output contains the description of the cluster step.
7700type DescribeStepOutput struct {
7701	_ struct{} `type:"structure"`
7702
7703	// The step details for the requested step identifier.
7704	Step *Step `type:"structure"`
7705}
7706
7707// String returns the string representation
7708func (s DescribeStepOutput) String() string {
7709	return awsutil.Prettify(s)
7710}
7711
7712// GoString returns the string representation
7713func (s DescribeStepOutput) GoString() string {
7714	return s.String()
7715}
7716
7717// SetStep sets the Step field's value.
7718func (s *DescribeStepOutput) SetStep(v *Step) *DescribeStepOutput {
7719	s.Step = v
7720	return s
7721}
7722
7723type DescribeStudioInput struct {
7724	_ struct{} `type:"structure"`
7725
7726	// The Amazon EMR Studio ID.
7727	//
7728	// StudioId is a required field
7729	StudioId *string `type:"string" required:"true"`
7730}
7731
7732// String returns the string representation
7733func (s DescribeStudioInput) String() string {
7734	return awsutil.Prettify(s)
7735}
7736
7737// GoString returns the string representation
7738func (s DescribeStudioInput) GoString() string {
7739	return s.String()
7740}
7741
7742// Validate inspects the fields of the type to determine if they are valid.
7743func (s *DescribeStudioInput) Validate() error {
7744	invalidParams := request.ErrInvalidParams{Context: "DescribeStudioInput"}
7745	if s.StudioId == nil {
7746		invalidParams.Add(request.NewErrParamRequired("StudioId"))
7747	}
7748
7749	if invalidParams.Len() > 0 {
7750		return invalidParams
7751	}
7752	return nil
7753}
7754
7755// SetStudioId sets the StudioId field's value.
7756func (s *DescribeStudioInput) SetStudioId(v string) *DescribeStudioInput {
7757	s.StudioId = &v
7758	return s
7759}
7760
7761type DescribeStudioOutput struct {
7762	_ struct{} `type:"structure"`
7763
7764	// The Amazon EMR Studio details.
7765	Studio *Studio `type:"structure"`
7766}
7767
7768// String returns the string representation
7769func (s DescribeStudioOutput) String() string {
7770	return awsutil.Prettify(s)
7771}
7772
7773// GoString returns the string representation
7774func (s DescribeStudioOutput) GoString() string {
7775	return s.String()
7776}
7777
7778// SetStudio sets the Studio field's value.
7779func (s *DescribeStudioOutput) SetStudio(v *Studio) *DescribeStudioOutput {
7780	s.Studio = v
7781	return s
7782}
7783
7784// Configuration of requested EBS block device associated with the instance
7785// group.
7786type EbsBlockDevice struct {
7787	_ struct{} `type:"structure"`
7788
7789	// The device name that is exposed to the instance, such as /dev/sdh.
7790	Device *string `type:"string"`
7791
7792	// EBS volume specifications such as volume type, IOPS, and size (GiB) that
7793	// will be requested for the EBS volume attached to an EC2 instance in the cluster.
7794	VolumeSpecification *VolumeSpecification `type:"structure"`
7795}
7796
7797// String returns the string representation
7798func (s EbsBlockDevice) String() string {
7799	return awsutil.Prettify(s)
7800}
7801
7802// GoString returns the string representation
7803func (s EbsBlockDevice) GoString() string {
7804	return s.String()
7805}
7806
7807// SetDevice sets the Device field's value.
7808func (s *EbsBlockDevice) SetDevice(v string) *EbsBlockDevice {
7809	s.Device = &v
7810	return s
7811}
7812
7813// SetVolumeSpecification sets the VolumeSpecification field's value.
7814func (s *EbsBlockDevice) SetVolumeSpecification(v *VolumeSpecification) *EbsBlockDevice {
7815	s.VolumeSpecification = v
7816	return s
7817}
7818
7819// Configuration of requested EBS block device associated with the instance
7820// group with count of volumes that will be associated to every instance.
7821type EbsBlockDeviceConfig struct {
7822	_ struct{} `type:"structure"`
7823
7824	// EBS volume specifications such as volume type, IOPS, and size (GiB) that
7825	// will be requested for the EBS volume attached to an EC2 instance in the cluster.
7826	//
7827	// VolumeSpecification is a required field
7828	VolumeSpecification *VolumeSpecification `type:"structure" required:"true"`
7829
7830	// Number of EBS volumes with a specific volume configuration that will be associated
7831	// with every instance in the instance group
7832	VolumesPerInstance *int64 `type:"integer"`
7833}
7834
7835// String returns the string representation
7836func (s EbsBlockDeviceConfig) String() string {
7837	return awsutil.Prettify(s)
7838}
7839
7840// GoString returns the string representation
7841func (s EbsBlockDeviceConfig) GoString() string {
7842	return s.String()
7843}
7844
7845// Validate inspects the fields of the type to determine if they are valid.
7846func (s *EbsBlockDeviceConfig) Validate() error {
7847	invalidParams := request.ErrInvalidParams{Context: "EbsBlockDeviceConfig"}
7848	if s.VolumeSpecification == nil {
7849		invalidParams.Add(request.NewErrParamRequired("VolumeSpecification"))
7850	}
7851	if s.VolumeSpecification != nil {
7852		if err := s.VolumeSpecification.Validate(); err != nil {
7853			invalidParams.AddNested("VolumeSpecification", err.(request.ErrInvalidParams))
7854		}
7855	}
7856
7857	if invalidParams.Len() > 0 {
7858		return invalidParams
7859	}
7860	return nil
7861}
7862
7863// SetVolumeSpecification sets the VolumeSpecification field's value.
7864func (s *EbsBlockDeviceConfig) SetVolumeSpecification(v *VolumeSpecification) *EbsBlockDeviceConfig {
7865	s.VolumeSpecification = v
7866	return s
7867}
7868
7869// SetVolumesPerInstance sets the VolumesPerInstance field's value.
7870func (s *EbsBlockDeviceConfig) SetVolumesPerInstance(v int64) *EbsBlockDeviceConfig {
7871	s.VolumesPerInstance = &v
7872	return s
7873}
7874
7875// The Amazon EBS configuration of a cluster instance.
7876type EbsConfiguration struct {
7877	_ struct{} `type:"structure"`
7878
7879	// An array of Amazon EBS volume specifications attached to a cluster instance.
7880	EbsBlockDeviceConfigs []*EbsBlockDeviceConfig `type:"list"`
7881
7882	// Indicates whether an Amazon EBS volume is EBS-optimized.
7883	EbsOptimized *bool `type:"boolean"`
7884}
7885
7886// String returns the string representation
7887func (s EbsConfiguration) String() string {
7888	return awsutil.Prettify(s)
7889}
7890
7891// GoString returns the string representation
7892func (s EbsConfiguration) GoString() string {
7893	return s.String()
7894}
7895
7896// Validate inspects the fields of the type to determine if they are valid.
7897func (s *EbsConfiguration) Validate() error {
7898	invalidParams := request.ErrInvalidParams{Context: "EbsConfiguration"}
7899	if s.EbsBlockDeviceConfigs != nil {
7900		for i, v := range s.EbsBlockDeviceConfigs {
7901			if v == nil {
7902				continue
7903			}
7904			if err := v.Validate(); err != nil {
7905				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EbsBlockDeviceConfigs", i), err.(request.ErrInvalidParams))
7906			}
7907		}
7908	}
7909
7910	if invalidParams.Len() > 0 {
7911		return invalidParams
7912	}
7913	return nil
7914}
7915
7916// SetEbsBlockDeviceConfigs sets the EbsBlockDeviceConfigs field's value.
7917func (s *EbsConfiguration) SetEbsBlockDeviceConfigs(v []*EbsBlockDeviceConfig) *EbsConfiguration {
7918	s.EbsBlockDeviceConfigs = v
7919	return s
7920}
7921
7922// SetEbsOptimized sets the EbsOptimized field's value.
7923func (s *EbsConfiguration) SetEbsOptimized(v bool) *EbsConfiguration {
7924	s.EbsOptimized = &v
7925	return s
7926}
7927
7928// EBS block device that's attached to an EC2 instance.
7929type EbsVolume struct {
7930	_ struct{} `type:"structure"`
7931
7932	// The device name that is exposed to the instance, such as /dev/sdh.
7933	Device *string `type:"string"`
7934
7935	// The volume identifier of the EBS volume.
7936	VolumeId *string `type:"string"`
7937}
7938
7939// String returns the string representation
7940func (s EbsVolume) String() string {
7941	return awsutil.Prettify(s)
7942}
7943
7944// GoString returns the string representation
7945func (s EbsVolume) GoString() string {
7946	return s.String()
7947}
7948
7949// SetDevice sets the Device field's value.
7950func (s *EbsVolume) SetDevice(v string) *EbsVolume {
7951	s.Device = &v
7952	return s
7953}
7954
7955// SetVolumeId sets the VolumeId field's value.
7956func (s *EbsVolume) SetVolumeId(v string) *EbsVolume {
7957	s.VolumeId = &v
7958	return s
7959}
7960
7961// Provides information about the EC2 instances in a cluster grouped by category.
7962// For example, key name, subnet ID, IAM instance profile, and so on.
7963type Ec2InstanceAttributes struct {
7964	_ struct{} `type:"structure"`
7965
7966	// A list of additional Amazon EC2 security group IDs for the master node.
7967	AdditionalMasterSecurityGroups []*string `type:"list"`
7968
7969	// A list of additional Amazon EC2 security group IDs for the core and task
7970	// nodes.
7971	AdditionalSlaveSecurityGroups []*string `type:"list"`
7972
7973	// The Availability Zone in which the cluster will run.
7974	Ec2AvailabilityZone *string `type:"string"`
7975
7976	// The name of the Amazon EC2 key pair to use when connecting with SSH into
7977	// the master node as a user named "hadoop".
7978	Ec2KeyName *string `type:"string"`
7979
7980	// Set this parameter to the identifier of the Amazon VPC subnet where you want
7981	// the cluster to launch. If you do not specify this value, and your account
7982	// supports EC2-Classic, the cluster launches in EC2-Classic.
7983	Ec2SubnetId *string `type:"string"`
7984
7985	// The identifier of the Amazon EC2 security group for the master node.
7986	EmrManagedMasterSecurityGroup *string `type:"string"`
7987
7988	// The identifier of the Amazon EC2 security group for the core and task nodes.
7989	EmrManagedSlaveSecurityGroup *string `type:"string"`
7990
7991	// The IAM role that was specified when the cluster was launched. The EC2 instances
7992	// of the cluster assume this role.
7993	IamInstanceProfile *string `type:"string"`
7994
7995	// Applies to clusters configured with the instance fleets option. Specifies
7996	// one or more Availability Zones in which to launch EC2 cluster instances when
7997	// the EC2-Classic network configuration is supported. Amazon EMR chooses the
7998	// Availability Zone with the best fit from among the list of RequestedEc2AvailabilityZones,
7999	// and then launches all cluster instances within that Availability Zone. If
8000	// you do not specify this value, Amazon EMR chooses the Availability Zone for
8001	// you. RequestedEc2SubnetIDs and RequestedEc2AvailabilityZones cannot be specified
8002	// together.
8003	RequestedEc2AvailabilityZones []*string `type:"list"`
8004
8005	// Applies to clusters configured with the instance fleets option. Specifies
8006	// the unique identifier of one or more Amazon EC2 subnets in which to launch
8007	// EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR
8008	// chooses the EC2 subnet with the best fit from among the list of RequestedEc2SubnetIds,
8009	// and then launches all cluster instances within that Subnet. If this value
8010	// is not specified, and the account and Region support EC2-Classic networks,
8011	// the cluster launches instances in the EC2-Classic network and uses RequestedEc2AvailabilityZones
8012	// instead of this setting. If EC2-Classic is not supported, and no Subnet is
8013	// specified, Amazon EMR chooses the subnet for you. RequestedEc2SubnetIDs and
8014	// RequestedEc2AvailabilityZones cannot be specified together.
8015	RequestedEc2SubnetIds []*string `type:"list"`
8016
8017	// The identifier of the Amazon EC2 security group for the Amazon EMR service
8018	// to access clusters in VPC private subnets.
8019	ServiceAccessSecurityGroup *string `type:"string"`
8020}
8021
8022// String returns the string representation
8023func (s Ec2InstanceAttributes) String() string {
8024	return awsutil.Prettify(s)
8025}
8026
8027// GoString returns the string representation
8028func (s Ec2InstanceAttributes) GoString() string {
8029	return s.String()
8030}
8031
8032// SetAdditionalMasterSecurityGroups sets the AdditionalMasterSecurityGroups field's value.
8033func (s *Ec2InstanceAttributes) SetAdditionalMasterSecurityGroups(v []*string) *Ec2InstanceAttributes {
8034	s.AdditionalMasterSecurityGroups = v
8035	return s
8036}
8037
8038// SetAdditionalSlaveSecurityGroups sets the AdditionalSlaveSecurityGroups field's value.
8039func (s *Ec2InstanceAttributes) SetAdditionalSlaveSecurityGroups(v []*string) *Ec2InstanceAttributes {
8040	s.AdditionalSlaveSecurityGroups = v
8041	return s
8042}
8043
8044// SetEc2AvailabilityZone sets the Ec2AvailabilityZone field's value.
8045func (s *Ec2InstanceAttributes) SetEc2AvailabilityZone(v string) *Ec2InstanceAttributes {
8046	s.Ec2AvailabilityZone = &v
8047	return s
8048}
8049
8050// SetEc2KeyName sets the Ec2KeyName field's value.
8051func (s *Ec2InstanceAttributes) SetEc2KeyName(v string) *Ec2InstanceAttributes {
8052	s.Ec2KeyName = &v
8053	return s
8054}
8055
8056// SetEc2SubnetId sets the Ec2SubnetId field's value.
8057func (s *Ec2InstanceAttributes) SetEc2SubnetId(v string) *Ec2InstanceAttributes {
8058	s.Ec2SubnetId = &v
8059	return s
8060}
8061
8062// SetEmrManagedMasterSecurityGroup sets the EmrManagedMasterSecurityGroup field's value.
8063func (s *Ec2InstanceAttributes) SetEmrManagedMasterSecurityGroup(v string) *Ec2InstanceAttributes {
8064	s.EmrManagedMasterSecurityGroup = &v
8065	return s
8066}
8067
8068// SetEmrManagedSlaveSecurityGroup sets the EmrManagedSlaveSecurityGroup field's value.
8069func (s *Ec2InstanceAttributes) SetEmrManagedSlaveSecurityGroup(v string) *Ec2InstanceAttributes {
8070	s.EmrManagedSlaveSecurityGroup = &v
8071	return s
8072}
8073
8074// SetIamInstanceProfile sets the IamInstanceProfile field's value.
8075func (s *Ec2InstanceAttributes) SetIamInstanceProfile(v string) *Ec2InstanceAttributes {
8076	s.IamInstanceProfile = &v
8077	return s
8078}
8079
8080// SetRequestedEc2AvailabilityZones sets the RequestedEc2AvailabilityZones field's value.
8081func (s *Ec2InstanceAttributes) SetRequestedEc2AvailabilityZones(v []*string) *Ec2InstanceAttributes {
8082	s.RequestedEc2AvailabilityZones = v
8083	return s
8084}
8085
8086// SetRequestedEc2SubnetIds sets the RequestedEc2SubnetIds field's value.
8087func (s *Ec2InstanceAttributes) SetRequestedEc2SubnetIds(v []*string) *Ec2InstanceAttributes {
8088	s.RequestedEc2SubnetIds = v
8089	return s
8090}
8091
8092// SetServiceAccessSecurityGroup sets the ServiceAccessSecurityGroup field's value.
8093func (s *Ec2InstanceAttributes) SetServiceAccessSecurityGroup(v string) *Ec2InstanceAttributes {
8094	s.ServiceAccessSecurityGroup = &v
8095	return s
8096}
8097
8098// Specifies the execution engine (cluster) to run the notebook and perform
8099// the notebook execution, for example, an EMR cluster.
8100type ExecutionEngineConfig struct {
8101	_ struct{} `type:"structure"`
8102
8103	// The unique identifier of the execution engine. For an EMR cluster, this is
8104	// the cluster ID.
8105	//
8106	// Id is a required field
8107	Id *string `type:"string" required:"true"`
8108
8109	// An optional unique ID of an EC2 security group to associate with the master
8110	// instance of the EMR cluster for this notebook execution. For more information
8111	// see Specifying EC2 Security Groups for EMR Notebooks (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html)
8112	// in the EMR Management Guide.
8113	MasterInstanceSecurityGroupId *string `type:"string"`
8114
8115	// The type of execution engine. A value of EMR specifies an EMR cluster.
8116	Type *string `type:"string" enum:"ExecutionEngineType"`
8117}
8118
8119// String returns the string representation
8120func (s ExecutionEngineConfig) String() string {
8121	return awsutil.Prettify(s)
8122}
8123
8124// GoString returns the string representation
8125func (s ExecutionEngineConfig) GoString() string {
8126	return s.String()
8127}
8128
8129// Validate inspects the fields of the type to determine if they are valid.
8130func (s *ExecutionEngineConfig) Validate() error {
8131	invalidParams := request.ErrInvalidParams{Context: "ExecutionEngineConfig"}
8132	if s.Id == nil {
8133		invalidParams.Add(request.NewErrParamRequired("Id"))
8134	}
8135
8136	if invalidParams.Len() > 0 {
8137		return invalidParams
8138	}
8139	return nil
8140}
8141
8142// SetId sets the Id field's value.
8143func (s *ExecutionEngineConfig) SetId(v string) *ExecutionEngineConfig {
8144	s.Id = &v
8145	return s
8146}
8147
8148// SetMasterInstanceSecurityGroupId sets the MasterInstanceSecurityGroupId field's value.
8149func (s *ExecutionEngineConfig) SetMasterInstanceSecurityGroupId(v string) *ExecutionEngineConfig {
8150	s.MasterInstanceSecurityGroupId = &v
8151	return s
8152}
8153
8154// SetType sets the Type field's value.
8155func (s *ExecutionEngineConfig) SetType(v string) *ExecutionEngineConfig {
8156	s.Type = &v
8157	return s
8158}
8159
8160// The details of the step failure. The service attempts to detect the root
8161// cause for many common failures.
8162type FailureDetails struct {
8163	_ struct{} `type:"structure"`
8164
8165	// The path to the log file where the step failure root cause was originally
8166	// recorded.
8167	LogFile *string `type:"string"`
8168
8169	// The descriptive message including the error the Amazon EMR service has identified
8170	// as the cause of step failure. This is text from an error log that describes
8171	// the root cause of the failure.
8172	Message *string `type:"string"`
8173
8174	// The reason for the step failure. In the case where the service cannot successfully
8175	// determine the root cause of the failure, it returns "Unknown Error" as a
8176	// reason.
8177	Reason *string `type:"string"`
8178}
8179
8180// String returns the string representation
8181func (s FailureDetails) String() string {
8182	return awsutil.Prettify(s)
8183}
8184
8185// GoString returns the string representation
8186func (s FailureDetails) GoString() string {
8187	return s.String()
8188}
8189
8190// SetLogFile sets the LogFile field's value.
8191func (s *FailureDetails) SetLogFile(v string) *FailureDetails {
8192	s.LogFile = &v
8193	return s
8194}
8195
8196// SetMessage sets the Message field's value.
8197func (s *FailureDetails) SetMessage(v string) *FailureDetails {
8198	s.Message = &v
8199	return s
8200}
8201
8202// SetReason sets the Reason field's value.
8203func (s *FailureDetails) SetReason(v string) *FailureDetails {
8204	s.Reason = &v
8205	return s
8206}
8207
8208type GetBlockPublicAccessConfigurationInput struct {
8209	_ struct{} `type:"structure"`
8210}
8211
8212// String returns the string representation
8213func (s GetBlockPublicAccessConfigurationInput) String() string {
8214	return awsutil.Prettify(s)
8215}
8216
8217// GoString returns the string representation
8218func (s GetBlockPublicAccessConfigurationInput) GoString() string {
8219	return s.String()
8220}
8221
8222type GetBlockPublicAccessConfigurationOutput struct {
8223	_ struct{} `type:"structure"`
8224
8225	// A configuration for Amazon EMR block public access. The configuration applies
8226	// to all clusters created in your account for the current Region. The configuration
8227	// specifies whether block public access is enabled. If block public access
8228	// is enabled, security groups associated with the cluster cannot have rules
8229	// that allow inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port
8230	// is specified as an exception using PermittedPublicSecurityGroupRuleRanges
8231	// in the BlockPublicAccessConfiguration. By default, Port 22 (SSH) is an exception,
8232	// and public access is allowed on this port. You can change this by updating
8233	// the block public access configuration to remove the exception.
8234	//
8235	// For accounts that created clusters in a Region before November 25, 2019,
8236	// block public access is disabled by default in that Region. To use this feature,
8237	// you must manually enable and configure it. For accounts that did not create
8238	// an EMR cluster in a Region before this date, block public access is enabled
8239	// by default in that Region.
8240	//
8241	// BlockPublicAccessConfiguration is a required field
8242	BlockPublicAccessConfiguration *BlockPublicAccessConfiguration `type:"structure" required:"true"`
8243
8244	// Properties that describe the Amazon Web Services principal that created the
8245	// BlockPublicAccessConfiguration using the PutBlockPublicAccessConfiguration
8246	// action as well as the date and time that the configuration was created. Each
8247	// time a configuration for block public access is updated, Amazon EMR updates
8248	// this metadata.
8249	//
8250	// BlockPublicAccessConfigurationMetadata is a required field
8251	BlockPublicAccessConfigurationMetadata *BlockPublicAccessConfigurationMetadata `type:"structure" required:"true"`
8252}
8253
8254// String returns the string representation
8255func (s GetBlockPublicAccessConfigurationOutput) String() string {
8256	return awsutil.Prettify(s)
8257}
8258
8259// GoString returns the string representation
8260func (s GetBlockPublicAccessConfigurationOutput) GoString() string {
8261	return s.String()
8262}
8263
8264// SetBlockPublicAccessConfiguration sets the BlockPublicAccessConfiguration field's value.
8265func (s *GetBlockPublicAccessConfigurationOutput) SetBlockPublicAccessConfiguration(v *BlockPublicAccessConfiguration) *GetBlockPublicAccessConfigurationOutput {
8266	s.BlockPublicAccessConfiguration = v
8267	return s
8268}
8269
8270// SetBlockPublicAccessConfigurationMetadata sets the BlockPublicAccessConfigurationMetadata field's value.
8271func (s *GetBlockPublicAccessConfigurationOutput) SetBlockPublicAccessConfigurationMetadata(v *BlockPublicAccessConfigurationMetadata) *GetBlockPublicAccessConfigurationOutput {
8272	s.BlockPublicAccessConfigurationMetadata = v
8273	return s
8274}
8275
8276type GetManagedScalingPolicyInput struct {
8277	_ struct{} `type:"structure"`
8278
8279	// Specifies the ID of the cluster for which the managed scaling policy will
8280	// be fetched.
8281	//
8282	// ClusterId is a required field
8283	ClusterId *string `type:"string" required:"true"`
8284}
8285
8286// String returns the string representation
8287func (s GetManagedScalingPolicyInput) String() string {
8288	return awsutil.Prettify(s)
8289}
8290
8291// GoString returns the string representation
8292func (s GetManagedScalingPolicyInput) GoString() string {
8293	return s.String()
8294}
8295
8296// Validate inspects the fields of the type to determine if they are valid.
8297func (s *GetManagedScalingPolicyInput) Validate() error {
8298	invalidParams := request.ErrInvalidParams{Context: "GetManagedScalingPolicyInput"}
8299	if s.ClusterId == nil {
8300		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
8301	}
8302
8303	if invalidParams.Len() > 0 {
8304		return invalidParams
8305	}
8306	return nil
8307}
8308
8309// SetClusterId sets the ClusterId field's value.
8310func (s *GetManagedScalingPolicyInput) SetClusterId(v string) *GetManagedScalingPolicyInput {
8311	s.ClusterId = &v
8312	return s
8313}
8314
8315type GetManagedScalingPolicyOutput struct {
8316	_ struct{} `type:"structure"`
8317
8318	// Specifies the managed scaling policy that is attached to an Amazon EMR cluster.
8319	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure"`
8320}
8321
8322// String returns the string representation
8323func (s GetManagedScalingPolicyOutput) String() string {
8324	return awsutil.Prettify(s)
8325}
8326
8327// GoString returns the string representation
8328func (s GetManagedScalingPolicyOutput) GoString() string {
8329	return s.String()
8330}
8331
8332// SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
8333func (s *GetManagedScalingPolicyOutput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *GetManagedScalingPolicyOutput {
8334	s.ManagedScalingPolicy = v
8335	return s
8336}
8337
8338type GetStudioSessionMappingInput struct {
8339	_ struct{} `type:"structure"`
8340
8341	// The globally unique identifier (GUID) of the user or group. For more information,
8342	// see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
8343	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
8344	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
8345	// or IdentityId must be specified.
8346	IdentityId *string `type:"string"`
8347
8348	// The name of the user or group to fetch. For more information, see UserName
8349	// (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
8350	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
8351	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
8352	// or IdentityId must be specified.
8353	IdentityName *string `type:"string"`
8354
8355	// Specifies whether the identity to fetch is a user or a group.
8356	//
8357	// IdentityType is a required field
8358	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
8359
8360	// The ID of the Amazon EMR Studio.
8361	//
8362	// StudioId is a required field
8363	StudioId *string `type:"string" required:"true"`
8364}
8365
8366// String returns the string representation
8367func (s GetStudioSessionMappingInput) String() string {
8368	return awsutil.Prettify(s)
8369}
8370
8371// GoString returns the string representation
8372func (s GetStudioSessionMappingInput) GoString() string {
8373	return s.String()
8374}
8375
8376// Validate inspects the fields of the type to determine if they are valid.
8377func (s *GetStudioSessionMappingInput) Validate() error {
8378	invalidParams := request.ErrInvalidParams{Context: "GetStudioSessionMappingInput"}
8379	if s.IdentityType == nil {
8380		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
8381	}
8382	if s.StudioId == nil {
8383		invalidParams.Add(request.NewErrParamRequired("StudioId"))
8384	}
8385
8386	if invalidParams.Len() > 0 {
8387		return invalidParams
8388	}
8389	return nil
8390}
8391
8392// SetIdentityId sets the IdentityId field's value.
8393func (s *GetStudioSessionMappingInput) SetIdentityId(v string) *GetStudioSessionMappingInput {
8394	s.IdentityId = &v
8395	return s
8396}
8397
8398// SetIdentityName sets the IdentityName field's value.
8399func (s *GetStudioSessionMappingInput) SetIdentityName(v string) *GetStudioSessionMappingInput {
8400	s.IdentityName = &v
8401	return s
8402}
8403
8404// SetIdentityType sets the IdentityType field's value.
8405func (s *GetStudioSessionMappingInput) SetIdentityType(v string) *GetStudioSessionMappingInput {
8406	s.IdentityType = &v
8407	return s
8408}
8409
8410// SetStudioId sets the StudioId field's value.
8411func (s *GetStudioSessionMappingInput) SetStudioId(v string) *GetStudioSessionMappingInput {
8412	s.StudioId = &v
8413	return s
8414}
8415
8416type GetStudioSessionMappingOutput struct {
8417	_ struct{} `type:"structure"`
8418
8419	// The session mapping details for the specified Amazon EMR Studio and identity,
8420	// including session policy ARN and creation time.
8421	SessionMapping *SessionMappingDetail `type:"structure"`
8422}
8423
8424// String returns the string representation
8425func (s GetStudioSessionMappingOutput) String() string {
8426	return awsutil.Prettify(s)
8427}
8428
8429// GoString returns the string representation
8430func (s GetStudioSessionMappingOutput) GoString() string {
8431	return s.String()
8432}
8433
8434// SetSessionMapping sets the SessionMapping field's value.
8435func (s *GetStudioSessionMappingOutput) SetSessionMapping(v *SessionMappingDetail) *GetStudioSessionMappingOutput {
8436	s.SessionMapping = v
8437	return s
8438}
8439
8440// A job flow step consisting of a JAR file whose main function will be executed.
8441// The main function submits a job for Hadoop to execute and waits for the job
8442// to finish or fail.
8443type HadoopJarStepConfig struct {
8444	_ struct{} `type:"structure"`
8445
8446	// A list of command line arguments passed to the JAR file's main function when
8447	// executed.
8448	Args []*string `type:"list"`
8449
8450	// A path to a JAR file run during the step.
8451	//
8452	// Jar is a required field
8453	Jar *string `type:"string" required:"true"`
8454
8455	// The name of the main class in the specified Java file. If not specified,
8456	// the JAR file should specify a Main-Class in its manifest file.
8457	MainClass *string `type:"string"`
8458
8459	// A list of Java properties that are set when the step runs. You can use these
8460	// properties to pass key-value pairs to your main function.
8461	Properties []*KeyValue `type:"list"`
8462}
8463
8464// String returns the string representation
8465func (s HadoopJarStepConfig) String() string {
8466	return awsutil.Prettify(s)
8467}
8468
8469// GoString returns the string representation
8470func (s HadoopJarStepConfig) GoString() string {
8471	return s.String()
8472}
8473
8474// Validate inspects the fields of the type to determine if they are valid.
8475func (s *HadoopJarStepConfig) Validate() error {
8476	invalidParams := request.ErrInvalidParams{Context: "HadoopJarStepConfig"}
8477	if s.Jar == nil {
8478		invalidParams.Add(request.NewErrParamRequired("Jar"))
8479	}
8480
8481	if invalidParams.Len() > 0 {
8482		return invalidParams
8483	}
8484	return nil
8485}
8486
8487// SetArgs sets the Args field's value.
8488func (s *HadoopJarStepConfig) SetArgs(v []*string) *HadoopJarStepConfig {
8489	s.Args = v
8490	return s
8491}
8492
8493// SetJar sets the Jar field's value.
8494func (s *HadoopJarStepConfig) SetJar(v string) *HadoopJarStepConfig {
8495	s.Jar = &v
8496	return s
8497}
8498
8499// SetMainClass sets the MainClass field's value.
8500func (s *HadoopJarStepConfig) SetMainClass(v string) *HadoopJarStepConfig {
8501	s.MainClass = &v
8502	return s
8503}
8504
8505// SetProperties sets the Properties field's value.
8506func (s *HadoopJarStepConfig) SetProperties(v []*KeyValue) *HadoopJarStepConfig {
8507	s.Properties = v
8508	return s
8509}
8510
8511// A cluster step consisting of a JAR file whose main function will be executed.
8512// The main function submits a job for Hadoop to execute and waits for the job
8513// to finish or fail.
8514type HadoopStepConfig struct {
8515	_ struct{} `type:"structure"`
8516
8517	// The list of command line arguments to pass to the JAR file's main function
8518	// for execution.
8519	Args []*string `type:"list"`
8520
8521	// The path to the JAR file that runs during the step.
8522	Jar *string `type:"string"`
8523
8524	// The name of the main class in the specified Java file. If not specified,
8525	// the JAR file should specify a main class in its manifest file.
8526	MainClass *string `type:"string"`
8527
8528	// The list of Java properties that are set when the step runs. You can use
8529	// these properties to pass key-value pairs to your main function.
8530	Properties map[string]*string `type:"map"`
8531}
8532
8533// String returns the string representation
8534func (s HadoopStepConfig) String() string {
8535	return awsutil.Prettify(s)
8536}
8537
8538// GoString returns the string representation
8539func (s HadoopStepConfig) GoString() string {
8540	return s.String()
8541}
8542
8543// SetArgs sets the Args field's value.
8544func (s *HadoopStepConfig) SetArgs(v []*string) *HadoopStepConfig {
8545	s.Args = v
8546	return s
8547}
8548
8549// SetJar sets the Jar field's value.
8550func (s *HadoopStepConfig) SetJar(v string) *HadoopStepConfig {
8551	s.Jar = &v
8552	return s
8553}
8554
8555// SetMainClass sets the MainClass field's value.
8556func (s *HadoopStepConfig) SetMainClass(v string) *HadoopStepConfig {
8557	s.MainClass = &v
8558	return s
8559}
8560
8561// SetProperties sets the Properties field's value.
8562func (s *HadoopStepConfig) SetProperties(v map[string]*string) *HadoopStepConfig {
8563	s.Properties = v
8564	return s
8565}
8566
8567// Represents an EC2 instance provisioned as part of cluster.
8568type Instance struct {
8569	_ struct{} `type:"structure"`
8570
8571	// The list of Amazon EBS volumes that are attached to this instance.
8572	EbsVolumes []*EbsVolume `type:"list"`
8573
8574	// The unique identifier of the instance in Amazon EC2.
8575	Ec2InstanceId *string `type:"string"`
8576
8577	// The unique identifier for the instance in Amazon EMR.
8578	Id *string `type:"string"`
8579
8580	// The unique identifier of the instance fleet to which an EC2 instance belongs.
8581	InstanceFleetId *string `type:"string"`
8582
8583	// The identifier of the instance group to which this instance belongs.
8584	InstanceGroupId *string `type:"string"`
8585
8586	// The EC2 instance type, for example m3.xlarge.
8587	InstanceType *string `min:"1" type:"string"`
8588
8589	// The instance purchasing option. Valid values are ON_DEMAND or SPOT.
8590	Market *string `type:"string" enum:"MarketType"`
8591
8592	// The private DNS name of the instance.
8593	PrivateDnsName *string `type:"string"`
8594
8595	// The private IP address of the instance.
8596	PrivateIpAddress *string `type:"string"`
8597
8598	// The public DNS name of the instance.
8599	PublicDnsName *string `type:"string"`
8600
8601	// The public IP address of the instance.
8602	PublicIpAddress *string `type:"string"`
8603
8604	// The current status of the instance.
8605	Status *InstanceStatus `type:"structure"`
8606}
8607
8608// String returns the string representation
8609func (s Instance) String() string {
8610	return awsutil.Prettify(s)
8611}
8612
8613// GoString returns the string representation
8614func (s Instance) GoString() string {
8615	return s.String()
8616}
8617
8618// SetEbsVolumes sets the EbsVolumes field's value.
8619func (s *Instance) SetEbsVolumes(v []*EbsVolume) *Instance {
8620	s.EbsVolumes = v
8621	return s
8622}
8623
8624// SetEc2InstanceId sets the Ec2InstanceId field's value.
8625func (s *Instance) SetEc2InstanceId(v string) *Instance {
8626	s.Ec2InstanceId = &v
8627	return s
8628}
8629
8630// SetId sets the Id field's value.
8631func (s *Instance) SetId(v string) *Instance {
8632	s.Id = &v
8633	return s
8634}
8635
8636// SetInstanceFleetId sets the InstanceFleetId field's value.
8637func (s *Instance) SetInstanceFleetId(v string) *Instance {
8638	s.InstanceFleetId = &v
8639	return s
8640}
8641
8642// SetInstanceGroupId sets the InstanceGroupId field's value.
8643func (s *Instance) SetInstanceGroupId(v string) *Instance {
8644	s.InstanceGroupId = &v
8645	return s
8646}
8647
8648// SetInstanceType sets the InstanceType field's value.
8649func (s *Instance) SetInstanceType(v string) *Instance {
8650	s.InstanceType = &v
8651	return s
8652}
8653
8654// SetMarket sets the Market field's value.
8655func (s *Instance) SetMarket(v string) *Instance {
8656	s.Market = &v
8657	return s
8658}
8659
8660// SetPrivateDnsName sets the PrivateDnsName field's value.
8661func (s *Instance) SetPrivateDnsName(v string) *Instance {
8662	s.PrivateDnsName = &v
8663	return s
8664}
8665
8666// SetPrivateIpAddress sets the PrivateIpAddress field's value.
8667func (s *Instance) SetPrivateIpAddress(v string) *Instance {
8668	s.PrivateIpAddress = &v
8669	return s
8670}
8671
8672// SetPublicDnsName sets the PublicDnsName field's value.
8673func (s *Instance) SetPublicDnsName(v string) *Instance {
8674	s.PublicDnsName = &v
8675	return s
8676}
8677
8678// SetPublicIpAddress sets the PublicIpAddress field's value.
8679func (s *Instance) SetPublicIpAddress(v string) *Instance {
8680	s.PublicIpAddress = &v
8681	return s
8682}
8683
8684// SetStatus sets the Status field's value.
8685func (s *Instance) SetStatus(v *InstanceStatus) *Instance {
8686	s.Status = v
8687	return s
8688}
8689
8690// Describes an instance fleet, which is a group of EC2 instances that host
8691// a particular node type (master, core, or task) in an Amazon EMR cluster.
8692// Instance fleets can consist of a mix of instance types and On-Demand and
8693// Spot Instances, which are provisioned to meet a defined target capacity.
8694//
8695// The instance fleet configuration is available only in Amazon EMR versions
8696// 4.8.0 and later, excluding 5.0.x versions.
8697type InstanceFleet struct {
8698	_ struct{} `type:"structure"`
8699
8700	// The unique identifier of the instance fleet.
8701	Id *string `type:"string"`
8702
8703	// The node type that the instance fleet hosts. Valid values are MASTER, CORE,
8704	// or TASK.
8705	InstanceFleetType *string `type:"string" enum:"InstanceFleetType"`
8706
8707	// An array of specifications for the instance types that comprise an instance
8708	// fleet.
8709	InstanceTypeSpecifications []*InstanceTypeSpecification `type:"list"`
8710
8711	// Describes the launch specification for an instance fleet.
8712	LaunchSpecifications *InstanceFleetProvisioningSpecifications `type:"structure"`
8713
8714	// A friendly name for the instance fleet.
8715	Name *string `type:"string"`
8716
8717	// The number of On-Demand units that have been provisioned for the instance
8718	// fleet to fulfill TargetOnDemandCapacity. This provisioned capacity might
8719	// be less than or greater than TargetOnDemandCapacity.
8720	ProvisionedOnDemandCapacity *int64 `type:"integer"`
8721
8722	// The number of Spot units that have been provisioned for this instance fleet
8723	// to fulfill TargetSpotCapacity. This provisioned capacity might be less than
8724	// or greater than TargetSpotCapacity.
8725	ProvisionedSpotCapacity *int64 `type:"integer"`
8726
8727	// The current status of the instance fleet.
8728	Status *InstanceFleetStatus `type:"structure"`
8729
8730	// The target capacity of On-Demand units for the instance fleet, which determines
8731	// how many On-Demand Instances to provision. When the instance fleet launches,
8732	// Amazon EMR tries to provision On-Demand Instances as specified by InstanceTypeConfig.
8733	// Each instance configuration has a specified WeightedCapacity. When an On-Demand
8734	// Instance is provisioned, the WeightedCapacity units count toward the target
8735	// capacity. Amazon EMR provisions instances until the target capacity is totally
8736	// fulfilled, even if this results in an overage. For example, if there are
8737	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
8738	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
8739	// and the target capacity is exceeded by 3 units. You can use InstanceFleet$ProvisionedOnDemandCapacity
8740	// to determine the Spot capacity units that have been provisioned for the instance
8741	// fleet.
8742	//
8743	// If not specified or set to 0, only Spot Instances are provisioned for the
8744	// instance fleet using TargetSpotCapacity. At least one of TargetSpotCapacity
8745	// and TargetOnDemandCapacity should be greater than 0. For a master instance
8746	// fleet, only one of TargetSpotCapacity and TargetOnDemandCapacity can be specified,
8747	// and its value must be 1.
8748	TargetOnDemandCapacity *int64 `type:"integer"`
8749
8750	// The target capacity of Spot units for the instance fleet, which determines
8751	// how many Spot Instances to provision. When the instance fleet launches, Amazon
8752	// EMR tries to provision Spot Instances as specified by InstanceTypeConfig.
8753	// Each instance configuration has a specified WeightedCapacity. When a Spot
8754	// instance is provisioned, the WeightedCapacity units count toward the target
8755	// capacity. Amazon EMR provisions instances until the target capacity is totally
8756	// fulfilled, even if this results in an overage. For example, if there are
8757	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
8758	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
8759	// and the target capacity is exceeded by 3 units. You can use InstanceFleet$ProvisionedSpotCapacity
8760	// to determine the Spot capacity units that have been provisioned for the instance
8761	// fleet.
8762	//
8763	// If not specified or set to 0, only On-Demand Instances are provisioned for
8764	// the instance fleet. At least one of TargetSpotCapacity and TargetOnDemandCapacity
8765	// should be greater than 0. For a master instance fleet, only one of TargetSpotCapacity
8766	// and TargetOnDemandCapacity can be specified, and its value must be 1.
8767	TargetSpotCapacity *int64 `type:"integer"`
8768}
8769
8770// String returns the string representation
8771func (s InstanceFleet) String() string {
8772	return awsutil.Prettify(s)
8773}
8774
8775// GoString returns the string representation
8776func (s InstanceFleet) GoString() string {
8777	return s.String()
8778}
8779
8780// SetId sets the Id field's value.
8781func (s *InstanceFleet) SetId(v string) *InstanceFleet {
8782	s.Id = &v
8783	return s
8784}
8785
8786// SetInstanceFleetType sets the InstanceFleetType field's value.
8787func (s *InstanceFleet) SetInstanceFleetType(v string) *InstanceFleet {
8788	s.InstanceFleetType = &v
8789	return s
8790}
8791
8792// SetInstanceTypeSpecifications sets the InstanceTypeSpecifications field's value.
8793func (s *InstanceFleet) SetInstanceTypeSpecifications(v []*InstanceTypeSpecification) *InstanceFleet {
8794	s.InstanceTypeSpecifications = v
8795	return s
8796}
8797
8798// SetLaunchSpecifications sets the LaunchSpecifications field's value.
8799func (s *InstanceFleet) SetLaunchSpecifications(v *InstanceFleetProvisioningSpecifications) *InstanceFleet {
8800	s.LaunchSpecifications = v
8801	return s
8802}
8803
8804// SetName sets the Name field's value.
8805func (s *InstanceFleet) SetName(v string) *InstanceFleet {
8806	s.Name = &v
8807	return s
8808}
8809
8810// SetProvisionedOnDemandCapacity sets the ProvisionedOnDemandCapacity field's value.
8811func (s *InstanceFleet) SetProvisionedOnDemandCapacity(v int64) *InstanceFleet {
8812	s.ProvisionedOnDemandCapacity = &v
8813	return s
8814}
8815
8816// SetProvisionedSpotCapacity sets the ProvisionedSpotCapacity field's value.
8817func (s *InstanceFleet) SetProvisionedSpotCapacity(v int64) *InstanceFleet {
8818	s.ProvisionedSpotCapacity = &v
8819	return s
8820}
8821
8822// SetStatus sets the Status field's value.
8823func (s *InstanceFleet) SetStatus(v *InstanceFleetStatus) *InstanceFleet {
8824	s.Status = v
8825	return s
8826}
8827
8828// SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
8829func (s *InstanceFleet) SetTargetOnDemandCapacity(v int64) *InstanceFleet {
8830	s.TargetOnDemandCapacity = &v
8831	return s
8832}
8833
8834// SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
8835func (s *InstanceFleet) SetTargetSpotCapacity(v int64) *InstanceFleet {
8836	s.TargetSpotCapacity = &v
8837	return s
8838}
8839
8840// The configuration that defines an instance fleet.
8841//
8842// The instance fleet configuration is available only in Amazon EMR versions
8843// 4.8.0 and later, excluding 5.0.x versions.
8844type InstanceFleetConfig struct {
8845	_ struct{} `type:"structure"`
8846
8847	// The node type that the instance fleet hosts. Valid values are MASTER, CORE,
8848	// and TASK.
8849	//
8850	// InstanceFleetType is a required field
8851	InstanceFleetType *string `type:"string" required:"true" enum:"InstanceFleetType"`
8852
8853	// The instance type configurations that define the EC2 instances in the instance
8854	// fleet.
8855	InstanceTypeConfigs []*InstanceTypeConfig `type:"list"`
8856
8857	// The launch specification for the instance fleet.
8858	LaunchSpecifications *InstanceFleetProvisioningSpecifications `type:"structure"`
8859
8860	// The friendly name of the instance fleet.
8861	Name *string `type:"string"`
8862
8863	// The target capacity of On-Demand units for the instance fleet, which determines
8864	// how many On-Demand Instances to provision. When the instance fleet launches,
8865	// Amazon EMR tries to provision On-Demand Instances as specified by InstanceTypeConfig.
8866	// Each instance configuration has a specified WeightedCapacity. When an On-Demand
8867	// Instance is provisioned, the WeightedCapacity units count toward the target
8868	// capacity. Amazon EMR provisions instances until the target capacity is totally
8869	// fulfilled, even if this results in an overage. For example, if there are
8870	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
8871	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
8872	// and the target capacity is exceeded by 3 units.
8873	//
8874	// If not specified or set to 0, only Spot Instances are provisioned for the
8875	// instance fleet using TargetSpotCapacity. At least one of TargetSpotCapacity
8876	// and TargetOnDemandCapacity should be greater than 0. For a master instance
8877	// fleet, only one of TargetSpotCapacity and TargetOnDemandCapacity can be specified,
8878	// and its value must be 1.
8879	TargetOnDemandCapacity *int64 `type:"integer"`
8880
8881	// The target capacity of Spot units for the instance fleet, which determines
8882	// how many Spot Instances to provision. When the instance fleet launches, Amazon
8883	// EMR tries to provision Spot Instances as specified by InstanceTypeConfig.
8884	// Each instance configuration has a specified WeightedCapacity. When a Spot
8885	// Instance is provisioned, the WeightedCapacity units count toward the target
8886	// capacity. Amazon EMR provisions instances until the target capacity is totally
8887	// fulfilled, even if this results in an overage. For example, if there are
8888	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
8889	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
8890	// and the target capacity is exceeded by 3 units.
8891	//
8892	// If not specified or set to 0, only On-Demand Instances are provisioned for
8893	// the instance fleet. At least one of TargetSpotCapacity and TargetOnDemandCapacity
8894	// should be greater than 0. For a master instance fleet, only one of TargetSpotCapacity
8895	// and TargetOnDemandCapacity can be specified, and its value must be 1.
8896	TargetSpotCapacity *int64 `type:"integer"`
8897}
8898
8899// String returns the string representation
8900func (s InstanceFleetConfig) String() string {
8901	return awsutil.Prettify(s)
8902}
8903
8904// GoString returns the string representation
8905func (s InstanceFleetConfig) GoString() string {
8906	return s.String()
8907}
8908
8909// Validate inspects the fields of the type to determine if they are valid.
8910func (s *InstanceFleetConfig) Validate() error {
8911	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetConfig"}
8912	if s.InstanceFleetType == nil {
8913		invalidParams.Add(request.NewErrParamRequired("InstanceFleetType"))
8914	}
8915	if s.InstanceTypeConfigs != nil {
8916		for i, v := range s.InstanceTypeConfigs {
8917			if v == nil {
8918				continue
8919			}
8920			if err := v.Validate(); err != nil {
8921				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceTypeConfigs", i), err.(request.ErrInvalidParams))
8922			}
8923		}
8924	}
8925	if s.LaunchSpecifications != nil {
8926		if err := s.LaunchSpecifications.Validate(); err != nil {
8927			invalidParams.AddNested("LaunchSpecifications", err.(request.ErrInvalidParams))
8928		}
8929	}
8930
8931	if invalidParams.Len() > 0 {
8932		return invalidParams
8933	}
8934	return nil
8935}
8936
8937// SetInstanceFleetType sets the InstanceFleetType field's value.
8938func (s *InstanceFleetConfig) SetInstanceFleetType(v string) *InstanceFleetConfig {
8939	s.InstanceFleetType = &v
8940	return s
8941}
8942
8943// SetInstanceTypeConfigs sets the InstanceTypeConfigs field's value.
8944func (s *InstanceFleetConfig) SetInstanceTypeConfigs(v []*InstanceTypeConfig) *InstanceFleetConfig {
8945	s.InstanceTypeConfigs = v
8946	return s
8947}
8948
8949// SetLaunchSpecifications sets the LaunchSpecifications field's value.
8950func (s *InstanceFleetConfig) SetLaunchSpecifications(v *InstanceFleetProvisioningSpecifications) *InstanceFleetConfig {
8951	s.LaunchSpecifications = v
8952	return s
8953}
8954
8955// SetName sets the Name field's value.
8956func (s *InstanceFleetConfig) SetName(v string) *InstanceFleetConfig {
8957	s.Name = &v
8958	return s
8959}
8960
8961// SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
8962func (s *InstanceFleetConfig) SetTargetOnDemandCapacity(v int64) *InstanceFleetConfig {
8963	s.TargetOnDemandCapacity = &v
8964	return s
8965}
8966
8967// SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
8968func (s *InstanceFleetConfig) SetTargetSpotCapacity(v int64) *InstanceFleetConfig {
8969	s.TargetSpotCapacity = &v
8970	return s
8971}
8972
8973// Configuration parameters for an instance fleet modification request.
8974//
8975// The instance fleet configuration is available only in Amazon EMR versions
8976// 4.8.0 and later, excluding 5.0.x versions.
8977type InstanceFleetModifyConfig struct {
8978	_ struct{} `type:"structure"`
8979
8980	// A unique identifier for the instance fleet.
8981	//
8982	// InstanceFleetId is a required field
8983	InstanceFleetId *string `type:"string" required:"true"`
8984
8985	// The target capacity of On-Demand units for the instance fleet. For more information
8986	// see InstanceFleetConfig$TargetOnDemandCapacity.
8987	TargetOnDemandCapacity *int64 `type:"integer"`
8988
8989	// The target capacity of Spot units for the instance fleet. For more information,
8990	// see InstanceFleetConfig$TargetSpotCapacity.
8991	TargetSpotCapacity *int64 `type:"integer"`
8992}
8993
8994// String returns the string representation
8995func (s InstanceFleetModifyConfig) String() string {
8996	return awsutil.Prettify(s)
8997}
8998
8999// GoString returns the string representation
9000func (s InstanceFleetModifyConfig) GoString() string {
9001	return s.String()
9002}
9003
9004// Validate inspects the fields of the type to determine if they are valid.
9005func (s *InstanceFleetModifyConfig) Validate() error {
9006	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetModifyConfig"}
9007	if s.InstanceFleetId == nil {
9008		invalidParams.Add(request.NewErrParamRequired("InstanceFleetId"))
9009	}
9010
9011	if invalidParams.Len() > 0 {
9012		return invalidParams
9013	}
9014	return nil
9015}
9016
9017// SetInstanceFleetId sets the InstanceFleetId field's value.
9018func (s *InstanceFleetModifyConfig) SetInstanceFleetId(v string) *InstanceFleetModifyConfig {
9019	s.InstanceFleetId = &v
9020	return s
9021}
9022
9023// SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
9024func (s *InstanceFleetModifyConfig) SetTargetOnDemandCapacity(v int64) *InstanceFleetModifyConfig {
9025	s.TargetOnDemandCapacity = &v
9026	return s
9027}
9028
9029// SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
9030func (s *InstanceFleetModifyConfig) SetTargetSpotCapacity(v int64) *InstanceFleetModifyConfig {
9031	s.TargetSpotCapacity = &v
9032	return s
9033}
9034
9035// The launch specification for Spot Instances in the fleet, which determines
9036// the defined duration, provisioning timeout behavior, and allocation strategy.
9037//
9038// The instance fleet configuration is available only in Amazon EMR versions
9039// 4.8.0 and later, excluding 5.0.x versions. On-Demand and Spot Instance allocation
9040// strategies are available in Amazon EMR version 5.12.1 and later.
9041type InstanceFleetProvisioningSpecifications struct {
9042	_ struct{} `type:"structure"`
9043
9044	// The launch specification for On-Demand Instances in the instance fleet, which
9045	// determines the allocation strategy.
9046	//
9047	// The instance fleet configuration is available only in Amazon EMR versions
9048	// 4.8.0 and later, excluding 5.0.x versions. On-Demand Instances allocation
9049	// strategy is available in Amazon EMR version 5.12.1 and later.
9050	OnDemandSpecification *OnDemandProvisioningSpecification `type:"structure"`
9051
9052	// The launch specification for Spot Instances in the fleet, which determines
9053	// the defined duration, provisioning timeout behavior, and allocation strategy.
9054	SpotSpecification *SpotProvisioningSpecification `type:"structure"`
9055}
9056
9057// String returns the string representation
9058func (s InstanceFleetProvisioningSpecifications) String() string {
9059	return awsutil.Prettify(s)
9060}
9061
9062// GoString returns the string representation
9063func (s InstanceFleetProvisioningSpecifications) GoString() string {
9064	return s.String()
9065}
9066
9067// Validate inspects the fields of the type to determine if they are valid.
9068func (s *InstanceFleetProvisioningSpecifications) Validate() error {
9069	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetProvisioningSpecifications"}
9070	if s.OnDemandSpecification != nil {
9071		if err := s.OnDemandSpecification.Validate(); err != nil {
9072			invalidParams.AddNested("OnDemandSpecification", err.(request.ErrInvalidParams))
9073		}
9074	}
9075	if s.SpotSpecification != nil {
9076		if err := s.SpotSpecification.Validate(); err != nil {
9077			invalidParams.AddNested("SpotSpecification", err.(request.ErrInvalidParams))
9078		}
9079	}
9080
9081	if invalidParams.Len() > 0 {
9082		return invalidParams
9083	}
9084	return nil
9085}
9086
9087// SetOnDemandSpecification sets the OnDemandSpecification field's value.
9088func (s *InstanceFleetProvisioningSpecifications) SetOnDemandSpecification(v *OnDemandProvisioningSpecification) *InstanceFleetProvisioningSpecifications {
9089	s.OnDemandSpecification = v
9090	return s
9091}
9092
9093// SetSpotSpecification sets the SpotSpecification field's value.
9094func (s *InstanceFleetProvisioningSpecifications) SetSpotSpecification(v *SpotProvisioningSpecification) *InstanceFleetProvisioningSpecifications {
9095	s.SpotSpecification = v
9096	return s
9097}
9098
9099// Provides status change reason details for the instance fleet.
9100//
9101// The instance fleet configuration is available only in Amazon EMR versions
9102// 4.8.0 and later, excluding 5.0.x versions.
9103type InstanceFleetStateChangeReason struct {
9104	_ struct{} `type:"structure"`
9105
9106	// A code corresponding to the reason the state change occurred.
9107	Code *string `type:"string" enum:"InstanceFleetStateChangeReasonCode"`
9108
9109	// An explanatory message.
9110	Message *string `type:"string"`
9111}
9112
9113// String returns the string representation
9114func (s InstanceFleetStateChangeReason) String() string {
9115	return awsutil.Prettify(s)
9116}
9117
9118// GoString returns the string representation
9119func (s InstanceFleetStateChangeReason) GoString() string {
9120	return s.String()
9121}
9122
9123// SetCode sets the Code field's value.
9124func (s *InstanceFleetStateChangeReason) SetCode(v string) *InstanceFleetStateChangeReason {
9125	s.Code = &v
9126	return s
9127}
9128
9129// SetMessage sets the Message field's value.
9130func (s *InstanceFleetStateChangeReason) SetMessage(v string) *InstanceFleetStateChangeReason {
9131	s.Message = &v
9132	return s
9133}
9134
9135// The status of the instance fleet.
9136//
9137// The instance fleet configuration is available only in Amazon EMR versions
9138// 4.8.0 and later, excluding 5.0.x versions.
9139type InstanceFleetStatus struct {
9140	_ struct{} `type:"structure"`
9141
9142	// A code representing the instance fleet status.
9143	//
9144	//    * PROVISIONING—The instance fleet is provisioning EC2 resources and
9145	//    is not yet ready to run jobs.
9146	//
9147	//    * BOOTSTRAPPING—EC2 instances and other resources have been provisioned
9148	//    and the bootstrap actions specified for the instances are underway.
9149	//
9150	//    * RUNNING—EC2 instances and other resources are running. They are either
9151	//    executing jobs or waiting to execute jobs.
9152	//
9153	//    * RESIZING—A resize operation is underway. EC2 instances are either
9154	//    being added or removed.
9155	//
9156	//    * SUSPENDED—A resize operation could not complete. Existing EC2 instances
9157	//    are running, but instances can't be added or removed.
9158	//
9159	//    * TERMINATING—The instance fleet is terminating EC2 instances.
9160	//
9161	//    * TERMINATED—The instance fleet is no longer active, and all EC2 instances
9162	//    have been terminated.
9163	State *string `type:"string" enum:"InstanceFleetState"`
9164
9165	// Provides status change reason details for the instance fleet.
9166	StateChangeReason *InstanceFleetStateChangeReason `type:"structure"`
9167
9168	// Provides historical timestamps for the instance fleet, including the time
9169	// of creation, the time it became ready to run jobs, and the time of termination.
9170	Timeline *InstanceFleetTimeline `type:"structure"`
9171}
9172
9173// String returns the string representation
9174func (s InstanceFleetStatus) String() string {
9175	return awsutil.Prettify(s)
9176}
9177
9178// GoString returns the string representation
9179func (s InstanceFleetStatus) GoString() string {
9180	return s.String()
9181}
9182
9183// SetState sets the State field's value.
9184func (s *InstanceFleetStatus) SetState(v string) *InstanceFleetStatus {
9185	s.State = &v
9186	return s
9187}
9188
9189// SetStateChangeReason sets the StateChangeReason field's value.
9190func (s *InstanceFleetStatus) SetStateChangeReason(v *InstanceFleetStateChangeReason) *InstanceFleetStatus {
9191	s.StateChangeReason = v
9192	return s
9193}
9194
9195// SetTimeline sets the Timeline field's value.
9196func (s *InstanceFleetStatus) SetTimeline(v *InstanceFleetTimeline) *InstanceFleetStatus {
9197	s.Timeline = v
9198	return s
9199}
9200
9201// Provides historical timestamps for the instance fleet, including the time
9202// of creation, the time it became ready to run jobs, and the time of termination.
9203//
9204// The instance fleet configuration is available only in Amazon EMR versions
9205// 4.8.0 and later, excluding 5.0.x versions.
9206type InstanceFleetTimeline struct {
9207	_ struct{} `type:"structure"`
9208
9209	// The time and date the instance fleet was created.
9210	CreationDateTime *time.Time `type:"timestamp"`
9211
9212	// The time and date the instance fleet terminated.
9213	EndDateTime *time.Time `type:"timestamp"`
9214
9215	// The time and date the instance fleet was ready to run jobs.
9216	ReadyDateTime *time.Time `type:"timestamp"`
9217}
9218
9219// String returns the string representation
9220func (s InstanceFleetTimeline) String() string {
9221	return awsutil.Prettify(s)
9222}
9223
9224// GoString returns the string representation
9225func (s InstanceFleetTimeline) GoString() string {
9226	return s.String()
9227}
9228
9229// SetCreationDateTime sets the CreationDateTime field's value.
9230func (s *InstanceFleetTimeline) SetCreationDateTime(v time.Time) *InstanceFleetTimeline {
9231	s.CreationDateTime = &v
9232	return s
9233}
9234
9235// SetEndDateTime sets the EndDateTime field's value.
9236func (s *InstanceFleetTimeline) SetEndDateTime(v time.Time) *InstanceFleetTimeline {
9237	s.EndDateTime = &v
9238	return s
9239}
9240
9241// SetReadyDateTime sets the ReadyDateTime field's value.
9242func (s *InstanceFleetTimeline) SetReadyDateTime(v time.Time) *InstanceFleetTimeline {
9243	s.ReadyDateTime = &v
9244	return s
9245}
9246
9247// This entity represents an instance group, which is a group of instances that
9248// have common purpose. For example, CORE instance group is used for HDFS.
9249type InstanceGroup struct {
9250	_ struct{} `type:"structure"`
9251
9252	// An automatic scaling policy for a core instance group or task instance group
9253	// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
9254	// group dynamically adds and terminates EC2 instances in response to the value
9255	// of a CloudWatch metric. See PutAutoScalingPolicy.
9256	AutoScalingPolicy *AutoScalingPolicyDescription `type:"structure"`
9257
9258	// If specified, indicates that the instance group uses Spot Instances. This
9259	// is the maximum price you are willing to pay for Spot Instances. Specify OnDemandPrice
9260	// to set the amount equal to the On-Demand price, or specify an amount in USD.
9261	BidPrice *string `type:"string"`
9262
9263	//
9264	// Amazon EMR releases 4.x or later.
9265	//
9266	// The list of configurations supplied for an Amazon EMR cluster instance group.
9267	// You can specify a separate configuration for each instance group (master,
9268	// core, and task).
9269	Configurations []*Configuration `type:"list"`
9270
9271	// The version number of the requested configuration specification for this
9272	// instance group.
9273	ConfigurationsVersion *int64 `type:"long"`
9274
9275	// The custom AMI ID to use for the provisioned instance group.
9276	CustomAmiId *string `type:"string"`
9277
9278	// The EBS block devices that are mapped to this instance group.
9279	EbsBlockDevices []*EbsBlockDevice `type:"list"`
9280
9281	// If the instance group is EBS-optimized. An Amazon EBS-optimized instance
9282	// uses an optimized configuration stack and provides additional, dedicated
9283	// capacity for Amazon EBS I/O.
9284	EbsOptimized *bool `type:"boolean"`
9285
9286	// The identifier of the instance group.
9287	Id *string `type:"string"`
9288
9289	// The type of the instance group. Valid values are MASTER, CORE or TASK.
9290	InstanceGroupType *string `type:"string" enum:"InstanceGroupType"`
9291
9292	// The EC2 instance type for all instances in the instance group.
9293	InstanceType *string `min:"1" type:"string"`
9294
9295	// A list of configurations that were successfully applied for an instance group
9296	// last time.
9297	LastSuccessfullyAppliedConfigurations []*Configuration `type:"list"`
9298
9299	// The version number of a configuration specification that was successfully
9300	// applied for an instance group last time.
9301	LastSuccessfullyAppliedConfigurationsVersion *int64 `type:"long"`
9302
9303	// The marketplace to provision instances for this group. Valid values are ON_DEMAND
9304	// or SPOT.
9305	Market *string `type:"string" enum:"MarketType"`
9306
9307	// The name of the instance group.
9308	Name *string `type:"string"`
9309
9310	// The target number of instances for the instance group.
9311	RequestedInstanceCount *int64 `type:"integer"`
9312
9313	// The number of instances currently running in this instance group.
9314	RunningInstanceCount *int64 `type:"integer"`
9315
9316	// Policy for customizing shrink operations.
9317	ShrinkPolicy *ShrinkPolicy `type:"structure"`
9318
9319	// The current status of the instance group.
9320	Status *InstanceGroupStatus `type:"structure"`
9321}
9322
9323// String returns the string representation
9324func (s InstanceGroup) String() string {
9325	return awsutil.Prettify(s)
9326}
9327
9328// GoString returns the string representation
9329func (s InstanceGroup) GoString() string {
9330	return s.String()
9331}
9332
9333// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
9334func (s *InstanceGroup) SetAutoScalingPolicy(v *AutoScalingPolicyDescription) *InstanceGroup {
9335	s.AutoScalingPolicy = v
9336	return s
9337}
9338
9339// SetBidPrice sets the BidPrice field's value.
9340func (s *InstanceGroup) SetBidPrice(v string) *InstanceGroup {
9341	s.BidPrice = &v
9342	return s
9343}
9344
9345// SetConfigurations sets the Configurations field's value.
9346func (s *InstanceGroup) SetConfigurations(v []*Configuration) *InstanceGroup {
9347	s.Configurations = v
9348	return s
9349}
9350
9351// SetConfigurationsVersion sets the ConfigurationsVersion field's value.
9352func (s *InstanceGroup) SetConfigurationsVersion(v int64) *InstanceGroup {
9353	s.ConfigurationsVersion = &v
9354	return s
9355}
9356
9357// SetCustomAmiId sets the CustomAmiId field's value.
9358func (s *InstanceGroup) SetCustomAmiId(v string) *InstanceGroup {
9359	s.CustomAmiId = &v
9360	return s
9361}
9362
9363// SetEbsBlockDevices sets the EbsBlockDevices field's value.
9364func (s *InstanceGroup) SetEbsBlockDevices(v []*EbsBlockDevice) *InstanceGroup {
9365	s.EbsBlockDevices = v
9366	return s
9367}
9368
9369// SetEbsOptimized sets the EbsOptimized field's value.
9370func (s *InstanceGroup) SetEbsOptimized(v bool) *InstanceGroup {
9371	s.EbsOptimized = &v
9372	return s
9373}
9374
9375// SetId sets the Id field's value.
9376func (s *InstanceGroup) SetId(v string) *InstanceGroup {
9377	s.Id = &v
9378	return s
9379}
9380
9381// SetInstanceGroupType sets the InstanceGroupType field's value.
9382func (s *InstanceGroup) SetInstanceGroupType(v string) *InstanceGroup {
9383	s.InstanceGroupType = &v
9384	return s
9385}
9386
9387// SetInstanceType sets the InstanceType field's value.
9388func (s *InstanceGroup) SetInstanceType(v string) *InstanceGroup {
9389	s.InstanceType = &v
9390	return s
9391}
9392
9393// SetLastSuccessfullyAppliedConfigurations sets the LastSuccessfullyAppliedConfigurations field's value.
9394func (s *InstanceGroup) SetLastSuccessfullyAppliedConfigurations(v []*Configuration) *InstanceGroup {
9395	s.LastSuccessfullyAppliedConfigurations = v
9396	return s
9397}
9398
9399// SetLastSuccessfullyAppliedConfigurationsVersion sets the LastSuccessfullyAppliedConfigurationsVersion field's value.
9400func (s *InstanceGroup) SetLastSuccessfullyAppliedConfigurationsVersion(v int64) *InstanceGroup {
9401	s.LastSuccessfullyAppliedConfigurationsVersion = &v
9402	return s
9403}
9404
9405// SetMarket sets the Market field's value.
9406func (s *InstanceGroup) SetMarket(v string) *InstanceGroup {
9407	s.Market = &v
9408	return s
9409}
9410
9411// SetName sets the Name field's value.
9412func (s *InstanceGroup) SetName(v string) *InstanceGroup {
9413	s.Name = &v
9414	return s
9415}
9416
9417// SetRequestedInstanceCount sets the RequestedInstanceCount field's value.
9418func (s *InstanceGroup) SetRequestedInstanceCount(v int64) *InstanceGroup {
9419	s.RequestedInstanceCount = &v
9420	return s
9421}
9422
9423// SetRunningInstanceCount sets the RunningInstanceCount field's value.
9424func (s *InstanceGroup) SetRunningInstanceCount(v int64) *InstanceGroup {
9425	s.RunningInstanceCount = &v
9426	return s
9427}
9428
9429// SetShrinkPolicy sets the ShrinkPolicy field's value.
9430func (s *InstanceGroup) SetShrinkPolicy(v *ShrinkPolicy) *InstanceGroup {
9431	s.ShrinkPolicy = v
9432	return s
9433}
9434
9435// SetStatus sets the Status field's value.
9436func (s *InstanceGroup) SetStatus(v *InstanceGroupStatus) *InstanceGroup {
9437	s.Status = v
9438	return s
9439}
9440
9441// Configuration defining a new instance group.
9442type InstanceGroupConfig struct {
9443	_ struct{} `type:"structure"`
9444
9445	// An automatic scaling policy for a core instance group or task instance group
9446	// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
9447	// group dynamically adds and terminates EC2 instances in response to the value
9448	// of a CloudWatch metric. See PutAutoScalingPolicy.
9449	AutoScalingPolicy *AutoScalingPolicy `type:"structure"`
9450
9451	// If specified, indicates that the instance group uses Spot Instances. This
9452	// is the maximum price you are willing to pay for Spot Instances. Specify OnDemandPrice
9453	// to set the amount equal to the On-Demand price, or specify an amount in USD.
9454	BidPrice *string `type:"string"`
9455
9456	//
9457	// Amazon EMR releases 4.x or later.
9458	//
9459	// The list of configurations supplied for an EMR cluster instance group. You
9460	// can specify a separate configuration for each instance group (master, core,
9461	// and task).
9462	Configurations []*Configuration `type:"list"`
9463
9464	// The custom AMI ID to use for the provisioned instance group.
9465	CustomAmiId *string `type:"string"`
9466
9467	// EBS configurations that will be attached to each EC2 instance in the instance
9468	// group.
9469	EbsConfiguration *EbsConfiguration `type:"structure"`
9470
9471	// Target number of instances for the instance group.
9472	//
9473	// InstanceCount is a required field
9474	InstanceCount *int64 `type:"integer" required:"true"`
9475
9476	// The role of the instance group in the cluster.
9477	//
9478	// InstanceRole is a required field
9479	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
9480
9481	// The EC2 instance type for all instances in the instance group.
9482	//
9483	// InstanceType is a required field
9484	InstanceType *string `min:"1" type:"string" required:"true"`
9485
9486	// Market type of the EC2 instances used to create a cluster node.
9487	Market *string `type:"string" enum:"MarketType"`
9488
9489	// Friendly name given to the instance group.
9490	Name *string `type:"string"`
9491}
9492
9493// String returns the string representation
9494func (s InstanceGroupConfig) String() string {
9495	return awsutil.Prettify(s)
9496}
9497
9498// GoString returns the string representation
9499func (s InstanceGroupConfig) GoString() string {
9500	return s.String()
9501}
9502
9503// Validate inspects the fields of the type to determine if they are valid.
9504func (s *InstanceGroupConfig) Validate() error {
9505	invalidParams := request.ErrInvalidParams{Context: "InstanceGroupConfig"}
9506	if s.InstanceCount == nil {
9507		invalidParams.Add(request.NewErrParamRequired("InstanceCount"))
9508	}
9509	if s.InstanceRole == nil {
9510		invalidParams.Add(request.NewErrParamRequired("InstanceRole"))
9511	}
9512	if s.InstanceType == nil {
9513		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
9514	}
9515	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
9516		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
9517	}
9518	if s.AutoScalingPolicy != nil {
9519		if err := s.AutoScalingPolicy.Validate(); err != nil {
9520			invalidParams.AddNested("AutoScalingPolicy", err.(request.ErrInvalidParams))
9521		}
9522	}
9523	if s.EbsConfiguration != nil {
9524		if err := s.EbsConfiguration.Validate(); err != nil {
9525			invalidParams.AddNested("EbsConfiguration", err.(request.ErrInvalidParams))
9526		}
9527	}
9528
9529	if invalidParams.Len() > 0 {
9530		return invalidParams
9531	}
9532	return nil
9533}
9534
9535// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
9536func (s *InstanceGroupConfig) SetAutoScalingPolicy(v *AutoScalingPolicy) *InstanceGroupConfig {
9537	s.AutoScalingPolicy = v
9538	return s
9539}
9540
9541// SetBidPrice sets the BidPrice field's value.
9542func (s *InstanceGroupConfig) SetBidPrice(v string) *InstanceGroupConfig {
9543	s.BidPrice = &v
9544	return s
9545}
9546
9547// SetConfigurations sets the Configurations field's value.
9548func (s *InstanceGroupConfig) SetConfigurations(v []*Configuration) *InstanceGroupConfig {
9549	s.Configurations = v
9550	return s
9551}
9552
9553// SetCustomAmiId sets the CustomAmiId field's value.
9554func (s *InstanceGroupConfig) SetCustomAmiId(v string) *InstanceGroupConfig {
9555	s.CustomAmiId = &v
9556	return s
9557}
9558
9559// SetEbsConfiguration sets the EbsConfiguration field's value.
9560func (s *InstanceGroupConfig) SetEbsConfiguration(v *EbsConfiguration) *InstanceGroupConfig {
9561	s.EbsConfiguration = v
9562	return s
9563}
9564
9565// SetInstanceCount sets the InstanceCount field's value.
9566func (s *InstanceGroupConfig) SetInstanceCount(v int64) *InstanceGroupConfig {
9567	s.InstanceCount = &v
9568	return s
9569}
9570
9571// SetInstanceRole sets the InstanceRole field's value.
9572func (s *InstanceGroupConfig) SetInstanceRole(v string) *InstanceGroupConfig {
9573	s.InstanceRole = &v
9574	return s
9575}
9576
9577// SetInstanceType sets the InstanceType field's value.
9578func (s *InstanceGroupConfig) SetInstanceType(v string) *InstanceGroupConfig {
9579	s.InstanceType = &v
9580	return s
9581}
9582
9583// SetMarket sets the Market field's value.
9584func (s *InstanceGroupConfig) SetMarket(v string) *InstanceGroupConfig {
9585	s.Market = &v
9586	return s
9587}
9588
9589// SetName sets the Name field's value.
9590func (s *InstanceGroupConfig) SetName(v string) *InstanceGroupConfig {
9591	s.Name = &v
9592	return s
9593}
9594
9595// Detailed information about an instance group.
9596type InstanceGroupDetail struct {
9597	_ struct{} `type:"structure"`
9598
9599	// If specified, indicates that the instance group uses Spot Instances. This
9600	// is the maximum price you are willing to pay for Spot Instances. Specify OnDemandPrice
9601	// to set the amount equal to the On-Demand price, or specify an amount in USD.
9602	BidPrice *string `type:"string"`
9603
9604	// The date/time the instance group was created.
9605	//
9606	// CreationDateTime is a required field
9607	CreationDateTime *time.Time `type:"timestamp" required:"true"`
9608
9609	// The custom AMI ID to use for the provisioned instance group.
9610	CustomAmiId *string `type:"string"`
9611
9612	// The date/time the instance group was terminated.
9613	EndDateTime *time.Time `type:"timestamp"`
9614
9615	// Unique identifier for the instance group.
9616	InstanceGroupId *string `type:"string"`
9617
9618	// Target number of instances to run in the instance group.
9619	//
9620	// InstanceRequestCount is a required field
9621	InstanceRequestCount *int64 `type:"integer" required:"true"`
9622
9623	// Instance group role in the cluster
9624	//
9625	// InstanceRole is a required field
9626	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
9627
9628	// Actual count of running instances.
9629	//
9630	// InstanceRunningCount is a required field
9631	InstanceRunningCount *int64 `type:"integer" required:"true"`
9632
9633	// EC2 instance type.
9634	//
9635	// InstanceType is a required field
9636	InstanceType *string `min:"1" type:"string" required:"true"`
9637
9638	// Details regarding the state of the instance group.
9639	LastStateChangeReason *string `type:"string"`
9640
9641	// Market type of the EC2 instances used to create a cluster node.
9642	//
9643	// Market is a required field
9644	Market *string `type:"string" required:"true" enum:"MarketType"`
9645
9646	// Friendly name for the instance group.
9647	Name *string `type:"string"`
9648
9649	// The date/time the instance group was available to the cluster.
9650	ReadyDateTime *time.Time `type:"timestamp"`
9651
9652	// The date/time the instance group was started.
9653	StartDateTime *time.Time `type:"timestamp"`
9654
9655	// State of instance group. The following values are deprecated: STARTING, TERMINATED,
9656	// and FAILED.
9657	//
9658	// State is a required field
9659	State *string `type:"string" required:"true" enum:"InstanceGroupState"`
9660}
9661
9662// String returns the string representation
9663func (s InstanceGroupDetail) String() string {
9664	return awsutil.Prettify(s)
9665}
9666
9667// GoString returns the string representation
9668func (s InstanceGroupDetail) GoString() string {
9669	return s.String()
9670}
9671
9672// SetBidPrice sets the BidPrice field's value.
9673func (s *InstanceGroupDetail) SetBidPrice(v string) *InstanceGroupDetail {
9674	s.BidPrice = &v
9675	return s
9676}
9677
9678// SetCreationDateTime sets the CreationDateTime field's value.
9679func (s *InstanceGroupDetail) SetCreationDateTime(v time.Time) *InstanceGroupDetail {
9680	s.CreationDateTime = &v
9681	return s
9682}
9683
9684// SetCustomAmiId sets the CustomAmiId field's value.
9685func (s *InstanceGroupDetail) SetCustomAmiId(v string) *InstanceGroupDetail {
9686	s.CustomAmiId = &v
9687	return s
9688}
9689
9690// SetEndDateTime sets the EndDateTime field's value.
9691func (s *InstanceGroupDetail) SetEndDateTime(v time.Time) *InstanceGroupDetail {
9692	s.EndDateTime = &v
9693	return s
9694}
9695
9696// SetInstanceGroupId sets the InstanceGroupId field's value.
9697func (s *InstanceGroupDetail) SetInstanceGroupId(v string) *InstanceGroupDetail {
9698	s.InstanceGroupId = &v
9699	return s
9700}
9701
9702// SetInstanceRequestCount sets the InstanceRequestCount field's value.
9703func (s *InstanceGroupDetail) SetInstanceRequestCount(v int64) *InstanceGroupDetail {
9704	s.InstanceRequestCount = &v
9705	return s
9706}
9707
9708// SetInstanceRole sets the InstanceRole field's value.
9709func (s *InstanceGroupDetail) SetInstanceRole(v string) *InstanceGroupDetail {
9710	s.InstanceRole = &v
9711	return s
9712}
9713
9714// SetInstanceRunningCount sets the InstanceRunningCount field's value.
9715func (s *InstanceGroupDetail) SetInstanceRunningCount(v int64) *InstanceGroupDetail {
9716	s.InstanceRunningCount = &v
9717	return s
9718}
9719
9720// SetInstanceType sets the InstanceType field's value.
9721func (s *InstanceGroupDetail) SetInstanceType(v string) *InstanceGroupDetail {
9722	s.InstanceType = &v
9723	return s
9724}
9725
9726// SetLastStateChangeReason sets the LastStateChangeReason field's value.
9727func (s *InstanceGroupDetail) SetLastStateChangeReason(v string) *InstanceGroupDetail {
9728	s.LastStateChangeReason = &v
9729	return s
9730}
9731
9732// SetMarket sets the Market field's value.
9733func (s *InstanceGroupDetail) SetMarket(v string) *InstanceGroupDetail {
9734	s.Market = &v
9735	return s
9736}
9737
9738// SetName sets the Name field's value.
9739func (s *InstanceGroupDetail) SetName(v string) *InstanceGroupDetail {
9740	s.Name = &v
9741	return s
9742}
9743
9744// SetReadyDateTime sets the ReadyDateTime field's value.
9745func (s *InstanceGroupDetail) SetReadyDateTime(v time.Time) *InstanceGroupDetail {
9746	s.ReadyDateTime = &v
9747	return s
9748}
9749
9750// SetStartDateTime sets the StartDateTime field's value.
9751func (s *InstanceGroupDetail) SetStartDateTime(v time.Time) *InstanceGroupDetail {
9752	s.StartDateTime = &v
9753	return s
9754}
9755
9756// SetState sets the State field's value.
9757func (s *InstanceGroupDetail) SetState(v string) *InstanceGroupDetail {
9758	s.State = &v
9759	return s
9760}
9761
9762// Modify the size or configurations of an instance group.
9763type InstanceGroupModifyConfig struct {
9764	_ struct{} `type:"structure"`
9765
9766	// A list of new or modified configurations to apply for an instance group.
9767	Configurations []*Configuration `type:"list"`
9768
9769	// The EC2 InstanceIds to terminate. After you terminate the instances, the
9770	// instance group will not return to its original requested size.
9771	EC2InstanceIdsToTerminate []*string `type:"list"`
9772
9773	// Target size for the instance group.
9774	InstanceCount *int64 `type:"integer"`
9775
9776	// Unique ID of the instance group to modify.
9777	//
9778	// InstanceGroupId is a required field
9779	InstanceGroupId *string `type:"string" required:"true"`
9780
9781	// Policy for customizing shrink operations.
9782	ShrinkPolicy *ShrinkPolicy `type:"structure"`
9783}
9784
9785// String returns the string representation
9786func (s InstanceGroupModifyConfig) String() string {
9787	return awsutil.Prettify(s)
9788}
9789
9790// GoString returns the string representation
9791func (s InstanceGroupModifyConfig) GoString() string {
9792	return s.String()
9793}
9794
9795// Validate inspects the fields of the type to determine if they are valid.
9796func (s *InstanceGroupModifyConfig) Validate() error {
9797	invalidParams := request.ErrInvalidParams{Context: "InstanceGroupModifyConfig"}
9798	if s.InstanceGroupId == nil {
9799		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
9800	}
9801
9802	if invalidParams.Len() > 0 {
9803		return invalidParams
9804	}
9805	return nil
9806}
9807
9808// SetConfigurations sets the Configurations field's value.
9809func (s *InstanceGroupModifyConfig) SetConfigurations(v []*Configuration) *InstanceGroupModifyConfig {
9810	s.Configurations = v
9811	return s
9812}
9813
9814// SetEC2InstanceIdsToTerminate sets the EC2InstanceIdsToTerminate field's value.
9815func (s *InstanceGroupModifyConfig) SetEC2InstanceIdsToTerminate(v []*string) *InstanceGroupModifyConfig {
9816	s.EC2InstanceIdsToTerminate = v
9817	return s
9818}
9819
9820// SetInstanceCount sets the InstanceCount field's value.
9821func (s *InstanceGroupModifyConfig) SetInstanceCount(v int64) *InstanceGroupModifyConfig {
9822	s.InstanceCount = &v
9823	return s
9824}
9825
9826// SetInstanceGroupId sets the InstanceGroupId field's value.
9827func (s *InstanceGroupModifyConfig) SetInstanceGroupId(v string) *InstanceGroupModifyConfig {
9828	s.InstanceGroupId = &v
9829	return s
9830}
9831
9832// SetShrinkPolicy sets the ShrinkPolicy field's value.
9833func (s *InstanceGroupModifyConfig) SetShrinkPolicy(v *ShrinkPolicy) *InstanceGroupModifyConfig {
9834	s.ShrinkPolicy = v
9835	return s
9836}
9837
9838// The status change reason details for the instance group.
9839type InstanceGroupStateChangeReason struct {
9840	_ struct{} `type:"structure"`
9841
9842	// The programmable code for the state change reason.
9843	Code *string `type:"string" enum:"InstanceGroupStateChangeReasonCode"`
9844
9845	// The status change reason description.
9846	Message *string `type:"string"`
9847}
9848
9849// String returns the string representation
9850func (s InstanceGroupStateChangeReason) String() string {
9851	return awsutil.Prettify(s)
9852}
9853
9854// GoString returns the string representation
9855func (s InstanceGroupStateChangeReason) GoString() string {
9856	return s.String()
9857}
9858
9859// SetCode sets the Code field's value.
9860func (s *InstanceGroupStateChangeReason) SetCode(v string) *InstanceGroupStateChangeReason {
9861	s.Code = &v
9862	return s
9863}
9864
9865// SetMessage sets the Message field's value.
9866func (s *InstanceGroupStateChangeReason) SetMessage(v string) *InstanceGroupStateChangeReason {
9867	s.Message = &v
9868	return s
9869}
9870
9871// The details of the instance group status.
9872type InstanceGroupStatus struct {
9873	_ struct{} `type:"structure"`
9874
9875	// The current state of the instance group.
9876	State *string `type:"string" enum:"InstanceGroupState"`
9877
9878	// The status change reason details for the instance group.
9879	StateChangeReason *InstanceGroupStateChangeReason `type:"structure"`
9880
9881	// The timeline of the instance group status over time.
9882	Timeline *InstanceGroupTimeline `type:"structure"`
9883}
9884
9885// String returns the string representation
9886func (s InstanceGroupStatus) String() string {
9887	return awsutil.Prettify(s)
9888}
9889
9890// GoString returns the string representation
9891func (s InstanceGroupStatus) GoString() string {
9892	return s.String()
9893}
9894
9895// SetState sets the State field's value.
9896func (s *InstanceGroupStatus) SetState(v string) *InstanceGroupStatus {
9897	s.State = &v
9898	return s
9899}
9900
9901// SetStateChangeReason sets the StateChangeReason field's value.
9902func (s *InstanceGroupStatus) SetStateChangeReason(v *InstanceGroupStateChangeReason) *InstanceGroupStatus {
9903	s.StateChangeReason = v
9904	return s
9905}
9906
9907// SetTimeline sets the Timeline field's value.
9908func (s *InstanceGroupStatus) SetTimeline(v *InstanceGroupTimeline) *InstanceGroupStatus {
9909	s.Timeline = v
9910	return s
9911}
9912
9913// The timeline of the instance group lifecycle.
9914type InstanceGroupTimeline struct {
9915	_ struct{} `type:"structure"`
9916
9917	// The creation date and time of the instance group.
9918	CreationDateTime *time.Time `type:"timestamp"`
9919
9920	// The date and time when the instance group terminated.
9921	EndDateTime *time.Time `type:"timestamp"`
9922
9923	// The date and time when the instance group became ready to perform tasks.
9924	ReadyDateTime *time.Time `type:"timestamp"`
9925}
9926
9927// String returns the string representation
9928func (s InstanceGroupTimeline) String() string {
9929	return awsutil.Prettify(s)
9930}
9931
9932// GoString returns the string representation
9933func (s InstanceGroupTimeline) GoString() string {
9934	return s.String()
9935}
9936
9937// SetCreationDateTime sets the CreationDateTime field's value.
9938func (s *InstanceGroupTimeline) SetCreationDateTime(v time.Time) *InstanceGroupTimeline {
9939	s.CreationDateTime = &v
9940	return s
9941}
9942
9943// SetEndDateTime sets the EndDateTime field's value.
9944func (s *InstanceGroupTimeline) SetEndDateTime(v time.Time) *InstanceGroupTimeline {
9945	s.EndDateTime = &v
9946	return s
9947}
9948
9949// SetReadyDateTime sets the ReadyDateTime field's value.
9950func (s *InstanceGroupTimeline) SetReadyDateTime(v time.Time) *InstanceGroupTimeline {
9951	s.ReadyDateTime = &v
9952	return s
9953}
9954
9955// Custom policy for requesting termination protection or termination of specific
9956// instances when shrinking an instance group.
9957type InstanceResizePolicy struct {
9958	_ struct{} `type:"structure"`
9959
9960	// Decommissioning timeout override for the specific list of instances to be
9961	// terminated.
9962	InstanceTerminationTimeout *int64 `type:"integer"`
9963
9964	// Specific list of instances to be protected when shrinking an instance group.
9965	InstancesToProtect []*string `type:"list"`
9966
9967	// Specific list of instances to be terminated when shrinking an instance group.
9968	InstancesToTerminate []*string `type:"list"`
9969}
9970
9971// String returns the string representation
9972func (s InstanceResizePolicy) String() string {
9973	return awsutil.Prettify(s)
9974}
9975
9976// GoString returns the string representation
9977func (s InstanceResizePolicy) GoString() string {
9978	return s.String()
9979}
9980
9981// SetInstanceTerminationTimeout sets the InstanceTerminationTimeout field's value.
9982func (s *InstanceResizePolicy) SetInstanceTerminationTimeout(v int64) *InstanceResizePolicy {
9983	s.InstanceTerminationTimeout = &v
9984	return s
9985}
9986
9987// SetInstancesToProtect sets the InstancesToProtect field's value.
9988func (s *InstanceResizePolicy) SetInstancesToProtect(v []*string) *InstanceResizePolicy {
9989	s.InstancesToProtect = v
9990	return s
9991}
9992
9993// SetInstancesToTerminate sets the InstancesToTerminate field's value.
9994func (s *InstanceResizePolicy) SetInstancesToTerminate(v []*string) *InstanceResizePolicy {
9995	s.InstancesToTerminate = v
9996	return s
9997}
9998
9999// The details of the status change reason for the instance.
10000type InstanceStateChangeReason struct {
10001	_ struct{} `type:"structure"`
10002
10003	// The programmable code for the state change reason.
10004	Code *string `type:"string" enum:"InstanceStateChangeReasonCode"`
10005
10006	// The status change reason description.
10007	Message *string `type:"string"`
10008}
10009
10010// String returns the string representation
10011func (s InstanceStateChangeReason) String() string {
10012	return awsutil.Prettify(s)
10013}
10014
10015// GoString returns the string representation
10016func (s InstanceStateChangeReason) GoString() string {
10017	return s.String()
10018}
10019
10020// SetCode sets the Code field's value.
10021func (s *InstanceStateChangeReason) SetCode(v string) *InstanceStateChangeReason {
10022	s.Code = &v
10023	return s
10024}
10025
10026// SetMessage sets the Message field's value.
10027func (s *InstanceStateChangeReason) SetMessage(v string) *InstanceStateChangeReason {
10028	s.Message = &v
10029	return s
10030}
10031
10032// The instance status details.
10033type InstanceStatus struct {
10034	_ struct{} `type:"structure"`
10035
10036	// The current state of the instance.
10037	State *string `type:"string" enum:"InstanceState"`
10038
10039	// The details of the status change reason for the instance.
10040	StateChangeReason *InstanceStateChangeReason `type:"structure"`
10041
10042	// The timeline of the instance status over time.
10043	Timeline *InstanceTimeline `type:"structure"`
10044}
10045
10046// String returns the string representation
10047func (s InstanceStatus) String() string {
10048	return awsutil.Prettify(s)
10049}
10050
10051// GoString returns the string representation
10052func (s InstanceStatus) GoString() string {
10053	return s.String()
10054}
10055
10056// SetState sets the State field's value.
10057func (s *InstanceStatus) SetState(v string) *InstanceStatus {
10058	s.State = &v
10059	return s
10060}
10061
10062// SetStateChangeReason sets the StateChangeReason field's value.
10063func (s *InstanceStatus) SetStateChangeReason(v *InstanceStateChangeReason) *InstanceStatus {
10064	s.StateChangeReason = v
10065	return s
10066}
10067
10068// SetTimeline sets the Timeline field's value.
10069func (s *InstanceStatus) SetTimeline(v *InstanceTimeline) *InstanceStatus {
10070	s.Timeline = v
10071	return s
10072}
10073
10074// The timeline of the instance lifecycle.
10075type InstanceTimeline struct {
10076	_ struct{} `type:"structure"`
10077
10078	// The creation date and time of the instance.
10079	CreationDateTime *time.Time `type:"timestamp"`
10080
10081	// The date and time when the instance was terminated.
10082	EndDateTime *time.Time `type:"timestamp"`
10083
10084	// The date and time when the instance was ready to perform tasks.
10085	ReadyDateTime *time.Time `type:"timestamp"`
10086}
10087
10088// String returns the string representation
10089func (s InstanceTimeline) String() string {
10090	return awsutil.Prettify(s)
10091}
10092
10093// GoString returns the string representation
10094func (s InstanceTimeline) GoString() string {
10095	return s.String()
10096}
10097
10098// SetCreationDateTime sets the CreationDateTime field's value.
10099func (s *InstanceTimeline) SetCreationDateTime(v time.Time) *InstanceTimeline {
10100	s.CreationDateTime = &v
10101	return s
10102}
10103
10104// SetEndDateTime sets the EndDateTime field's value.
10105func (s *InstanceTimeline) SetEndDateTime(v time.Time) *InstanceTimeline {
10106	s.EndDateTime = &v
10107	return s
10108}
10109
10110// SetReadyDateTime sets the ReadyDateTime field's value.
10111func (s *InstanceTimeline) SetReadyDateTime(v time.Time) *InstanceTimeline {
10112	s.ReadyDateTime = &v
10113	return s
10114}
10115
10116// An instance type configuration for each instance type in an instance fleet,
10117// which determines the EC2 instances Amazon EMR attempts to provision to fulfill
10118// On-Demand and Spot target capacities. When you use an allocation strategy,
10119// you can include a maximum of 30 instance type configurations for a fleet.
10120// For more information about how to use an allocation strategy, see Configure
10121// Instance Fleets (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-fleet.html).
10122// Without an allocation strategy, you may specify a maximum of five instance
10123// type configurations for a fleet.
10124//
10125// The instance fleet configuration is available only in Amazon EMR versions
10126// 4.8.0 and later, excluding 5.0.x versions.
10127type InstanceTypeConfig struct {
10128	_ struct{} `type:"structure"`
10129
10130	// The bid price for each EC2 Spot Instance type as defined by InstanceType.
10131	// Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice
10132	// is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
10133	BidPrice *string `type:"string"`
10134
10135	// The bid price, as a percentage of On-Demand price, for each EC2 Spot Instance
10136	// as defined by InstanceType. Expressed as a number (for example, 20 specifies
10137	// 20%). If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice is provided,
10138	// BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
10139	BidPriceAsPercentageOfOnDemandPrice *float64 `type:"double"`
10140
10141	// A configuration classification that applies when provisioning cluster instances,
10142	// which can include configurations for applications and software that run on
10143	// the cluster.
10144	Configurations []*Configuration `type:"list"`
10145
10146	// The custom AMI ID to use for the instance type.
10147	CustomAmiId *string `type:"string"`
10148
10149	// The configuration of Amazon Elastic Block Store (Amazon EBS) attached to
10150	// each instance as defined by InstanceType.
10151	EbsConfiguration *EbsConfiguration `type:"structure"`
10152
10153	// An EC2 instance type, such as m3.xlarge.
10154	//
10155	// InstanceType is a required field
10156	InstanceType *string `min:"1" type:"string" required:"true"`
10157
10158	// The number of units that a provisioned instance of this type provides toward
10159	// fulfilling the target capacities defined in InstanceFleetConfig. This value
10160	// is 1 for a master instance fleet, and must be 1 or greater for core and task
10161	// instance fleets. Defaults to 1 if not specified.
10162	WeightedCapacity *int64 `type:"integer"`
10163}
10164
10165// String returns the string representation
10166func (s InstanceTypeConfig) String() string {
10167	return awsutil.Prettify(s)
10168}
10169
10170// GoString returns the string representation
10171func (s InstanceTypeConfig) GoString() string {
10172	return s.String()
10173}
10174
10175// Validate inspects the fields of the type to determine if they are valid.
10176func (s *InstanceTypeConfig) Validate() error {
10177	invalidParams := request.ErrInvalidParams{Context: "InstanceTypeConfig"}
10178	if s.InstanceType == nil {
10179		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
10180	}
10181	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
10182		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
10183	}
10184	if s.EbsConfiguration != nil {
10185		if err := s.EbsConfiguration.Validate(); err != nil {
10186			invalidParams.AddNested("EbsConfiguration", err.(request.ErrInvalidParams))
10187		}
10188	}
10189
10190	if invalidParams.Len() > 0 {
10191		return invalidParams
10192	}
10193	return nil
10194}
10195
10196// SetBidPrice sets the BidPrice field's value.
10197func (s *InstanceTypeConfig) SetBidPrice(v string) *InstanceTypeConfig {
10198	s.BidPrice = &v
10199	return s
10200}
10201
10202// SetBidPriceAsPercentageOfOnDemandPrice sets the BidPriceAsPercentageOfOnDemandPrice field's value.
10203func (s *InstanceTypeConfig) SetBidPriceAsPercentageOfOnDemandPrice(v float64) *InstanceTypeConfig {
10204	s.BidPriceAsPercentageOfOnDemandPrice = &v
10205	return s
10206}
10207
10208// SetConfigurations sets the Configurations field's value.
10209func (s *InstanceTypeConfig) SetConfigurations(v []*Configuration) *InstanceTypeConfig {
10210	s.Configurations = v
10211	return s
10212}
10213
10214// SetCustomAmiId sets the CustomAmiId field's value.
10215func (s *InstanceTypeConfig) SetCustomAmiId(v string) *InstanceTypeConfig {
10216	s.CustomAmiId = &v
10217	return s
10218}
10219
10220// SetEbsConfiguration sets the EbsConfiguration field's value.
10221func (s *InstanceTypeConfig) SetEbsConfiguration(v *EbsConfiguration) *InstanceTypeConfig {
10222	s.EbsConfiguration = v
10223	return s
10224}
10225
10226// SetInstanceType sets the InstanceType field's value.
10227func (s *InstanceTypeConfig) SetInstanceType(v string) *InstanceTypeConfig {
10228	s.InstanceType = &v
10229	return s
10230}
10231
10232// SetWeightedCapacity sets the WeightedCapacity field's value.
10233func (s *InstanceTypeConfig) SetWeightedCapacity(v int64) *InstanceTypeConfig {
10234	s.WeightedCapacity = &v
10235	return s
10236}
10237
10238// The configuration specification for each instance type in an instance fleet.
10239//
10240// The instance fleet configuration is available only in Amazon EMR versions
10241// 4.8.0 and later, excluding 5.0.x versions.
10242type InstanceTypeSpecification struct {
10243	_ struct{} `type:"structure"`
10244
10245	// The bid price for each EC2 Spot Instance type as defined by InstanceType.
10246	// Expressed in USD.
10247	BidPrice *string `type:"string"`
10248
10249	// The bid price, as a percentage of On-Demand price, for each EC2 Spot Instance
10250	// as defined by InstanceType. Expressed as a number (for example, 20 specifies
10251	// 20%).
10252	BidPriceAsPercentageOfOnDemandPrice *float64 `type:"double"`
10253
10254	// A configuration classification that applies when provisioning cluster instances,
10255	// which can include configurations for applications and software bundled with
10256	// Amazon EMR.
10257	Configurations []*Configuration `type:"list"`
10258
10259	// The custom AMI ID to use for the instance type.
10260	CustomAmiId *string `type:"string"`
10261
10262	// The configuration of Amazon Elastic Block Store (Amazon EBS) attached to
10263	// each instance as defined by InstanceType.
10264	EbsBlockDevices []*EbsBlockDevice `type:"list"`
10265
10266	// Evaluates to TRUE when the specified InstanceType is EBS-optimized.
10267	EbsOptimized *bool `type:"boolean"`
10268
10269	// The EC2 instance type, for example m3.xlarge.
10270	InstanceType *string `min:"1" type:"string"`
10271
10272	// The number of units that a provisioned instance of this type provides toward
10273	// fulfilling the target capacities defined in InstanceFleetConfig. Capacity
10274	// values represent performance characteristics such as vCPUs, memory, or I/O.
10275	// If not specified, the default value is 1.
10276	WeightedCapacity *int64 `type:"integer"`
10277}
10278
10279// String returns the string representation
10280func (s InstanceTypeSpecification) String() string {
10281	return awsutil.Prettify(s)
10282}
10283
10284// GoString returns the string representation
10285func (s InstanceTypeSpecification) GoString() string {
10286	return s.String()
10287}
10288
10289// SetBidPrice sets the BidPrice field's value.
10290func (s *InstanceTypeSpecification) SetBidPrice(v string) *InstanceTypeSpecification {
10291	s.BidPrice = &v
10292	return s
10293}
10294
10295// SetBidPriceAsPercentageOfOnDemandPrice sets the BidPriceAsPercentageOfOnDemandPrice field's value.
10296func (s *InstanceTypeSpecification) SetBidPriceAsPercentageOfOnDemandPrice(v float64) *InstanceTypeSpecification {
10297	s.BidPriceAsPercentageOfOnDemandPrice = &v
10298	return s
10299}
10300
10301// SetConfigurations sets the Configurations field's value.
10302func (s *InstanceTypeSpecification) SetConfigurations(v []*Configuration) *InstanceTypeSpecification {
10303	s.Configurations = v
10304	return s
10305}
10306
10307// SetCustomAmiId sets the CustomAmiId field's value.
10308func (s *InstanceTypeSpecification) SetCustomAmiId(v string) *InstanceTypeSpecification {
10309	s.CustomAmiId = &v
10310	return s
10311}
10312
10313// SetEbsBlockDevices sets the EbsBlockDevices field's value.
10314func (s *InstanceTypeSpecification) SetEbsBlockDevices(v []*EbsBlockDevice) *InstanceTypeSpecification {
10315	s.EbsBlockDevices = v
10316	return s
10317}
10318
10319// SetEbsOptimized sets the EbsOptimized field's value.
10320func (s *InstanceTypeSpecification) SetEbsOptimized(v bool) *InstanceTypeSpecification {
10321	s.EbsOptimized = &v
10322	return s
10323}
10324
10325// SetInstanceType sets the InstanceType field's value.
10326func (s *InstanceTypeSpecification) SetInstanceType(v string) *InstanceTypeSpecification {
10327	s.InstanceType = &v
10328	return s
10329}
10330
10331// SetWeightedCapacity sets the WeightedCapacity field's value.
10332func (s *InstanceTypeSpecification) SetWeightedCapacity(v int64) *InstanceTypeSpecification {
10333	s.WeightedCapacity = &v
10334	return s
10335}
10336
10337// Indicates that an error occurred while processing the request and that the
10338// request was not completed.
10339type InternalServerError struct {
10340	_            struct{}                  `type:"structure"`
10341	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10342
10343	Message_ *string `locationName:"message" type:"string"`
10344}
10345
10346// String returns the string representation
10347func (s InternalServerError) String() string {
10348	return awsutil.Prettify(s)
10349}
10350
10351// GoString returns the string representation
10352func (s InternalServerError) GoString() string {
10353	return s.String()
10354}
10355
10356func newErrorInternalServerError(v protocol.ResponseMetadata) error {
10357	return &InternalServerError{
10358		RespMetadata: v,
10359	}
10360}
10361
10362// Code returns the exception type name.
10363func (s *InternalServerError) Code() string {
10364	return "InternalServerError"
10365}
10366
10367// Message returns the exception's message.
10368func (s *InternalServerError) Message() string {
10369	if s.Message_ != nil {
10370		return *s.Message_
10371	}
10372	return ""
10373}
10374
10375// OrigErr always returns nil, satisfies awserr.Error interface.
10376func (s *InternalServerError) OrigErr() error {
10377	return nil
10378}
10379
10380func (s *InternalServerError) Error() string {
10381	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10382}
10383
10384// Status code returns the HTTP status code for the request's response error.
10385func (s *InternalServerError) StatusCode() int {
10386	return s.RespMetadata.StatusCode
10387}
10388
10389// RequestID returns the service's response RequestID for request.
10390func (s *InternalServerError) RequestID() string {
10391	return s.RespMetadata.RequestID
10392}
10393
10394// This exception occurs when there is an internal failure in the Amazon EMR
10395// service.
10396type InternalServerException struct {
10397	_            struct{}                  `type:"structure"`
10398	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10399
10400	// The message associated with the exception.
10401	Message_ *string `locationName:"Message" type:"string"`
10402}
10403
10404// String returns the string representation
10405func (s InternalServerException) String() string {
10406	return awsutil.Prettify(s)
10407}
10408
10409// GoString returns the string representation
10410func (s InternalServerException) GoString() string {
10411	return s.String()
10412}
10413
10414func newErrorInternalServerException(v protocol.ResponseMetadata) error {
10415	return &InternalServerException{
10416		RespMetadata: v,
10417	}
10418}
10419
10420// Code returns the exception type name.
10421func (s *InternalServerException) Code() string {
10422	return "InternalServerException"
10423}
10424
10425// Message returns the exception's message.
10426func (s *InternalServerException) Message() string {
10427	if s.Message_ != nil {
10428		return *s.Message_
10429	}
10430	return ""
10431}
10432
10433// OrigErr always returns nil, satisfies awserr.Error interface.
10434func (s *InternalServerException) OrigErr() error {
10435	return nil
10436}
10437
10438func (s *InternalServerException) Error() string {
10439	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10440}
10441
10442// Status code returns the HTTP status code for the request's response error.
10443func (s *InternalServerException) StatusCode() int {
10444	return s.RespMetadata.StatusCode
10445}
10446
10447// RequestID returns the service's response RequestID for request.
10448func (s *InternalServerException) RequestID() string {
10449	return s.RespMetadata.RequestID
10450}
10451
10452// This exception occurs when there is something wrong with user input.
10453type InvalidRequestException struct {
10454	_            struct{}                  `type:"structure"`
10455	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10456
10457	// The error code associated with the exception.
10458	ErrorCode *string `min:"1" type:"string"`
10459
10460	// The message associated with the exception.
10461	Message_ *string `locationName:"Message" type:"string"`
10462}
10463
10464// String returns the string representation
10465func (s InvalidRequestException) String() string {
10466	return awsutil.Prettify(s)
10467}
10468
10469// GoString returns the string representation
10470func (s InvalidRequestException) GoString() string {
10471	return s.String()
10472}
10473
10474func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
10475	return &InvalidRequestException{
10476		RespMetadata: v,
10477	}
10478}
10479
10480// Code returns the exception type name.
10481func (s *InvalidRequestException) Code() string {
10482	return "InvalidRequestException"
10483}
10484
10485// Message returns the exception's message.
10486func (s *InvalidRequestException) Message() string {
10487	if s.Message_ != nil {
10488		return *s.Message_
10489	}
10490	return ""
10491}
10492
10493// OrigErr always returns nil, satisfies awserr.Error interface.
10494func (s *InvalidRequestException) OrigErr() error {
10495	return nil
10496}
10497
10498func (s *InvalidRequestException) Error() string {
10499	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
10500}
10501
10502// Status code returns the HTTP status code for the request's response error.
10503func (s *InvalidRequestException) StatusCode() int {
10504	return s.RespMetadata.StatusCode
10505}
10506
10507// RequestID returns the service's response RequestID for request.
10508func (s *InvalidRequestException) RequestID() string {
10509	return s.RespMetadata.RequestID
10510}
10511
10512// A description of a cluster (job flow).
10513type JobFlowDetail struct {
10514	_ struct{} `type:"structure"`
10515
10516	// Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
10517	// 4.0 and later, ReleaseLabel is used. To specify a custom AMI, use CustomAmiID.
10518	AmiVersion *string `type:"string"`
10519
10520	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
10521	// The IAM role provides a way for the automatic scaling feature to get the
10522	// required permissions it needs to launch and terminate EC2 instances in an
10523	// instance group.
10524	AutoScalingRole *string `type:"string"`
10525
10526	// A list of the bootstrap actions run by the job flow.
10527	BootstrapActions []*BootstrapActionDetail `type:"list"`
10528
10529	// Describes the execution status of the job flow.
10530	//
10531	// ExecutionStatusDetail is a required field
10532	ExecutionStatusDetail *JobFlowExecutionStatusDetail `type:"structure" required:"true"`
10533
10534	// Describes the Amazon EC2 instances of the job flow.
10535	//
10536	// Instances is a required field
10537	Instances *JobFlowInstancesDetail `type:"structure" required:"true"`
10538
10539	// The job flow identifier.
10540	//
10541	// JobFlowId is a required field
10542	JobFlowId *string `type:"string" required:"true"`
10543
10544	// The IAM role that was specified when the job flow was launched. The EC2 instances
10545	// of the job flow assume this role.
10546	JobFlowRole *string `type:"string"`
10547
10548	// The KMS key used for encrypting log files. This attribute is only available
10549	// with EMR version 5.30.0 and later, excluding EMR 6.0.0.
10550	LogEncryptionKmsKeyId *string `type:"string"`
10551
10552	// The location in Amazon S3 where log files for the job are stored.
10553	LogUri *string `type:"string"`
10554
10555	// The name of the job flow.
10556	//
10557	// Name is a required field
10558	Name *string `type:"string" required:"true"`
10559
10560	// The way that individual Amazon EC2 instances terminate when an automatic
10561	// scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
10562	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
10563	// regardless of when the request to terminate the instance was submitted. This
10564	// option is only available with Amazon EMR 5.1.0 and later and is the default
10565	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
10566	// that Amazon EMR adds nodes to a deny list and drains tasks from nodes before
10567	// terminating the Amazon EC2 instances, regardless of the instance-hour boundary.
10568	// With either behavior, Amazon EMR removes the least active nodes first and
10569	// blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
10570	// available only in Amazon EMR version 4.1.0 and later, and is the default
10571	// for versions of Amazon EMR earlier than 5.1.0.
10572	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
10573
10574	// The IAM role that is assumed by the Amazon EMR service to access Amazon Web
10575	// Services resources on your behalf.
10576	ServiceRole *string `type:"string"`
10577
10578	// A list of steps run by the job flow.
10579	Steps []*StepDetail `type:"list"`
10580
10581	// A list of strings set by third-party software when the job flow is launched.
10582	// If you are not using third-party software to manage the job flow, this value
10583	// is empty.
10584	SupportedProducts []*string `type:"list"`
10585
10586	// Indicates whether the cluster is visible to IAM principals in the account
10587	// associated with the cluster. When true, IAM principals in the account can
10588	// perform EMR cluster actions that their IAM policies allow. When false, only
10589	// the IAM principal that created the cluster and the account root user can
10590	// perform EMR actions, regardless of IAM permissions policies attached to other
10591	// IAM principals.
10592	//
10593	// The default value is true if a value is not provided when creating a cluster
10594	// using the EMR API RunJobFlow command, the CLI create-cluster (https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html)
10595	// command, or the Management Console. IAM principals that are authorized to
10596	// perform actions on the cluster can use the SetVisibleToAllUsers action to
10597	// change the value on a running cluster. For more information, see Understanding
10598	// the EMR Cluster VisibleToAllUsers Setting (https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users)
10599	// in the Amazon EMRManagement Guide.
10600	VisibleToAllUsers *bool `type:"boolean"`
10601}
10602
10603// String returns the string representation
10604func (s JobFlowDetail) String() string {
10605	return awsutil.Prettify(s)
10606}
10607
10608// GoString returns the string representation
10609func (s JobFlowDetail) GoString() string {
10610	return s.String()
10611}
10612
10613// SetAmiVersion sets the AmiVersion field's value.
10614func (s *JobFlowDetail) SetAmiVersion(v string) *JobFlowDetail {
10615	s.AmiVersion = &v
10616	return s
10617}
10618
10619// SetAutoScalingRole sets the AutoScalingRole field's value.
10620func (s *JobFlowDetail) SetAutoScalingRole(v string) *JobFlowDetail {
10621	s.AutoScalingRole = &v
10622	return s
10623}
10624
10625// SetBootstrapActions sets the BootstrapActions field's value.
10626func (s *JobFlowDetail) SetBootstrapActions(v []*BootstrapActionDetail) *JobFlowDetail {
10627	s.BootstrapActions = v
10628	return s
10629}
10630
10631// SetExecutionStatusDetail sets the ExecutionStatusDetail field's value.
10632func (s *JobFlowDetail) SetExecutionStatusDetail(v *JobFlowExecutionStatusDetail) *JobFlowDetail {
10633	s.ExecutionStatusDetail = v
10634	return s
10635}
10636
10637// SetInstances sets the Instances field's value.
10638func (s *JobFlowDetail) SetInstances(v *JobFlowInstancesDetail) *JobFlowDetail {
10639	s.Instances = v
10640	return s
10641}
10642
10643// SetJobFlowId sets the JobFlowId field's value.
10644func (s *JobFlowDetail) SetJobFlowId(v string) *JobFlowDetail {
10645	s.JobFlowId = &v
10646	return s
10647}
10648
10649// SetJobFlowRole sets the JobFlowRole field's value.
10650func (s *JobFlowDetail) SetJobFlowRole(v string) *JobFlowDetail {
10651	s.JobFlowRole = &v
10652	return s
10653}
10654
10655// SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
10656func (s *JobFlowDetail) SetLogEncryptionKmsKeyId(v string) *JobFlowDetail {
10657	s.LogEncryptionKmsKeyId = &v
10658	return s
10659}
10660
10661// SetLogUri sets the LogUri field's value.
10662func (s *JobFlowDetail) SetLogUri(v string) *JobFlowDetail {
10663	s.LogUri = &v
10664	return s
10665}
10666
10667// SetName sets the Name field's value.
10668func (s *JobFlowDetail) SetName(v string) *JobFlowDetail {
10669	s.Name = &v
10670	return s
10671}
10672
10673// SetScaleDownBehavior sets the ScaleDownBehavior field's value.
10674func (s *JobFlowDetail) SetScaleDownBehavior(v string) *JobFlowDetail {
10675	s.ScaleDownBehavior = &v
10676	return s
10677}
10678
10679// SetServiceRole sets the ServiceRole field's value.
10680func (s *JobFlowDetail) SetServiceRole(v string) *JobFlowDetail {
10681	s.ServiceRole = &v
10682	return s
10683}
10684
10685// SetSteps sets the Steps field's value.
10686func (s *JobFlowDetail) SetSteps(v []*StepDetail) *JobFlowDetail {
10687	s.Steps = v
10688	return s
10689}
10690
10691// SetSupportedProducts sets the SupportedProducts field's value.
10692func (s *JobFlowDetail) SetSupportedProducts(v []*string) *JobFlowDetail {
10693	s.SupportedProducts = v
10694	return s
10695}
10696
10697// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
10698func (s *JobFlowDetail) SetVisibleToAllUsers(v bool) *JobFlowDetail {
10699	s.VisibleToAllUsers = &v
10700	return s
10701}
10702
10703// Describes the status of the cluster (job flow).
10704type JobFlowExecutionStatusDetail struct {
10705	_ struct{} `type:"structure"`
10706
10707	// The creation date and time of the job flow.
10708	//
10709	// CreationDateTime is a required field
10710	CreationDateTime *time.Time `type:"timestamp" required:"true"`
10711
10712	// The completion date and time of the job flow.
10713	EndDateTime *time.Time `type:"timestamp"`
10714
10715	// Description of the job flow last changed state.
10716	LastStateChangeReason *string `type:"string"`
10717
10718	// The date and time when the job flow was ready to start running bootstrap
10719	// actions.
10720	ReadyDateTime *time.Time `type:"timestamp"`
10721
10722	// The start date and time of the job flow.
10723	StartDateTime *time.Time `type:"timestamp"`
10724
10725	// The state of the job flow.
10726	//
10727	// State is a required field
10728	State *string `type:"string" required:"true" enum:"JobFlowExecutionState"`
10729}
10730
10731// String returns the string representation
10732func (s JobFlowExecutionStatusDetail) String() string {
10733	return awsutil.Prettify(s)
10734}
10735
10736// GoString returns the string representation
10737func (s JobFlowExecutionStatusDetail) GoString() string {
10738	return s.String()
10739}
10740
10741// SetCreationDateTime sets the CreationDateTime field's value.
10742func (s *JobFlowExecutionStatusDetail) SetCreationDateTime(v time.Time) *JobFlowExecutionStatusDetail {
10743	s.CreationDateTime = &v
10744	return s
10745}
10746
10747// SetEndDateTime sets the EndDateTime field's value.
10748func (s *JobFlowExecutionStatusDetail) SetEndDateTime(v time.Time) *JobFlowExecutionStatusDetail {
10749	s.EndDateTime = &v
10750	return s
10751}
10752
10753// SetLastStateChangeReason sets the LastStateChangeReason field's value.
10754func (s *JobFlowExecutionStatusDetail) SetLastStateChangeReason(v string) *JobFlowExecutionStatusDetail {
10755	s.LastStateChangeReason = &v
10756	return s
10757}
10758
10759// SetReadyDateTime sets the ReadyDateTime field's value.
10760func (s *JobFlowExecutionStatusDetail) SetReadyDateTime(v time.Time) *JobFlowExecutionStatusDetail {
10761	s.ReadyDateTime = &v
10762	return s
10763}
10764
10765// SetStartDateTime sets the StartDateTime field's value.
10766func (s *JobFlowExecutionStatusDetail) SetStartDateTime(v time.Time) *JobFlowExecutionStatusDetail {
10767	s.StartDateTime = &v
10768	return s
10769}
10770
10771// SetState sets the State field's value.
10772func (s *JobFlowExecutionStatusDetail) SetState(v string) *JobFlowExecutionStatusDetail {
10773	s.State = &v
10774	return s
10775}
10776
10777// A description of the Amazon EC2 instance on which the cluster (job flow)
10778// runs. A valid JobFlowInstancesConfig must contain either InstanceGroups or
10779// InstanceFleets. They cannot be used together. You may also have MasterInstanceType,
10780// SlaveInstanceType, and InstanceCount (all three must be present), but we
10781// don't recommend this configuration.
10782type JobFlowInstancesConfig struct {
10783	_ struct{} `type:"structure"`
10784
10785	// A list of additional Amazon EC2 security group IDs for the master node.
10786	AdditionalMasterSecurityGroups []*string `type:"list"`
10787
10788	// A list of additional Amazon EC2 security group IDs for the core and task
10789	// nodes.
10790	AdditionalSlaveSecurityGroups []*string `type:"list"`
10791
10792	// The name of the EC2 key pair that can be used to connect to the master node
10793	// using SSH as the user called "hadoop."
10794	Ec2KeyName *string `type:"string"`
10795
10796	// Applies to clusters that use the uniform instance group configuration. To
10797	// launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this
10798	// parameter to the identifier of the Amazon VPC subnet where you want the cluster
10799	// to launch. If you do not specify this value and your account supports EC2-Classic,
10800	// the cluster launches in EC2-Classic.
10801	Ec2SubnetId *string `type:"string"`
10802
10803	// Applies to clusters that use the instance fleet configuration. When multiple
10804	// EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances
10805	// in the optimal subnet.
10806	//
10807	// The instance fleet configuration is available only in Amazon EMR versions
10808	// 4.8.0 and later, excluding 5.0.x versions.
10809	Ec2SubnetIds []*string `type:"list"`
10810
10811	// The identifier of the Amazon EC2 security group for the master node. If you
10812	// specify EmrManagedMasterSecurityGroup, you must also specify EmrManagedSlaveSecurityGroup.
10813	EmrManagedMasterSecurityGroup *string `type:"string"`
10814
10815	// The identifier of the Amazon EC2 security group for the core and task nodes.
10816	// If you specify EmrManagedSlaveSecurityGroup, you must also specify EmrManagedMasterSecurityGroup.
10817	EmrManagedSlaveSecurityGroup *string `type:"string"`
10818
10819	// Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop
10820	// version for the cluster. Valid inputs are "0.18" (no longer maintained),
10821	// "0.20" (no longer maintained), "0.20.205" (no longer maintained), "1.0.3",
10822	// "2.2.0", or "2.4.0". If you do not set this value, the default of 0.18 is
10823	// used, unless the AmiVersion parameter is set in the RunJobFlow call, in which
10824	// case the default version of Hadoop for that AMI version is used.
10825	HadoopVersion *string `type:"string"`
10826
10827	// The number of EC2 instances in the cluster.
10828	InstanceCount *int64 `type:"integer"`
10829
10830	//
10831	// The instance fleet configuration is available only in Amazon EMR versions
10832	// 4.8.0 and later, excluding 5.0.x versions.
10833	//
10834	// Describes the EC2 instances and instance configurations for clusters that
10835	// use the instance fleet configuration.
10836	InstanceFleets []*InstanceFleetConfig `type:"list"`
10837
10838	// Configuration for the instance groups in a cluster.
10839	InstanceGroups []*InstanceGroupConfig `type:"list"`
10840
10841	// Specifies whether the cluster should remain available after completing all
10842	// steps. Defaults to true. For more information about configuring cluster termination,
10843	// see Control Cluster Termination (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html)
10844	// in the EMR Management Guide.
10845	KeepJobFlowAliveWhenNoSteps *bool `type:"boolean"`
10846
10847	// The EC2 instance type of the master node.
10848	MasterInstanceType *string `min:"1" type:"string"`
10849
10850	// The Availability Zone in which the cluster runs.
10851	Placement *PlacementType `type:"structure"`
10852
10853	// The identifier of the Amazon EC2 security group for the Amazon EMR service
10854	// to access clusters in VPC private subnets.
10855	ServiceAccessSecurityGroup *string `type:"string"`
10856
10857	// The EC2 instance type of the core and task nodes.
10858	SlaveInstanceType *string `min:"1" type:"string"`
10859
10860	// Specifies whether to lock the cluster to prevent the Amazon EC2 instances
10861	// from being terminated by API call, user intervention, or in the event of
10862	// a job-flow error.
10863	TerminationProtected *bool `type:"boolean"`
10864}
10865
10866// String returns the string representation
10867func (s JobFlowInstancesConfig) String() string {
10868	return awsutil.Prettify(s)
10869}
10870
10871// GoString returns the string representation
10872func (s JobFlowInstancesConfig) GoString() string {
10873	return s.String()
10874}
10875
10876// Validate inspects the fields of the type to determine if they are valid.
10877func (s *JobFlowInstancesConfig) Validate() error {
10878	invalidParams := request.ErrInvalidParams{Context: "JobFlowInstancesConfig"}
10879	if s.MasterInstanceType != nil && len(*s.MasterInstanceType) < 1 {
10880		invalidParams.Add(request.NewErrParamMinLen("MasterInstanceType", 1))
10881	}
10882	if s.SlaveInstanceType != nil && len(*s.SlaveInstanceType) < 1 {
10883		invalidParams.Add(request.NewErrParamMinLen("SlaveInstanceType", 1))
10884	}
10885	if s.InstanceFleets != nil {
10886		for i, v := range s.InstanceFleets {
10887			if v == nil {
10888				continue
10889			}
10890			if err := v.Validate(); err != nil {
10891				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceFleets", i), err.(request.ErrInvalidParams))
10892			}
10893		}
10894	}
10895	if s.InstanceGroups != nil {
10896		for i, v := range s.InstanceGroups {
10897			if v == nil {
10898				continue
10899			}
10900			if err := v.Validate(); err != nil {
10901				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
10902			}
10903		}
10904	}
10905
10906	if invalidParams.Len() > 0 {
10907		return invalidParams
10908	}
10909	return nil
10910}
10911
10912// SetAdditionalMasterSecurityGroups sets the AdditionalMasterSecurityGroups field's value.
10913func (s *JobFlowInstancesConfig) SetAdditionalMasterSecurityGroups(v []*string) *JobFlowInstancesConfig {
10914	s.AdditionalMasterSecurityGroups = v
10915	return s
10916}
10917
10918// SetAdditionalSlaveSecurityGroups sets the AdditionalSlaveSecurityGroups field's value.
10919func (s *JobFlowInstancesConfig) SetAdditionalSlaveSecurityGroups(v []*string) *JobFlowInstancesConfig {
10920	s.AdditionalSlaveSecurityGroups = v
10921	return s
10922}
10923
10924// SetEc2KeyName sets the Ec2KeyName field's value.
10925func (s *JobFlowInstancesConfig) SetEc2KeyName(v string) *JobFlowInstancesConfig {
10926	s.Ec2KeyName = &v
10927	return s
10928}
10929
10930// SetEc2SubnetId sets the Ec2SubnetId field's value.
10931func (s *JobFlowInstancesConfig) SetEc2SubnetId(v string) *JobFlowInstancesConfig {
10932	s.Ec2SubnetId = &v
10933	return s
10934}
10935
10936// SetEc2SubnetIds sets the Ec2SubnetIds field's value.
10937func (s *JobFlowInstancesConfig) SetEc2SubnetIds(v []*string) *JobFlowInstancesConfig {
10938	s.Ec2SubnetIds = v
10939	return s
10940}
10941
10942// SetEmrManagedMasterSecurityGroup sets the EmrManagedMasterSecurityGroup field's value.
10943func (s *JobFlowInstancesConfig) SetEmrManagedMasterSecurityGroup(v string) *JobFlowInstancesConfig {
10944	s.EmrManagedMasterSecurityGroup = &v
10945	return s
10946}
10947
10948// SetEmrManagedSlaveSecurityGroup sets the EmrManagedSlaveSecurityGroup field's value.
10949func (s *JobFlowInstancesConfig) SetEmrManagedSlaveSecurityGroup(v string) *JobFlowInstancesConfig {
10950	s.EmrManagedSlaveSecurityGroup = &v
10951	return s
10952}
10953
10954// SetHadoopVersion sets the HadoopVersion field's value.
10955func (s *JobFlowInstancesConfig) SetHadoopVersion(v string) *JobFlowInstancesConfig {
10956	s.HadoopVersion = &v
10957	return s
10958}
10959
10960// SetInstanceCount sets the InstanceCount field's value.
10961func (s *JobFlowInstancesConfig) SetInstanceCount(v int64) *JobFlowInstancesConfig {
10962	s.InstanceCount = &v
10963	return s
10964}
10965
10966// SetInstanceFleets sets the InstanceFleets field's value.
10967func (s *JobFlowInstancesConfig) SetInstanceFleets(v []*InstanceFleetConfig) *JobFlowInstancesConfig {
10968	s.InstanceFleets = v
10969	return s
10970}
10971
10972// SetInstanceGroups sets the InstanceGroups field's value.
10973func (s *JobFlowInstancesConfig) SetInstanceGroups(v []*InstanceGroupConfig) *JobFlowInstancesConfig {
10974	s.InstanceGroups = v
10975	return s
10976}
10977
10978// SetKeepJobFlowAliveWhenNoSteps sets the KeepJobFlowAliveWhenNoSteps field's value.
10979func (s *JobFlowInstancesConfig) SetKeepJobFlowAliveWhenNoSteps(v bool) *JobFlowInstancesConfig {
10980	s.KeepJobFlowAliveWhenNoSteps = &v
10981	return s
10982}
10983
10984// SetMasterInstanceType sets the MasterInstanceType field's value.
10985func (s *JobFlowInstancesConfig) SetMasterInstanceType(v string) *JobFlowInstancesConfig {
10986	s.MasterInstanceType = &v
10987	return s
10988}
10989
10990// SetPlacement sets the Placement field's value.
10991func (s *JobFlowInstancesConfig) SetPlacement(v *PlacementType) *JobFlowInstancesConfig {
10992	s.Placement = v
10993	return s
10994}
10995
10996// SetServiceAccessSecurityGroup sets the ServiceAccessSecurityGroup field's value.
10997func (s *JobFlowInstancesConfig) SetServiceAccessSecurityGroup(v string) *JobFlowInstancesConfig {
10998	s.ServiceAccessSecurityGroup = &v
10999	return s
11000}
11001
11002// SetSlaveInstanceType sets the SlaveInstanceType field's value.
11003func (s *JobFlowInstancesConfig) SetSlaveInstanceType(v string) *JobFlowInstancesConfig {
11004	s.SlaveInstanceType = &v
11005	return s
11006}
11007
11008// SetTerminationProtected sets the TerminationProtected field's value.
11009func (s *JobFlowInstancesConfig) SetTerminationProtected(v bool) *JobFlowInstancesConfig {
11010	s.TerminationProtected = &v
11011	return s
11012}
11013
11014// Specify the type of Amazon EC2 instances that the cluster (job flow) runs
11015// on.
11016type JobFlowInstancesDetail struct {
11017	_ struct{} `type:"structure"`
11018
11019	// The name of an Amazon EC2 key pair that can be used to connect to the master
11020	// node using SSH.
11021	Ec2KeyName *string `type:"string"`
11022
11023	// For clusters launched within Amazon Virtual Private Cloud, this is the identifier
11024	// of the subnet where the cluster was launched.
11025	Ec2SubnetId *string `type:"string"`
11026
11027	// The Hadoop version for the cluster.
11028	HadoopVersion *string `type:"string"`
11029
11030	// The number of Amazon EC2 instances in the cluster. If the value is 1, the
11031	// same instance serves as both the master and core and task node. If the value
11032	// is greater than 1, one instance is the master node and all others are core
11033	// and task nodes.
11034	//
11035	// InstanceCount is a required field
11036	InstanceCount *int64 `type:"integer" required:"true"`
11037
11038	// Details about the instance groups in a cluster.
11039	InstanceGroups []*InstanceGroupDetail `type:"list"`
11040
11041	// Specifies whether the cluster should remain available after completing all
11042	// steps.
11043	KeepJobFlowAliveWhenNoSteps *bool `type:"boolean"`
11044
11045	// The Amazon EC2 instance identifier of the master node.
11046	MasterInstanceId *string `type:"string"`
11047
11048	// The Amazon EC2 master node instance type.
11049	//
11050	// MasterInstanceType is a required field
11051	MasterInstanceType *string `min:"1" type:"string" required:"true"`
11052
11053	// The DNS name of the master node. If the cluster is on a private subnet, this
11054	// is the private DNS name. On a public subnet, this is the public DNS name.
11055	MasterPublicDnsName *string `type:"string"`
11056
11057	// An approximation of the cost of the cluster, represented in m1.small/hours.
11058	// This value is increased one time for every hour that an m1.small instance
11059	// runs. Larger instances are weighted more heavily, so an Amazon EC2 instance
11060	// that is roughly four times more expensive would result in the normalized
11061	// instance hours being increased incrementally four times. This result is only
11062	// an approximation and does not reflect the actual billing rate.
11063	NormalizedInstanceHours *int64 `type:"integer"`
11064
11065	// The Amazon EC2 Availability Zone for the cluster.
11066	Placement *PlacementType `type:"structure"`
11067
11068	// The Amazon EC2 core and task node instance type.
11069	//
11070	// SlaveInstanceType is a required field
11071	SlaveInstanceType *string `min:"1" type:"string" required:"true"`
11072
11073	// Specifies whether the Amazon EC2 instances in the cluster are protected from
11074	// termination by API calls, user intervention, or in the event of a job-flow
11075	// error.
11076	TerminationProtected *bool `type:"boolean"`
11077}
11078
11079// String returns the string representation
11080func (s JobFlowInstancesDetail) String() string {
11081	return awsutil.Prettify(s)
11082}
11083
11084// GoString returns the string representation
11085func (s JobFlowInstancesDetail) GoString() string {
11086	return s.String()
11087}
11088
11089// SetEc2KeyName sets the Ec2KeyName field's value.
11090func (s *JobFlowInstancesDetail) SetEc2KeyName(v string) *JobFlowInstancesDetail {
11091	s.Ec2KeyName = &v
11092	return s
11093}
11094
11095// SetEc2SubnetId sets the Ec2SubnetId field's value.
11096func (s *JobFlowInstancesDetail) SetEc2SubnetId(v string) *JobFlowInstancesDetail {
11097	s.Ec2SubnetId = &v
11098	return s
11099}
11100
11101// SetHadoopVersion sets the HadoopVersion field's value.
11102func (s *JobFlowInstancesDetail) SetHadoopVersion(v string) *JobFlowInstancesDetail {
11103	s.HadoopVersion = &v
11104	return s
11105}
11106
11107// SetInstanceCount sets the InstanceCount field's value.
11108func (s *JobFlowInstancesDetail) SetInstanceCount(v int64) *JobFlowInstancesDetail {
11109	s.InstanceCount = &v
11110	return s
11111}
11112
11113// SetInstanceGroups sets the InstanceGroups field's value.
11114func (s *JobFlowInstancesDetail) SetInstanceGroups(v []*InstanceGroupDetail) *JobFlowInstancesDetail {
11115	s.InstanceGroups = v
11116	return s
11117}
11118
11119// SetKeepJobFlowAliveWhenNoSteps sets the KeepJobFlowAliveWhenNoSteps field's value.
11120func (s *JobFlowInstancesDetail) SetKeepJobFlowAliveWhenNoSteps(v bool) *JobFlowInstancesDetail {
11121	s.KeepJobFlowAliveWhenNoSteps = &v
11122	return s
11123}
11124
11125// SetMasterInstanceId sets the MasterInstanceId field's value.
11126func (s *JobFlowInstancesDetail) SetMasterInstanceId(v string) *JobFlowInstancesDetail {
11127	s.MasterInstanceId = &v
11128	return s
11129}
11130
11131// SetMasterInstanceType sets the MasterInstanceType field's value.
11132func (s *JobFlowInstancesDetail) SetMasterInstanceType(v string) *JobFlowInstancesDetail {
11133	s.MasterInstanceType = &v
11134	return s
11135}
11136
11137// SetMasterPublicDnsName sets the MasterPublicDnsName field's value.
11138func (s *JobFlowInstancesDetail) SetMasterPublicDnsName(v string) *JobFlowInstancesDetail {
11139	s.MasterPublicDnsName = &v
11140	return s
11141}
11142
11143// SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
11144func (s *JobFlowInstancesDetail) SetNormalizedInstanceHours(v int64) *JobFlowInstancesDetail {
11145	s.NormalizedInstanceHours = &v
11146	return s
11147}
11148
11149// SetPlacement sets the Placement field's value.
11150func (s *JobFlowInstancesDetail) SetPlacement(v *PlacementType) *JobFlowInstancesDetail {
11151	s.Placement = v
11152	return s
11153}
11154
11155// SetSlaveInstanceType sets the SlaveInstanceType field's value.
11156func (s *JobFlowInstancesDetail) SetSlaveInstanceType(v string) *JobFlowInstancesDetail {
11157	s.SlaveInstanceType = &v
11158	return s
11159}
11160
11161// SetTerminationProtected sets the TerminationProtected field's value.
11162func (s *JobFlowInstancesDetail) SetTerminationProtected(v bool) *JobFlowInstancesDetail {
11163	s.TerminationProtected = &v
11164	return s
11165}
11166
11167// Attributes for Kerberos configuration when Kerberos authentication is enabled
11168// using a security configuration. For more information see Use Kerberos Authentication
11169// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
11170// in the Amazon EMR Management Guide.
11171type KerberosAttributes struct {
11172	_ struct{} `type:"structure"`
11173
11174	// The Active Directory password for ADDomainJoinUser.
11175	ADDomainJoinPassword *string `type:"string"`
11176
11177	// Required only when establishing a cross-realm trust with an Active Directory
11178	// domain. A user with sufficient privileges to join resources to the domain.
11179	ADDomainJoinUser *string `type:"string"`
11180
11181	// Required only when establishing a cross-realm trust with a KDC in a different
11182	// realm. The cross-realm principal password, which must be identical across
11183	// realms.
11184	CrossRealmTrustPrincipalPassword *string `type:"string"`
11185
11186	// The password used within the cluster for the kadmin service on the cluster-dedicated
11187	// KDC, which maintains Kerberos principals, password policies, and keytabs
11188	// for the cluster.
11189	//
11190	// KdcAdminPassword is a required field
11191	KdcAdminPassword *string `type:"string" required:"true"`
11192
11193	// The name of the Kerberos realm to which all nodes in a cluster belong. For
11194	// example, EC2.INTERNAL.
11195	//
11196	// Realm is a required field
11197	Realm *string `type:"string" required:"true"`
11198}
11199
11200// String returns the string representation
11201func (s KerberosAttributes) String() string {
11202	return awsutil.Prettify(s)
11203}
11204
11205// GoString returns the string representation
11206func (s KerberosAttributes) GoString() string {
11207	return s.String()
11208}
11209
11210// Validate inspects the fields of the type to determine if they are valid.
11211func (s *KerberosAttributes) Validate() error {
11212	invalidParams := request.ErrInvalidParams{Context: "KerberosAttributes"}
11213	if s.KdcAdminPassword == nil {
11214		invalidParams.Add(request.NewErrParamRequired("KdcAdminPassword"))
11215	}
11216	if s.Realm == nil {
11217		invalidParams.Add(request.NewErrParamRequired("Realm"))
11218	}
11219
11220	if invalidParams.Len() > 0 {
11221		return invalidParams
11222	}
11223	return nil
11224}
11225
11226// SetADDomainJoinPassword sets the ADDomainJoinPassword field's value.
11227func (s *KerberosAttributes) SetADDomainJoinPassword(v string) *KerberosAttributes {
11228	s.ADDomainJoinPassword = &v
11229	return s
11230}
11231
11232// SetADDomainJoinUser sets the ADDomainJoinUser field's value.
11233func (s *KerberosAttributes) SetADDomainJoinUser(v string) *KerberosAttributes {
11234	s.ADDomainJoinUser = &v
11235	return s
11236}
11237
11238// SetCrossRealmTrustPrincipalPassword sets the CrossRealmTrustPrincipalPassword field's value.
11239func (s *KerberosAttributes) SetCrossRealmTrustPrincipalPassword(v string) *KerberosAttributes {
11240	s.CrossRealmTrustPrincipalPassword = &v
11241	return s
11242}
11243
11244// SetKdcAdminPassword sets the KdcAdminPassword field's value.
11245func (s *KerberosAttributes) SetKdcAdminPassword(v string) *KerberosAttributes {
11246	s.KdcAdminPassword = &v
11247	return s
11248}
11249
11250// SetRealm sets the Realm field's value.
11251func (s *KerberosAttributes) SetRealm(v string) *KerberosAttributes {
11252	s.Realm = &v
11253	return s
11254}
11255
11256// A key-value pair.
11257type KeyValue struct {
11258	_ struct{} `type:"structure"`
11259
11260	// The unique identifier of a key-value pair.
11261	Key *string `type:"string"`
11262
11263	// The value part of the identified key.
11264	Value *string `type:"string"`
11265}
11266
11267// String returns the string representation
11268func (s KeyValue) String() string {
11269	return awsutil.Prettify(s)
11270}
11271
11272// GoString returns the string representation
11273func (s KeyValue) GoString() string {
11274	return s.String()
11275}
11276
11277// SetKey sets the Key field's value.
11278func (s *KeyValue) SetKey(v string) *KeyValue {
11279	s.Key = &v
11280	return s
11281}
11282
11283// SetValue sets the Value field's value.
11284func (s *KeyValue) SetValue(v string) *KeyValue {
11285	s.Value = &v
11286	return s
11287}
11288
11289// This input determines which bootstrap actions to retrieve.
11290type ListBootstrapActionsInput struct {
11291	_ struct{} `type:"structure"`
11292
11293	// The cluster identifier for the bootstrap actions to list.
11294	//
11295	// ClusterId is a required field
11296	ClusterId *string `type:"string" required:"true"`
11297
11298	// The pagination token that indicates the next set of results to retrieve.
11299	Marker *string `type:"string"`
11300}
11301
11302// String returns the string representation
11303func (s ListBootstrapActionsInput) String() string {
11304	return awsutil.Prettify(s)
11305}
11306
11307// GoString returns the string representation
11308func (s ListBootstrapActionsInput) GoString() string {
11309	return s.String()
11310}
11311
11312// Validate inspects the fields of the type to determine if they are valid.
11313func (s *ListBootstrapActionsInput) Validate() error {
11314	invalidParams := request.ErrInvalidParams{Context: "ListBootstrapActionsInput"}
11315	if s.ClusterId == nil {
11316		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11317	}
11318
11319	if invalidParams.Len() > 0 {
11320		return invalidParams
11321	}
11322	return nil
11323}
11324
11325// SetClusterId sets the ClusterId field's value.
11326func (s *ListBootstrapActionsInput) SetClusterId(v string) *ListBootstrapActionsInput {
11327	s.ClusterId = &v
11328	return s
11329}
11330
11331// SetMarker sets the Marker field's value.
11332func (s *ListBootstrapActionsInput) SetMarker(v string) *ListBootstrapActionsInput {
11333	s.Marker = &v
11334	return s
11335}
11336
11337// This output contains the bootstrap actions detail.
11338type ListBootstrapActionsOutput struct {
11339	_ struct{} `type:"structure"`
11340
11341	// The bootstrap actions associated with the cluster.
11342	BootstrapActions []*Command `type:"list"`
11343
11344	// The pagination token that indicates the next set of results to retrieve.
11345	Marker *string `type:"string"`
11346}
11347
11348// String returns the string representation
11349func (s ListBootstrapActionsOutput) String() string {
11350	return awsutil.Prettify(s)
11351}
11352
11353// GoString returns the string representation
11354func (s ListBootstrapActionsOutput) GoString() string {
11355	return s.String()
11356}
11357
11358// SetBootstrapActions sets the BootstrapActions field's value.
11359func (s *ListBootstrapActionsOutput) SetBootstrapActions(v []*Command) *ListBootstrapActionsOutput {
11360	s.BootstrapActions = v
11361	return s
11362}
11363
11364// SetMarker sets the Marker field's value.
11365func (s *ListBootstrapActionsOutput) SetMarker(v string) *ListBootstrapActionsOutput {
11366	s.Marker = &v
11367	return s
11368}
11369
11370// This input determines how the ListClusters action filters the list of clusters
11371// that it returns.
11372type ListClustersInput struct {
11373	_ struct{} `type:"structure"`
11374
11375	// The cluster state filters to apply when listing clusters. Clusters that change
11376	// state while this action runs may be not be returned as expected in the list
11377	// of clusters.
11378	ClusterStates []*string `type:"list"`
11379
11380	// The creation date and time beginning value filter for listing clusters.
11381	CreatedAfter *time.Time `type:"timestamp"`
11382
11383	// The creation date and time end value filter for listing clusters.
11384	CreatedBefore *time.Time `type:"timestamp"`
11385
11386	// The pagination token that indicates the next set of results to retrieve.
11387	Marker *string `type:"string"`
11388}
11389
11390// String returns the string representation
11391func (s ListClustersInput) String() string {
11392	return awsutil.Prettify(s)
11393}
11394
11395// GoString returns the string representation
11396func (s ListClustersInput) GoString() string {
11397	return s.String()
11398}
11399
11400// SetClusterStates sets the ClusterStates field's value.
11401func (s *ListClustersInput) SetClusterStates(v []*string) *ListClustersInput {
11402	s.ClusterStates = v
11403	return s
11404}
11405
11406// SetCreatedAfter sets the CreatedAfter field's value.
11407func (s *ListClustersInput) SetCreatedAfter(v time.Time) *ListClustersInput {
11408	s.CreatedAfter = &v
11409	return s
11410}
11411
11412// SetCreatedBefore sets the CreatedBefore field's value.
11413func (s *ListClustersInput) SetCreatedBefore(v time.Time) *ListClustersInput {
11414	s.CreatedBefore = &v
11415	return s
11416}
11417
11418// SetMarker sets the Marker field's value.
11419func (s *ListClustersInput) SetMarker(v string) *ListClustersInput {
11420	s.Marker = &v
11421	return s
11422}
11423
11424// This contains a ClusterSummaryList with the cluster details; for example,
11425// the cluster IDs, names, and status.
11426type ListClustersOutput struct {
11427	_ struct{} `type:"structure"`
11428
11429	// The list of clusters for the account based on the given filters.
11430	Clusters []*ClusterSummary `type:"list"`
11431
11432	// The pagination token that indicates the next set of results to retrieve.
11433	Marker *string `type:"string"`
11434}
11435
11436// String returns the string representation
11437func (s ListClustersOutput) String() string {
11438	return awsutil.Prettify(s)
11439}
11440
11441// GoString returns the string representation
11442func (s ListClustersOutput) GoString() string {
11443	return s.String()
11444}
11445
11446// SetClusters sets the Clusters field's value.
11447func (s *ListClustersOutput) SetClusters(v []*ClusterSummary) *ListClustersOutput {
11448	s.Clusters = v
11449	return s
11450}
11451
11452// SetMarker sets the Marker field's value.
11453func (s *ListClustersOutput) SetMarker(v string) *ListClustersOutput {
11454	s.Marker = &v
11455	return s
11456}
11457
11458type ListInstanceFleetsInput struct {
11459	_ struct{} `type:"structure"`
11460
11461	// The unique identifier of the cluster.
11462	//
11463	// ClusterId is a required field
11464	ClusterId *string `type:"string" required:"true"`
11465
11466	// The pagination token that indicates the next set of results to retrieve.
11467	Marker *string `type:"string"`
11468}
11469
11470// String returns the string representation
11471func (s ListInstanceFleetsInput) String() string {
11472	return awsutil.Prettify(s)
11473}
11474
11475// GoString returns the string representation
11476func (s ListInstanceFleetsInput) GoString() string {
11477	return s.String()
11478}
11479
11480// Validate inspects the fields of the type to determine if they are valid.
11481func (s *ListInstanceFleetsInput) Validate() error {
11482	invalidParams := request.ErrInvalidParams{Context: "ListInstanceFleetsInput"}
11483	if s.ClusterId == nil {
11484		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11485	}
11486
11487	if invalidParams.Len() > 0 {
11488		return invalidParams
11489	}
11490	return nil
11491}
11492
11493// SetClusterId sets the ClusterId field's value.
11494func (s *ListInstanceFleetsInput) SetClusterId(v string) *ListInstanceFleetsInput {
11495	s.ClusterId = &v
11496	return s
11497}
11498
11499// SetMarker sets the Marker field's value.
11500func (s *ListInstanceFleetsInput) SetMarker(v string) *ListInstanceFleetsInput {
11501	s.Marker = &v
11502	return s
11503}
11504
11505type ListInstanceFleetsOutput struct {
11506	_ struct{} `type:"structure"`
11507
11508	// The list of instance fleets for the cluster and given filters.
11509	InstanceFleets []*InstanceFleet `type:"list"`
11510
11511	// The pagination token that indicates the next set of results to retrieve.
11512	Marker *string `type:"string"`
11513}
11514
11515// String returns the string representation
11516func (s ListInstanceFleetsOutput) String() string {
11517	return awsutil.Prettify(s)
11518}
11519
11520// GoString returns the string representation
11521func (s ListInstanceFleetsOutput) GoString() string {
11522	return s.String()
11523}
11524
11525// SetInstanceFleets sets the InstanceFleets field's value.
11526func (s *ListInstanceFleetsOutput) SetInstanceFleets(v []*InstanceFleet) *ListInstanceFleetsOutput {
11527	s.InstanceFleets = v
11528	return s
11529}
11530
11531// SetMarker sets the Marker field's value.
11532func (s *ListInstanceFleetsOutput) SetMarker(v string) *ListInstanceFleetsOutput {
11533	s.Marker = &v
11534	return s
11535}
11536
11537// This input determines which instance groups to retrieve.
11538type ListInstanceGroupsInput struct {
11539	_ struct{} `type:"structure"`
11540
11541	// The identifier of the cluster for which to list the instance groups.
11542	//
11543	// ClusterId is a required field
11544	ClusterId *string `type:"string" required:"true"`
11545
11546	// The pagination token that indicates the next set of results to retrieve.
11547	Marker *string `type:"string"`
11548}
11549
11550// String returns the string representation
11551func (s ListInstanceGroupsInput) String() string {
11552	return awsutil.Prettify(s)
11553}
11554
11555// GoString returns the string representation
11556func (s ListInstanceGroupsInput) GoString() string {
11557	return s.String()
11558}
11559
11560// Validate inspects the fields of the type to determine if they are valid.
11561func (s *ListInstanceGroupsInput) Validate() error {
11562	invalidParams := request.ErrInvalidParams{Context: "ListInstanceGroupsInput"}
11563	if s.ClusterId == nil {
11564		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11565	}
11566
11567	if invalidParams.Len() > 0 {
11568		return invalidParams
11569	}
11570	return nil
11571}
11572
11573// SetClusterId sets the ClusterId field's value.
11574func (s *ListInstanceGroupsInput) SetClusterId(v string) *ListInstanceGroupsInput {
11575	s.ClusterId = &v
11576	return s
11577}
11578
11579// SetMarker sets the Marker field's value.
11580func (s *ListInstanceGroupsInput) SetMarker(v string) *ListInstanceGroupsInput {
11581	s.Marker = &v
11582	return s
11583}
11584
11585// This input determines which instance groups to retrieve.
11586type ListInstanceGroupsOutput struct {
11587	_ struct{} `type:"structure"`
11588
11589	// The list of instance groups for the cluster and given filters.
11590	InstanceGroups []*InstanceGroup `type:"list"`
11591
11592	// The pagination token that indicates the next set of results to retrieve.
11593	Marker *string `type:"string"`
11594}
11595
11596// String returns the string representation
11597func (s ListInstanceGroupsOutput) String() string {
11598	return awsutil.Prettify(s)
11599}
11600
11601// GoString returns the string representation
11602func (s ListInstanceGroupsOutput) GoString() string {
11603	return s.String()
11604}
11605
11606// SetInstanceGroups sets the InstanceGroups field's value.
11607func (s *ListInstanceGroupsOutput) SetInstanceGroups(v []*InstanceGroup) *ListInstanceGroupsOutput {
11608	s.InstanceGroups = v
11609	return s
11610}
11611
11612// SetMarker sets the Marker field's value.
11613func (s *ListInstanceGroupsOutput) SetMarker(v string) *ListInstanceGroupsOutput {
11614	s.Marker = &v
11615	return s
11616}
11617
11618// This input determines which instances to list.
11619type ListInstancesInput struct {
11620	_ struct{} `type:"structure"`
11621
11622	// The identifier of the cluster for which to list the instances.
11623	//
11624	// ClusterId is a required field
11625	ClusterId *string `type:"string" required:"true"`
11626
11627	// The unique identifier of the instance fleet.
11628	InstanceFleetId *string `type:"string"`
11629
11630	// The node type of the instance fleet. For example MASTER, CORE, or TASK.
11631	InstanceFleetType *string `type:"string" enum:"InstanceFleetType"`
11632
11633	// The identifier of the instance group for which to list the instances.
11634	InstanceGroupId *string `type:"string"`
11635
11636	// The type of instance group for which to list the instances.
11637	InstanceGroupTypes []*string `type:"list"`
11638
11639	// A list of instance states that will filter the instances returned with this
11640	// request.
11641	InstanceStates []*string `type:"list"`
11642
11643	// The pagination token that indicates the next set of results to retrieve.
11644	Marker *string `type:"string"`
11645}
11646
11647// String returns the string representation
11648func (s ListInstancesInput) String() string {
11649	return awsutil.Prettify(s)
11650}
11651
11652// GoString returns the string representation
11653func (s ListInstancesInput) GoString() string {
11654	return s.String()
11655}
11656
11657// Validate inspects the fields of the type to determine if they are valid.
11658func (s *ListInstancesInput) Validate() error {
11659	invalidParams := request.ErrInvalidParams{Context: "ListInstancesInput"}
11660	if s.ClusterId == nil {
11661		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11662	}
11663
11664	if invalidParams.Len() > 0 {
11665		return invalidParams
11666	}
11667	return nil
11668}
11669
11670// SetClusterId sets the ClusterId field's value.
11671func (s *ListInstancesInput) SetClusterId(v string) *ListInstancesInput {
11672	s.ClusterId = &v
11673	return s
11674}
11675
11676// SetInstanceFleetId sets the InstanceFleetId field's value.
11677func (s *ListInstancesInput) SetInstanceFleetId(v string) *ListInstancesInput {
11678	s.InstanceFleetId = &v
11679	return s
11680}
11681
11682// SetInstanceFleetType sets the InstanceFleetType field's value.
11683func (s *ListInstancesInput) SetInstanceFleetType(v string) *ListInstancesInput {
11684	s.InstanceFleetType = &v
11685	return s
11686}
11687
11688// SetInstanceGroupId sets the InstanceGroupId field's value.
11689func (s *ListInstancesInput) SetInstanceGroupId(v string) *ListInstancesInput {
11690	s.InstanceGroupId = &v
11691	return s
11692}
11693
11694// SetInstanceGroupTypes sets the InstanceGroupTypes field's value.
11695func (s *ListInstancesInput) SetInstanceGroupTypes(v []*string) *ListInstancesInput {
11696	s.InstanceGroupTypes = v
11697	return s
11698}
11699
11700// SetInstanceStates sets the InstanceStates field's value.
11701func (s *ListInstancesInput) SetInstanceStates(v []*string) *ListInstancesInput {
11702	s.InstanceStates = v
11703	return s
11704}
11705
11706// SetMarker sets the Marker field's value.
11707func (s *ListInstancesInput) SetMarker(v string) *ListInstancesInput {
11708	s.Marker = &v
11709	return s
11710}
11711
11712// This output contains the list of instances.
11713type ListInstancesOutput struct {
11714	_ struct{} `type:"structure"`
11715
11716	// The list of instances for the cluster and given filters.
11717	Instances []*Instance `type:"list"`
11718
11719	// The pagination token that indicates the next set of results to retrieve.
11720	Marker *string `type:"string"`
11721}
11722
11723// String returns the string representation
11724func (s ListInstancesOutput) String() string {
11725	return awsutil.Prettify(s)
11726}
11727
11728// GoString returns the string representation
11729func (s ListInstancesOutput) GoString() string {
11730	return s.String()
11731}
11732
11733// SetInstances sets the Instances field's value.
11734func (s *ListInstancesOutput) SetInstances(v []*Instance) *ListInstancesOutput {
11735	s.Instances = v
11736	return s
11737}
11738
11739// SetMarker sets the Marker field's value.
11740func (s *ListInstancesOutput) SetMarker(v string) *ListInstancesOutput {
11741	s.Marker = &v
11742	return s
11743}
11744
11745type ListNotebookExecutionsInput struct {
11746	_ struct{} `type:"structure"`
11747
11748	// The unique ID of the editor associated with the notebook execution.
11749	EditorId *string `type:"string"`
11750
11751	// The beginning of time range filter for listing notebook executions. The default
11752	// is the timestamp of 30 days ago.
11753	From *time.Time `type:"timestamp"`
11754
11755	// The pagination token, returned by a previous ListNotebookExecutions call,
11756	// that indicates the start of the list for this ListNotebookExecutions call.
11757	Marker *string `type:"string"`
11758
11759	// The status filter for listing notebook executions.
11760	//
11761	//    * START_PENDING indicates that the cluster has received the execution
11762	//    request but execution has not begun.
11763	//
11764	//    * STARTING indicates that the execution is starting on the cluster.
11765	//
11766	//    * RUNNING indicates that the execution is being processed by the cluster.
11767	//
11768	//    * FINISHING indicates that execution processing is in the final stages.
11769	//
11770	//    * FINISHED indicates that the execution has completed without error.
11771	//
11772	//    * FAILING indicates that the execution is failing and will not finish
11773	//    successfully.
11774	//
11775	//    * FAILED indicates that the execution failed.
11776	//
11777	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
11778	//    request and the stop is pending.
11779	//
11780	//    * STOPPING indicates that the cluster is in the process of stopping the
11781	//    execution as a result of a StopNotebookExecution request.
11782	//
11783	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
11784	//    request.
11785	Status *string `type:"string" enum:"NotebookExecutionStatus"`
11786
11787	// The end of time range filter for listing notebook executions. The default
11788	// is the current timestamp.
11789	To *time.Time `type:"timestamp"`
11790}
11791
11792// String returns the string representation
11793func (s ListNotebookExecutionsInput) String() string {
11794	return awsutil.Prettify(s)
11795}
11796
11797// GoString returns the string representation
11798func (s ListNotebookExecutionsInput) GoString() string {
11799	return s.String()
11800}
11801
11802// SetEditorId sets the EditorId field's value.
11803func (s *ListNotebookExecutionsInput) SetEditorId(v string) *ListNotebookExecutionsInput {
11804	s.EditorId = &v
11805	return s
11806}
11807
11808// SetFrom sets the From field's value.
11809func (s *ListNotebookExecutionsInput) SetFrom(v time.Time) *ListNotebookExecutionsInput {
11810	s.From = &v
11811	return s
11812}
11813
11814// SetMarker sets the Marker field's value.
11815func (s *ListNotebookExecutionsInput) SetMarker(v string) *ListNotebookExecutionsInput {
11816	s.Marker = &v
11817	return s
11818}
11819
11820// SetStatus sets the Status field's value.
11821func (s *ListNotebookExecutionsInput) SetStatus(v string) *ListNotebookExecutionsInput {
11822	s.Status = &v
11823	return s
11824}
11825
11826// SetTo sets the To field's value.
11827func (s *ListNotebookExecutionsInput) SetTo(v time.Time) *ListNotebookExecutionsInput {
11828	s.To = &v
11829	return s
11830}
11831
11832type ListNotebookExecutionsOutput struct {
11833	_ struct{} `type:"structure"`
11834
11835	// A pagination token that a subsequent ListNotebookExecutions can use to determine
11836	// the next set of results to retrieve.
11837	Marker *string `type:"string"`
11838
11839	// A list of notebook executions.
11840	NotebookExecutions []*NotebookExecutionSummary `type:"list"`
11841}
11842
11843// String returns the string representation
11844func (s ListNotebookExecutionsOutput) String() string {
11845	return awsutil.Prettify(s)
11846}
11847
11848// GoString returns the string representation
11849func (s ListNotebookExecutionsOutput) GoString() string {
11850	return s.String()
11851}
11852
11853// SetMarker sets the Marker field's value.
11854func (s *ListNotebookExecutionsOutput) SetMarker(v string) *ListNotebookExecutionsOutput {
11855	s.Marker = &v
11856	return s
11857}
11858
11859// SetNotebookExecutions sets the NotebookExecutions field's value.
11860func (s *ListNotebookExecutionsOutput) SetNotebookExecutions(v []*NotebookExecutionSummary) *ListNotebookExecutionsOutput {
11861	s.NotebookExecutions = v
11862	return s
11863}
11864
11865type ListReleaseLabelsInput struct {
11866	_ struct{} `type:"structure"`
11867
11868	// Filters the results of the request. Prefix specifies the prefix of release
11869	// labels to return. Application specifies the application (with/without version)
11870	// of release labels to return.
11871	Filters *ReleaseLabelFilter `type:"structure"`
11872
11873	// Defines the maximum number of release labels to return in a single response.
11874	// The default is 100.
11875	MaxResults *int64 `min:"1" type:"integer"`
11876
11877	// Specifies the next page of results. If NextToken is not specified, which
11878	// is usually the case for the first request of ListReleaseLabels, the first
11879	// page of results are determined by other filtering parameters or by the latest
11880	// version. The ListReleaseLabels request fails if the identity (account ID)
11881	// and all filtering parameters are different from the original request, or
11882	// if the NextToken is expired or tampered with.
11883	NextToken *string `type:"string"`
11884}
11885
11886// String returns the string representation
11887func (s ListReleaseLabelsInput) String() string {
11888	return awsutil.Prettify(s)
11889}
11890
11891// GoString returns the string representation
11892func (s ListReleaseLabelsInput) GoString() string {
11893	return s.String()
11894}
11895
11896// Validate inspects the fields of the type to determine if they are valid.
11897func (s *ListReleaseLabelsInput) Validate() error {
11898	invalidParams := request.ErrInvalidParams{Context: "ListReleaseLabelsInput"}
11899	if s.MaxResults != nil && *s.MaxResults < 1 {
11900		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11901	}
11902
11903	if invalidParams.Len() > 0 {
11904		return invalidParams
11905	}
11906	return nil
11907}
11908
11909// SetFilters sets the Filters field's value.
11910func (s *ListReleaseLabelsInput) SetFilters(v *ReleaseLabelFilter) *ListReleaseLabelsInput {
11911	s.Filters = v
11912	return s
11913}
11914
11915// SetMaxResults sets the MaxResults field's value.
11916func (s *ListReleaseLabelsInput) SetMaxResults(v int64) *ListReleaseLabelsInput {
11917	s.MaxResults = &v
11918	return s
11919}
11920
11921// SetNextToken sets the NextToken field's value.
11922func (s *ListReleaseLabelsInput) SetNextToken(v string) *ListReleaseLabelsInput {
11923	s.NextToken = &v
11924	return s
11925}
11926
11927type ListReleaseLabelsOutput struct {
11928	_ struct{} `type:"structure"`
11929
11930	// Used to paginate the next page of results if specified in the next ListReleaseLabels
11931	// request.
11932	NextToken *string `type:"string"`
11933
11934	// The returned release labels.
11935	ReleaseLabels []*string `type:"list"`
11936}
11937
11938// String returns the string representation
11939func (s ListReleaseLabelsOutput) String() string {
11940	return awsutil.Prettify(s)
11941}
11942
11943// GoString returns the string representation
11944func (s ListReleaseLabelsOutput) GoString() string {
11945	return s.String()
11946}
11947
11948// SetNextToken sets the NextToken field's value.
11949func (s *ListReleaseLabelsOutput) SetNextToken(v string) *ListReleaseLabelsOutput {
11950	s.NextToken = &v
11951	return s
11952}
11953
11954// SetReleaseLabels sets the ReleaseLabels field's value.
11955func (s *ListReleaseLabelsOutput) SetReleaseLabels(v []*string) *ListReleaseLabelsOutput {
11956	s.ReleaseLabels = v
11957	return s
11958}
11959
11960type ListSecurityConfigurationsInput struct {
11961	_ struct{} `type:"structure"`
11962
11963	// The pagination token that indicates the set of results to retrieve.
11964	Marker *string `type:"string"`
11965}
11966
11967// String returns the string representation
11968func (s ListSecurityConfigurationsInput) String() string {
11969	return awsutil.Prettify(s)
11970}
11971
11972// GoString returns the string representation
11973func (s ListSecurityConfigurationsInput) GoString() string {
11974	return s.String()
11975}
11976
11977// SetMarker sets the Marker field's value.
11978func (s *ListSecurityConfigurationsInput) SetMarker(v string) *ListSecurityConfigurationsInput {
11979	s.Marker = &v
11980	return s
11981}
11982
11983type ListSecurityConfigurationsOutput struct {
11984	_ struct{} `type:"structure"`
11985
11986	// A pagination token that indicates the next set of results to retrieve. Include
11987	// the marker in the next ListSecurityConfiguration call to retrieve the next
11988	// page of results, if required.
11989	Marker *string `type:"string"`
11990
11991	// The creation date and time, and name, of each security configuration.
11992	SecurityConfigurations []*SecurityConfigurationSummary `type:"list"`
11993}
11994
11995// String returns the string representation
11996func (s ListSecurityConfigurationsOutput) String() string {
11997	return awsutil.Prettify(s)
11998}
11999
12000// GoString returns the string representation
12001func (s ListSecurityConfigurationsOutput) GoString() string {
12002	return s.String()
12003}
12004
12005// SetMarker sets the Marker field's value.
12006func (s *ListSecurityConfigurationsOutput) SetMarker(v string) *ListSecurityConfigurationsOutput {
12007	s.Marker = &v
12008	return s
12009}
12010
12011// SetSecurityConfigurations sets the SecurityConfigurations field's value.
12012func (s *ListSecurityConfigurationsOutput) SetSecurityConfigurations(v []*SecurityConfigurationSummary) *ListSecurityConfigurationsOutput {
12013	s.SecurityConfigurations = v
12014	return s
12015}
12016
12017// This input determines which steps to list.
12018type ListStepsInput struct {
12019	_ struct{} `type:"structure"`
12020
12021	// The identifier of the cluster for which to list the steps.
12022	//
12023	// ClusterId is a required field
12024	ClusterId *string `type:"string" required:"true"`
12025
12026	// The maximum number of steps that a single ListSteps action returns is 50.
12027	// To return a longer list of steps, use multiple ListSteps actions along with
12028	// the Marker parameter, which is a pagination token that indicates the next
12029	// set of results to retrieve.
12030	Marker *string `type:"string"`
12031
12032	// The filter to limit the step list based on the identifier of the steps. You
12033	// can specify a maximum of ten Step IDs. The character constraint applies to
12034	// the overall length of the array.
12035	StepIds []*string `type:"list"`
12036
12037	// The filter to limit the step list based on certain states.
12038	StepStates []*string `type:"list"`
12039}
12040
12041// String returns the string representation
12042func (s ListStepsInput) String() string {
12043	return awsutil.Prettify(s)
12044}
12045
12046// GoString returns the string representation
12047func (s ListStepsInput) GoString() string {
12048	return s.String()
12049}
12050
12051// Validate inspects the fields of the type to determine if they are valid.
12052func (s *ListStepsInput) Validate() error {
12053	invalidParams := request.ErrInvalidParams{Context: "ListStepsInput"}
12054	if s.ClusterId == nil {
12055		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
12056	}
12057
12058	if invalidParams.Len() > 0 {
12059		return invalidParams
12060	}
12061	return nil
12062}
12063
12064// SetClusterId sets the ClusterId field's value.
12065func (s *ListStepsInput) SetClusterId(v string) *ListStepsInput {
12066	s.ClusterId = &v
12067	return s
12068}
12069
12070// SetMarker sets the Marker field's value.
12071func (s *ListStepsInput) SetMarker(v string) *ListStepsInput {
12072	s.Marker = &v
12073	return s
12074}
12075
12076// SetStepIds sets the StepIds field's value.
12077func (s *ListStepsInput) SetStepIds(v []*string) *ListStepsInput {
12078	s.StepIds = v
12079	return s
12080}
12081
12082// SetStepStates sets the StepStates field's value.
12083func (s *ListStepsInput) SetStepStates(v []*string) *ListStepsInput {
12084	s.StepStates = v
12085	return s
12086}
12087
12088// This output contains the list of steps returned in reverse order. This means
12089// that the last step is the first element in the list.
12090type ListStepsOutput struct {
12091	_ struct{} `type:"structure"`
12092
12093	// The maximum number of steps that a single ListSteps action returns is 50.
12094	// To return a longer list of steps, use multiple ListSteps actions along with
12095	// the Marker parameter, which is a pagination token that indicates the next
12096	// set of results to retrieve.
12097	Marker *string `type:"string"`
12098
12099	// The filtered list of steps for the cluster.
12100	Steps []*StepSummary `type:"list"`
12101}
12102
12103// String returns the string representation
12104func (s ListStepsOutput) String() string {
12105	return awsutil.Prettify(s)
12106}
12107
12108// GoString returns the string representation
12109func (s ListStepsOutput) GoString() string {
12110	return s.String()
12111}
12112
12113// SetMarker sets the Marker field's value.
12114func (s *ListStepsOutput) SetMarker(v string) *ListStepsOutput {
12115	s.Marker = &v
12116	return s
12117}
12118
12119// SetSteps sets the Steps field's value.
12120func (s *ListStepsOutput) SetSteps(v []*StepSummary) *ListStepsOutput {
12121	s.Steps = v
12122	return s
12123}
12124
12125type ListStudioSessionMappingsInput struct {
12126	_ struct{} `type:"structure"`
12127
12128	// Specifies whether to return session mappings for users or groups. If not
12129	// specified, the results include session mapping details for both users and
12130	// groups.
12131	IdentityType *string `type:"string" enum:"IdentityType"`
12132
12133	// The pagination token that indicates the set of results to retrieve.
12134	Marker *string `type:"string"`
12135
12136	// The ID of the Amazon EMR Studio.
12137	StudioId *string `type:"string"`
12138}
12139
12140// String returns the string representation
12141func (s ListStudioSessionMappingsInput) String() string {
12142	return awsutil.Prettify(s)
12143}
12144
12145// GoString returns the string representation
12146func (s ListStudioSessionMappingsInput) GoString() string {
12147	return s.String()
12148}
12149
12150// SetIdentityType sets the IdentityType field's value.
12151func (s *ListStudioSessionMappingsInput) SetIdentityType(v string) *ListStudioSessionMappingsInput {
12152	s.IdentityType = &v
12153	return s
12154}
12155
12156// SetMarker sets the Marker field's value.
12157func (s *ListStudioSessionMappingsInput) SetMarker(v string) *ListStudioSessionMappingsInput {
12158	s.Marker = &v
12159	return s
12160}
12161
12162// SetStudioId sets the StudioId field's value.
12163func (s *ListStudioSessionMappingsInput) SetStudioId(v string) *ListStudioSessionMappingsInput {
12164	s.StudioId = &v
12165	return s
12166}
12167
12168type ListStudioSessionMappingsOutput struct {
12169	_ struct{} `type:"structure"`
12170
12171	// The pagination token that indicates the next set of results to retrieve.
12172	Marker *string `type:"string"`
12173
12174	// A list of session mapping summary objects. Each object includes session mapping
12175	// details such as creation time, identity type (user or group), and Amazon
12176	// EMR Studio ID.
12177	SessionMappings []*SessionMappingSummary `type:"list"`
12178}
12179
12180// String returns the string representation
12181func (s ListStudioSessionMappingsOutput) String() string {
12182	return awsutil.Prettify(s)
12183}
12184
12185// GoString returns the string representation
12186func (s ListStudioSessionMappingsOutput) GoString() string {
12187	return s.String()
12188}
12189
12190// SetMarker sets the Marker field's value.
12191func (s *ListStudioSessionMappingsOutput) SetMarker(v string) *ListStudioSessionMappingsOutput {
12192	s.Marker = &v
12193	return s
12194}
12195
12196// SetSessionMappings sets the SessionMappings field's value.
12197func (s *ListStudioSessionMappingsOutput) SetSessionMappings(v []*SessionMappingSummary) *ListStudioSessionMappingsOutput {
12198	s.SessionMappings = v
12199	return s
12200}
12201
12202type ListStudiosInput struct {
12203	_ struct{} `type:"structure"`
12204
12205	// The pagination token that indicates the set of results to retrieve.
12206	Marker *string `type:"string"`
12207}
12208
12209// String returns the string representation
12210func (s ListStudiosInput) String() string {
12211	return awsutil.Prettify(s)
12212}
12213
12214// GoString returns the string representation
12215func (s ListStudiosInput) GoString() string {
12216	return s.String()
12217}
12218
12219// SetMarker sets the Marker field's value.
12220func (s *ListStudiosInput) SetMarker(v string) *ListStudiosInput {
12221	s.Marker = &v
12222	return s
12223}
12224
12225type ListStudiosOutput struct {
12226	_ struct{} `type:"structure"`
12227
12228	// The pagination token that indicates the next set of results to retrieve.
12229	Marker *string `type:"string"`
12230
12231	// The list of Studio summary objects.
12232	Studios []*StudioSummary `type:"list"`
12233}
12234
12235// String returns the string representation
12236func (s ListStudiosOutput) String() string {
12237	return awsutil.Prettify(s)
12238}
12239
12240// GoString returns the string representation
12241func (s ListStudiosOutput) GoString() string {
12242	return s.String()
12243}
12244
12245// SetMarker sets the Marker field's value.
12246func (s *ListStudiosOutput) SetMarker(v string) *ListStudiosOutput {
12247	s.Marker = &v
12248	return s
12249}
12250
12251// SetStudios sets the Studios field's value.
12252func (s *ListStudiosOutput) SetStudios(v []*StudioSummary) *ListStudiosOutput {
12253	s.Studios = v
12254	return s
12255}
12256
12257// Managed scaling policy for an Amazon EMR cluster. The policy specifies the
12258// limits for resources that can be added or terminated from a cluster. The
12259// policy only applies to the core and task nodes. The master node cannot be
12260// scaled after initial configuration.
12261type ManagedScalingPolicy struct {
12262	_ struct{} `type:"structure"`
12263
12264	// The EC2 unit limits for a managed scaling policy. The managed scaling activity
12265	// of a cluster is not allowed to go above or below these limits. The limit
12266	// only applies to the core and task nodes. The master node cannot be scaled
12267	// after initial configuration.
12268	ComputeLimits *ComputeLimits `type:"structure"`
12269}
12270
12271// String returns the string representation
12272func (s ManagedScalingPolicy) String() string {
12273	return awsutil.Prettify(s)
12274}
12275
12276// GoString returns the string representation
12277func (s ManagedScalingPolicy) GoString() string {
12278	return s.String()
12279}
12280
12281// Validate inspects the fields of the type to determine if they are valid.
12282func (s *ManagedScalingPolicy) Validate() error {
12283	invalidParams := request.ErrInvalidParams{Context: "ManagedScalingPolicy"}
12284	if s.ComputeLimits != nil {
12285		if err := s.ComputeLimits.Validate(); err != nil {
12286			invalidParams.AddNested("ComputeLimits", err.(request.ErrInvalidParams))
12287		}
12288	}
12289
12290	if invalidParams.Len() > 0 {
12291		return invalidParams
12292	}
12293	return nil
12294}
12295
12296// SetComputeLimits sets the ComputeLimits field's value.
12297func (s *ManagedScalingPolicy) SetComputeLimits(v *ComputeLimits) *ManagedScalingPolicy {
12298	s.ComputeLimits = v
12299	return s
12300}
12301
12302// A CloudWatch dimension, which is specified using a Key (known as a Name in
12303// CloudWatch), Value pair. By default, Amazon EMR uses one dimension whose
12304// Key is JobFlowID and Value is a variable representing the cluster ID, which
12305// is ${emr.clusterId}. This enables the rule to bootstrap when the cluster
12306// ID becomes available.
12307type MetricDimension struct {
12308	_ struct{} `type:"structure"`
12309
12310	// The dimension name.
12311	Key *string `type:"string"`
12312
12313	// The dimension value.
12314	Value *string `type:"string"`
12315}
12316
12317// String returns the string representation
12318func (s MetricDimension) String() string {
12319	return awsutil.Prettify(s)
12320}
12321
12322// GoString returns the string representation
12323func (s MetricDimension) GoString() string {
12324	return s.String()
12325}
12326
12327// SetKey sets the Key field's value.
12328func (s *MetricDimension) SetKey(v string) *MetricDimension {
12329	s.Key = &v
12330	return s
12331}
12332
12333// SetValue sets the Value field's value.
12334func (s *MetricDimension) SetValue(v string) *MetricDimension {
12335	s.Value = &v
12336	return s
12337}
12338
12339type ModifyClusterInput struct {
12340	_ struct{} `type:"structure"`
12341
12342	// The unique identifier of the cluster.
12343	//
12344	// ClusterId is a required field
12345	ClusterId *string `type:"string" required:"true"`
12346
12347	// The number of steps that can be executed concurrently. You can specify a
12348	// minimum of 1 step and a maximum of 256 steps. We recommend that you do not
12349	// change this parameter while steps are running or the ActionOnFailure setting
12350	// may not behave as expected. For more information see Step$ActionOnFailure.
12351	StepConcurrencyLevel *int64 `type:"integer"`
12352}
12353
12354// String returns the string representation
12355func (s ModifyClusterInput) String() string {
12356	return awsutil.Prettify(s)
12357}
12358
12359// GoString returns the string representation
12360func (s ModifyClusterInput) GoString() string {
12361	return s.String()
12362}
12363
12364// Validate inspects the fields of the type to determine if they are valid.
12365func (s *ModifyClusterInput) Validate() error {
12366	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterInput"}
12367	if s.ClusterId == nil {
12368		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
12369	}
12370
12371	if invalidParams.Len() > 0 {
12372		return invalidParams
12373	}
12374	return nil
12375}
12376
12377// SetClusterId sets the ClusterId field's value.
12378func (s *ModifyClusterInput) SetClusterId(v string) *ModifyClusterInput {
12379	s.ClusterId = &v
12380	return s
12381}
12382
12383// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
12384func (s *ModifyClusterInput) SetStepConcurrencyLevel(v int64) *ModifyClusterInput {
12385	s.StepConcurrencyLevel = &v
12386	return s
12387}
12388
12389type ModifyClusterOutput struct {
12390	_ struct{} `type:"structure"`
12391
12392	// The number of steps that can be executed concurrently.
12393	StepConcurrencyLevel *int64 `type:"integer"`
12394}
12395
12396// String returns the string representation
12397func (s ModifyClusterOutput) String() string {
12398	return awsutil.Prettify(s)
12399}
12400
12401// GoString returns the string representation
12402func (s ModifyClusterOutput) GoString() string {
12403	return s.String()
12404}
12405
12406// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
12407func (s *ModifyClusterOutput) SetStepConcurrencyLevel(v int64) *ModifyClusterOutput {
12408	s.StepConcurrencyLevel = &v
12409	return s
12410}
12411
12412type ModifyInstanceFleetInput struct {
12413	_ struct{} `type:"structure"`
12414
12415	// The unique identifier of the cluster.
12416	//
12417	// ClusterId is a required field
12418	ClusterId *string `type:"string" required:"true"`
12419
12420	// The configuration parameters of the instance fleet.
12421	//
12422	// InstanceFleet is a required field
12423	InstanceFleet *InstanceFleetModifyConfig `type:"structure" required:"true"`
12424}
12425
12426// String returns the string representation
12427func (s ModifyInstanceFleetInput) String() string {
12428	return awsutil.Prettify(s)
12429}
12430
12431// GoString returns the string representation
12432func (s ModifyInstanceFleetInput) GoString() string {
12433	return s.String()
12434}
12435
12436// Validate inspects the fields of the type to determine if they are valid.
12437func (s *ModifyInstanceFleetInput) Validate() error {
12438	invalidParams := request.ErrInvalidParams{Context: "ModifyInstanceFleetInput"}
12439	if s.ClusterId == nil {
12440		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
12441	}
12442	if s.InstanceFleet == nil {
12443		invalidParams.Add(request.NewErrParamRequired("InstanceFleet"))
12444	}
12445	if s.InstanceFleet != nil {
12446		if err := s.InstanceFleet.Validate(); err != nil {
12447			invalidParams.AddNested("InstanceFleet", err.(request.ErrInvalidParams))
12448		}
12449	}
12450
12451	if invalidParams.Len() > 0 {
12452		return invalidParams
12453	}
12454	return nil
12455}
12456
12457// SetClusterId sets the ClusterId field's value.
12458func (s *ModifyInstanceFleetInput) SetClusterId(v string) *ModifyInstanceFleetInput {
12459	s.ClusterId = &v
12460	return s
12461}
12462
12463// SetInstanceFleet sets the InstanceFleet field's value.
12464func (s *ModifyInstanceFleetInput) SetInstanceFleet(v *InstanceFleetModifyConfig) *ModifyInstanceFleetInput {
12465	s.InstanceFleet = v
12466	return s
12467}
12468
12469type ModifyInstanceFleetOutput struct {
12470	_ struct{} `type:"structure"`
12471}
12472
12473// String returns the string representation
12474func (s ModifyInstanceFleetOutput) String() string {
12475	return awsutil.Prettify(s)
12476}
12477
12478// GoString returns the string representation
12479func (s ModifyInstanceFleetOutput) GoString() string {
12480	return s.String()
12481}
12482
12483// Change the size of some instance groups.
12484type ModifyInstanceGroupsInput struct {
12485	_ struct{} `type:"structure"`
12486
12487	// The ID of the cluster to which the instance group belongs.
12488	ClusterId *string `type:"string"`
12489
12490	// Instance groups to change.
12491	InstanceGroups []*InstanceGroupModifyConfig `type:"list"`
12492}
12493
12494// String returns the string representation
12495func (s ModifyInstanceGroupsInput) String() string {
12496	return awsutil.Prettify(s)
12497}
12498
12499// GoString returns the string representation
12500func (s ModifyInstanceGroupsInput) GoString() string {
12501	return s.String()
12502}
12503
12504// Validate inspects the fields of the type to determine if they are valid.
12505func (s *ModifyInstanceGroupsInput) Validate() error {
12506	invalidParams := request.ErrInvalidParams{Context: "ModifyInstanceGroupsInput"}
12507	if s.InstanceGroups != nil {
12508		for i, v := range s.InstanceGroups {
12509			if v == nil {
12510				continue
12511			}
12512			if err := v.Validate(); err != nil {
12513				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
12514			}
12515		}
12516	}
12517
12518	if invalidParams.Len() > 0 {
12519		return invalidParams
12520	}
12521	return nil
12522}
12523
12524// SetClusterId sets the ClusterId field's value.
12525func (s *ModifyInstanceGroupsInput) SetClusterId(v string) *ModifyInstanceGroupsInput {
12526	s.ClusterId = &v
12527	return s
12528}
12529
12530// SetInstanceGroups sets the InstanceGroups field's value.
12531func (s *ModifyInstanceGroupsInput) SetInstanceGroups(v []*InstanceGroupModifyConfig) *ModifyInstanceGroupsInput {
12532	s.InstanceGroups = v
12533	return s
12534}
12535
12536type ModifyInstanceGroupsOutput struct {
12537	_ struct{} `type:"structure"`
12538}
12539
12540// String returns the string representation
12541func (s ModifyInstanceGroupsOutput) String() string {
12542	return awsutil.Prettify(s)
12543}
12544
12545// GoString returns the string representation
12546func (s ModifyInstanceGroupsOutput) GoString() string {
12547	return s.String()
12548}
12549
12550// A notebook execution. An execution is a specific instance that an EMR Notebook
12551// is run using the StartNotebookExecution action.
12552type NotebookExecution struct {
12553	_ struct{} `type:"structure"`
12554
12555	// The Amazon Resource Name (ARN) of the notebook execution.
12556	Arn *string `type:"string"`
12557
12558	// The unique identifier of the EMR Notebook that is used for the notebook execution.
12559	EditorId *string `type:"string"`
12560
12561	// The timestamp when notebook execution ended.
12562	EndTime *time.Time `type:"timestamp"`
12563
12564	// The execution engine, such as an EMR cluster, used to run the EMR notebook
12565	// and perform the notebook execution.
12566	ExecutionEngine *ExecutionEngineConfig `type:"structure"`
12567
12568	// The reason for the latest status change of the notebook execution.
12569	LastStateChangeReason *string `type:"string"`
12570
12571	// The unique identifier of a notebook execution.
12572	NotebookExecutionId *string `type:"string"`
12573
12574	// A name for the notebook execution.
12575	NotebookExecutionName *string `type:"string"`
12576
12577	// The unique identifier of the EC2 security group associated with the EMR Notebook
12578	// instance. For more information see Specifying EC2 Security Groups for EMR
12579	// Notebooks (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html)
12580	// in the EMR Management Guide.
12581	NotebookInstanceSecurityGroupId *string `type:"string"`
12582
12583	// Input parameters in JSON format passed to the EMR Notebook at runtime for
12584	// execution.
12585	NotebookParams *string `type:"string"`
12586
12587	// The location of the notebook execution's output file in Amazon S3.
12588	OutputNotebookURI *string `type:"string"`
12589
12590	// The timestamp when notebook execution started.
12591	StartTime *time.Time `type:"timestamp"`
12592
12593	// The status of the notebook execution.
12594	//
12595	//    * START_PENDING indicates that the cluster has received the execution
12596	//    request but execution has not begun.
12597	//
12598	//    * STARTING indicates that the execution is starting on the cluster.
12599	//
12600	//    * RUNNING indicates that the execution is being processed by the cluster.
12601	//
12602	//    * FINISHING indicates that execution processing is in the final stages.
12603	//
12604	//    * FINISHED indicates that the execution has completed without error.
12605	//
12606	//    * FAILING indicates that the execution is failing and will not finish
12607	//    successfully.
12608	//
12609	//    * FAILED indicates that the execution failed.
12610	//
12611	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
12612	//    request and the stop is pending.
12613	//
12614	//    * STOPPING indicates that the cluster is in the process of stopping the
12615	//    execution as a result of a StopNotebookExecution request.
12616	//
12617	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
12618	//    request.
12619	Status *string `type:"string" enum:"NotebookExecutionStatus"`
12620
12621	// A list of tags associated with a notebook execution. Tags are user-defined
12622	// key-value pairs that consist of a required key string with a maximum of 128
12623	// characters and an optional value string with a maximum of 256 characters.
12624	Tags []*Tag `type:"list"`
12625}
12626
12627// String returns the string representation
12628func (s NotebookExecution) String() string {
12629	return awsutil.Prettify(s)
12630}
12631
12632// GoString returns the string representation
12633func (s NotebookExecution) GoString() string {
12634	return s.String()
12635}
12636
12637// SetArn sets the Arn field's value.
12638func (s *NotebookExecution) SetArn(v string) *NotebookExecution {
12639	s.Arn = &v
12640	return s
12641}
12642
12643// SetEditorId sets the EditorId field's value.
12644func (s *NotebookExecution) SetEditorId(v string) *NotebookExecution {
12645	s.EditorId = &v
12646	return s
12647}
12648
12649// SetEndTime sets the EndTime field's value.
12650func (s *NotebookExecution) SetEndTime(v time.Time) *NotebookExecution {
12651	s.EndTime = &v
12652	return s
12653}
12654
12655// SetExecutionEngine sets the ExecutionEngine field's value.
12656func (s *NotebookExecution) SetExecutionEngine(v *ExecutionEngineConfig) *NotebookExecution {
12657	s.ExecutionEngine = v
12658	return s
12659}
12660
12661// SetLastStateChangeReason sets the LastStateChangeReason field's value.
12662func (s *NotebookExecution) SetLastStateChangeReason(v string) *NotebookExecution {
12663	s.LastStateChangeReason = &v
12664	return s
12665}
12666
12667// SetNotebookExecutionId sets the NotebookExecutionId field's value.
12668func (s *NotebookExecution) SetNotebookExecutionId(v string) *NotebookExecution {
12669	s.NotebookExecutionId = &v
12670	return s
12671}
12672
12673// SetNotebookExecutionName sets the NotebookExecutionName field's value.
12674func (s *NotebookExecution) SetNotebookExecutionName(v string) *NotebookExecution {
12675	s.NotebookExecutionName = &v
12676	return s
12677}
12678
12679// SetNotebookInstanceSecurityGroupId sets the NotebookInstanceSecurityGroupId field's value.
12680func (s *NotebookExecution) SetNotebookInstanceSecurityGroupId(v string) *NotebookExecution {
12681	s.NotebookInstanceSecurityGroupId = &v
12682	return s
12683}
12684
12685// SetNotebookParams sets the NotebookParams field's value.
12686func (s *NotebookExecution) SetNotebookParams(v string) *NotebookExecution {
12687	s.NotebookParams = &v
12688	return s
12689}
12690
12691// SetOutputNotebookURI sets the OutputNotebookURI field's value.
12692func (s *NotebookExecution) SetOutputNotebookURI(v string) *NotebookExecution {
12693	s.OutputNotebookURI = &v
12694	return s
12695}
12696
12697// SetStartTime sets the StartTime field's value.
12698func (s *NotebookExecution) SetStartTime(v time.Time) *NotebookExecution {
12699	s.StartTime = &v
12700	return s
12701}
12702
12703// SetStatus sets the Status field's value.
12704func (s *NotebookExecution) SetStatus(v string) *NotebookExecution {
12705	s.Status = &v
12706	return s
12707}
12708
12709// SetTags sets the Tags field's value.
12710func (s *NotebookExecution) SetTags(v []*Tag) *NotebookExecution {
12711	s.Tags = v
12712	return s
12713}
12714
12715// Details for a notebook execution. The details include information such as
12716// the unique ID and status of the notebook execution.
12717type NotebookExecutionSummary struct {
12718	_ struct{} `type:"structure"`
12719
12720	// The unique identifier of the editor associated with the notebook execution.
12721	EditorId *string `type:"string"`
12722
12723	// The timestamp when notebook execution started.
12724	EndTime *time.Time `type:"timestamp"`
12725
12726	// The unique identifier of the notebook execution.
12727	NotebookExecutionId *string `type:"string"`
12728
12729	// The name of the notebook execution.
12730	NotebookExecutionName *string `type:"string"`
12731
12732	// The timestamp when notebook execution started.
12733	StartTime *time.Time `type:"timestamp"`
12734
12735	// The status of the notebook execution.
12736	//
12737	//    * START_PENDING indicates that the cluster has received the execution
12738	//    request but execution has not begun.
12739	//
12740	//    * STARTING indicates that the execution is starting on the cluster.
12741	//
12742	//    * RUNNING indicates that the execution is being processed by the cluster.
12743	//
12744	//    * FINISHING indicates that execution processing is in the final stages.
12745	//
12746	//    * FINISHED indicates that the execution has completed without error.
12747	//
12748	//    * FAILING indicates that the execution is failing and will not finish
12749	//    successfully.
12750	//
12751	//    * FAILED indicates that the execution failed.
12752	//
12753	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
12754	//    request and the stop is pending.
12755	//
12756	//    * STOPPING indicates that the cluster is in the process of stopping the
12757	//    execution as a result of a StopNotebookExecution request.
12758	//
12759	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
12760	//    request.
12761	Status *string `type:"string" enum:"NotebookExecutionStatus"`
12762}
12763
12764// String returns the string representation
12765func (s NotebookExecutionSummary) String() string {
12766	return awsutil.Prettify(s)
12767}
12768
12769// GoString returns the string representation
12770func (s NotebookExecutionSummary) GoString() string {
12771	return s.String()
12772}
12773
12774// SetEditorId sets the EditorId field's value.
12775func (s *NotebookExecutionSummary) SetEditorId(v string) *NotebookExecutionSummary {
12776	s.EditorId = &v
12777	return s
12778}
12779
12780// SetEndTime sets the EndTime field's value.
12781func (s *NotebookExecutionSummary) SetEndTime(v time.Time) *NotebookExecutionSummary {
12782	s.EndTime = &v
12783	return s
12784}
12785
12786// SetNotebookExecutionId sets the NotebookExecutionId field's value.
12787func (s *NotebookExecutionSummary) SetNotebookExecutionId(v string) *NotebookExecutionSummary {
12788	s.NotebookExecutionId = &v
12789	return s
12790}
12791
12792// SetNotebookExecutionName sets the NotebookExecutionName field's value.
12793func (s *NotebookExecutionSummary) SetNotebookExecutionName(v string) *NotebookExecutionSummary {
12794	s.NotebookExecutionName = &v
12795	return s
12796}
12797
12798// SetStartTime sets the StartTime field's value.
12799func (s *NotebookExecutionSummary) SetStartTime(v time.Time) *NotebookExecutionSummary {
12800	s.StartTime = &v
12801	return s
12802}
12803
12804// SetStatus sets the Status field's value.
12805func (s *NotebookExecutionSummary) SetStatus(v string) *NotebookExecutionSummary {
12806	s.Status = &v
12807	return s
12808}
12809
12810// Describes the strategy for using unused Capacity Reservations for fulfilling
12811// On-Demand capacity.
12812type OnDemandCapacityReservationOptions struct {
12813	_ struct{} `type:"structure"`
12814
12815	// Indicates the instance's Capacity Reservation preferences. Possible preferences
12816	// include:
12817	//
12818	//    * open - The instance can run in any open Capacity Reservation that has
12819	//    matching attributes (instance type, platform, Availability Zone).
12820	//
12821	//    * none - The instance avoids running in a Capacity Reservation even if
12822	//    one is available. The instance runs as an On-Demand Instance.
12823	CapacityReservationPreference *string `type:"string" enum:"OnDemandCapacityReservationPreference"`
12824
12825	// The ARN of the Capacity Reservation resource group in which to run the instance.
12826	CapacityReservationResourceGroupArn *string `type:"string"`
12827
12828	// Indicates whether to use unused Capacity Reservations for fulfilling On-Demand
12829	// capacity.
12830	//
12831	// If you specify use-capacity-reservations-first, the fleet uses unused Capacity
12832	// Reservations to fulfill On-Demand capacity up to the target On-Demand capacity.
12833	// If multiple instance pools have unused Capacity Reservations, the On-Demand
12834	// allocation strategy (lowest-price) is applied. If the number of unused Capacity
12835	// Reservations is less than the On-Demand target capacity, the remaining On-Demand
12836	// target capacity is launched according to the On-Demand allocation strategy
12837	// (lowest-price).
12838	//
12839	// If you do not specify a value, the fleet fulfills the On-Demand capacity
12840	// according to the chosen On-Demand allocation strategy.
12841	UsageStrategy *string `type:"string" enum:"OnDemandCapacityReservationUsageStrategy"`
12842}
12843
12844// String returns the string representation
12845func (s OnDemandCapacityReservationOptions) String() string {
12846	return awsutil.Prettify(s)
12847}
12848
12849// GoString returns the string representation
12850func (s OnDemandCapacityReservationOptions) GoString() string {
12851	return s.String()
12852}
12853
12854// SetCapacityReservationPreference sets the CapacityReservationPreference field's value.
12855func (s *OnDemandCapacityReservationOptions) SetCapacityReservationPreference(v string) *OnDemandCapacityReservationOptions {
12856	s.CapacityReservationPreference = &v
12857	return s
12858}
12859
12860// SetCapacityReservationResourceGroupArn sets the CapacityReservationResourceGroupArn field's value.
12861func (s *OnDemandCapacityReservationOptions) SetCapacityReservationResourceGroupArn(v string) *OnDemandCapacityReservationOptions {
12862	s.CapacityReservationResourceGroupArn = &v
12863	return s
12864}
12865
12866// SetUsageStrategy sets the UsageStrategy field's value.
12867func (s *OnDemandCapacityReservationOptions) SetUsageStrategy(v string) *OnDemandCapacityReservationOptions {
12868	s.UsageStrategy = &v
12869	return s
12870}
12871
12872// The launch specification for On-Demand Instances in the instance fleet, which
12873// determines the allocation strategy.
12874//
12875// The instance fleet configuration is available only in Amazon EMR versions
12876// 4.8.0 and later, excluding 5.0.x versions. On-Demand Instances allocation
12877// strategy is available in Amazon EMR version 5.12.1 and later.
12878type OnDemandProvisioningSpecification struct {
12879	_ struct{} `type:"structure"`
12880
12881	// Specifies the strategy to use in launching On-Demand instance fleets. Currently,
12882	// the only option is lowest-price (the default), which launches the lowest
12883	// price first.
12884	//
12885	// AllocationStrategy is a required field
12886	AllocationStrategy *string `type:"string" required:"true" enum:"OnDemandProvisioningAllocationStrategy"`
12887
12888	// The launch specification for On-Demand instances in the instance fleet, which
12889	// determines the allocation strategy.
12890	CapacityReservationOptions *OnDemandCapacityReservationOptions `type:"structure"`
12891}
12892
12893// String returns the string representation
12894func (s OnDemandProvisioningSpecification) String() string {
12895	return awsutil.Prettify(s)
12896}
12897
12898// GoString returns the string representation
12899func (s OnDemandProvisioningSpecification) GoString() string {
12900	return s.String()
12901}
12902
12903// Validate inspects the fields of the type to determine if they are valid.
12904func (s *OnDemandProvisioningSpecification) Validate() error {
12905	invalidParams := request.ErrInvalidParams{Context: "OnDemandProvisioningSpecification"}
12906	if s.AllocationStrategy == nil {
12907		invalidParams.Add(request.NewErrParamRequired("AllocationStrategy"))
12908	}
12909
12910	if invalidParams.Len() > 0 {
12911		return invalidParams
12912	}
12913	return nil
12914}
12915
12916// SetAllocationStrategy sets the AllocationStrategy field's value.
12917func (s *OnDemandProvisioningSpecification) SetAllocationStrategy(v string) *OnDemandProvisioningSpecification {
12918	s.AllocationStrategy = &v
12919	return s
12920}
12921
12922// SetCapacityReservationOptions sets the CapacityReservationOptions field's value.
12923func (s *OnDemandProvisioningSpecification) SetCapacityReservationOptions(v *OnDemandCapacityReservationOptions) *OnDemandProvisioningSpecification {
12924	s.CapacityReservationOptions = v
12925	return s
12926}
12927
12928// Placement group configuration for an Amazon EMR cluster. The configuration
12929// specifies the placement strategy that can be applied to instance roles during
12930// cluster creation.
12931//
12932// To use this configuration, consider attaching managed policy AmazonElasticMapReducePlacementGroupPolicy
12933// to the EMR role.
12934type PlacementGroupConfig struct {
12935	_ struct{} `type:"structure"`
12936
12937	// Role of the instance in the cluster.
12938	//
12939	// Starting with Amazon EMR version 5.23.0, the only supported instance role
12940	// is MASTER.
12941	//
12942	// InstanceRole is a required field
12943	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
12944
12945	// EC2 Placement Group strategy associated with instance role.
12946	//
12947	// Starting with Amazon EMR version 5.23.0, the only supported placement strategy
12948	// is SPREAD for the MASTER instance role.
12949	PlacementStrategy *string `type:"string" enum:"PlacementGroupStrategy"`
12950}
12951
12952// String returns the string representation
12953func (s PlacementGroupConfig) String() string {
12954	return awsutil.Prettify(s)
12955}
12956
12957// GoString returns the string representation
12958func (s PlacementGroupConfig) GoString() string {
12959	return s.String()
12960}
12961
12962// Validate inspects the fields of the type to determine if they are valid.
12963func (s *PlacementGroupConfig) Validate() error {
12964	invalidParams := request.ErrInvalidParams{Context: "PlacementGroupConfig"}
12965	if s.InstanceRole == nil {
12966		invalidParams.Add(request.NewErrParamRequired("InstanceRole"))
12967	}
12968
12969	if invalidParams.Len() > 0 {
12970		return invalidParams
12971	}
12972	return nil
12973}
12974
12975// SetInstanceRole sets the InstanceRole field's value.
12976func (s *PlacementGroupConfig) SetInstanceRole(v string) *PlacementGroupConfig {
12977	s.InstanceRole = &v
12978	return s
12979}
12980
12981// SetPlacementStrategy sets the PlacementStrategy field's value.
12982func (s *PlacementGroupConfig) SetPlacementStrategy(v string) *PlacementGroupConfig {
12983	s.PlacementStrategy = &v
12984	return s
12985}
12986
12987// The Amazon EC2 Availability Zone configuration of the cluster (job flow).
12988type PlacementType struct {
12989	_ struct{} `type:"structure"`
12990
12991	// The Amazon EC2 Availability Zone for the cluster. AvailabilityZone is used
12992	// for uniform instance groups, while AvailabilityZones (plural) is used for
12993	// instance fleets.
12994	AvailabilityZone *string `type:"string"`
12995
12996	// When multiple Availability Zones are specified, Amazon EMR evaluates them
12997	// and launches instances in the optimal Availability Zone. AvailabilityZones
12998	// is used for instance fleets, while AvailabilityZone (singular) is used for
12999	// uniform instance groups.
13000	//
13001	// The instance fleet configuration is available only in Amazon EMR versions
13002	// 4.8.0 and later, excluding 5.0.x versions.
13003	AvailabilityZones []*string `type:"list"`
13004}
13005
13006// String returns the string representation
13007func (s PlacementType) String() string {
13008	return awsutil.Prettify(s)
13009}
13010
13011// GoString returns the string representation
13012func (s PlacementType) GoString() string {
13013	return s.String()
13014}
13015
13016// SetAvailabilityZone sets the AvailabilityZone field's value.
13017func (s *PlacementType) SetAvailabilityZone(v string) *PlacementType {
13018	s.AvailabilityZone = &v
13019	return s
13020}
13021
13022// SetAvailabilityZones sets the AvailabilityZones field's value.
13023func (s *PlacementType) SetAvailabilityZones(v []*string) *PlacementType {
13024	s.AvailabilityZones = v
13025	return s
13026}
13027
13028// A list of port ranges that are permitted to allow inbound traffic from all
13029// public IP addresses. To specify a single port, use the same value for MinRange
13030// and MaxRange.
13031type PortRange struct {
13032	_ struct{} `type:"structure"`
13033
13034	// The smallest port number in a specified range of port numbers.
13035	MaxRange *int64 `type:"integer"`
13036
13037	// The smallest port number in a specified range of port numbers.
13038	//
13039	// MinRange is a required field
13040	MinRange *int64 `type:"integer" required:"true"`
13041}
13042
13043// String returns the string representation
13044func (s PortRange) String() string {
13045	return awsutil.Prettify(s)
13046}
13047
13048// GoString returns the string representation
13049func (s PortRange) GoString() string {
13050	return s.String()
13051}
13052
13053// Validate inspects the fields of the type to determine if they are valid.
13054func (s *PortRange) Validate() error {
13055	invalidParams := request.ErrInvalidParams{Context: "PortRange"}
13056	if s.MaxRange != nil && *s.MaxRange < -1 {
13057		invalidParams.Add(request.NewErrParamMinValue("MaxRange", -1))
13058	}
13059	if s.MinRange == nil {
13060		invalidParams.Add(request.NewErrParamRequired("MinRange"))
13061	}
13062	if s.MinRange != nil && *s.MinRange < -1 {
13063		invalidParams.Add(request.NewErrParamMinValue("MinRange", -1))
13064	}
13065
13066	if invalidParams.Len() > 0 {
13067		return invalidParams
13068	}
13069	return nil
13070}
13071
13072// SetMaxRange sets the MaxRange field's value.
13073func (s *PortRange) SetMaxRange(v int64) *PortRange {
13074	s.MaxRange = &v
13075	return s
13076}
13077
13078// SetMinRange sets the MinRange field's value.
13079func (s *PortRange) SetMinRange(v int64) *PortRange {
13080	s.MinRange = &v
13081	return s
13082}
13083
13084type PutAutoScalingPolicyInput struct {
13085	_ struct{} `type:"structure"`
13086
13087	// Specifies the definition of the automatic scaling policy.
13088	//
13089	// AutoScalingPolicy is a required field
13090	AutoScalingPolicy *AutoScalingPolicy `type:"structure" required:"true"`
13091
13092	// Specifies the ID of a cluster. The instance group to which the automatic
13093	// scaling policy is applied is within this cluster.
13094	//
13095	// ClusterId is a required field
13096	ClusterId *string `type:"string" required:"true"`
13097
13098	// Specifies the ID of the instance group to which the automatic scaling policy
13099	// is applied.
13100	//
13101	// InstanceGroupId is a required field
13102	InstanceGroupId *string `type:"string" required:"true"`
13103}
13104
13105// String returns the string representation
13106func (s PutAutoScalingPolicyInput) String() string {
13107	return awsutil.Prettify(s)
13108}
13109
13110// GoString returns the string representation
13111func (s PutAutoScalingPolicyInput) GoString() string {
13112	return s.String()
13113}
13114
13115// Validate inspects the fields of the type to determine if they are valid.
13116func (s *PutAutoScalingPolicyInput) Validate() error {
13117	invalidParams := request.ErrInvalidParams{Context: "PutAutoScalingPolicyInput"}
13118	if s.AutoScalingPolicy == nil {
13119		invalidParams.Add(request.NewErrParamRequired("AutoScalingPolicy"))
13120	}
13121	if s.ClusterId == nil {
13122		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
13123	}
13124	if s.InstanceGroupId == nil {
13125		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
13126	}
13127	if s.AutoScalingPolicy != nil {
13128		if err := s.AutoScalingPolicy.Validate(); err != nil {
13129			invalidParams.AddNested("AutoScalingPolicy", err.(request.ErrInvalidParams))
13130		}
13131	}
13132
13133	if invalidParams.Len() > 0 {
13134		return invalidParams
13135	}
13136	return nil
13137}
13138
13139// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
13140func (s *PutAutoScalingPolicyInput) SetAutoScalingPolicy(v *AutoScalingPolicy) *PutAutoScalingPolicyInput {
13141	s.AutoScalingPolicy = v
13142	return s
13143}
13144
13145// SetClusterId sets the ClusterId field's value.
13146func (s *PutAutoScalingPolicyInput) SetClusterId(v string) *PutAutoScalingPolicyInput {
13147	s.ClusterId = &v
13148	return s
13149}
13150
13151// SetInstanceGroupId sets the InstanceGroupId field's value.
13152func (s *PutAutoScalingPolicyInput) SetInstanceGroupId(v string) *PutAutoScalingPolicyInput {
13153	s.InstanceGroupId = &v
13154	return s
13155}
13156
13157type PutAutoScalingPolicyOutput struct {
13158	_ struct{} `type:"structure"`
13159
13160	// The automatic scaling policy definition.
13161	AutoScalingPolicy *AutoScalingPolicyDescription `type:"structure"`
13162
13163	// The Amazon Resource Name (ARN) of the cluster.
13164	ClusterArn *string `min:"20" type:"string"`
13165
13166	// Specifies the ID of a cluster. The instance group to which the automatic
13167	// scaling policy is applied is within this cluster.
13168	ClusterId *string `type:"string"`
13169
13170	// Specifies the ID of the instance group to which the scaling policy is applied.
13171	InstanceGroupId *string `type:"string"`
13172}
13173
13174// String returns the string representation
13175func (s PutAutoScalingPolicyOutput) String() string {
13176	return awsutil.Prettify(s)
13177}
13178
13179// GoString returns the string representation
13180func (s PutAutoScalingPolicyOutput) GoString() string {
13181	return s.String()
13182}
13183
13184// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
13185func (s *PutAutoScalingPolicyOutput) SetAutoScalingPolicy(v *AutoScalingPolicyDescription) *PutAutoScalingPolicyOutput {
13186	s.AutoScalingPolicy = v
13187	return s
13188}
13189
13190// SetClusterArn sets the ClusterArn field's value.
13191func (s *PutAutoScalingPolicyOutput) SetClusterArn(v string) *PutAutoScalingPolicyOutput {
13192	s.ClusterArn = &v
13193	return s
13194}
13195
13196// SetClusterId sets the ClusterId field's value.
13197func (s *PutAutoScalingPolicyOutput) SetClusterId(v string) *PutAutoScalingPolicyOutput {
13198	s.ClusterId = &v
13199	return s
13200}
13201
13202// SetInstanceGroupId sets the InstanceGroupId field's value.
13203func (s *PutAutoScalingPolicyOutput) SetInstanceGroupId(v string) *PutAutoScalingPolicyOutput {
13204	s.InstanceGroupId = &v
13205	return s
13206}
13207
13208type PutBlockPublicAccessConfigurationInput struct {
13209	_ struct{} `type:"structure"`
13210
13211	// A configuration for Amazon EMR block public access. The configuration applies
13212	// to all clusters created in your account for the current Region. The configuration
13213	// specifies whether block public access is enabled. If block public access
13214	// is enabled, security groups associated with the cluster cannot have rules
13215	// that allow inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port
13216	// is specified as an exception using PermittedPublicSecurityGroupRuleRanges
13217	// in the BlockPublicAccessConfiguration. By default, Port 22 (SSH) is an exception,
13218	// and public access is allowed on this port. You can change this by updating
13219	// BlockPublicSecurityGroupRules to remove the exception.
13220	//
13221	// For accounts that created clusters in a Region before November 25, 2019,
13222	// block public access is disabled by default in that Region. To use this feature,
13223	// you must manually enable and configure it. For accounts that did not create
13224	// an EMR cluster in a Region before this date, block public access is enabled
13225	// by default in that Region.
13226	//
13227	// BlockPublicAccessConfiguration is a required field
13228	BlockPublicAccessConfiguration *BlockPublicAccessConfiguration `type:"structure" required:"true"`
13229}
13230
13231// String returns the string representation
13232func (s PutBlockPublicAccessConfigurationInput) String() string {
13233	return awsutil.Prettify(s)
13234}
13235
13236// GoString returns the string representation
13237func (s PutBlockPublicAccessConfigurationInput) GoString() string {
13238	return s.String()
13239}
13240
13241// Validate inspects the fields of the type to determine if they are valid.
13242func (s *PutBlockPublicAccessConfigurationInput) Validate() error {
13243	invalidParams := request.ErrInvalidParams{Context: "PutBlockPublicAccessConfigurationInput"}
13244	if s.BlockPublicAccessConfiguration == nil {
13245		invalidParams.Add(request.NewErrParamRequired("BlockPublicAccessConfiguration"))
13246	}
13247	if s.BlockPublicAccessConfiguration != nil {
13248		if err := s.BlockPublicAccessConfiguration.Validate(); err != nil {
13249			invalidParams.AddNested("BlockPublicAccessConfiguration", err.(request.ErrInvalidParams))
13250		}
13251	}
13252
13253	if invalidParams.Len() > 0 {
13254		return invalidParams
13255	}
13256	return nil
13257}
13258
13259// SetBlockPublicAccessConfiguration sets the BlockPublicAccessConfiguration field's value.
13260func (s *PutBlockPublicAccessConfigurationInput) SetBlockPublicAccessConfiguration(v *BlockPublicAccessConfiguration) *PutBlockPublicAccessConfigurationInput {
13261	s.BlockPublicAccessConfiguration = v
13262	return s
13263}
13264
13265type PutBlockPublicAccessConfigurationOutput struct {
13266	_ struct{} `type:"structure"`
13267}
13268
13269// String returns the string representation
13270func (s PutBlockPublicAccessConfigurationOutput) String() string {
13271	return awsutil.Prettify(s)
13272}
13273
13274// GoString returns the string representation
13275func (s PutBlockPublicAccessConfigurationOutput) GoString() string {
13276	return s.String()
13277}
13278
13279type PutManagedScalingPolicyInput struct {
13280	_ struct{} `type:"structure"`
13281
13282	// Specifies the ID of an EMR cluster where the managed scaling policy is attached.
13283	//
13284	// ClusterId is a required field
13285	ClusterId *string `type:"string" required:"true"`
13286
13287	// Specifies the constraints for the managed scaling policy.
13288	//
13289	// ManagedScalingPolicy is a required field
13290	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure" required:"true"`
13291}
13292
13293// String returns the string representation
13294func (s PutManagedScalingPolicyInput) String() string {
13295	return awsutil.Prettify(s)
13296}
13297
13298// GoString returns the string representation
13299func (s PutManagedScalingPolicyInput) GoString() string {
13300	return s.String()
13301}
13302
13303// Validate inspects the fields of the type to determine if they are valid.
13304func (s *PutManagedScalingPolicyInput) Validate() error {
13305	invalidParams := request.ErrInvalidParams{Context: "PutManagedScalingPolicyInput"}
13306	if s.ClusterId == nil {
13307		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
13308	}
13309	if s.ManagedScalingPolicy == nil {
13310		invalidParams.Add(request.NewErrParamRequired("ManagedScalingPolicy"))
13311	}
13312	if s.ManagedScalingPolicy != nil {
13313		if err := s.ManagedScalingPolicy.Validate(); err != nil {
13314			invalidParams.AddNested("ManagedScalingPolicy", err.(request.ErrInvalidParams))
13315		}
13316	}
13317
13318	if invalidParams.Len() > 0 {
13319		return invalidParams
13320	}
13321	return nil
13322}
13323
13324// SetClusterId sets the ClusterId field's value.
13325func (s *PutManagedScalingPolicyInput) SetClusterId(v string) *PutManagedScalingPolicyInput {
13326	s.ClusterId = &v
13327	return s
13328}
13329
13330// SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
13331func (s *PutManagedScalingPolicyInput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *PutManagedScalingPolicyInput {
13332	s.ManagedScalingPolicy = v
13333	return s
13334}
13335
13336type PutManagedScalingPolicyOutput struct {
13337	_ struct{} `type:"structure"`
13338}
13339
13340// String returns the string representation
13341func (s PutManagedScalingPolicyOutput) String() string {
13342	return awsutil.Prettify(s)
13343}
13344
13345// GoString returns the string representation
13346func (s PutManagedScalingPolicyOutput) GoString() string {
13347	return s.String()
13348}
13349
13350// The release label filters by application or version prefix.
13351type ReleaseLabelFilter struct {
13352	_ struct{} `type:"structure"`
13353
13354	// Optional release label application filter. For example, spark@2.1.0.
13355	Application *string `type:"string"`
13356
13357	// Optional release label version prefix filter. For example, emr-5.
13358	Prefix *string `type:"string"`
13359}
13360
13361// String returns the string representation
13362func (s ReleaseLabelFilter) String() string {
13363	return awsutil.Prettify(s)
13364}
13365
13366// GoString returns the string representation
13367func (s ReleaseLabelFilter) GoString() string {
13368	return s.String()
13369}
13370
13371// SetApplication sets the Application field's value.
13372func (s *ReleaseLabelFilter) SetApplication(v string) *ReleaseLabelFilter {
13373	s.Application = &v
13374	return s
13375}
13376
13377// SetPrefix sets the Prefix field's value.
13378func (s *ReleaseLabelFilter) SetPrefix(v string) *ReleaseLabelFilter {
13379	s.Prefix = &v
13380	return s
13381}
13382
13383type RemoveAutoScalingPolicyInput struct {
13384	_ struct{} `type:"structure"`
13385
13386	// Specifies the ID of a cluster. The instance group to which the automatic
13387	// scaling policy is applied is within this cluster.
13388	//
13389	// ClusterId is a required field
13390	ClusterId *string `type:"string" required:"true"`
13391
13392	// Specifies the ID of the instance group to which the scaling policy is applied.
13393	//
13394	// InstanceGroupId is a required field
13395	InstanceGroupId *string `type:"string" required:"true"`
13396}
13397
13398// String returns the string representation
13399func (s RemoveAutoScalingPolicyInput) String() string {
13400	return awsutil.Prettify(s)
13401}
13402
13403// GoString returns the string representation
13404func (s RemoveAutoScalingPolicyInput) GoString() string {
13405	return s.String()
13406}
13407
13408// Validate inspects the fields of the type to determine if they are valid.
13409func (s *RemoveAutoScalingPolicyInput) Validate() error {
13410	invalidParams := request.ErrInvalidParams{Context: "RemoveAutoScalingPolicyInput"}
13411	if s.ClusterId == nil {
13412		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
13413	}
13414	if s.InstanceGroupId == nil {
13415		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
13416	}
13417
13418	if invalidParams.Len() > 0 {
13419		return invalidParams
13420	}
13421	return nil
13422}
13423
13424// SetClusterId sets the ClusterId field's value.
13425func (s *RemoveAutoScalingPolicyInput) SetClusterId(v string) *RemoveAutoScalingPolicyInput {
13426	s.ClusterId = &v
13427	return s
13428}
13429
13430// SetInstanceGroupId sets the InstanceGroupId field's value.
13431func (s *RemoveAutoScalingPolicyInput) SetInstanceGroupId(v string) *RemoveAutoScalingPolicyInput {
13432	s.InstanceGroupId = &v
13433	return s
13434}
13435
13436type RemoveAutoScalingPolicyOutput struct {
13437	_ struct{} `type:"structure"`
13438}
13439
13440// String returns the string representation
13441func (s RemoveAutoScalingPolicyOutput) String() string {
13442	return awsutil.Prettify(s)
13443}
13444
13445// GoString returns the string representation
13446func (s RemoveAutoScalingPolicyOutput) GoString() string {
13447	return s.String()
13448}
13449
13450type RemoveManagedScalingPolicyInput struct {
13451	_ struct{} `type:"structure"`
13452
13453	// Specifies the ID of the cluster from which the managed scaling policy will
13454	// be removed.
13455	//
13456	// ClusterId is a required field
13457	ClusterId *string `type:"string" required:"true"`
13458}
13459
13460// String returns the string representation
13461func (s RemoveManagedScalingPolicyInput) String() string {
13462	return awsutil.Prettify(s)
13463}
13464
13465// GoString returns the string representation
13466func (s RemoveManagedScalingPolicyInput) GoString() string {
13467	return s.String()
13468}
13469
13470// Validate inspects the fields of the type to determine if they are valid.
13471func (s *RemoveManagedScalingPolicyInput) Validate() error {
13472	invalidParams := request.ErrInvalidParams{Context: "RemoveManagedScalingPolicyInput"}
13473	if s.ClusterId == nil {
13474		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
13475	}
13476
13477	if invalidParams.Len() > 0 {
13478		return invalidParams
13479	}
13480	return nil
13481}
13482
13483// SetClusterId sets the ClusterId field's value.
13484func (s *RemoveManagedScalingPolicyInput) SetClusterId(v string) *RemoveManagedScalingPolicyInput {
13485	s.ClusterId = &v
13486	return s
13487}
13488
13489type RemoveManagedScalingPolicyOutput struct {
13490	_ struct{} `type:"structure"`
13491}
13492
13493// String returns the string representation
13494func (s RemoveManagedScalingPolicyOutput) String() string {
13495	return awsutil.Prettify(s)
13496}
13497
13498// GoString returns the string representation
13499func (s RemoveManagedScalingPolicyOutput) GoString() string {
13500	return s.String()
13501}
13502
13503// This input identifies a cluster and a list of tags to remove.
13504type RemoveTagsInput struct {
13505	_ struct{} `type:"structure"`
13506
13507	// The Amazon EMR resource identifier from which tags will be removed. This
13508	// value must be a cluster identifier.
13509	//
13510	// ResourceId is a required field
13511	ResourceId *string `type:"string" required:"true"`
13512
13513	// A list of tag keys to remove from a resource.
13514	//
13515	// TagKeys is a required field
13516	TagKeys []*string `type:"list" required:"true"`
13517}
13518
13519// String returns the string representation
13520func (s RemoveTagsInput) String() string {
13521	return awsutil.Prettify(s)
13522}
13523
13524// GoString returns the string representation
13525func (s RemoveTagsInput) GoString() string {
13526	return s.String()
13527}
13528
13529// Validate inspects the fields of the type to determine if they are valid.
13530func (s *RemoveTagsInput) Validate() error {
13531	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsInput"}
13532	if s.ResourceId == nil {
13533		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
13534	}
13535	if s.TagKeys == nil {
13536		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
13537	}
13538
13539	if invalidParams.Len() > 0 {
13540		return invalidParams
13541	}
13542	return nil
13543}
13544
13545// SetResourceId sets the ResourceId field's value.
13546func (s *RemoveTagsInput) SetResourceId(v string) *RemoveTagsInput {
13547	s.ResourceId = &v
13548	return s
13549}
13550
13551// SetTagKeys sets the TagKeys field's value.
13552func (s *RemoveTagsInput) SetTagKeys(v []*string) *RemoveTagsInput {
13553	s.TagKeys = v
13554	return s
13555}
13556
13557// This output indicates the result of removing tags from a resource.
13558type RemoveTagsOutput struct {
13559	_ struct{} `type:"structure"`
13560}
13561
13562// String returns the string representation
13563func (s RemoveTagsOutput) String() string {
13564	return awsutil.Prettify(s)
13565}
13566
13567// GoString returns the string representation
13568func (s RemoveTagsOutput) GoString() string {
13569	return s.String()
13570}
13571
13572// Input to the RunJobFlow operation.
13573type RunJobFlowInput struct {
13574	_ struct{} `type:"structure"`
13575
13576	// A JSON string for selecting additional features.
13577	AdditionalInfo *string `type:"string"`
13578
13579	// Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
13580	// 4.0 and later, ReleaseLabel is used. To specify a custom AMI, use CustomAmiID.
13581	AmiVersion *string `type:"string"`
13582
13583	// Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of
13584	// applications for Amazon EMR to install and configure when launching the cluster.
13585	// For a list of applications available for each Amazon EMR release version,
13586	// see the Amazon EMR Release Guide (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/).
13587	Applications []*Application `type:"list"`
13588
13589	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
13590	// The IAM role provides permissions that the automatic scaling feature requires
13591	// to launch and terminate EC2 instances in an instance group.
13592	AutoScalingRole *string `type:"string"`
13593
13594	// A list of bootstrap actions to run before Hadoop starts on the cluster nodes.
13595	BootstrapActions []*BootstrapActionConfig `type:"list"`
13596
13597	// For Amazon EMR releases 4.0 and later. The list of configurations supplied
13598	// for the EMR cluster you are creating.
13599	Configurations []*Configuration `type:"list"`
13600
13601	// Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
13602	// Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when
13603	// it launches cluster EC2 instances. For more information about custom AMIs
13604	// in Amazon EMR, see Using a Custom AMI (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html)
13605	// in the Amazon EMR Management Guide. If omitted, the cluster uses the base
13606	// Linux AMI for the ReleaseLabel specified. For Amazon EMR versions 2.x and
13607	// 3.x, use AmiVersion instead.
13608	//
13609	// For information about creating a custom AMI, see Creating an Amazon EBS-Backed
13610	// Linux AMI (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html)
13611	// in the Amazon Elastic Compute Cloud User Guide for Linux Instances. For information
13612	// about finding an AMI ID, see Finding a Linux AMI (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html).
13613	CustomAmiId *string `type:"string"`
13614
13615	// The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that
13616	// is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
13617	EbsRootVolumeSize *int64 `type:"integer"`
13618
13619	// A specification of the number and type of Amazon EC2 instances.
13620	//
13621	// Instances is a required field
13622	Instances *JobFlowInstancesConfig `type:"structure" required:"true"`
13623
13624	// Also called instance profile and EC2 role. An IAM role for an EMR cluster.
13625	// The EC2 instances of the cluster assume this role. The default role is EMR_EC2_DefaultRole.
13626	// In order to use the default role, you must have already created it using
13627	// the CLI or console.
13628	JobFlowRole *string `type:"string"`
13629
13630	// Attributes for Kerberos configuration when Kerberos authentication is enabled
13631	// using a security configuration. For more information see Use Kerberos Authentication
13632	// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
13633	// in the Amazon EMR Management Guide.
13634	KerberosAttributes *KerberosAttributes `type:"structure"`
13635
13636	// The KMS key used for encrypting log files. If a value is not provided, the
13637	// logs remain encrypted by AES-256. This attribute is only available with Amazon
13638	// EMR version 5.30.0 and later, excluding Amazon EMR 6.0.0.
13639	LogEncryptionKmsKeyId *string `type:"string"`
13640
13641	// The location in Amazon S3 to write the log files of the job flow. If a value
13642	// is not provided, logs are not created.
13643	LogUri *string `type:"string"`
13644
13645	// The specified managed scaling policy for an Amazon EMR cluster.
13646	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure"`
13647
13648	// The name of the job flow.
13649	//
13650	// Name is a required field
13651	Name *string `type:"string" required:"true"`
13652
13653	//
13654	// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later,
13655	// use Applications.
13656	//
13657	// A list of strings that indicates third-party software to use with the job
13658	// flow that accepts a user argument list. EMR accepts and forwards the argument
13659	// list to the corresponding installation script as bootstrap action arguments.
13660	// For more information, see "Launch a Job Flow on the MapR Distribution for
13661	// Hadoop" in the Amazon EMR Developer Guide (https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf).
13662	// Supported values are:
13663	//
13664	//    * "mapr-m3" - launch the cluster using MapR M3 Edition.
13665	//
13666	//    * "mapr-m5" - launch the cluster using MapR M5 Edition.
13667	//
13668	//    * "mapr" with the user arguments specifying "--edition,m3" or "--edition,m5"
13669	//    - launch the job flow using MapR M3 or M5 Edition respectively.
13670	//
13671	//    * "mapr-m7" - launch the cluster using MapR M7 Edition.
13672	//
13673	//    * "hunk" - launch the cluster with the Hunk Big Data Analytics Platform.
13674	//
13675	//    * "hue"- launch the cluster with Hue installed.
13676	//
13677	//    * "spark" - launch the cluster with Apache Spark installed.
13678	//
13679	//    * "ganglia" - launch the cluster with the Ganglia Monitoring System installed.
13680	NewSupportedProducts []*SupportedProductConfig `type:"list"`
13681
13682	// The specified placement group configuration for an Amazon EMR cluster.
13683	PlacementGroupConfigs []*PlacementGroupConfig `type:"list"`
13684
13685	// The Amazon EMR release label, which determines the version of open-source
13686	// application packages installed on the cluster. Release labels are in the
13687	// form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0.
13688	// For more information about Amazon EMR release versions and included application
13689	// versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/
13690	// (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/). The release label
13691	// applies only to Amazon EMR releases version 4.0 and later. Earlier versions
13692	// use AmiVersion.
13693	ReleaseLabel *string `type:"string"`
13694
13695	// Applies only when CustomAmiID is used. Specifies which updates from the Amazon
13696	// Linux AMI package repositories to apply automatically when the instance boots
13697	// using the AMI. If omitted, the default is SECURITY, which indicates that
13698	// only security updates are applied. If NONE is specified, no updates are applied,
13699	// and all updates must be applied manually.
13700	RepoUpgradeOnBoot *string `type:"string" enum:"RepoUpgradeOnBoot"`
13701
13702	// Specifies the way that individual Amazon EC2 instances terminate when an
13703	// automatic scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
13704	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
13705	// regardless of when the request to terminate the instance was submitted. This
13706	// option is only available with Amazon EMR 5.1.0 and later and is the default
13707	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
13708	// that Amazon EMR adds nodes to a deny list and drains tasks from nodes before
13709	// terminating the Amazon EC2 instances, regardless of the instance-hour boundary.
13710	// With either behavior, Amazon EMR removes the least active nodes first and
13711	// blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
13712	// available only in Amazon EMR version 4.1.0 and later, and is the default
13713	// for versions of Amazon EMR earlier than 5.1.0.
13714	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
13715
13716	// The name of a security configuration to apply to the cluster.
13717	SecurityConfiguration *string `type:"string"`
13718
13719	// The IAM role that will be assumed by the Amazon EMR service to access Amazon
13720	// Web Services resources on your behalf.
13721	ServiceRole *string `type:"string"`
13722
13723	// Specifies the number of steps that can be executed concurrently. The default
13724	// value is 1. The maximum value is 256.
13725	StepConcurrencyLevel *int64 `type:"integer"`
13726
13727	// A list of steps to run.
13728	Steps []*StepConfig `type:"list"`
13729
13730	//
13731	// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later,
13732	// use Applications.
13733	//
13734	// A list of strings that indicates third-party software to use. For more information,
13735	// see the Amazon EMR Developer Guide (https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf).
13736	// Currently supported values are:
13737	//
13738	//    * "mapr-m3" - launch the job flow using MapR M3 Edition.
13739	//
13740	//    * "mapr-m5" - launch the job flow using MapR M5 Edition.
13741	SupportedProducts []*string `type:"list"`
13742
13743	// A list of tags to associate with a cluster and propagate to Amazon EC2 instances.
13744	Tags []*Tag `type:"list"`
13745
13746	// Set this value to true so that IAM principals in the account associated with
13747	// the cluster can perform EMR actions on the cluster that their IAM policies
13748	// allow. This value defaults to true for clusters created using the EMR API
13749	// or the CLI create-cluster (https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html)
13750	// command.
13751	//
13752	// When set to false, only the IAM principal that created the cluster and the
13753	// account root user can perform EMR actions for the cluster, regardless of
13754	// the IAM permissions policies attached to other IAM principals. For more information,
13755	// see Understanding the EMR Cluster VisibleToAllUsers Setting (https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users)
13756	// in the Amazon EMRManagement Guide.
13757	VisibleToAllUsers *bool `type:"boolean"`
13758}
13759
13760// String returns the string representation
13761func (s RunJobFlowInput) String() string {
13762	return awsutil.Prettify(s)
13763}
13764
13765// GoString returns the string representation
13766func (s RunJobFlowInput) GoString() string {
13767	return s.String()
13768}
13769
13770// Validate inspects the fields of the type to determine if they are valid.
13771func (s *RunJobFlowInput) Validate() error {
13772	invalidParams := request.ErrInvalidParams{Context: "RunJobFlowInput"}
13773	if s.Instances == nil {
13774		invalidParams.Add(request.NewErrParamRequired("Instances"))
13775	}
13776	if s.Name == nil {
13777		invalidParams.Add(request.NewErrParamRequired("Name"))
13778	}
13779	if s.BootstrapActions != nil {
13780		for i, v := range s.BootstrapActions {
13781			if v == nil {
13782				continue
13783			}
13784			if err := v.Validate(); err != nil {
13785				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BootstrapActions", i), err.(request.ErrInvalidParams))
13786			}
13787		}
13788	}
13789	if s.Instances != nil {
13790		if err := s.Instances.Validate(); err != nil {
13791			invalidParams.AddNested("Instances", err.(request.ErrInvalidParams))
13792		}
13793	}
13794	if s.KerberosAttributes != nil {
13795		if err := s.KerberosAttributes.Validate(); err != nil {
13796			invalidParams.AddNested("KerberosAttributes", err.(request.ErrInvalidParams))
13797		}
13798	}
13799	if s.ManagedScalingPolicy != nil {
13800		if err := s.ManagedScalingPolicy.Validate(); err != nil {
13801			invalidParams.AddNested("ManagedScalingPolicy", err.(request.ErrInvalidParams))
13802		}
13803	}
13804	if s.PlacementGroupConfigs != nil {
13805		for i, v := range s.PlacementGroupConfigs {
13806			if v == nil {
13807				continue
13808			}
13809			if err := v.Validate(); err != nil {
13810				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlacementGroupConfigs", i), err.(request.ErrInvalidParams))
13811			}
13812		}
13813	}
13814	if s.Steps != nil {
13815		for i, v := range s.Steps {
13816			if v == nil {
13817				continue
13818			}
13819			if err := v.Validate(); err != nil {
13820				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Steps", i), err.(request.ErrInvalidParams))
13821			}
13822		}
13823	}
13824
13825	if invalidParams.Len() > 0 {
13826		return invalidParams
13827	}
13828	return nil
13829}
13830
13831// SetAdditionalInfo sets the AdditionalInfo field's value.
13832func (s *RunJobFlowInput) SetAdditionalInfo(v string) *RunJobFlowInput {
13833	s.AdditionalInfo = &v
13834	return s
13835}
13836
13837// SetAmiVersion sets the AmiVersion field's value.
13838func (s *RunJobFlowInput) SetAmiVersion(v string) *RunJobFlowInput {
13839	s.AmiVersion = &v
13840	return s
13841}
13842
13843// SetApplications sets the Applications field's value.
13844func (s *RunJobFlowInput) SetApplications(v []*Application) *RunJobFlowInput {
13845	s.Applications = v
13846	return s
13847}
13848
13849// SetAutoScalingRole sets the AutoScalingRole field's value.
13850func (s *RunJobFlowInput) SetAutoScalingRole(v string) *RunJobFlowInput {
13851	s.AutoScalingRole = &v
13852	return s
13853}
13854
13855// SetBootstrapActions sets the BootstrapActions field's value.
13856func (s *RunJobFlowInput) SetBootstrapActions(v []*BootstrapActionConfig) *RunJobFlowInput {
13857	s.BootstrapActions = v
13858	return s
13859}
13860
13861// SetConfigurations sets the Configurations field's value.
13862func (s *RunJobFlowInput) SetConfigurations(v []*Configuration) *RunJobFlowInput {
13863	s.Configurations = v
13864	return s
13865}
13866
13867// SetCustomAmiId sets the CustomAmiId field's value.
13868func (s *RunJobFlowInput) SetCustomAmiId(v string) *RunJobFlowInput {
13869	s.CustomAmiId = &v
13870	return s
13871}
13872
13873// SetEbsRootVolumeSize sets the EbsRootVolumeSize field's value.
13874func (s *RunJobFlowInput) SetEbsRootVolumeSize(v int64) *RunJobFlowInput {
13875	s.EbsRootVolumeSize = &v
13876	return s
13877}
13878
13879// SetInstances sets the Instances field's value.
13880func (s *RunJobFlowInput) SetInstances(v *JobFlowInstancesConfig) *RunJobFlowInput {
13881	s.Instances = v
13882	return s
13883}
13884
13885// SetJobFlowRole sets the JobFlowRole field's value.
13886func (s *RunJobFlowInput) SetJobFlowRole(v string) *RunJobFlowInput {
13887	s.JobFlowRole = &v
13888	return s
13889}
13890
13891// SetKerberosAttributes sets the KerberosAttributes field's value.
13892func (s *RunJobFlowInput) SetKerberosAttributes(v *KerberosAttributes) *RunJobFlowInput {
13893	s.KerberosAttributes = v
13894	return s
13895}
13896
13897// SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
13898func (s *RunJobFlowInput) SetLogEncryptionKmsKeyId(v string) *RunJobFlowInput {
13899	s.LogEncryptionKmsKeyId = &v
13900	return s
13901}
13902
13903// SetLogUri sets the LogUri field's value.
13904func (s *RunJobFlowInput) SetLogUri(v string) *RunJobFlowInput {
13905	s.LogUri = &v
13906	return s
13907}
13908
13909// SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
13910func (s *RunJobFlowInput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *RunJobFlowInput {
13911	s.ManagedScalingPolicy = v
13912	return s
13913}
13914
13915// SetName sets the Name field's value.
13916func (s *RunJobFlowInput) SetName(v string) *RunJobFlowInput {
13917	s.Name = &v
13918	return s
13919}
13920
13921// SetNewSupportedProducts sets the NewSupportedProducts field's value.
13922func (s *RunJobFlowInput) SetNewSupportedProducts(v []*SupportedProductConfig) *RunJobFlowInput {
13923	s.NewSupportedProducts = v
13924	return s
13925}
13926
13927// SetPlacementGroupConfigs sets the PlacementGroupConfigs field's value.
13928func (s *RunJobFlowInput) SetPlacementGroupConfigs(v []*PlacementGroupConfig) *RunJobFlowInput {
13929	s.PlacementGroupConfigs = v
13930	return s
13931}
13932
13933// SetReleaseLabel sets the ReleaseLabel field's value.
13934func (s *RunJobFlowInput) SetReleaseLabel(v string) *RunJobFlowInput {
13935	s.ReleaseLabel = &v
13936	return s
13937}
13938
13939// SetRepoUpgradeOnBoot sets the RepoUpgradeOnBoot field's value.
13940func (s *RunJobFlowInput) SetRepoUpgradeOnBoot(v string) *RunJobFlowInput {
13941	s.RepoUpgradeOnBoot = &v
13942	return s
13943}
13944
13945// SetScaleDownBehavior sets the ScaleDownBehavior field's value.
13946func (s *RunJobFlowInput) SetScaleDownBehavior(v string) *RunJobFlowInput {
13947	s.ScaleDownBehavior = &v
13948	return s
13949}
13950
13951// SetSecurityConfiguration sets the SecurityConfiguration field's value.
13952func (s *RunJobFlowInput) SetSecurityConfiguration(v string) *RunJobFlowInput {
13953	s.SecurityConfiguration = &v
13954	return s
13955}
13956
13957// SetServiceRole sets the ServiceRole field's value.
13958func (s *RunJobFlowInput) SetServiceRole(v string) *RunJobFlowInput {
13959	s.ServiceRole = &v
13960	return s
13961}
13962
13963// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
13964func (s *RunJobFlowInput) SetStepConcurrencyLevel(v int64) *RunJobFlowInput {
13965	s.StepConcurrencyLevel = &v
13966	return s
13967}
13968
13969// SetSteps sets the Steps field's value.
13970func (s *RunJobFlowInput) SetSteps(v []*StepConfig) *RunJobFlowInput {
13971	s.Steps = v
13972	return s
13973}
13974
13975// SetSupportedProducts sets the SupportedProducts field's value.
13976func (s *RunJobFlowInput) SetSupportedProducts(v []*string) *RunJobFlowInput {
13977	s.SupportedProducts = v
13978	return s
13979}
13980
13981// SetTags sets the Tags field's value.
13982func (s *RunJobFlowInput) SetTags(v []*Tag) *RunJobFlowInput {
13983	s.Tags = v
13984	return s
13985}
13986
13987// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
13988func (s *RunJobFlowInput) SetVisibleToAllUsers(v bool) *RunJobFlowInput {
13989	s.VisibleToAllUsers = &v
13990	return s
13991}
13992
13993// The result of the RunJobFlow operation.
13994type RunJobFlowOutput struct {
13995	_ struct{} `type:"structure"`
13996
13997	// The Amazon Resource Name (ARN) of the cluster.
13998	ClusterArn *string `min:"20" type:"string"`
13999
14000	// A unique identifier for the job flow.
14001	JobFlowId *string `type:"string"`
14002}
14003
14004// String returns the string representation
14005func (s RunJobFlowOutput) String() string {
14006	return awsutil.Prettify(s)
14007}
14008
14009// GoString returns the string representation
14010func (s RunJobFlowOutput) GoString() string {
14011	return s.String()
14012}
14013
14014// SetClusterArn sets the ClusterArn field's value.
14015func (s *RunJobFlowOutput) SetClusterArn(v string) *RunJobFlowOutput {
14016	s.ClusterArn = &v
14017	return s
14018}
14019
14020// SetJobFlowId sets the JobFlowId field's value.
14021func (s *RunJobFlowOutput) SetJobFlowId(v string) *RunJobFlowOutput {
14022	s.JobFlowId = &v
14023	return s
14024}
14025
14026// The type of adjustment the automatic scaling activity makes when triggered,
14027// and the periodicity of the adjustment.
14028type ScalingAction struct {
14029	_ struct{} `type:"structure"`
14030
14031	// Not available for instance groups. Instance groups use the market type specified
14032	// for the group.
14033	Market *string `type:"string" enum:"MarketType"`
14034
14035	// The type of adjustment the automatic scaling activity makes when triggered,
14036	// and the periodicity of the adjustment.
14037	//
14038	// SimpleScalingPolicyConfiguration is a required field
14039	SimpleScalingPolicyConfiguration *SimpleScalingPolicyConfiguration `type:"structure" required:"true"`
14040}
14041
14042// String returns the string representation
14043func (s ScalingAction) String() string {
14044	return awsutil.Prettify(s)
14045}
14046
14047// GoString returns the string representation
14048func (s ScalingAction) GoString() string {
14049	return s.String()
14050}
14051
14052// Validate inspects the fields of the type to determine if they are valid.
14053func (s *ScalingAction) Validate() error {
14054	invalidParams := request.ErrInvalidParams{Context: "ScalingAction"}
14055	if s.SimpleScalingPolicyConfiguration == nil {
14056		invalidParams.Add(request.NewErrParamRequired("SimpleScalingPolicyConfiguration"))
14057	}
14058	if s.SimpleScalingPolicyConfiguration != nil {
14059		if err := s.SimpleScalingPolicyConfiguration.Validate(); err != nil {
14060			invalidParams.AddNested("SimpleScalingPolicyConfiguration", err.(request.ErrInvalidParams))
14061		}
14062	}
14063
14064	if invalidParams.Len() > 0 {
14065		return invalidParams
14066	}
14067	return nil
14068}
14069
14070// SetMarket sets the Market field's value.
14071func (s *ScalingAction) SetMarket(v string) *ScalingAction {
14072	s.Market = &v
14073	return s
14074}
14075
14076// SetSimpleScalingPolicyConfiguration sets the SimpleScalingPolicyConfiguration field's value.
14077func (s *ScalingAction) SetSimpleScalingPolicyConfiguration(v *SimpleScalingPolicyConfiguration) *ScalingAction {
14078	s.SimpleScalingPolicyConfiguration = v
14079	return s
14080}
14081
14082// The upper and lower EC2 instance limits for an automatic scaling policy.
14083// Automatic scaling activities triggered by automatic scaling rules will not
14084// cause an instance group to grow above or below these limits.
14085type ScalingConstraints struct {
14086	_ struct{} `type:"structure"`
14087
14088	// The upper boundary of EC2 instances in an instance group beyond which scaling
14089	// activities are not allowed to grow. Scale-out activities will not add instances
14090	// beyond this boundary.
14091	//
14092	// MaxCapacity is a required field
14093	MaxCapacity *int64 `type:"integer" required:"true"`
14094
14095	// The lower boundary of EC2 instances in an instance group below which scaling
14096	// activities are not allowed to shrink. Scale-in activities will not terminate
14097	// instances below this boundary.
14098	//
14099	// MinCapacity is a required field
14100	MinCapacity *int64 `type:"integer" required:"true"`
14101}
14102
14103// String returns the string representation
14104func (s ScalingConstraints) String() string {
14105	return awsutil.Prettify(s)
14106}
14107
14108// GoString returns the string representation
14109func (s ScalingConstraints) GoString() string {
14110	return s.String()
14111}
14112
14113// Validate inspects the fields of the type to determine if they are valid.
14114func (s *ScalingConstraints) Validate() error {
14115	invalidParams := request.ErrInvalidParams{Context: "ScalingConstraints"}
14116	if s.MaxCapacity == nil {
14117		invalidParams.Add(request.NewErrParamRequired("MaxCapacity"))
14118	}
14119	if s.MinCapacity == nil {
14120		invalidParams.Add(request.NewErrParamRequired("MinCapacity"))
14121	}
14122
14123	if invalidParams.Len() > 0 {
14124		return invalidParams
14125	}
14126	return nil
14127}
14128
14129// SetMaxCapacity sets the MaxCapacity field's value.
14130func (s *ScalingConstraints) SetMaxCapacity(v int64) *ScalingConstraints {
14131	s.MaxCapacity = &v
14132	return s
14133}
14134
14135// SetMinCapacity sets the MinCapacity field's value.
14136func (s *ScalingConstraints) SetMinCapacity(v int64) *ScalingConstraints {
14137	s.MinCapacity = &v
14138	return s
14139}
14140
14141// A scale-in or scale-out rule that defines scaling activity, including the
14142// CloudWatch metric alarm that triggers activity, how EC2 instances are added
14143// or removed, and the periodicity of adjustments. The automatic scaling policy
14144// for an instance group can comprise one or more automatic scaling rules.
14145type ScalingRule struct {
14146	_ struct{} `type:"structure"`
14147
14148	// The conditions that trigger an automatic scaling activity.
14149	//
14150	// Action is a required field
14151	Action *ScalingAction `type:"structure" required:"true"`
14152
14153	// A friendly, more verbose description of the automatic scaling rule.
14154	Description *string `type:"string"`
14155
14156	// The name used to identify an automatic scaling rule. Rule names must be unique
14157	// within a scaling policy.
14158	//
14159	// Name is a required field
14160	Name *string `type:"string" required:"true"`
14161
14162	// The CloudWatch alarm definition that determines when automatic scaling activity
14163	// is triggered.
14164	//
14165	// Trigger is a required field
14166	Trigger *ScalingTrigger `type:"structure" required:"true"`
14167}
14168
14169// String returns the string representation
14170func (s ScalingRule) String() string {
14171	return awsutil.Prettify(s)
14172}
14173
14174// GoString returns the string representation
14175func (s ScalingRule) GoString() string {
14176	return s.String()
14177}
14178
14179// Validate inspects the fields of the type to determine if they are valid.
14180func (s *ScalingRule) Validate() error {
14181	invalidParams := request.ErrInvalidParams{Context: "ScalingRule"}
14182	if s.Action == nil {
14183		invalidParams.Add(request.NewErrParamRequired("Action"))
14184	}
14185	if s.Name == nil {
14186		invalidParams.Add(request.NewErrParamRequired("Name"))
14187	}
14188	if s.Trigger == nil {
14189		invalidParams.Add(request.NewErrParamRequired("Trigger"))
14190	}
14191	if s.Action != nil {
14192		if err := s.Action.Validate(); err != nil {
14193			invalidParams.AddNested("Action", err.(request.ErrInvalidParams))
14194		}
14195	}
14196	if s.Trigger != nil {
14197		if err := s.Trigger.Validate(); err != nil {
14198			invalidParams.AddNested("Trigger", err.(request.ErrInvalidParams))
14199		}
14200	}
14201
14202	if invalidParams.Len() > 0 {
14203		return invalidParams
14204	}
14205	return nil
14206}
14207
14208// SetAction sets the Action field's value.
14209func (s *ScalingRule) SetAction(v *ScalingAction) *ScalingRule {
14210	s.Action = v
14211	return s
14212}
14213
14214// SetDescription sets the Description field's value.
14215func (s *ScalingRule) SetDescription(v string) *ScalingRule {
14216	s.Description = &v
14217	return s
14218}
14219
14220// SetName sets the Name field's value.
14221func (s *ScalingRule) SetName(v string) *ScalingRule {
14222	s.Name = &v
14223	return s
14224}
14225
14226// SetTrigger sets the Trigger field's value.
14227func (s *ScalingRule) SetTrigger(v *ScalingTrigger) *ScalingRule {
14228	s.Trigger = v
14229	return s
14230}
14231
14232// The conditions that trigger an automatic scaling activity.
14233type ScalingTrigger struct {
14234	_ struct{} `type:"structure"`
14235
14236	// The definition of a CloudWatch metric alarm. When the defined alarm conditions
14237	// are met along with other trigger parameters, scaling activity begins.
14238	//
14239	// CloudWatchAlarmDefinition is a required field
14240	CloudWatchAlarmDefinition *CloudWatchAlarmDefinition `type:"structure" required:"true"`
14241}
14242
14243// String returns the string representation
14244func (s ScalingTrigger) String() string {
14245	return awsutil.Prettify(s)
14246}
14247
14248// GoString returns the string representation
14249func (s ScalingTrigger) GoString() string {
14250	return s.String()
14251}
14252
14253// Validate inspects the fields of the type to determine if they are valid.
14254func (s *ScalingTrigger) Validate() error {
14255	invalidParams := request.ErrInvalidParams{Context: "ScalingTrigger"}
14256	if s.CloudWatchAlarmDefinition == nil {
14257		invalidParams.Add(request.NewErrParamRequired("CloudWatchAlarmDefinition"))
14258	}
14259	if s.CloudWatchAlarmDefinition != nil {
14260		if err := s.CloudWatchAlarmDefinition.Validate(); err != nil {
14261			invalidParams.AddNested("CloudWatchAlarmDefinition", err.(request.ErrInvalidParams))
14262		}
14263	}
14264
14265	if invalidParams.Len() > 0 {
14266		return invalidParams
14267	}
14268	return nil
14269}
14270
14271// SetCloudWatchAlarmDefinition sets the CloudWatchAlarmDefinition field's value.
14272func (s *ScalingTrigger) SetCloudWatchAlarmDefinition(v *CloudWatchAlarmDefinition) *ScalingTrigger {
14273	s.CloudWatchAlarmDefinition = v
14274	return s
14275}
14276
14277// Configuration of the script to run during a bootstrap action.
14278type ScriptBootstrapActionConfig struct {
14279	_ struct{} `type:"structure"`
14280
14281	// A list of command line arguments to pass to the bootstrap action script.
14282	Args []*string `type:"list"`
14283
14284	// Location in Amazon S3 of the script to run during a bootstrap action.
14285	//
14286	// Path is a required field
14287	Path *string `type:"string" required:"true"`
14288}
14289
14290// String returns the string representation
14291func (s ScriptBootstrapActionConfig) String() string {
14292	return awsutil.Prettify(s)
14293}
14294
14295// GoString returns the string representation
14296func (s ScriptBootstrapActionConfig) GoString() string {
14297	return s.String()
14298}
14299
14300// Validate inspects the fields of the type to determine if they are valid.
14301func (s *ScriptBootstrapActionConfig) Validate() error {
14302	invalidParams := request.ErrInvalidParams{Context: "ScriptBootstrapActionConfig"}
14303	if s.Path == nil {
14304		invalidParams.Add(request.NewErrParamRequired("Path"))
14305	}
14306
14307	if invalidParams.Len() > 0 {
14308		return invalidParams
14309	}
14310	return nil
14311}
14312
14313// SetArgs sets the Args field's value.
14314func (s *ScriptBootstrapActionConfig) SetArgs(v []*string) *ScriptBootstrapActionConfig {
14315	s.Args = v
14316	return s
14317}
14318
14319// SetPath sets the Path field's value.
14320func (s *ScriptBootstrapActionConfig) SetPath(v string) *ScriptBootstrapActionConfig {
14321	s.Path = &v
14322	return s
14323}
14324
14325// The creation date and time, and name, of a security configuration.
14326type SecurityConfigurationSummary struct {
14327	_ struct{} `type:"structure"`
14328
14329	// The date and time the security configuration was created.
14330	CreationDateTime *time.Time `type:"timestamp"`
14331
14332	// The name of the security configuration.
14333	Name *string `type:"string"`
14334}
14335
14336// String returns the string representation
14337func (s SecurityConfigurationSummary) String() string {
14338	return awsutil.Prettify(s)
14339}
14340
14341// GoString returns the string representation
14342func (s SecurityConfigurationSummary) GoString() string {
14343	return s.String()
14344}
14345
14346// SetCreationDateTime sets the CreationDateTime field's value.
14347func (s *SecurityConfigurationSummary) SetCreationDateTime(v time.Time) *SecurityConfigurationSummary {
14348	s.CreationDateTime = &v
14349	return s
14350}
14351
14352// SetName sets the Name field's value.
14353func (s *SecurityConfigurationSummary) SetName(v string) *SecurityConfigurationSummary {
14354	s.Name = &v
14355	return s
14356}
14357
14358// Details for an Amazon EMR Studio session mapping including creation time,
14359// user or group ID, Studio ID, and so on.
14360type SessionMappingDetail struct {
14361	_ struct{} `type:"structure"`
14362
14363	// The time the session mapping was created.
14364	CreationTime *time.Time `type:"timestamp"`
14365
14366	// The globally unique identifier (GUID) of the user or group.
14367	IdentityId *string `type:"string"`
14368
14369	// The name of the user or group. For more information, see UserName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
14370	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
14371	// in the Amazon Web Services SSO Identity Store API Reference.
14372	IdentityName *string `type:"string"`
14373
14374	// Specifies whether the identity mapped to the Amazon EMR Studio is a user
14375	// or a group.
14376	IdentityType *string `type:"string" enum:"IdentityType"`
14377
14378	// The time the session mapping was last modified.
14379	LastModifiedTime *time.Time `type:"timestamp"`
14380
14381	// The Amazon Resource Name (ARN) of the session policy associated with the
14382	// user or group.
14383	SessionPolicyArn *string `type:"string"`
14384
14385	// The ID of the Amazon EMR Studio.
14386	StudioId *string `type:"string"`
14387}
14388
14389// String returns the string representation
14390func (s SessionMappingDetail) String() string {
14391	return awsutil.Prettify(s)
14392}
14393
14394// GoString returns the string representation
14395func (s SessionMappingDetail) GoString() string {
14396	return s.String()
14397}
14398
14399// SetCreationTime sets the CreationTime field's value.
14400func (s *SessionMappingDetail) SetCreationTime(v time.Time) *SessionMappingDetail {
14401	s.CreationTime = &v
14402	return s
14403}
14404
14405// SetIdentityId sets the IdentityId field's value.
14406func (s *SessionMappingDetail) SetIdentityId(v string) *SessionMappingDetail {
14407	s.IdentityId = &v
14408	return s
14409}
14410
14411// SetIdentityName sets the IdentityName field's value.
14412func (s *SessionMappingDetail) SetIdentityName(v string) *SessionMappingDetail {
14413	s.IdentityName = &v
14414	return s
14415}
14416
14417// SetIdentityType sets the IdentityType field's value.
14418func (s *SessionMappingDetail) SetIdentityType(v string) *SessionMappingDetail {
14419	s.IdentityType = &v
14420	return s
14421}
14422
14423// SetLastModifiedTime sets the LastModifiedTime field's value.
14424func (s *SessionMappingDetail) SetLastModifiedTime(v time.Time) *SessionMappingDetail {
14425	s.LastModifiedTime = &v
14426	return s
14427}
14428
14429// SetSessionPolicyArn sets the SessionPolicyArn field's value.
14430func (s *SessionMappingDetail) SetSessionPolicyArn(v string) *SessionMappingDetail {
14431	s.SessionPolicyArn = &v
14432	return s
14433}
14434
14435// SetStudioId sets the StudioId field's value.
14436func (s *SessionMappingDetail) SetStudioId(v string) *SessionMappingDetail {
14437	s.StudioId = &v
14438	return s
14439}
14440
14441// Details for an Amazon EMR Studio session mapping. The details do not include
14442// the time the session mapping was last modified.
14443type SessionMappingSummary struct {
14444	_ struct{} `type:"structure"`
14445
14446	// The time the session mapping was created.
14447	CreationTime *time.Time `type:"timestamp"`
14448
14449	// The globally unique identifier (GUID) of the user or group from the Amazon
14450	// Web Services SSO Identity Store.
14451	IdentityId *string `type:"string"`
14452
14453	// The name of the user or group. For more information, see UserName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
14454	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
14455	// in the Amazon Web Services SSO Identity Store API Reference.
14456	IdentityName *string `type:"string"`
14457
14458	// Specifies whether the identity mapped to the Amazon EMR Studio is a user
14459	// or a group.
14460	IdentityType *string `type:"string" enum:"IdentityType"`
14461
14462	// The Amazon Resource Name (ARN) of the session policy associated with the
14463	// user or group.
14464	SessionPolicyArn *string `type:"string"`
14465
14466	// The ID of the Amazon EMR Studio.
14467	StudioId *string `type:"string"`
14468}
14469
14470// String returns the string representation
14471func (s SessionMappingSummary) String() string {
14472	return awsutil.Prettify(s)
14473}
14474
14475// GoString returns the string representation
14476func (s SessionMappingSummary) GoString() string {
14477	return s.String()
14478}
14479
14480// SetCreationTime sets the CreationTime field's value.
14481func (s *SessionMappingSummary) SetCreationTime(v time.Time) *SessionMappingSummary {
14482	s.CreationTime = &v
14483	return s
14484}
14485
14486// SetIdentityId sets the IdentityId field's value.
14487func (s *SessionMappingSummary) SetIdentityId(v string) *SessionMappingSummary {
14488	s.IdentityId = &v
14489	return s
14490}
14491
14492// SetIdentityName sets the IdentityName field's value.
14493func (s *SessionMappingSummary) SetIdentityName(v string) *SessionMappingSummary {
14494	s.IdentityName = &v
14495	return s
14496}
14497
14498// SetIdentityType sets the IdentityType field's value.
14499func (s *SessionMappingSummary) SetIdentityType(v string) *SessionMappingSummary {
14500	s.IdentityType = &v
14501	return s
14502}
14503
14504// SetSessionPolicyArn sets the SessionPolicyArn field's value.
14505func (s *SessionMappingSummary) SetSessionPolicyArn(v string) *SessionMappingSummary {
14506	s.SessionPolicyArn = &v
14507	return s
14508}
14509
14510// SetStudioId sets the StudioId field's value.
14511func (s *SessionMappingSummary) SetStudioId(v string) *SessionMappingSummary {
14512	s.StudioId = &v
14513	return s
14514}
14515
14516// The input argument to the TerminationProtection operation.
14517type SetTerminationProtectionInput struct {
14518	_ struct{} `type:"structure"`
14519
14520	// A list of strings that uniquely identify the clusters to protect. This identifier
14521	// is returned by RunJobFlow and can also be obtained from DescribeJobFlows .
14522	//
14523	// JobFlowIds is a required field
14524	JobFlowIds []*string `type:"list" required:"true"`
14525
14526	// A Boolean that indicates whether to protect the cluster and prevent the Amazon
14527	// EC2 instances in the cluster from shutting down due to API calls, user intervention,
14528	// or job-flow error.
14529	//
14530	// TerminationProtected is a required field
14531	TerminationProtected *bool `type:"boolean" required:"true"`
14532}
14533
14534// String returns the string representation
14535func (s SetTerminationProtectionInput) String() string {
14536	return awsutil.Prettify(s)
14537}
14538
14539// GoString returns the string representation
14540func (s SetTerminationProtectionInput) GoString() string {
14541	return s.String()
14542}
14543
14544// Validate inspects the fields of the type to determine if they are valid.
14545func (s *SetTerminationProtectionInput) Validate() error {
14546	invalidParams := request.ErrInvalidParams{Context: "SetTerminationProtectionInput"}
14547	if s.JobFlowIds == nil {
14548		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
14549	}
14550	if s.TerminationProtected == nil {
14551		invalidParams.Add(request.NewErrParamRequired("TerminationProtected"))
14552	}
14553
14554	if invalidParams.Len() > 0 {
14555		return invalidParams
14556	}
14557	return nil
14558}
14559
14560// SetJobFlowIds sets the JobFlowIds field's value.
14561func (s *SetTerminationProtectionInput) SetJobFlowIds(v []*string) *SetTerminationProtectionInput {
14562	s.JobFlowIds = v
14563	return s
14564}
14565
14566// SetTerminationProtected sets the TerminationProtected field's value.
14567func (s *SetTerminationProtectionInput) SetTerminationProtected(v bool) *SetTerminationProtectionInput {
14568	s.TerminationProtected = &v
14569	return s
14570}
14571
14572type SetTerminationProtectionOutput struct {
14573	_ struct{} `type:"structure"`
14574}
14575
14576// String returns the string representation
14577func (s SetTerminationProtectionOutput) String() string {
14578	return awsutil.Prettify(s)
14579}
14580
14581// GoString returns the string representation
14582func (s SetTerminationProtectionOutput) GoString() string {
14583	return s.String()
14584}
14585
14586// The input to the SetVisibleToAllUsers action.
14587type SetVisibleToAllUsersInput struct {
14588	_ struct{} `type:"structure"`
14589
14590	// The unique identifier of the job flow (cluster).
14591	//
14592	// JobFlowIds is a required field
14593	JobFlowIds []*string `type:"list" required:"true"`
14594
14595	// A value of true indicates that an IAM principal in the account can perform
14596	// EMR actions on the cluster that the IAM policies attached to the principal
14597	// allow. A value of false indicates that only the IAM principal that created
14598	// the cluster and the Amazon Web Services root user can perform EMR actions
14599	// on the cluster.
14600	//
14601	// VisibleToAllUsers is a required field
14602	VisibleToAllUsers *bool `type:"boolean" required:"true"`
14603}
14604
14605// String returns the string representation
14606func (s SetVisibleToAllUsersInput) String() string {
14607	return awsutil.Prettify(s)
14608}
14609
14610// GoString returns the string representation
14611func (s SetVisibleToAllUsersInput) GoString() string {
14612	return s.String()
14613}
14614
14615// Validate inspects the fields of the type to determine if they are valid.
14616func (s *SetVisibleToAllUsersInput) Validate() error {
14617	invalidParams := request.ErrInvalidParams{Context: "SetVisibleToAllUsersInput"}
14618	if s.JobFlowIds == nil {
14619		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
14620	}
14621	if s.VisibleToAllUsers == nil {
14622		invalidParams.Add(request.NewErrParamRequired("VisibleToAllUsers"))
14623	}
14624
14625	if invalidParams.Len() > 0 {
14626		return invalidParams
14627	}
14628	return nil
14629}
14630
14631// SetJobFlowIds sets the JobFlowIds field's value.
14632func (s *SetVisibleToAllUsersInput) SetJobFlowIds(v []*string) *SetVisibleToAllUsersInput {
14633	s.JobFlowIds = v
14634	return s
14635}
14636
14637// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
14638func (s *SetVisibleToAllUsersInput) SetVisibleToAllUsers(v bool) *SetVisibleToAllUsersInput {
14639	s.VisibleToAllUsers = &v
14640	return s
14641}
14642
14643type SetVisibleToAllUsersOutput struct {
14644	_ struct{} `type:"structure"`
14645}
14646
14647// String returns the string representation
14648func (s SetVisibleToAllUsersOutput) String() string {
14649	return awsutil.Prettify(s)
14650}
14651
14652// GoString returns the string representation
14653func (s SetVisibleToAllUsersOutput) GoString() string {
14654	return s.String()
14655}
14656
14657// Policy for customizing shrink operations. Allows configuration of decommissioning
14658// timeout and targeted instance shrinking.
14659type ShrinkPolicy struct {
14660	_ struct{} `type:"structure"`
14661
14662	// The desired timeout for decommissioning an instance. Overrides the default
14663	// YARN decommissioning timeout.
14664	DecommissionTimeout *int64 `type:"integer"`
14665
14666	// Custom policy for requesting termination protection or termination of specific
14667	// instances when shrinking an instance group.
14668	InstanceResizePolicy *InstanceResizePolicy `type:"structure"`
14669}
14670
14671// String returns the string representation
14672func (s ShrinkPolicy) String() string {
14673	return awsutil.Prettify(s)
14674}
14675
14676// GoString returns the string representation
14677func (s ShrinkPolicy) GoString() string {
14678	return s.String()
14679}
14680
14681// SetDecommissionTimeout sets the DecommissionTimeout field's value.
14682func (s *ShrinkPolicy) SetDecommissionTimeout(v int64) *ShrinkPolicy {
14683	s.DecommissionTimeout = &v
14684	return s
14685}
14686
14687// SetInstanceResizePolicy sets the InstanceResizePolicy field's value.
14688func (s *ShrinkPolicy) SetInstanceResizePolicy(v *InstanceResizePolicy) *ShrinkPolicy {
14689	s.InstanceResizePolicy = v
14690	return s
14691}
14692
14693// An automatic scaling configuration, which describes how the policy adds or
14694// removes instances, the cooldown period, and the number of EC2 instances that
14695// will be added each time the CloudWatch metric alarm condition is satisfied.
14696type SimpleScalingPolicyConfiguration struct {
14697	_ struct{} `type:"structure"`
14698
14699	// The way in which EC2 instances are added (if ScalingAdjustment is a positive
14700	// number) or terminated (if ScalingAdjustment is a negative number) each time
14701	// the scaling activity is triggered. CHANGE_IN_CAPACITY is the default. CHANGE_IN_CAPACITY
14702	// indicates that the EC2 instance count increments or decrements by ScalingAdjustment,
14703	// which should be expressed as an integer. PERCENT_CHANGE_IN_CAPACITY indicates
14704	// the instance count increments or decrements by the percentage specified by
14705	// ScalingAdjustment, which should be expressed as an integer. For example,
14706	// 20 indicates an increase in 20% increments of cluster capacity. EXACT_CAPACITY
14707	// indicates the scaling activity results in an instance group with the number
14708	// of EC2 instances specified by ScalingAdjustment, which should be expressed
14709	// as a positive integer.
14710	AdjustmentType *string `type:"string" enum:"AdjustmentType"`
14711
14712	// The amount of time, in seconds, after a scaling activity completes before
14713	// any further trigger-related scaling activities can start. The default value
14714	// is 0.
14715	CoolDown *int64 `type:"integer"`
14716
14717	// The amount by which to scale in or scale out, based on the specified AdjustmentType.
14718	// A positive value adds to the instance group's EC2 instance count while a
14719	// negative number removes instances. If AdjustmentType is set to EXACT_CAPACITY,
14720	// the number should only be a positive integer. If AdjustmentType is set to
14721	// PERCENT_CHANGE_IN_CAPACITY, the value should express the percentage as an
14722	// integer. For example, -20 indicates a decrease in 20% increments of cluster
14723	// capacity.
14724	//
14725	// ScalingAdjustment is a required field
14726	ScalingAdjustment *int64 `type:"integer" required:"true"`
14727}
14728
14729// String returns the string representation
14730func (s SimpleScalingPolicyConfiguration) String() string {
14731	return awsutil.Prettify(s)
14732}
14733
14734// GoString returns the string representation
14735func (s SimpleScalingPolicyConfiguration) GoString() string {
14736	return s.String()
14737}
14738
14739// Validate inspects the fields of the type to determine if they are valid.
14740func (s *SimpleScalingPolicyConfiguration) Validate() error {
14741	invalidParams := request.ErrInvalidParams{Context: "SimpleScalingPolicyConfiguration"}
14742	if s.ScalingAdjustment == nil {
14743		invalidParams.Add(request.NewErrParamRequired("ScalingAdjustment"))
14744	}
14745
14746	if invalidParams.Len() > 0 {
14747		return invalidParams
14748	}
14749	return nil
14750}
14751
14752// SetAdjustmentType sets the AdjustmentType field's value.
14753func (s *SimpleScalingPolicyConfiguration) SetAdjustmentType(v string) *SimpleScalingPolicyConfiguration {
14754	s.AdjustmentType = &v
14755	return s
14756}
14757
14758// SetCoolDown sets the CoolDown field's value.
14759func (s *SimpleScalingPolicyConfiguration) SetCoolDown(v int64) *SimpleScalingPolicyConfiguration {
14760	s.CoolDown = &v
14761	return s
14762}
14763
14764// SetScalingAdjustment sets the ScalingAdjustment field's value.
14765func (s *SimpleScalingPolicyConfiguration) SetScalingAdjustment(v int64) *SimpleScalingPolicyConfiguration {
14766	s.ScalingAdjustment = &v
14767	return s
14768}
14769
14770// The returned release label application names or versions.
14771type SimplifiedApplication struct {
14772	_ struct{} `type:"structure"`
14773
14774	// The returned release label application name. For example, hadoop.
14775	Name *string `type:"string"`
14776
14777	// The returned release label application version. For example, 3.2.1.
14778	Version *string `type:"string"`
14779}
14780
14781// String returns the string representation
14782func (s SimplifiedApplication) String() string {
14783	return awsutil.Prettify(s)
14784}
14785
14786// GoString returns the string representation
14787func (s SimplifiedApplication) GoString() string {
14788	return s.String()
14789}
14790
14791// SetName sets the Name field's value.
14792func (s *SimplifiedApplication) SetName(v string) *SimplifiedApplication {
14793	s.Name = &v
14794	return s
14795}
14796
14797// SetVersion sets the Version field's value.
14798func (s *SimplifiedApplication) SetVersion(v string) *SimplifiedApplication {
14799	s.Version = &v
14800	return s
14801}
14802
14803// The launch specification for Spot Instances in the instance fleet, which
14804// determines the defined duration, provisioning timeout behavior, and allocation
14805// strategy.
14806//
14807// The instance fleet configuration is available only in Amazon EMR versions
14808// 4.8.0 and later, excluding 5.0.x versions. Spot Instance allocation strategy
14809// is available in Amazon EMR version 5.12.1 and later.
14810type SpotProvisioningSpecification struct {
14811	_ struct{} `type:"structure"`
14812
14813	// Specifies the strategy to use in launching Spot Instance fleets. Currently,
14814	// the only option is capacity-optimized (the default), which launches instances
14815	// from Spot Instance pools with optimal capacity for the number of instances
14816	// that are launching.
14817	AllocationStrategy *string `type:"string" enum:"SpotProvisioningAllocationStrategy"`
14818
14819	// The defined duration for Spot Instances (also known as Spot blocks) in minutes.
14820	// When specified, the Spot Instance does not terminate before the defined duration
14821	// expires, and defined duration pricing for Spot Instances applies. Valid values
14822	// are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as
14823	// a Spot Instance receives its instance ID. At the end of the duration, Amazon
14824	// EC2 marks the Spot Instance for termination and provides a Spot Instance
14825	// termination notice, which gives the instance a two-minute warning before
14826	// it terminates.
14827	BlockDurationMinutes *int64 `type:"integer"`
14828
14829	// The action to take when TargetSpotCapacity has not been fulfilled when the
14830	// TimeoutDurationMinutes has expired; that is, when all Spot Instances could
14831	// not be provisioned within the Spot provisioning timeout. Valid values are
14832	// TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies
14833	// that if no Spot Instances are available, On-Demand Instances should be provisioned
14834	// to fulfill any remaining Spot capacity.
14835	//
14836	// TimeoutAction is a required field
14837	TimeoutAction *string `type:"string" required:"true" enum:"SpotProvisioningTimeoutAction"`
14838
14839	// The spot provisioning timeout period in minutes. If Spot Instances are not
14840	// provisioned within this time period, the TimeOutAction is taken. Minimum
14841	// value is 5 and maximum value is 1440. The timeout applies only during initial
14842	// provisioning, when the cluster is first created.
14843	//
14844	// TimeoutDurationMinutes is a required field
14845	TimeoutDurationMinutes *int64 `type:"integer" required:"true"`
14846}
14847
14848// String returns the string representation
14849func (s SpotProvisioningSpecification) String() string {
14850	return awsutil.Prettify(s)
14851}
14852
14853// GoString returns the string representation
14854func (s SpotProvisioningSpecification) GoString() string {
14855	return s.String()
14856}
14857
14858// Validate inspects the fields of the type to determine if they are valid.
14859func (s *SpotProvisioningSpecification) Validate() error {
14860	invalidParams := request.ErrInvalidParams{Context: "SpotProvisioningSpecification"}
14861	if s.TimeoutAction == nil {
14862		invalidParams.Add(request.NewErrParamRequired("TimeoutAction"))
14863	}
14864	if s.TimeoutDurationMinutes == nil {
14865		invalidParams.Add(request.NewErrParamRequired("TimeoutDurationMinutes"))
14866	}
14867
14868	if invalidParams.Len() > 0 {
14869		return invalidParams
14870	}
14871	return nil
14872}
14873
14874// SetAllocationStrategy sets the AllocationStrategy field's value.
14875func (s *SpotProvisioningSpecification) SetAllocationStrategy(v string) *SpotProvisioningSpecification {
14876	s.AllocationStrategy = &v
14877	return s
14878}
14879
14880// SetBlockDurationMinutes sets the BlockDurationMinutes field's value.
14881func (s *SpotProvisioningSpecification) SetBlockDurationMinutes(v int64) *SpotProvisioningSpecification {
14882	s.BlockDurationMinutes = &v
14883	return s
14884}
14885
14886// SetTimeoutAction sets the TimeoutAction field's value.
14887func (s *SpotProvisioningSpecification) SetTimeoutAction(v string) *SpotProvisioningSpecification {
14888	s.TimeoutAction = &v
14889	return s
14890}
14891
14892// SetTimeoutDurationMinutes sets the TimeoutDurationMinutes field's value.
14893func (s *SpotProvisioningSpecification) SetTimeoutDurationMinutes(v int64) *SpotProvisioningSpecification {
14894	s.TimeoutDurationMinutes = &v
14895	return s
14896}
14897
14898type StartNotebookExecutionInput struct {
14899	_ struct{} `type:"structure"`
14900
14901	// The unique identifier of the EMR Notebook to use for notebook execution.
14902	//
14903	// EditorId is a required field
14904	EditorId *string `type:"string" required:"true"`
14905
14906	// Specifies the execution engine (cluster) that runs the notebook execution.
14907	//
14908	// ExecutionEngine is a required field
14909	ExecutionEngine *ExecutionEngineConfig `type:"structure" required:"true"`
14910
14911	// An optional name for the notebook execution.
14912	NotebookExecutionName *string `type:"string"`
14913
14914	// The unique identifier of the Amazon EC2 security group to associate with
14915	// the EMR Notebook for this notebook execution.
14916	NotebookInstanceSecurityGroupId *string `type:"string"`
14917
14918	// Input parameters in JSON format passed to the EMR Notebook at runtime for
14919	// execution.
14920	NotebookParams *string `type:"string"`
14921
14922	// The path and file name of the notebook file for this execution, relative
14923	// to the path specified for the EMR Notebook. For example, if you specify a
14924	// path of s3://MyBucket/MyNotebooks when you create an EMR Notebook for a notebook
14925	// with an ID of e-ABCDEFGHIJK1234567890ABCD (the EditorID of this request),
14926	// and you specify a RelativePath of my_notebook_executions/notebook_execution.ipynb,
14927	// the location of the file for the notebook execution is s3://MyBucket/MyNotebooks/e-ABCDEFGHIJK1234567890ABCD/my_notebook_executions/notebook_execution.ipynb.
14928	//
14929	// RelativePath is a required field
14930	RelativePath *string `type:"string" required:"true"`
14931
14932	// The name or ARN of the IAM role that is used as the service role for Amazon
14933	// EMR (the EMR role) for the notebook execution.
14934	//
14935	// ServiceRole is a required field
14936	ServiceRole *string `type:"string" required:"true"`
14937
14938	// A list of tags associated with a notebook execution. Tags are user-defined
14939	// key-value pairs that consist of a required key string with a maximum of 128
14940	// characters and an optional value string with a maximum of 256 characters.
14941	Tags []*Tag `type:"list"`
14942}
14943
14944// String returns the string representation
14945func (s StartNotebookExecutionInput) String() string {
14946	return awsutil.Prettify(s)
14947}
14948
14949// GoString returns the string representation
14950func (s StartNotebookExecutionInput) GoString() string {
14951	return s.String()
14952}
14953
14954// Validate inspects the fields of the type to determine if they are valid.
14955func (s *StartNotebookExecutionInput) Validate() error {
14956	invalidParams := request.ErrInvalidParams{Context: "StartNotebookExecutionInput"}
14957	if s.EditorId == nil {
14958		invalidParams.Add(request.NewErrParamRequired("EditorId"))
14959	}
14960	if s.ExecutionEngine == nil {
14961		invalidParams.Add(request.NewErrParamRequired("ExecutionEngine"))
14962	}
14963	if s.RelativePath == nil {
14964		invalidParams.Add(request.NewErrParamRequired("RelativePath"))
14965	}
14966	if s.ServiceRole == nil {
14967		invalidParams.Add(request.NewErrParamRequired("ServiceRole"))
14968	}
14969	if s.ExecutionEngine != nil {
14970		if err := s.ExecutionEngine.Validate(); err != nil {
14971			invalidParams.AddNested("ExecutionEngine", err.(request.ErrInvalidParams))
14972		}
14973	}
14974
14975	if invalidParams.Len() > 0 {
14976		return invalidParams
14977	}
14978	return nil
14979}
14980
14981// SetEditorId sets the EditorId field's value.
14982func (s *StartNotebookExecutionInput) SetEditorId(v string) *StartNotebookExecutionInput {
14983	s.EditorId = &v
14984	return s
14985}
14986
14987// SetExecutionEngine sets the ExecutionEngine field's value.
14988func (s *StartNotebookExecutionInput) SetExecutionEngine(v *ExecutionEngineConfig) *StartNotebookExecutionInput {
14989	s.ExecutionEngine = v
14990	return s
14991}
14992
14993// SetNotebookExecutionName sets the NotebookExecutionName field's value.
14994func (s *StartNotebookExecutionInput) SetNotebookExecutionName(v string) *StartNotebookExecutionInput {
14995	s.NotebookExecutionName = &v
14996	return s
14997}
14998
14999// SetNotebookInstanceSecurityGroupId sets the NotebookInstanceSecurityGroupId field's value.
15000func (s *StartNotebookExecutionInput) SetNotebookInstanceSecurityGroupId(v string) *StartNotebookExecutionInput {
15001	s.NotebookInstanceSecurityGroupId = &v
15002	return s
15003}
15004
15005// SetNotebookParams sets the NotebookParams field's value.
15006func (s *StartNotebookExecutionInput) SetNotebookParams(v string) *StartNotebookExecutionInput {
15007	s.NotebookParams = &v
15008	return s
15009}
15010
15011// SetRelativePath sets the RelativePath field's value.
15012func (s *StartNotebookExecutionInput) SetRelativePath(v string) *StartNotebookExecutionInput {
15013	s.RelativePath = &v
15014	return s
15015}
15016
15017// SetServiceRole sets the ServiceRole field's value.
15018func (s *StartNotebookExecutionInput) SetServiceRole(v string) *StartNotebookExecutionInput {
15019	s.ServiceRole = &v
15020	return s
15021}
15022
15023// SetTags sets the Tags field's value.
15024func (s *StartNotebookExecutionInput) SetTags(v []*Tag) *StartNotebookExecutionInput {
15025	s.Tags = v
15026	return s
15027}
15028
15029type StartNotebookExecutionOutput struct {
15030	_ struct{} `type:"structure"`
15031
15032	// The unique identifier of the notebook execution.
15033	NotebookExecutionId *string `type:"string"`
15034}
15035
15036// String returns the string representation
15037func (s StartNotebookExecutionOutput) String() string {
15038	return awsutil.Prettify(s)
15039}
15040
15041// GoString returns the string representation
15042func (s StartNotebookExecutionOutput) GoString() string {
15043	return s.String()
15044}
15045
15046// SetNotebookExecutionId sets the NotebookExecutionId field's value.
15047func (s *StartNotebookExecutionOutput) SetNotebookExecutionId(v string) *StartNotebookExecutionOutput {
15048	s.NotebookExecutionId = &v
15049	return s
15050}
15051
15052// This represents a step in a cluster.
15053type Step struct {
15054	_ struct{} `type:"structure"`
15055
15056	// The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER,
15057	// CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is provided for backward
15058	// compatibility. We recommend using TERMINATE_CLUSTER instead.
15059	//
15060	// If a cluster's StepConcurrencyLevel is greater than 1, do not use AddJobFlowSteps
15061	// to submit a step with this parameter set to CANCEL_AND_WAIT or TERMINATE_CLUSTER.
15062	// The step is not submitted and the action fails with a message that the ActionOnFailure
15063	// setting is not valid.
15064	//
15065	// If you change a cluster's StepConcurrencyLevel to be greater than 1 while
15066	// a step is running, the ActionOnFailure parameter may not behave as you expect.
15067	// In this case, for a step that fails with this parameter set to CANCEL_AND_WAIT,
15068	// pending steps and the running step are not canceled; for a step that fails
15069	// with this parameter set to TERMINATE_CLUSTER, the cluster does not terminate.
15070	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
15071
15072	// The Hadoop job configuration of the cluster step.
15073	Config *HadoopStepConfig `type:"structure"`
15074
15075	// The identifier of the cluster step.
15076	Id *string `type:"string"`
15077
15078	// The name of the cluster step.
15079	Name *string `type:"string"`
15080
15081	// The current execution status details of the cluster step.
15082	Status *StepStatus `type:"structure"`
15083}
15084
15085// String returns the string representation
15086func (s Step) String() string {
15087	return awsutil.Prettify(s)
15088}
15089
15090// GoString returns the string representation
15091func (s Step) GoString() string {
15092	return s.String()
15093}
15094
15095// SetActionOnFailure sets the ActionOnFailure field's value.
15096func (s *Step) SetActionOnFailure(v string) *Step {
15097	s.ActionOnFailure = &v
15098	return s
15099}
15100
15101// SetConfig sets the Config field's value.
15102func (s *Step) SetConfig(v *HadoopStepConfig) *Step {
15103	s.Config = v
15104	return s
15105}
15106
15107// SetId sets the Id field's value.
15108func (s *Step) SetId(v string) *Step {
15109	s.Id = &v
15110	return s
15111}
15112
15113// SetName sets the Name field's value.
15114func (s *Step) SetName(v string) *Step {
15115	s.Name = &v
15116	return s
15117}
15118
15119// SetStatus sets the Status field's value.
15120func (s *Step) SetStatus(v *StepStatus) *Step {
15121	s.Status = v
15122	return s
15123}
15124
15125// Specification for a cluster (job flow) step.
15126type StepConfig struct {
15127	_ struct{} `type:"structure"`
15128
15129	// The action to take when the step fails. Use one of the following values:
15130	//
15131	//    * TERMINATE_CLUSTER - Shuts down the cluster.
15132	//
15133	//    * CANCEL_AND_WAIT - Cancels any pending steps and returns the cluster
15134	//    to the WAITING state.
15135	//
15136	//    * CONTINUE - Continues to the next step in the queue.
15137	//
15138	//    * TERMINATE_JOB_FLOW - Shuts down the cluster. TERMINATE_JOB_FLOW is provided
15139	//    for backward compatibility. We recommend using TERMINATE_CLUSTER instead.
15140	//
15141	// If a cluster's StepConcurrencyLevel is greater than 1, do not use AddJobFlowSteps
15142	// to submit a step with this parameter set to CANCEL_AND_WAIT or TERMINATE_CLUSTER.
15143	// The step is not submitted and the action fails with a message that the ActionOnFailure
15144	// setting is not valid.
15145	//
15146	// If you change a cluster's StepConcurrencyLevel to be greater than 1 while
15147	// a step is running, the ActionOnFailure parameter may not behave as you expect.
15148	// In this case, for a step that fails with this parameter set to CANCEL_AND_WAIT,
15149	// pending steps and the running step are not canceled; for a step that fails
15150	// with this parameter set to TERMINATE_CLUSTER, the cluster does not terminate.
15151	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
15152
15153	// The JAR file used for the step.
15154	//
15155	// HadoopJarStep is a required field
15156	HadoopJarStep *HadoopJarStepConfig `type:"structure" required:"true"`
15157
15158	// The name of the step.
15159	//
15160	// Name is a required field
15161	Name *string `type:"string" required:"true"`
15162}
15163
15164// String returns the string representation
15165func (s StepConfig) String() string {
15166	return awsutil.Prettify(s)
15167}
15168
15169// GoString returns the string representation
15170func (s StepConfig) GoString() string {
15171	return s.String()
15172}
15173
15174// Validate inspects the fields of the type to determine if they are valid.
15175func (s *StepConfig) Validate() error {
15176	invalidParams := request.ErrInvalidParams{Context: "StepConfig"}
15177	if s.HadoopJarStep == nil {
15178		invalidParams.Add(request.NewErrParamRequired("HadoopJarStep"))
15179	}
15180	if s.Name == nil {
15181		invalidParams.Add(request.NewErrParamRequired("Name"))
15182	}
15183	if s.HadoopJarStep != nil {
15184		if err := s.HadoopJarStep.Validate(); err != nil {
15185			invalidParams.AddNested("HadoopJarStep", err.(request.ErrInvalidParams))
15186		}
15187	}
15188
15189	if invalidParams.Len() > 0 {
15190		return invalidParams
15191	}
15192	return nil
15193}
15194
15195// SetActionOnFailure sets the ActionOnFailure field's value.
15196func (s *StepConfig) SetActionOnFailure(v string) *StepConfig {
15197	s.ActionOnFailure = &v
15198	return s
15199}
15200
15201// SetHadoopJarStep sets the HadoopJarStep field's value.
15202func (s *StepConfig) SetHadoopJarStep(v *HadoopJarStepConfig) *StepConfig {
15203	s.HadoopJarStep = v
15204	return s
15205}
15206
15207// SetName sets the Name field's value.
15208func (s *StepConfig) SetName(v string) *StepConfig {
15209	s.Name = &v
15210	return s
15211}
15212
15213// Combines the execution state and configuration of a step.
15214type StepDetail struct {
15215	_ struct{} `type:"structure"`
15216
15217	// The description of the step status.
15218	//
15219	// ExecutionStatusDetail is a required field
15220	ExecutionStatusDetail *StepExecutionStatusDetail `type:"structure" required:"true"`
15221
15222	// The step configuration.
15223	//
15224	// StepConfig is a required field
15225	StepConfig *StepConfig `type:"structure" required:"true"`
15226}
15227
15228// String returns the string representation
15229func (s StepDetail) String() string {
15230	return awsutil.Prettify(s)
15231}
15232
15233// GoString returns the string representation
15234func (s StepDetail) GoString() string {
15235	return s.String()
15236}
15237
15238// SetExecutionStatusDetail sets the ExecutionStatusDetail field's value.
15239func (s *StepDetail) SetExecutionStatusDetail(v *StepExecutionStatusDetail) *StepDetail {
15240	s.ExecutionStatusDetail = v
15241	return s
15242}
15243
15244// SetStepConfig sets the StepConfig field's value.
15245func (s *StepDetail) SetStepConfig(v *StepConfig) *StepDetail {
15246	s.StepConfig = v
15247	return s
15248}
15249
15250// The execution state of a step.
15251type StepExecutionStatusDetail struct {
15252	_ struct{} `type:"structure"`
15253
15254	// The creation date and time of the step.
15255	//
15256	// CreationDateTime is a required field
15257	CreationDateTime *time.Time `type:"timestamp" required:"true"`
15258
15259	// The completion date and time of the step.
15260	EndDateTime *time.Time `type:"timestamp"`
15261
15262	// A description of the step's current state.
15263	LastStateChangeReason *string `type:"string"`
15264
15265	// The start date and time of the step.
15266	StartDateTime *time.Time `type:"timestamp"`
15267
15268	// The state of the step.
15269	//
15270	// State is a required field
15271	State *string `type:"string" required:"true" enum:"StepExecutionState"`
15272}
15273
15274// String returns the string representation
15275func (s StepExecutionStatusDetail) String() string {
15276	return awsutil.Prettify(s)
15277}
15278
15279// GoString returns the string representation
15280func (s StepExecutionStatusDetail) GoString() string {
15281	return s.String()
15282}
15283
15284// SetCreationDateTime sets the CreationDateTime field's value.
15285func (s *StepExecutionStatusDetail) SetCreationDateTime(v time.Time) *StepExecutionStatusDetail {
15286	s.CreationDateTime = &v
15287	return s
15288}
15289
15290// SetEndDateTime sets the EndDateTime field's value.
15291func (s *StepExecutionStatusDetail) SetEndDateTime(v time.Time) *StepExecutionStatusDetail {
15292	s.EndDateTime = &v
15293	return s
15294}
15295
15296// SetLastStateChangeReason sets the LastStateChangeReason field's value.
15297func (s *StepExecutionStatusDetail) SetLastStateChangeReason(v string) *StepExecutionStatusDetail {
15298	s.LastStateChangeReason = &v
15299	return s
15300}
15301
15302// SetStartDateTime sets the StartDateTime field's value.
15303func (s *StepExecutionStatusDetail) SetStartDateTime(v time.Time) *StepExecutionStatusDetail {
15304	s.StartDateTime = &v
15305	return s
15306}
15307
15308// SetState sets the State field's value.
15309func (s *StepExecutionStatusDetail) SetState(v string) *StepExecutionStatusDetail {
15310	s.State = &v
15311	return s
15312}
15313
15314// The details of the step state change reason.
15315type StepStateChangeReason struct {
15316	_ struct{} `type:"structure"`
15317
15318	// The programmable code for the state change reason. Note: Currently, the service
15319	// provides no code for the state change.
15320	Code *string `type:"string" enum:"StepStateChangeReasonCode"`
15321
15322	// The descriptive message for the state change reason.
15323	Message *string `type:"string"`
15324}
15325
15326// String returns the string representation
15327func (s StepStateChangeReason) String() string {
15328	return awsutil.Prettify(s)
15329}
15330
15331// GoString returns the string representation
15332func (s StepStateChangeReason) GoString() string {
15333	return s.String()
15334}
15335
15336// SetCode sets the Code field's value.
15337func (s *StepStateChangeReason) SetCode(v string) *StepStateChangeReason {
15338	s.Code = &v
15339	return s
15340}
15341
15342// SetMessage sets the Message field's value.
15343func (s *StepStateChangeReason) SetMessage(v string) *StepStateChangeReason {
15344	s.Message = &v
15345	return s
15346}
15347
15348// The execution status details of the cluster step.
15349type StepStatus struct {
15350	_ struct{} `type:"structure"`
15351
15352	// The details for the step failure including reason, message, and log file
15353	// path where the root cause was identified.
15354	FailureDetails *FailureDetails `type:"structure"`
15355
15356	// The execution state of the cluster step.
15357	State *string `type:"string" enum:"StepState"`
15358
15359	// The reason for the step execution status change.
15360	StateChangeReason *StepStateChangeReason `type:"structure"`
15361
15362	// The timeline of the cluster step status over time.
15363	Timeline *StepTimeline `type:"structure"`
15364}
15365
15366// String returns the string representation
15367func (s StepStatus) String() string {
15368	return awsutil.Prettify(s)
15369}
15370
15371// GoString returns the string representation
15372func (s StepStatus) GoString() string {
15373	return s.String()
15374}
15375
15376// SetFailureDetails sets the FailureDetails field's value.
15377func (s *StepStatus) SetFailureDetails(v *FailureDetails) *StepStatus {
15378	s.FailureDetails = v
15379	return s
15380}
15381
15382// SetState sets the State field's value.
15383func (s *StepStatus) SetState(v string) *StepStatus {
15384	s.State = &v
15385	return s
15386}
15387
15388// SetStateChangeReason sets the StateChangeReason field's value.
15389func (s *StepStatus) SetStateChangeReason(v *StepStateChangeReason) *StepStatus {
15390	s.StateChangeReason = v
15391	return s
15392}
15393
15394// SetTimeline sets the Timeline field's value.
15395func (s *StepStatus) SetTimeline(v *StepTimeline) *StepStatus {
15396	s.Timeline = v
15397	return s
15398}
15399
15400// The summary of the cluster step.
15401type StepSummary struct {
15402	_ struct{} `type:"structure"`
15403
15404	// The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER,
15405	// CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is available for backward
15406	// compatibility.
15407	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
15408
15409	// The Hadoop job configuration of the cluster step.
15410	Config *HadoopStepConfig `type:"structure"`
15411
15412	// The identifier of the cluster step.
15413	Id *string `type:"string"`
15414
15415	// The name of the cluster step.
15416	Name *string `type:"string"`
15417
15418	// The current execution status details of the cluster step.
15419	Status *StepStatus `type:"structure"`
15420}
15421
15422// String returns the string representation
15423func (s StepSummary) String() string {
15424	return awsutil.Prettify(s)
15425}
15426
15427// GoString returns the string representation
15428func (s StepSummary) GoString() string {
15429	return s.String()
15430}
15431
15432// SetActionOnFailure sets the ActionOnFailure field's value.
15433func (s *StepSummary) SetActionOnFailure(v string) *StepSummary {
15434	s.ActionOnFailure = &v
15435	return s
15436}
15437
15438// SetConfig sets the Config field's value.
15439func (s *StepSummary) SetConfig(v *HadoopStepConfig) *StepSummary {
15440	s.Config = v
15441	return s
15442}
15443
15444// SetId sets the Id field's value.
15445func (s *StepSummary) SetId(v string) *StepSummary {
15446	s.Id = &v
15447	return s
15448}
15449
15450// SetName sets the Name field's value.
15451func (s *StepSummary) SetName(v string) *StepSummary {
15452	s.Name = &v
15453	return s
15454}
15455
15456// SetStatus sets the Status field's value.
15457func (s *StepSummary) SetStatus(v *StepStatus) *StepSummary {
15458	s.Status = v
15459	return s
15460}
15461
15462// The timeline of the cluster step lifecycle.
15463type StepTimeline struct {
15464	_ struct{} `type:"structure"`
15465
15466	// The date and time when the cluster step was created.
15467	CreationDateTime *time.Time `type:"timestamp"`
15468
15469	// The date and time when the cluster step execution completed or failed.
15470	EndDateTime *time.Time `type:"timestamp"`
15471
15472	// The date and time when the cluster step execution started.
15473	StartDateTime *time.Time `type:"timestamp"`
15474}
15475
15476// String returns the string representation
15477func (s StepTimeline) String() string {
15478	return awsutil.Prettify(s)
15479}
15480
15481// GoString returns the string representation
15482func (s StepTimeline) GoString() string {
15483	return s.String()
15484}
15485
15486// SetCreationDateTime sets the CreationDateTime field's value.
15487func (s *StepTimeline) SetCreationDateTime(v time.Time) *StepTimeline {
15488	s.CreationDateTime = &v
15489	return s
15490}
15491
15492// SetEndDateTime sets the EndDateTime field's value.
15493func (s *StepTimeline) SetEndDateTime(v time.Time) *StepTimeline {
15494	s.EndDateTime = &v
15495	return s
15496}
15497
15498// SetStartDateTime sets the StartDateTime field's value.
15499func (s *StepTimeline) SetStartDateTime(v time.Time) *StepTimeline {
15500	s.StartDateTime = &v
15501	return s
15502}
15503
15504type StopNotebookExecutionInput struct {
15505	_ struct{} `type:"structure"`
15506
15507	// The unique identifier of the notebook execution.
15508	//
15509	// NotebookExecutionId is a required field
15510	NotebookExecutionId *string `type:"string" required:"true"`
15511}
15512
15513// String returns the string representation
15514func (s StopNotebookExecutionInput) String() string {
15515	return awsutil.Prettify(s)
15516}
15517
15518// GoString returns the string representation
15519func (s StopNotebookExecutionInput) GoString() string {
15520	return s.String()
15521}
15522
15523// Validate inspects the fields of the type to determine if they are valid.
15524func (s *StopNotebookExecutionInput) Validate() error {
15525	invalidParams := request.ErrInvalidParams{Context: "StopNotebookExecutionInput"}
15526	if s.NotebookExecutionId == nil {
15527		invalidParams.Add(request.NewErrParamRequired("NotebookExecutionId"))
15528	}
15529
15530	if invalidParams.Len() > 0 {
15531		return invalidParams
15532	}
15533	return nil
15534}
15535
15536// SetNotebookExecutionId sets the NotebookExecutionId field's value.
15537func (s *StopNotebookExecutionInput) SetNotebookExecutionId(v string) *StopNotebookExecutionInput {
15538	s.NotebookExecutionId = &v
15539	return s
15540}
15541
15542type StopNotebookExecutionOutput struct {
15543	_ struct{} `type:"structure"`
15544}
15545
15546// String returns the string representation
15547func (s StopNotebookExecutionOutput) String() string {
15548	return awsutil.Prettify(s)
15549}
15550
15551// GoString returns the string representation
15552func (s StopNotebookExecutionOutput) GoString() string {
15553	return s.String()
15554}
15555
15556// Details for an Amazon EMR Studio including ID, creation time, name, and so
15557// on.
15558type Studio struct {
15559	_ struct{} `type:"structure"`
15560
15561	// Specifies whether the Amazon EMR Studio authenticates users using single
15562	// sign-on (SSO) or IAM.
15563	AuthMode *string `type:"string" enum:"AuthMode"`
15564
15565	// The time the Amazon EMR Studio was created.
15566	CreationTime *time.Time `type:"timestamp"`
15567
15568	// The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook
15569	// files.
15570	DefaultS3Location *string `type:"string"`
15571
15572	// The detailed description of the Amazon EMR Studio.
15573	Description *string `type:"string"`
15574
15575	// The ID of the Engine security group associated with the Amazon EMR Studio.
15576	// The Engine security group allows inbound network traffic from resources in
15577	// the Workspace security group.
15578	EngineSecurityGroupId *string `type:"string"`
15579
15580	// The name of the Amazon EMR Studio.
15581	Name *string `type:"string"`
15582
15583	// The name of the IAM role assumed by the Amazon EMR Studio.
15584	ServiceRole *string `type:"string"`
15585
15586	// The Amazon Resource Name (ARN) of the Amazon EMR Studio.
15587	StudioArn *string `type:"string"`
15588
15589	// The ID of the Amazon EMR Studio.
15590	StudioId *string `type:"string"`
15591
15592	// The list of IDs of the subnets associated with the Amazon EMR Studio.
15593	SubnetIds []*string `type:"list"`
15594
15595	// A list of tags associated with the Amazon EMR Studio.
15596	Tags []*Tag `type:"list"`
15597
15598	// The unique access URL of the Amazon EMR Studio.
15599	Url *string `type:"string"`
15600
15601	// The name of the IAM role assumed by users logged in to the Amazon EMR Studio.
15602	UserRole *string `type:"string"`
15603
15604	// The ID of the VPC associated with the Amazon EMR Studio.
15605	VpcId *string `type:"string"`
15606
15607	// The ID of the Workspace security group associated with the Amazon EMR Studio.
15608	// The Workspace security group allows outbound network traffic to resources
15609	// in the Engine security group and to the internet.
15610	WorkspaceSecurityGroupId *string `type:"string"`
15611}
15612
15613// String returns the string representation
15614func (s Studio) String() string {
15615	return awsutil.Prettify(s)
15616}
15617
15618// GoString returns the string representation
15619func (s Studio) GoString() string {
15620	return s.String()
15621}
15622
15623// SetAuthMode sets the AuthMode field's value.
15624func (s *Studio) SetAuthMode(v string) *Studio {
15625	s.AuthMode = &v
15626	return s
15627}
15628
15629// SetCreationTime sets the CreationTime field's value.
15630func (s *Studio) SetCreationTime(v time.Time) *Studio {
15631	s.CreationTime = &v
15632	return s
15633}
15634
15635// SetDefaultS3Location sets the DefaultS3Location field's value.
15636func (s *Studio) SetDefaultS3Location(v string) *Studio {
15637	s.DefaultS3Location = &v
15638	return s
15639}
15640
15641// SetDescription sets the Description field's value.
15642func (s *Studio) SetDescription(v string) *Studio {
15643	s.Description = &v
15644	return s
15645}
15646
15647// SetEngineSecurityGroupId sets the EngineSecurityGroupId field's value.
15648func (s *Studio) SetEngineSecurityGroupId(v string) *Studio {
15649	s.EngineSecurityGroupId = &v
15650	return s
15651}
15652
15653// SetName sets the Name field's value.
15654func (s *Studio) SetName(v string) *Studio {
15655	s.Name = &v
15656	return s
15657}
15658
15659// SetServiceRole sets the ServiceRole field's value.
15660func (s *Studio) SetServiceRole(v string) *Studio {
15661	s.ServiceRole = &v
15662	return s
15663}
15664
15665// SetStudioArn sets the StudioArn field's value.
15666func (s *Studio) SetStudioArn(v string) *Studio {
15667	s.StudioArn = &v
15668	return s
15669}
15670
15671// SetStudioId sets the StudioId field's value.
15672func (s *Studio) SetStudioId(v string) *Studio {
15673	s.StudioId = &v
15674	return s
15675}
15676
15677// SetSubnetIds sets the SubnetIds field's value.
15678func (s *Studio) SetSubnetIds(v []*string) *Studio {
15679	s.SubnetIds = v
15680	return s
15681}
15682
15683// SetTags sets the Tags field's value.
15684func (s *Studio) SetTags(v []*Tag) *Studio {
15685	s.Tags = v
15686	return s
15687}
15688
15689// SetUrl sets the Url field's value.
15690func (s *Studio) SetUrl(v string) *Studio {
15691	s.Url = &v
15692	return s
15693}
15694
15695// SetUserRole sets the UserRole field's value.
15696func (s *Studio) SetUserRole(v string) *Studio {
15697	s.UserRole = &v
15698	return s
15699}
15700
15701// SetVpcId sets the VpcId field's value.
15702func (s *Studio) SetVpcId(v string) *Studio {
15703	s.VpcId = &v
15704	return s
15705}
15706
15707// SetWorkspaceSecurityGroupId sets the WorkspaceSecurityGroupId field's value.
15708func (s *Studio) SetWorkspaceSecurityGroupId(v string) *Studio {
15709	s.WorkspaceSecurityGroupId = &v
15710	return s
15711}
15712
15713// Details for an Amazon EMR Studio, including ID, Name, VPC, and Description.
15714// The details do not include subnets, IAM roles, security groups, or tags associated
15715// with the Studio.
15716type StudioSummary struct {
15717	_ struct{} `type:"structure"`
15718
15719	// The time when the Amazon EMR Studio was created.
15720	CreationTime *time.Time `type:"timestamp"`
15721
15722	// The detailed description of the Amazon EMR Studio.
15723	Description *string `type:"string"`
15724
15725	// The name of the Amazon EMR Studio.
15726	Name *string `type:"string"`
15727
15728	// The ID of the Amazon EMR Studio.
15729	StudioId *string `type:"string"`
15730
15731	// The unique access URL of the Amazon EMR Studio.
15732	Url *string `type:"string"`
15733
15734	// The ID of the Virtual Private Cloud (Amazon VPC) associated with the Amazon
15735	// EMR Studio.
15736	VpcId *string `type:"string"`
15737}
15738
15739// String returns the string representation
15740func (s StudioSummary) String() string {
15741	return awsutil.Prettify(s)
15742}
15743
15744// GoString returns the string representation
15745func (s StudioSummary) GoString() string {
15746	return s.String()
15747}
15748
15749// SetCreationTime sets the CreationTime field's value.
15750func (s *StudioSummary) SetCreationTime(v time.Time) *StudioSummary {
15751	s.CreationTime = &v
15752	return s
15753}
15754
15755// SetDescription sets the Description field's value.
15756func (s *StudioSummary) SetDescription(v string) *StudioSummary {
15757	s.Description = &v
15758	return s
15759}
15760
15761// SetName sets the Name field's value.
15762func (s *StudioSummary) SetName(v string) *StudioSummary {
15763	s.Name = &v
15764	return s
15765}
15766
15767// SetStudioId sets the StudioId field's value.
15768func (s *StudioSummary) SetStudioId(v string) *StudioSummary {
15769	s.StudioId = &v
15770	return s
15771}
15772
15773// SetUrl sets the Url field's value.
15774func (s *StudioSummary) SetUrl(v string) *StudioSummary {
15775	s.Url = &v
15776	return s
15777}
15778
15779// SetVpcId sets the VpcId field's value.
15780func (s *StudioSummary) SetVpcId(v string) *StudioSummary {
15781	s.VpcId = &v
15782	return s
15783}
15784
15785// The list of supported product configurations that allow user-supplied arguments.
15786// EMR accepts these arguments and forwards them to the corresponding installation
15787// script as bootstrap action arguments.
15788type SupportedProductConfig struct {
15789	_ struct{} `type:"structure"`
15790
15791	// The list of user-supplied arguments.
15792	Args []*string `type:"list"`
15793
15794	// The name of the product configuration.
15795	Name *string `type:"string"`
15796}
15797
15798// String returns the string representation
15799func (s SupportedProductConfig) String() string {
15800	return awsutil.Prettify(s)
15801}
15802
15803// GoString returns the string representation
15804func (s SupportedProductConfig) GoString() string {
15805	return s.String()
15806}
15807
15808// SetArgs sets the Args field's value.
15809func (s *SupportedProductConfig) SetArgs(v []*string) *SupportedProductConfig {
15810	s.Args = v
15811	return s
15812}
15813
15814// SetName sets the Name field's value.
15815func (s *SupportedProductConfig) SetName(v string) *SupportedProductConfig {
15816	s.Name = &v
15817	return s
15818}
15819
15820// A key-value pair containing user-defined metadata that you can associate
15821// with an Amazon EMR resource. Tags make it easier to associate clusters in
15822// various ways, such as grouping clusters to track your Amazon EMR resource
15823// allocation costs. For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
15824type Tag struct {
15825	_ struct{} `type:"structure"`
15826
15827	// A user-defined key, which is the minimum required information for a valid
15828	// tag. For more information, see Tag (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
15829	Key *string `type:"string"`
15830
15831	// A user-defined value, which is optional in a tag. For more information, see
15832	// Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
15833	Value *string `type:"string"`
15834}
15835
15836// String returns the string representation
15837func (s Tag) String() string {
15838	return awsutil.Prettify(s)
15839}
15840
15841// GoString returns the string representation
15842func (s Tag) GoString() string {
15843	return s.String()
15844}
15845
15846// SetKey sets the Key field's value.
15847func (s *Tag) SetKey(v string) *Tag {
15848	s.Key = &v
15849	return s
15850}
15851
15852// SetValue sets the Value field's value.
15853func (s *Tag) SetValue(v string) *Tag {
15854	s.Value = &v
15855	return s
15856}
15857
15858// Input to the TerminateJobFlows operation.
15859type TerminateJobFlowsInput struct {
15860	_ struct{} `type:"structure"`
15861
15862	// A list of job flows to be shut down.
15863	//
15864	// JobFlowIds is a required field
15865	JobFlowIds []*string `type:"list" required:"true"`
15866}
15867
15868// String returns the string representation
15869func (s TerminateJobFlowsInput) String() string {
15870	return awsutil.Prettify(s)
15871}
15872
15873// GoString returns the string representation
15874func (s TerminateJobFlowsInput) GoString() string {
15875	return s.String()
15876}
15877
15878// Validate inspects the fields of the type to determine if they are valid.
15879func (s *TerminateJobFlowsInput) Validate() error {
15880	invalidParams := request.ErrInvalidParams{Context: "TerminateJobFlowsInput"}
15881	if s.JobFlowIds == nil {
15882		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
15883	}
15884
15885	if invalidParams.Len() > 0 {
15886		return invalidParams
15887	}
15888	return nil
15889}
15890
15891// SetJobFlowIds sets the JobFlowIds field's value.
15892func (s *TerminateJobFlowsInput) SetJobFlowIds(v []*string) *TerminateJobFlowsInput {
15893	s.JobFlowIds = v
15894	return s
15895}
15896
15897type TerminateJobFlowsOutput struct {
15898	_ struct{} `type:"structure"`
15899}
15900
15901// String returns the string representation
15902func (s TerminateJobFlowsOutput) String() string {
15903	return awsutil.Prettify(s)
15904}
15905
15906// GoString returns the string representation
15907func (s TerminateJobFlowsOutput) GoString() string {
15908	return s.String()
15909}
15910
15911type UpdateStudioInput struct {
15912	_ struct{} `type:"structure"`
15913
15914	// The Amazon S3 location to back up Workspaces and notebook files for the Amazon
15915	// EMR Studio.
15916	DefaultS3Location *string `type:"string"`
15917
15918	// A detailed description to assign to the Amazon EMR Studio.
15919	Description *string `type:"string"`
15920
15921	// A descriptive name for the Amazon EMR Studio.
15922	Name *string `type:"string"`
15923
15924	// The ID of the Amazon EMR Studio to update.
15925	//
15926	// StudioId is a required field
15927	StudioId *string `type:"string" required:"true"`
15928
15929	// A list of subnet IDs to associate with the Amazon EMR Studio. The list can
15930	// include new subnet IDs, but must also include all of the subnet IDs previously
15931	// associated with the Studio. The list order does not matter. A Studio can
15932	// have a maximum of 5 subnets. The subnets must belong to the same VPC as the
15933	// Studio.
15934	SubnetIds []*string `type:"list"`
15935}
15936
15937// String returns the string representation
15938func (s UpdateStudioInput) String() string {
15939	return awsutil.Prettify(s)
15940}
15941
15942// GoString returns the string representation
15943func (s UpdateStudioInput) GoString() string {
15944	return s.String()
15945}
15946
15947// Validate inspects the fields of the type to determine if they are valid.
15948func (s *UpdateStudioInput) Validate() error {
15949	invalidParams := request.ErrInvalidParams{Context: "UpdateStudioInput"}
15950	if s.StudioId == nil {
15951		invalidParams.Add(request.NewErrParamRequired("StudioId"))
15952	}
15953
15954	if invalidParams.Len() > 0 {
15955		return invalidParams
15956	}
15957	return nil
15958}
15959
15960// SetDefaultS3Location sets the DefaultS3Location field's value.
15961func (s *UpdateStudioInput) SetDefaultS3Location(v string) *UpdateStudioInput {
15962	s.DefaultS3Location = &v
15963	return s
15964}
15965
15966// SetDescription sets the Description field's value.
15967func (s *UpdateStudioInput) SetDescription(v string) *UpdateStudioInput {
15968	s.Description = &v
15969	return s
15970}
15971
15972// SetName sets the Name field's value.
15973func (s *UpdateStudioInput) SetName(v string) *UpdateStudioInput {
15974	s.Name = &v
15975	return s
15976}
15977
15978// SetStudioId sets the StudioId field's value.
15979func (s *UpdateStudioInput) SetStudioId(v string) *UpdateStudioInput {
15980	s.StudioId = &v
15981	return s
15982}
15983
15984// SetSubnetIds sets the SubnetIds field's value.
15985func (s *UpdateStudioInput) SetSubnetIds(v []*string) *UpdateStudioInput {
15986	s.SubnetIds = v
15987	return s
15988}
15989
15990type UpdateStudioOutput struct {
15991	_ struct{} `type:"structure"`
15992}
15993
15994// String returns the string representation
15995func (s UpdateStudioOutput) String() string {
15996	return awsutil.Prettify(s)
15997}
15998
15999// GoString returns the string representation
16000func (s UpdateStudioOutput) GoString() string {
16001	return s.String()
16002}
16003
16004type UpdateStudioSessionMappingInput struct {
16005	_ struct{} `type:"structure"`
16006
16007	// The globally unique identifier (GUID) of the user or group. For more information,
16008	// see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
16009	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
16010	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
16011	// or IdentityId must be specified.
16012	IdentityId *string `type:"string"`
16013
16014	// The name of the user or group to update. For more information, see UserName
16015	// (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
16016	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
16017	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
16018	// or IdentityId must be specified.
16019	IdentityName *string `type:"string"`
16020
16021	// Specifies whether the identity to update is a user or a group.
16022	//
16023	// IdentityType is a required field
16024	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
16025
16026	// The Amazon Resource Name (ARN) of the session policy to associate with the
16027	// specified user or group.
16028	//
16029	// SessionPolicyArn is a required field
16030	SessionPolicyArn *string `type:"string" required:"true"`
16031
16032	// The ID of the Amazon EMR Studio.
16033	//
16034	// StudioId is a required field
16035	StudioId *string `type:"string" required:"true"`
16036}
16037
16038// String returns the string representation
16039func (s UpdateStudioSessionMappingInput) String() string {
16040	return awsutil.Prettify(s)
16041}
16042
16043// GoString returns the string representation
16044func (s UpdateStudioSessionMappingInput) GoString() string {
16045	return s.String()
16046}
16047
16048// Validate inspects the fields of the type to determine if they are valid.
16049func (s *UpdateStudioSessionMappingInput) Validate() error {
16050	invalidParams := request.ErrInvalidParams{Context: "UpdateStudioSessionMappingInput"}
16051	if s.IdentityType == nil {
16052		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
16053	}
16054	if s.SessionPolicyArn == nil {
16055		invalidParams.Add(request.NewErrParamRequired("SessionPolicyArn"))
16056	}
16057	if s.StudioId == nil {
16058		invalidParams.Add(request.NewErrParamRequired("StudioId"))
16059	}
16060
16061	if invalidParams.Len() > 0 {
16062		return invalidParams
16063	}
16064	return nil
16065}
16066
16067// SetIdentityId sets the IdentityId field's value.
16068func (s *UpdateStudioSessionMappingInput) SetIdentityId(v string) *UpdateStudioSessionMappingInput {
16069	s.IdentityId = &v
16070	return s
16071}
16072
16073// SetIdentityName sets the IdentityName field's value.
16074func (s *UpdateStudioSessionMappingInput) SetIdentityName(v string) *UpdateStudioSessionMappingInput {
16075	s.IdentityName = &v
16076	return s
16077}
16078
16079// SetIdentityType sets the IdentityType field's value.
16080func (s *UpdateStudioSessionMappingInput) SetIdentityType(v string) *UpdateStudioSessionMappingInput {
16081	s.IdentityType = &v
16082	return s
16083}
16084
16085// SetSessionPolicyArn sets the SessionPolicyArn field's value.
16086func (s *UpdateStudioSessionMappingInput) SetSessionPolicyArn(v string) *UpdateStudioSessionMappingInput {
16087	s.SessionPolicyArn = &v
16088	return s
16089}
16090
16091// SetStudioId sets the StudioId field's value.
16092func (s *UpdateStudioSessionMappingInput) SetStudioId(v string) *UpdateStudioSessionMappingInput {
16093	s.StudioId = &v
16094	return s
16095}
16096
16097type UpdateStudioSessionMappingOutput struct {
16098	_ struct{} `type:"structure"`
16099}
16100
16101// String returns the string representation
16102func (s UpdateStudioSessionMappingOutput) String() string {
16103	return awsutil.Prettify(s)
16104}
16105
16106// GoString returns the string representation
16107func (s UpdateStudioSessionMappingOutput) GoString() string {
16108	return s.String()
16109}
16110
16111// EBS volume specifications such as volume type, IOPS, and size (GiB) that
16112// will be requested for the EBS volume attached to an EC2 instance in the cluster.
16113type VolumeSpecification struct {
16114	_ struct{} `type:"structure"`
16115
16116	// The number of I/O operations per second (IOPS) that the volume supports.
16117	Iops *int64 `type:"integer"`
16118
16119	// The volume size, in gibibytes (GiB). This can be a number from 1 - 1024.
16120	// If the volume type is EBS-optimized, the minimum value is 10.
16121	//
16122	// SizeInGB is a required field
16123	SizeInGB *int64 `type:"integer" required:"true"`
16124
16125	// The volume type. Volume types supported are gp2, io1, standard.
16126	//
16127	// VolumeType is a required field
16128	VolumeType *string `type:"string" required:"true"`
16129}
16130
16131// String returns the string representation
16132func (s VolumeSpecification) String() string {
16133	return awsutil.Prettify(s)
16134}
16135
16136// GoString returns the string representation
16137func (s VolumeSpecification) GoString() string {
16138	return s.String()
16139}
16140
16141// Validate inspects the fields of the type to determine if they are valid.
16142func (s *VolumeSpecification) Validate() error {
16143	invalidParams := request.ErrInvalidParams{Context: "VolumeSpecification"}
16144	if s.SizeInGB == nil {
16145		invalidParams.Add(request.NewErrParamRequired("SizeInGB"))
16146	}
16147	if s.VolumeType == nil {
16148		invalidParams.Add(request.NewErrParamRequired("VolumeType"))
16149	}
16150
16151	if invalidParams.Len() > 0 {
16152		return invalidParams
16153	}
16154	return nil
16155}
16156
16157// SetIops sets the Iops field's value.
16158func (s *VolumeSpecification) SetIops(v int64) *VolumeSpecification {
16159	s.Iops = &v
16160	return s
16161}
16162
16163// SetSizeInGB sets the SizeInGB field's value.
16164func (s *VolumeSpecification) SetSizeInGB(v int64) *VolumeSpecification {
16165	s.SizeInGB = &v
16166	return s
16167}
16168
16169// SetVolumeType sets the VolumeType field's value.
16170func (s *VolumeSpecification) SetVolumeType(v string) *VolumeSpecification {
16171	s.VolumeType = &v
16172	return s
16173}
16174
16175const (
16176	// ActionOnFailureTerminateJobFlow is a ActionOnFailure enum value
16177	ActionOnFailureTerminateJobFlow = "TERMINATE_JOB_FLOW"
16178
16179	// ActionOnFailureTerminateCluster is a ActionOnFailure enum value
16180	ActionOnFailureTerminateCluster = "TERMINATE_CLUSTER"
16181
16182	// ActionOnFailureCancelAndWait is a ActionOnFailure enum value
16183	ActionOnFailureCancelAndWait = "CANCEL_AND_WAIT"
16184
16185	// ActionOnFailureContinue is a ActionOnFailure enum value
16186	ActionOnFailureContinue = "CONTINUE"
16187)
16188
16189// ActionOnFailure_Values returns all elements of the ActionOnFailure enum
16190func ActionOnFailure_Values() []string {
16191	return []string{
16192		ActionOnFailureTerminateJobFlow,
16193		ActionOnFailureTerminateCluster,
16194		ActionOnFailureCancelAndWait,
16195		ActionOnFailureContinue,
16196	}
16197}
16198
16199const (
16200	// AdjustmentTypeChangeInCapacity is a AdjustmentType enum value
16201	AdjustmentTypeChangeInCapacity = "CHANGE_IN_CAPACITY"
16202
16203	// AdjustmentTypePercentChangeInCapacity is a AdjustmentType enum value
16204	AdjustmentTypePercentChangeInCapacity = "PERCENT_CHANGE_IN_CAPACITY"
16205
16206	// AdjustmentTypeExactCapacity is a AdjustmentType enum value
16207	AdjustmentTypeExactCapacity = "EXACT_CAPACITY"
16208)
16209
16210// AdjustmentType_Values returns all elements of the AdjustmentType enum
16211func AdjustmentType_Values() []string {
16212	return []string{
16213		AdjustmentTypeChangeInCapacity,
16214		AdjustmentTypePercentChangeInCapacity,
16215		AdjustmentTypeExactCapacity,
16216	}
16217}
16218
16219const (
16220	// AuthModeSso is a AuthMode enum value
16221	AuthModeSso = "SSO"
16222
16223	// AuthModeIam is a AuthMode enum value
16224	AuthModeIam = "IAM"
16225)
16226
16227// AuthMode_Values returns all elements of the AuthMode enum
16228func AuthMode_Values() []string {
16229	return []string{
16230		AuthModeSso,
16231		AuthModeIam,
16232	}
16233}
16234
16235const (
16236	// AutoScalingPolicyStatePending is a AutoScalingPolicyState enum value
16237	AutoScalingPolicyStatePending = "PENDING"
16238
16239	// AutoScalingPolicyStateAttaching is a AutoScalingPolicyState enum value
16240	AutoScalingPolicyStateAttaching = "ATTACHING"
16241
16242	// AutoScalingPolicyStateAttached is a AutoScalingPolicyState enum value
16243	AutoScalingPolicyStateAttached = "ATTACHED"
16244
16245	// AutoScalingPolicyStateDetaching is a AutoScalingPolicyState enum value
16246	AutoScalingPolicyStateDetaching = "DETACHING"
16247
16248	// AutoScalingPolicyStateDetached is a AutoScalingPolicyState enum value
16249	AutoScalingPolicyStateDetached = "DETACHED"
16250
16251	// AutoScalingPolicyStateFailed is a AutoScalingPolicyState enum value
16252	AutoScalingPolicyStateFailed = "FAILED"
16253)
16254
16255// AutoScalingPolicyState_Values returns all elements of the AutoScalingPolicyState enum
16256func AutoScalingPolicyState_Values() []string {
16257	return []string{
16258		AutoScalingPolicyStatePending,
16259		AutoScalingPolicyStateAttaching,
16260		AutoScalingPolicyStateAttached,
16261		AutoScalingPolicyStateDetaching,
16262		AutoScalingPolicyStateDetached,
16263		AutoScalingPolicyStateFailed,
16264	}
16265}
16266
16267const (
16268	// AutoScalingPolicyStateChangeReasonCodeUserRequest is a AutoScalingPolicyStateChangeReasonCode enum value
16269	AutoScalingPolicyStateChangeReasonCodeUserRequest = "USER_REQUEST"
16270
16271	// AutoScalingPolicyStateChangeReasonCodeProvisionFailure is a AutoScalingPolicyStateChangeReasonCode enum value
16272	AutoScalingPolicyStateChangeReasonCodeProvisionFailure = "PROVISION_FAILURE"
16273
16274	// AutoScalingPolicyStateChangeReasonCodeCleanupFailure is a AutoScalingPolicyStateChangeReasonCode enum value
16275	AutoScalingPolicyStateChangeReasonCodeCleanupFailure = "CLEANUP_FAILURE"
16276)
16277
16278// AutoScalingPolicyStateChangeReasonCode_Values returns all elements of the AutoScalingPolicyStateChangeReasonCode enum
16279func AutoScalingPolicyStateChangeReasonCode_Values() []string {
16280	return []string{
16281		AutoScalingPolicyStateChangeReasonCodeUserRequest,
16282		AutoScalingPolicyStateChangeReasonCodeProvisionFailure,
16283		AutoScalingPolicyStateChangeReasonCodeCleanupFailure,
16284	}
16285}
16286
16287const (
16288	// CancelStepsRequestStatusSubmitted is a CancelStepsRequestStatus enum value
16289	CancelStepsRequestStatusSubmitted = "SUBMITTED"
16290
16291	// CancelStepsRequestStatusFailed is a CancelStepsRequestStatus enum value
16292	CancelStepsRequestStatusFailed = "FAILED"
16293)
16294
16295// CancelStepsRequestStatus_Values returns all elements of the CancelStepsRequestStatus enum
16296func CancelStepsRequestStatus_Values() []string {
16297	return []string{
16298		CancelStepsRequestStatusSubmitted,
16299		CancelStepsRequestStatusFailed,
16300	}
16301}
16302
16303const (
16304	// ClusterStateStarting is a ClusterState enum value
16305	ClusterStateStarting = "STARTING"
16306
16307	// ClusterStateBootstrapping is a ClusterState enum value
16308	ClusterStateBootstrapping = "BOOTSTRAPPING"
16309
16310	// ClusterStateRunning is a ClusterState enum value
16311	ClusterStateRunning = "RUNNING"
16312
16313	// ClusterStateWaiting is a ClusterState enum value
16314	ClusterStateWaiting = "WAITING"
16315
16316	// ClusterStateTerminating is a ClusterState enum value
16317	ClusterStateTerminating = "TERMINATING"
16318
16319	// ClusterStateTerminated is a ClusterState enum value
16320	ClusterStateTerminated = "TERMINATED"
16321
16322	// ClusterStateTerminatedWithErrors is a ClusterState enum value
16323	ClusterStateTerminatedWithErrors = "TERMINATED_WITH_ERRORS"
16324)
16325
16326// ClusterState_Values returns all elements of the ClusterState enum
16327func ClusterState_Values() []string {
16328	return []string{
16329		ClusterStateStarting,
16330		ClusterStateBootstrapping,
16331		ClusterStateRunning,
16332		ClusterStateWaiting,
16333		ClusterStateTerminating,
16334		ClusterStateTerminated,
16335		ClusterStateTerminatedWithErrors,
16336	}
16337}
16338
16339const (
16340	// ClusterStateChangeReasonCodeInternalError is a ClusterStateChangeReasonCode enum value
16341	ClusterStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
16342
16343	// ClusterStateChangeReasonCodeValidationError is a ClusterStateChangeReasonCode enum value
16344	ClusterStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
16345
16346	// ClusterStateChangeReasonCodeInstanceFailure is a ClusterStateChangeReasonCode enum value
16347	ClusterStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
16348
16349	// ClusterStateChangeReasonCodeInstanceFleetTimeout is a ClusterStateChangeReasonCode enum value
16350	ClusterStateChangeReasonCodeInstanceFleetTimeout = "INSTANCE_FLEET_TIMEOUT"
16351
16352	// ClusterStateChangeReasonCodeBootstrapFailure is a ClusterStateChangeReasonCode enum value
16353	ClusterStateChangeReasonCodeBootstrapFailure = "BOOTSTRAP_FAILURE"
16354
16355	// ClusterStateChangeReasonCodeUserRequest is a ClusterStateChangeReasonCode enum value
16356	ClusterStateChangeReasonCodeUserRequest = "USER_REQUEST"
16357
16358	// ClusterStateChangeReasonCodeStepFailure is a ClusterStateChangeReasonCode enum value
16359	ClusterStateChangeReasonCodeStepFailure = "STEP_FAILURE"
16360
16361	// ClusterStateChangeReasonCodeAllStepsCompleted is a ClusterStateChangeReasonCode enum value
16362	ClusterStateChangeReasonCodeAllStepsCompleted = "ALL_STEPS_COMPLETED"
16363)
16364
16365// ClusterStateChangeReasonCode_Values returns all elements of the ClusterStateChangeReasonCode enum
16366func ClusterStateChangeReasonCode_Values() []string {
16367	return []string{
16368		ClusterStateChangeReasonCodeInternalError,
16369		ClusterStateChangeReasonCodeValidationError,
16370		ClusterStateChangeReasonCodeInstanceFailure,
16371		ClusterStateChangeReasonCodeInstanceFleetTimeout,
16372		ClusterStateChangeReasonCodeBootstrapFailure,
16373		ClusterStateChangeReasonCodeUserRequest,
16374		ClusterStateChangeReasonCodeStepFailure,
16375		ClusterStateChangeReasonCodeAllStepsCompleted,
16376	}
16377}
16378
16379const (
16380	// ComparisonOperatorGreaterThanOrEqual is a ComparisonOperator enum value
16381	ComparisonOperatorGreaterThanOrEqual = "GREATER_THAN_OR_EQUAL"
16382
16383	// ComparisonOperatorGreaterThan is a ComparisonOperator enum value
16384	ComparisonOperatorGreaterThan = "GREATER_THAN"
16385
16386	// ComparisonOperatorLessThan is a ComparisonOperator enum value
16387	ComparisonOperatorLessThan = "LESS_THAN"
16388
16389	// ComparisonOperatorLessThanOrEqual is a ComparisonOperator enum value
16390	ComparisonOperatorLessThanOrEqual = "LESS_THAN_OR_EQUAL"
16391)
16392
16393// ComparisonOperator_Values returns all elements of the ComparisonOperator enum
16394func ComparisonOperator_Values() []string {
16395	return []string{
16396		ComparisonOperatorGreaterThanOrEqual,
16397		ComparisonOperatorGreaterThan,
16398		ComparisonOperatorLessThan,
16399		ComparisonOperatorLessThanOrEqual,
16400	}
16401}
16402
16403const (
16404	// ComputeLimitsUnitTypeInstanceFleetUnits is a ComputeLimitsUnitType enum value
16405	ComputeLimitsUnitTypeInstanceFleetUnits = "InstanceFleetUnits"
16406
16407	// ComputeLimitsUnitTypeInstances is a ComputeLimitsUnitType enum value
16408	ComputeLimitsUnitTypeInstances = "Instances"
16409
16410	// ComputeLimitsUnitTypeVcpu is a ComputeLimitsUnitType enum value
16411	ComputeLimitsUnitTypeVcpu = "VCPU"
16412)
16413
16414// ComputeLimitsUnitType_Values returns all elements of the ComputeLimitsUnitType enum
16415func ComputeLimitsUnitType_Values() []string {
16416	return []string{
16417		ComputeLimitsUnitTypeInstanceFleetUnits,
16418		ComputeLimitsUnitTypeInstances,
16419		ComputeLimitsUnitTypeVcpu,
16420	}
16421}
16422
16423const (
16424	// ExecutionEngineTypeEmr is a ExecutionEngineType enum value
16425	ExecutionEngineTypeEmr = "EMR"
16426)
16427
16428// ExecutionEngineType_Values returns all elements of the ExecutionEngineType enum
16429func ExecutionEngineType_Values() []string {
16430	return []string{
16431		ExecutionEngineTypeEmr,
16432	}
16433}
16434
16435const (
16436	// IdentityTypeUser is a IdentityType enum value
16437	IdentityTypeUser = "USER"
16438
16439	// IdentityTypeGroup is a IdentityType enum value
16440	IdentityTypeGroup = "GROUP"
16441)
16442
16443// IdentityType_Values returns all elements of the IdentityType enum
16444func IdentityType_Values() []string {
16445	return []string{
16446		IdentityTypeUser,
16447		IdentityTypeGroup,
16448	}
16449}
16450
16451const (
16452	// InstanceCollectionTypeInstanceFleet is a InstanceCollectionType enum value
16453	InstanceCollectionTypeInstanceFleet = "INSTANCE_FLEET"
16454
16455	// InstanceCollectionTypeInstanceGroup is a InstanceCollectionType enum value
16456	InstanceCollectionTypeInstanceGroup = "INSTANCE_GROUP"
16457)
16458
16459// InstanceCollectionType_Values returns all elements of the InstanceCollectionType enum
16460func InstanceCollectionType_Values() []string {
16461	return []string{
16462		InstanceCollectionTypeInstanceFleet,
16463		InstanceCollectionTypeInstanceGroup,
16464	}
16465}
16466
16467const (
16468	// InstanceFleetStateProvisioning is a InstanceFleetState enum value
16469	InstanceFleetStateProvisioning = "PROVISIONING"
16470
16471	// InstanceFleetStateBootstrapping is a InstanceFleetState enum value
16472	InstanceFleetStateBootstrapping = "BOOTSTRAPPING"
16473
16474	// InstanceFleetStateRunning is a InstanceFleetState enum value
16475	InstanceFleetStateRunning = "RUNNING"
16476
16477	// InstanceFleetStateResizing is a InstanceFleetState enum value
16478	InstanceFleetStateResizing = "RESIZING"
16479
16480	// InstanceFleetStateSuspended is a InstanceFleetState enum value
16481	InstanceFleetStateSuspended = "SUSPENDED"
16482
16483	// InstanceFleetStateTerminating is a InstanceFleetState enum value
16484	InstanceFleetStateTerminating = "TERMINATING"
16485
16486	// InstanceFleetStateTerminated is a InstanceFleetState enum value
16487	InstanceFleetStateTerminated = "TERMINATED"
16488)
16489
16490// InstanceFleetState_Values returns all elements of the InstanceFleetState enum
16491func InstanceFleetState_Values() []string {
16492	return []string{
16493		InstanceFleetStateProvisioning,
16494		InstanceFleetStateBootstrapping,
16495		InstanceFleetStateRunning,
16496		InstanceFleetStateResizing,
16497		InstanceFleetStateSuspended,
16498		InstanceFleetStateTerminating,
16499		InstanceFleetStateTerminated,
16500	}
16501}
16502
16503const (
16504	// InstanceFleetStateChangeReasonCodeInternalError is a InstanceFleetStateChangeReasonCode enum value
16505	InstanceFleetStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
16506
16507	// InstanceFleetStateChangeReasonCodeValidationError is a InstanceFleetStateChangeReasonCode enum value
16508	InstanceFleetStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
16509
16510	// InstanceFleetStateChangeReasonCodeInstanceFailure is a InstanceFleetStateChangeReasonCode enum value
16511	InstanceFleetStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
16512
16513	// InstanceFleetStateChangeReasonCodeClusterTerminated is a InstanceFleetStateChangeReasonCode enum value
16514	InstanceFleetStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
16515)
16516
16517// InstanceFleetStateChangeReasonCode_Values returns all elements of the InstanceFleetStateChangeReasonCode enum
16518func InstanceFleetStateChangeReasonCode_Values() []string {
16519	return []string{
16520		InstanceFleetStateChangeReasonCodeInternalError,
16521		InstanceFleetStateChangeReasonCodeValidationError,
16522		InstanceFleetStateChangeReasonCodeInstanceFailure,
16523		InstanceFleetStateChangeReasonCodeClusterTerminated,
16524	}
16525}
16526
16527const (
16528	// InstanceFleetTypeMaster is a InstanceFleetType enum value
16529	InstanceFleetTypeMaster = "MASTER"
16530
16531	// InstanceFleetTypeCore is a InstanceFleetType enum value
16532	InstanceFleetTypeCore = "CORE"
16533
16534	// InstanceFleetTypeTask is a InstanceFleetType enum value
16535	InstanceFleetTypeTask = "TASK"
16536)
16537
16538// InstanceFleetType_Values returns all elements of the InstanceFleetType enum
16539func InstanceFleetType_Values() []string {
16540	return []string{
16541		InstanceFleetTypeMaster,
16542		InstanceFleetTypeCore,
16543		InstanceFleetTypeTask,
16544	}
16545}
16546
16547const (
16548	// InstanceGroupStateProvisioning is a InstanceGroupState enum value
16549	InstanceGroupStateProvisioning = "PROVISIONING"
16550
16551	// InstanceGroupStateBootstrapping is a InstanceGroupState enum value
16552	InstanceGroupStateBootstrapping = "BOOTSTRAPPING"
16553
16554	// InstanceGroupStateRunning is a InstanceGroupState enum value
16555	InstanceGroupStateRunning = "RUNNING"
16556
16557	// InstanceGroupStateReconfiguring is a InstanceGroupState enum value
16558	InstanceGroupStateReconfiguring = "RECONFIGURING"
16559
16560	// InstanceGroupStateResizing is a InstanceGroupState enum value
16561	InstanceGroupStateResizing = "RESIZING"
16562
16563	// InstanceGroupStateSuspended is a InstanceGroupState enum value
16564	InstanceGroupStateSuspended = "SUSPENDED"
16565
16566	// InstanceGroupStateTerminating is a InstanceGroupState enum value
16567	InstanceGroupStateTerminating = "TERMINATING"
16568
16569	// InstanceGroupStateTerminated is a InstanceGroupState enum value
16570	InstanceGroupStateTerminated = "TERMINATED"
16571
16572	// InstanceGroupStateArrested is a InstanceGroupState enum value
16573	InstanceGroupStateArrested = "ARRESTED"
16574
16575	// InstanceGroupStateShuttingDown is a InstanceGroupState enum value
16576	InstanceGroupStateShuttingDown = "SHUTTING_DOWN"
16577
16578	// InstanceGroupStateEnded is a InstanceGroupState enum value
16579	InstanceGroupStateEnded = "ENDED"
16580)
16581
16582// InstanceGroupState_Values returns all elements of the InstanceGroupState enum
16583func InstanceGroupState_Values() []string {
16584	return []string{
16585		InstanceGroupStateProvisioning,
16586		InstanceGroupStateBootstrapping,
16587		InstanceGroupStateRunning,
16588		InstanceGroupStateReconfiguring,
16589		InstanceGroupStateResizing,
16590		InstanceGroupStateSuspended,
16591		InstanceGroupStateTerminating,
16592		InstanceGroupStateTerminated,
16593		InstanceGroupStateArrested,
16594		InstanceGroupStateShuttingDown,
16595		InstanceGroupStateEnded,
16596	}
16597}
16598
16599const (
16600	// InstanceGroupStateChangeReasonCodeInternalError is a InstanceGroupStateChangeReasonCode enum value
16601	InstanceGroupStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
16602
16603	// InstanceGroupStateChangeReasonCodeValidationError is a InstanceGroupStateChangeReasonCode enum value
16604	InstanceGroupStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
16605
16606	// InstanceGroupStateChangeReasonCodeInstanceFailure is a InstanceGroupStateChangeReasonCode enum value
16607	InstanceGroupStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
16608
16609	// InstanceGroupStateChangeReasonCodeClusterTerminated is a InstanceGroupStateChangeReasonCode enum value
16610	InstanceGroupStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
16611)
16612
16613// InstanceGroupStateChangeReasonCode_Values returns all elements of the InstanceGroupStateChangeReasonCode enum
16614func InstanceGroupStateChangeReasonCode_Values() []string {
16615	return []string{
16616		InstanceGroupStateChangeReasonCodeInternalError,
16617		InstanceGroupStateChangeReasonCodeValidationError,
16618		InstanceGroupStateChangeReasonCodeInstanceFailure,
16619		InstanceGroupStateChangeReasonCodeClusterTerminated,
16620	}
16621}
16622
16623const (
16624	// InstanceGroupTypeMaster is a InstanceGroupType enum value
16625	InstanceGroupTypeMaster = "MASTER"
16626
16627	// InstanceGroupTypeCore is a InstanceGroupType enum value
16628	InstanceGroupTypeCore = "CORE"
16629
16630	// InstanceGroupTypeTask is a InstanceGroupType enum value
16631	InstanceGroupTypeTask = "TASK"
16632)
16633
16634// InstanceGroupType_Values returns all elements of the InstanceGroupType enum
16635func InstanceGroupType_Values() []string {
16636	return []string{
16637		InstanceGroupTypeMaster,
16638		InstanceGroupTypeCore,
16639		InstanceGroupTypeTask,
16640	}
16641}
16642
16643const (
16644	// InstanceRoleTypeMaster is a InstanceRoleType enum value
16645	InstanceRoleTypeMaster = "MASTER"
16646
16647	// InstanceRoleTypeCore is a InstanceRoleType enum value
16648	InstanceRoleTypeCore = "CORE"
16649
16650	// InstanceRoleTypeTask is a InstanceRoleType enum value
16651	InstanceRoleTypeTask = "TASK"
16652)
16653
16654// InstanceRoleType_Values returns all elements of the InstanceRoleType enum
16655func InstanceRoleType_Values() []string {
16656	return []string{
16657		InstanceRoleTypeMaster,
16658		InstanceRoleTypeCore,
16659		InstanceRoleTypeTask,
16660	}
16661}
16662
16663const (
16664	// InstanceStateAwaitingFulfillment is a InstanceState enum value
16665	InstanceStateAwaitingFulfillment = "AWAITING_FULFILLMENT"
16666
16667	// InstanceStateProvisioning is a InstanceState enum value
16668	InstanceStateProvisioning = "PROVISIONING"
16669
16670	// InstanceStateBootstrapping is a InstanceState enum value
16671	InstanceStateBootstrapping = "BOOTSTRAPPING"
16672
16673	// InstanceStateRunning is a InstanceState enum value
16674	InstanceStateRunning = "RUNNING"
16675
16676	// InstanceStateTerminated is a InstanceState enum value
16677	InstanceStateTerminated = "TERMINATED"
16678)
16679
16680// InstanceState_Values returns all elements of the InstanceState enum
16681func InstanceState_Values() []string {
16682	return []string{
16683		InstanceStateAwaitingFulfillment,
16684		InstanceStateProvisioning,
16685		InstanceStateBootstrapping,
16686		InstanceStateRunning,
16687		InstanceStateTerminated,
16688	}
16689}
16690
16691const (
16692	// InstanceStateChangeReasonCodeInternalError is a InstanceStateChangeReasonCode enum value
16693	InstanceStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
16694
16695	// InstanceStateChangeReasonCodeValidationError is a InstanceStateChangeReasonCode enum value
16696	InstanceStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
16697
16698	// InstanceStateChangeReasonCodeInstanceFailure is a InstanceStateChangeReasonCode enum value
16699	InstanceStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
16700
16701	// InstanceStateChangeReasonCodeBootstrapFailure is a InstanceStateChangeReasonCode enum value
16702	InstanceStateChangeReasonCodeBootstrapFailure = "BOOTSTRAP_FAILURE"
16703
16704	// InstanceStateChangeReasonCodeClusterTerminated is a InstanceStateChangeReasonCode enum value
16705	InstanceStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
16706)
16707
16708// InstanceStateChangeReasonCode_Values returns all elements of the InstanceStateChangeReasonCode enum
16709func InstanceStateChangeReasonCode_Values() []string {
16710	return []string{
16711		InstanceStateChangeReasonCodeInternalError,
16712		InstanceStateChangeReasonCodeValidationError,
16713		InstanceStateChangeReasonCodeInstanceFailure,
16714		InstanceStateChangeReasonCodeBootstrapFailure,
16715		InstanceStateChangeReasonCodeClusterTerminated,
16716	}
16717}
16718
16719// The type of instance.
16720const (
16721	// JobFlowExecutionStateStarting is a JobFlowExecutionState enum value
16722	JobFlowExecutionStateStarting = "STARTING"
16723
16724	// JobFlowExecutionStateBootstrapping is a JobFlowExecutionState enum value
16725	JobFlowExecutionStateBootstrapping = "BOOTSTRAPPING"
16726
16727	// JobFlowExecutionStateRunning is a JobFlowExecutionState enum value
16728	JobFlowExecutionStateRunning = "RUNNING"
16729
16730	// JobFlowExecutionStateWaiting is a JobFlowExecutionState enum value
16731	JobFlowExecutionStateWaiting = "WAITING"
16732
16733	// JobFlowExecutionStateShuttingDown is a JobFlowExecutionState enum value
16734	JobFlowExecutionStateShuttingDown = "SHUTTING_DOWN"
16735
16736	// JobFlowExecutionStateTerminated is a JobFlowExecutionState enum value
16737	JobFlowExecutionStateTerminated = "TERMINATED"
16738
16739	// JobFlowExecutionStateCompleted is a JobFlowExecutionState enum value
16740	JobFlowExecutionStateCompleted = "COMPLETED"
16741
16742	// JobFlowExecutionStateFailed is a JobFlowExecutionState enum value
16743	JobFlowExecutionStateFailed = "FAILED"
16744)
16745
16746// JobFlowExecutionState_Values returns all elements of the JobFlowExecutionState enum
16747func JobFlowExecutionState_Values() []string {
16748	return []string{
16749		JobFlowExecutionStateStarting,
16750		JobFlowExecutionStateBootstrapping,
16751		JobFlowExecutionStateRunning,
16752		JobFlowExecutionStateWaiting,
16753		JobFlowExecutionStateShuttingDown,
16754		JobFlowExecutionStateTerminated,
16755		JobFlowExecutionStateCompleted,
16756		JobFlowExecutionStateFailed,
16757	}
16758}
16759
16760const (
16761	// MarketTypeOnDemand is a MarketType enum value
16762	MarketTypeOnDemand = "ON_DEMAND"
16763
16764	// MarketTypeSpot is a MarketType enum value
16765	MarketTypeSpot = "SPOT"
16766)
16767
16768// MarketType_Values returns all elements of the MarketType enum
16769func MarketType_Values() []string {
16770	return []string{
16771		MarketTypeOnDemand,
16772		MarketTypeSpot,
16773	}
16774}
16775
16776const (
16777	// NotebookExecutionStatusStartPending is a NotebookExecutionStatus enum value
16778	NotebookExecutionStatusStartPending = "START_PENDING"
16779
16780	// NotebookExecutionStatusStarting is a NotebookExecutionStatus enum value
16781	NotebookExecutionStatusStarting = "STARTING"
16782
16783	// NotebookExecutionStatusRunning is a NotebookExecutionStatus enum value
16784	NotebookExecutionStatusRunning = "RUNNING"
16785
16786	// NotebookExecutionStatusFinishing is a NotebookExecutionStatus enum value
16787	NotebookExecutionStatusFinishing = "FINISHING"
16788
16789	// NotebookExecutionStatusFinished is a NotebookExecutionStatus enum value
16790	NotebookExecutionStatusFinished = "FINISHED"
16791
16792	// NotebookExecutionStatusFailing is a NotebookExecutionStatus enum value
16793	NotebookExecutionStatusFailing = "FAILING"
16794
16795	// NotebookExecutionStatusFailed is a NotebookExecutionStatus enum value
16796	NotebookExecutionStatusFailed = "FAILED"
16797
16798	// NotebookExecutionStatusStopPending is a NotebookExecutionStatus enum value
16799	NotebookExecutionStatusStopPending = "STOP_PENDING"
16800
16801	// NotebookExecutionStatusStopping is a NotebookExecutionStatus enum value
16802	NotebookExecutionStatusStopping = "STOPPING"
16803
16804	// NotebookExecutionStatusStopped is a NotebookExecutionStatus enum value
16805	NotebookExecutionStatusStopped = "STOPPED"
16806)
16807
16808// NotebookExecutionStatus_Values returns all elements of the NotebookExecutionStatus enum
16809func NotebookExecutionStatus_Values() []string {
16810	return []string{
16811		NotebookExecutionStatusStartPending,
16812		NotebookExecutionStatusStarting,
16813		NotebookExecutionStatusRunning,
16814		NotebookExecutionStatusFinishing,
16815		NotebookExecutionStatusFinished,
16816		NotebookExecutionStatusFailing,
16817		NotebookExecutionStatusFailed,
16818		NotebookExecutionStatusStopPending,
16819		NotebookExecutionStatusStopping,
16820		NotebookExecutionStatusStopped,
16821	}
16822}
16823
16824const (
16825	// OnDemandCapacityReservationPreferenceOpen is a OnDemandCapacityReservationPreference enum value
16826	OnDemandCapacityReservationPreferenceOpen = "open"
16827
16828	// OnDemandCapacityReservationPreferenceNone is a OnDemandCapacityReservationPreference enum value
16829	OnDemandCapacityReservationPreferenceNone = "none"
16830)
16831
16832// OnDemandCapacityReservationPreference_Values returns all elements of the OnDemandCapacityReservationPreference enum
16833func OnDemandCapacityReservationPreference_Values() []string {
16834	return []string{
16835		OnDemandCapacityReservationPreferenceOpen,
16836		OnDemandCapacityReservationPreferenceNone,
16837	}
16838}
16839
16840const (
16841	// OnDemandCapacityReservationUsageStrategyUseCapacityReservationsFirst is a OnDemandCapacityReservationUsageStrategy enum value
16842	OnDemandCapacityReservationUsageStrategyUseCapacityReservationsFirst = "use-capacity-reservations-first"
16843)
16844
16845// OnDemandCapacityReservationUsageStrategy_Values returns all elements of the OnDemandCapacityReservationUsageStrategy enum
16846func OnDemandCapacityReservationUsageStrategy_Values() []string {
16847	return []string{
16848		OnDemandCapacityReservationUsageStrategyUseCapacityReservationsFirst,
16849	}
16850}
16851
16852const (
16853	// OnDemandProvisioningAllocationStrategyLowestPrice is a OnDemandProvisioningAllocationStrategy enum value
16854	OnDemandProvisioningAllocationStrategyLowestPrice = "lowest-price"
16855)
16856
16857// OnDemandProvisioningAllocationStrategy_Values returns all elements of the OnDemandProvisioningAllocationStrategy enum
16858func OnDemandProvisioningAllocationStrategy_Values() []string {
16859	return []string{
16860		OnDemandProvisioningAllocationStrategyLowestPrice,
16861	}
16862}
16863
16864const (
16865	// PlacementGroupStrategySpread is a PlacementGroupStrategy enum value
16866	PlacementGroupStrategySpread = "SPREAD"
16867
16868	// PlacementGroupStrategyPartition is a PlacementGroupStrategy enum value
16869	PlacementGroupStrategyPartition = "PARTITION"
16870
16871	// PlacementGroupStrategyCluster is a PlacementGroupStrategy enum value
16872	PlacementGroupStrategyCluster = "CLUSTER"
16873
16874	// PlacementGroupStrategyNone is a PlacementGroupStrategy enum value
16875	PlacementGroupStrategyNone = "NONE"
16876)
16877
16878// PlacementGroupStrategy_Values returns all elements of the PlacementGroupStrategy enum
16879func PlacementGroupStrategy_Values() []string {
16880	return []string{
16881		PlacementGroupStrategySpread,
16882		PlacementGroupStrategyPartition,
16883		PlacementGroupStrategyCluster,
16884		PlacementGroupStrategyNone,
16885	}
16886}
16887
16888const (
16889	// RepoUpgradeOnBootSecurity is a RepoUpgradeOnBoot enum value
16890	RepoUpgradeOnBootSecurity = "SECURITY"
16891
16892	// RepoUpgradeOnBootNone is a RepoUpgradeOnBoot enum value
16893	RepoUpgradeOnBootNone = "NONE"
16894)
16895
16896// RepoUpgradeOnBoot_Values returns all elements of the RepoUpgradeOnBoot enum
16897func RepoUpgradeOnBoot_Values() []string {
16898	return []string{
16899		RepoUpgradeOnBootSecurity,
16900		RepoUpgradeOnBootNone,
16901	}
16902}
16903
16904const (
16905	// ScaleDownBehaviorTerminateAtInstanceHour is a ScaleDownBehavior enum value
16906	ScaleDownBehaviorTerminateAtInstanceHour = "TERMINATE_AT_INSTANCE_HOUR"
16907
16908	// ScaleDownBehaviorTerminateAtTaskCompletion is a ScaleDownBehavior enum value
16909	ScaleDownBehaviorTerminateAtTaskCompletion = "TERMINATE_AT_TASK_COMPLETION"
16910)
16911
16912// ScaleDownBehavior_Values returns all elements of the ScaleDownBehavior enum
16913func ScaleDownBehavior_Values() []string {
16914	return []string{
16915		ScaleDownBehaviorTerminateAtInstanceHour,
16916		ScaleDownBehaviorTerminateAtTaskCompletion,
16917	}
16918}
16919
16920const (
16921	// SpotProvisioningAllocationStrategyCapacityOptimized is a SpotProvisioningAllocationStrategy enum value
16922	SpotProvisioningAllocationStrategyCapacityOptimized = "capacity-optimized"
16923)
16924
16925// SpotProvisioningAllocationStrategy_Values returns all elements of the SpotProvisioningAllocationStrategy enum
16926func SpotProvisioningAllocationStrategy_Values() []string {
16927	return []string{
16928		SpotProvisioningAllocationStrategyCapacityOptimized,
16929	}
16930}
16931
16932const (
16933	// SpotProvisioningTimeoutActionSwitchToOnDemand is a SpotProvisioningTimeoutAction enum value
16934	SpotProvisioningTimeoutActionSwitchToOnDemand = "SWITCH_TO_ON_DEMAND"
16935
16936	// SpotProvisioningTimeoutActionTerminateCluster is a SpotProvisioningTimeoutAction enum value
16937	SpotProvisioningTimeoutActionTerminateCluster = "TERMINATE_CLUSTER"
16938)
16939
16940// SpotProvisioningTimeoutAction_Values returns all elements of the SpotProvisioningTimeoutAction enum
16941func SpotProvisioningTimeoutAction_Values() []string {
16942	return []string{
16943		SpotProvisioningTimeoutActionSwitchToOnDemand,
16944		SpotProvisioningTimeoutActionTerminateCluster,
16945	}
16946}
16947
16948const (
16949	// StatisticSampleCount is a Statistic enum value
16950	StatisticSampleCount = "SAMPLE_COUNT"
16951
16952	// StatisticAverage is a Statistic enum value
16953	StatisticAverage = "AVERAGE"
16954
16955	// StatisticSum is a Statistic enum value
16956	StatisticSum = "SUM"
16957
16958	// StatisticMinimum is a Statistic enum value
16959	StatisticMinimum = "MINIMUM"
16960
16961	// StatisticMaximum is a Statistic enum value
16962	StatisticMaximum = "MAXIMUM"
16963)
16964
16965// Statistic_Values returns all elements of the Statistic enum
16966func Statistic_Values() []string {
16967	return []string{
16968		StatisticSampleCount,
16969		StatisticAverage,
16970		StatisticSum,
16971		StatisticMinimum,
16972		StatisticMaximum,
16973	}
16974}
16975
16976const (
16977	// StepCancellationOptionSendInterrupt is a StepCancellationOption enum value
16978	StepCancellationOptionSendInterrupt = "SEND_INTERRUPT"
16979
16980	// StepCancellationOptionTerminateProcess is a StepCancellationOption enum value
16981	StepCancellationOptionTerminateProcess = "TERMINATE_PROCESS"
16982)
16983
16984// StepCancellationOption_Values returns all elements of the StepCancellationOption enum
16985func StepCancellationOption_Values() []string {
16986	return []string{
16987		StepCancellationOptionSendInterrupt,
16988		StepCancellationOptionTerminateProcess,
16989	}
16990}
16991
16992const (
16993	// StepExecutionStatePending is a StepExecutionState enum value
16994	StepExecutionStatePending = "PENDING"
16995
16996	// StepExecutionStateRunning is a StepExecutionState enum value
16997	StepExecutionStateRunning = "RUNNING"
16998
16999	// StepExecutionStateContinue is a StepExecutionState enum value
17000	StepExecutionStateContinue = "CONTINUE"
17001
17002	// StepExecutionStateCompleted is a StepExecutionState enum value
17003	StepExecutionStateCompleted = "COMPLETED"
17004
17005	// StepExecutionStateCancelled is a StepExecutionState enum value
17006	StepExecutionStateCancelled = "CANCELLED"
17007
17008	// StepExecutionStateFailed is a StepExecutionState enum value
17009	StepExecutionStateFailed = "FAILED"
17010
17011	// StepExecutionStateInterrupted is a StepExecutionState enum value
17012	StepExecutionStateInterrupted = "INTERRUPTED"
17013)
17014
17015// StepExecutionState_Values returns all elements of the StepExecutionState enum
17016func StepExecutionState_Values() []string {
17017	return []string{
17018		StepExecutionStatePending,
17019		StepExecutionStateRunning,
17020		StepExecutionStateContinue,
17021		StepExecutionStateCompleted,
17022		StepExecutionStateCancelled,
17023		StepExecutionStateFailed,
17024		StepExecutionStateInterrupted,
17025	}
17026}
17027
17028const (
17029	// StepStatePending is a StepState enum value
17030	StepStatePending = "PENDING"
17031
17032	// StepStateCancelPending is a StepState enum value
17033	StepStateCancelPending = "CANCEL_PENDING"
17034
17035	// StepStateRunning is a StepState enum value
17036	StepStateRunning = "RUNNING"
17037
17038	// StepStateCompleted is a StepState enum value
17039	StepStateCompleted = "COMPLETED"
17040
17041	// StepStateCancelled is a StepState enum value
17042	StepStateCancelled = "CANCELLED"
17043
17044	// StepStateFailed is a StepState enum value
17045	StepStateFailed = "FAILED"
17046
17047	// StepStateInterrupted is a StepState enum value
17048	StepStateInterrupted = "INTERRUPTED"
17049)
17050
17051// StepState_Values returns all elements of the StepState enum
17052func StepState_Values() []string {
17053	return []string{
17054		StepStatePending,
17055		StepStateCancelPending,
17056		StepStateRunning,
17057		StepStateCompleted,
17058		StepStateCancelled,
17059		StepStateFailed,
17060		StepStateInterrupted,
17061	}
17062}
17063
17064const (
17065	// StepStateChangeReasonCodeNone is a StepStateChangeReasonCode enum value
17066	StepStateChangeReasonCodeNone = "NONE"
17067)
17068
17069// StepStateChangeReasonCode_Values returns all elements of the StepStateChangeReasonCode enum
17070func StepStateChangeReasonCode_Values() []string {
17071	return []string{
17072		StepStateChangeReasonCodeNone,
17073	}
17074}
17075
17076const (
17077	// UnitNone is a Unit enum value
17078	UnitNone = "NONE"
17079
17080	// UnitSeconds is a Unit enum value
17081	UnitSeconds = "SECONDS"
17082
17083	// UnitMicroSeconds is a Unit enum value
17084	UnitMicroSeconds = "MICRO_SECONDS"
17085
17086	// UnitMilliSeconds is a Unit enum value
17087	UnitMilliSeconds = "MILLI_SECONDS"
17088
17089	// UnitBytes is a Unit enum value
17090	UnitBytes = "BYTES"
17091
17092	// UnitKiloBytes is a Unit enum value
17093	UnitKiloBytes = "KILO_BYTES"
17094
17095	// UnitMegaBytes is a Unit enum value
17096	UnitMegaBytes = "MEGA_BYTES"
17097
17098	// UnitGigaBytes is a Unit enum value
17099	UnitGigaBytes = "GIGA_BYTES"
17100
17101	// UnitTeraBytes is a Unit enum value
17102	UnitTeraBytes = "TERA_BYTES"
17103
17104	// UnitBits is a Unit enum value
17105	UnitBits = "BITS"
17106
17107	// UnitKiloBits is a Unit enum value
17108	UnitKiloBits = "KILO_BITS"
17109
17110	// UnitMegaBits is a Unit enum value
17111	UnitMegaBits = "MEGA_BITS"
17112
17113	// UnitGigaBits is a Unit enum value
17114	UnitGigaBits = "GIGA_BITS"
17115
17116	// UnitTeraBits is a Unit enum value
17117	UnitTeraBits = "TERA_BITS"
17118
17119	// UnitPercent is a Unit enum value
17120	UnitPercent = "PERCENT"
17121
17122	// UnitCount is a Unit enum value
17123	UnitCount = "COUNT"
17124
17125	// UnitBytesPerSecond is a Unit enum value
17126	UnitBytesPerSecond = "BYTES_PER_SECOND"
17127
17128	// UnitKiloBytesPerSecond is a Unit enum value
17129	UnitKiloBytesPerSecond = "KILO_BYTES_PER_SECOND"
17130
17131	// UnitMegaBytesPerSecond is a Unit enum value
17132	UnitMegaBytesPerSecond = "MEGA_BYTES_PER_SECOND"
17133
17134	// UnitGigaBytesPerSecond is a Unit enum value
17135	UnitGigaBytesPerSecond = "GIGA_BYTES_PER_SECOND"
17136
17137	// UnitTeraBytesPerSecond is a Unit enum value
17138	UnitTeraBytesPerSecond = "TERA_BYTES_PER_SECOND"
17139
17140	// UnitBitsPerSecond is a Unit enum value
17141	UnitBitsPerSecond = "BITS_PER_SECOND"
17142
17143	// UnitKiloBitsPerSecond is a Unit enum value
17144	UnitKiloBitsPerSecond = "KILO_BITS_PER_SECOND"
17145
17146	// UnitMegaBitsPerSecond is a Unit enum value
17147	UnitMegaBitsPerSecond = "MEGA_BITS_PER_SECOND"
17148
17149	// UnitGigaBitsPerSecond is a Unit enum value
17150	UnitGigaBitsPerSecond = "GIGA_BITS_PER_SECOND"
17151
17152	// UnitTeraBitsPerSecond is a Unit enum value
17153	UnitTeraBitsPerSecond = "TERA_BITS_PER_SECOND"
17154
17155	// UnitCountPerSecond is a Unit enum value
17156	UnitCountPerSecond = "COUNT_PER_SECOND"
17157)
17158
17159// Unit_Values returns all elements of the Unit enum
17160func Unit_Values() []string {
17161	return []string{
17162		UnitNone,
17163		UnitSeconds,
17164		UnitMicroSeconds,
17165		UnitMilliSeconds,
17166		UnitBytes,
17167		UnitKiloBytes,
17168		UnitMegaBytes,
17169		UnitGigaBytes,
17170		UnitTeraBytes,
17171		UnitBits,
17172		UnitKiloBits,
17173		UnitMegaBits,
17174		UnitGigaBits,
17175		UnitTeraBits,
17176		UnitPercent,
17177		UnitCount,
17178		UnitBytesPerSecond,
17179		UnitKiloBytesPerSecond,
17180		UnitMegaBytesPerSecond,
17181		UnitGigaBytesPerSecond,
17182		UnitTeraBytesPerSecond,
17183		UnitBitsPerSecond,
17184		UnitKiloBitsPerSecond,
17185		UnitMegaBitsPerSecond,
17186		UnitGigaBitsPerSecond,
17187		UnitTeraBitsPerSecond,
17188		UnitCountPerSecond,
17189	}
17190}
17191